package tfexec import ( "context" "os/exec" tfjson "github.com/hashicorp/terraform-json" ) // ProvidersSchema represents the terraform providers schema -json subcommand. func (tf *Terraform) ProvidersSchema(ctx context.Context) (*tfjson.ProviderSchemas, error) { schemaCmd := tf.providersSchemaCmd(ctx) var ret tfjson.ProviderSchemas err := tf.runTerraformCmdJSON(ctx, schemaCmd, &ret) if err != nil { return nil, err } err = ret.Validate() if err != nil { return nil, err } return &ret, nil } func (tf *Terraform) providersSchemaCmd(ctx context.Context, args ...string) *exec.Cmd { allArgs := []string{"providers", "schema", "-json", "-no-color"} allArgs = append(allArgs, args...) return tf.buildTerraformCmd(ctx, nil, allArgs...) }