diff --git a/internal/provider/generators/plural-data-source/main.go b/internal/provider/generators/plural-data-source/main.go index 25c587da7..d0d4f82af 100644 --- a/internal/provider/generators/plural-data-source/main.go +++ b/internal/provider/generators/plural-data-source/main.go @@ -1,9 +1,11 @@ +//go:build ignore // +build ignore package main import ( "bytes" + _ "embed" "flag" "fmt" "os" @@ -126,85 +128,9 @@ func (p *PluralDataSourceGenerator) Generate(packageName, schemaFilename, acctes } // Terraform resource schema definition. -var dataSourceSchemaTemplateBody = ` -// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. - -package {{ .PackageName }} - -import ( - "context" - - "github.com/hashicorp/terraform-plugin-framework/tfsdk" - "github.com/hashicorp/terraform-plugin-framework/types" - . "github.com/hashicorp/terraform-provider-awscc/internal/generic" - "github.com/hashicorp/terraform-provider-awscc/internal/registry" -) - -func init() { - registry.AddDataSourceTypeFactory("{{ .TerraformTypeName }}", {{ .FactoryFunctionName }}) -} - -// {{ .FactoryFunctionName }} returns the Terraform {{ .TerraformTypeName }} data source type. -// This Terraform data source type corresponds to the CloudFormation {{ .CloudFormationTypeName }} resource type. -func {{ .FactoryFunctionName }}(ctx context.Context) (tfsdk.DataSourceType, error) { - attributes := map[string]tfsdk.Attribute { - "id": { - Description: "Uniquely identifies the data source.", - Type: types.StringType, - Computed: true, - }, - "ids": { - Description: "Set of Resource Identifiers.", - Type: types.SetType{ElemType:types.StringType}, - Computed: true, - }, - } - - schema := tfsdk.Schema{ - Description: "{{ .SchemaDescription }}", - Version: {{ .SchemaVersion }}, - Attributes: attributes, - } - - var opts DataSourceTypeOptions - - opts = opts.WithCloudFormationTypeName("{{ .CloudFormationTypeName }}").WithTerraformTypeName("{{ .TerraformTypeName }}") - opts = opts.WithTerraformSchema(schema) - - pluralDataSourceType, err := NewPluralDataSourceType(ctx, opts...) - - if err != nil { - return nil, err - } - - return pluralDataSourceType, nil -} -` +//go:embed schema.tmpl +var dataSourceSchemaTemplateBody string // Terraform acceptance tests. -var acceptanceTestsTemplateBody = ` -// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. - -package {{ .PackageName }}_test - -import ( - "fmt" - "testing" - - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-provider-awscc/internal/acctest" -) - -func {{ .AcceptanceTestFunctionPrefix }}DataSource_basic(t *testing.T) { - td := acctest.NewTestData(t, "{{ .CloudFormationTypeName }}", "{{ .TerraformTypeName }}", "test") - - td.DataSourceTest(t, []resource.TestStep{ - { - Config: td.EmptyDataSourceConfig(), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), - ), - }, - }) -} -` +//go:embed tests.tmpl +var acceptanceTestsTemplateBody string diff --git a/internal/provider/generators/plural-data-source/schema.tmpl b/internal/provider/generators/plural-data-source/schema.tmpl new file mode 100644 index 000000000..db1085e3a --- /dev/null +++ b/internal/provider/generators/plural-data-source/schema.tmpl @@ -0,0 +1,52 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package {{ .PackageName }} + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "github.com/hashicorp/terraform-plugin-framework/types" + . "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceTypeFactory("{{ .TerraformTypeName }}", {{ .FactoryFunctionName }}) +} + +// {{ .FactoryFunctionName }} returns the Terraform {{ .TerraformTypeName }} data source type. +// This Terraform data source type corresponds to the CloudFormation {{ .CloudFormationTypeName }} resource type. +func {{ .FactoryFunctionName }}(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute { + "id": { + Description: "Uniquely identifies the data source.", + Type: types.StringType, + Computed: true, + }, + "ids": { + Description: "Set of Resource Identifiers.", + Type: types.SetType{ElemType:types.StringType}, + Computed: true, + }, + } + + schema := tfsdk.Schema{ + Description: "{{ .SchemaDescription }}", + Version: {{ .SchemaVersion }}, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("{{ .CloudFormationTypeName }}").WithTerraformTypeName("{{ .TerraformTypeName }}") + opts = opts.WithTerraformSchema(schema) + + pluralDataSourceType, err := NewPluralDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return pluralDataSourceType, nil +} diff --git a/internal/provider/generators/plural-data-source/tests.tmpl b/internal/provider/generators/plural-data-source/tests.tmpl new file mode 100644 index 000000000..13f562bc8 --- /dev/null +++ b/internal/provider/generators/plural-data-source/tests.tmpl @@ -0,0 +1,24 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package {{ .PackageName }}_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func {{ .AcceptanceTestFunctionPrefix }}DataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "{{ .CloudFormationTypeName }}", "{{ .TerraformTypeName }}", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +}