@@ -91,6 +91,15 @@ func (g *GenerateTerraformProvider) GenerateTerraformResource(resourceTyp proper
9191 "RenderXpathComponentsGetter" : func () (string , error ) {
9292 return RenderXpathComponentsGetter (names .ResourceStructName , spec )
9393 },
94+ "RenderMainStruct" : func () (string , error ) {
95+ return RenderMainStruct (resourceTyp , schemaTyp , names , spec )
96+ },
97+ "RenderConfigureFunc" : func () (string , error ) {
98+ return RenderConfigureFunc (resourceTyp , schemaTyp , names , spec )
99+ },
100+ "RenderModelStructs" : func () (string , error ) {
101+ return RenderModelStructs (resourceTyp , schemaTyp , names , spec )
102+ },
94103 "ResourceCreateFunction" : func (structName string , serviceName string ) (string , error ) {
95104 return ResourceCreateFunction (resourceTyp , names , serviceName , spec , terraformProvider , names .PackageName )
96105 },
@@ -265,6 +274,37 @@ func (g *GenerateTerraformProvider) GenerateTerraformResource(resourceTyp proper
265274 return nil
266275}
267276
277+ // GenerateTerraformListResource generates a Terraform list resource template.
278+ func (o * GenerateTerraformProvider ) GenerateTerraformListResource (resourceTyp properties.ResourceType , spec * properties.Normalization , provider * properties.TerraformProviderFile ) error {
279+ provider .ImportManager .AddHashicorpImport ("github.com/hashicorp/terraform-plugin-framework/list" , "" )
280+ provider .ImportManager .AddHashicorpImport ("github.com/hashicorp/terraform-plugin-framework/list/schema" , "listschema" )
281+
282+ names := NewNameProvider (spec , resourceTyp )
283+
284+ funcMap := template.FuncMap {
285+ "structName" : func () string { return names .StructName },
286+ "metaName" : func () string { return names .MetaName },
287+
288+ "RenderModelStructs" : func () (string , error ) {
289+ return RenderModelStructs (resourceTyp , properties .SchemaListResource , names , spec )
290+ },
291+ "RenderMainStruct" : func () (string , error ) {
292+ return RenderMainStruct (resourceTyp , properties .SchemaListResource , names , spec )
293+ },
294+ "RenderConfigureFunc" : func () (string , error ) {
295+ return RenderConfigureFunc (resourceTyp , properties .SchemaListResource , names , spec )
296+ },
297+ "RenderSchema" : func () (string , error ) {
298+ return RenderSchema (resourceTyp , properties .SchemaListResource , names , spec , provider .ImportManager )
299+ },
300+ "RenderListFunc" : func () (string , error ) {
301+ return RenderListFunc (resourceTyp , properties .SchemaListResource , names , spec , provider .ImportManager )
302+ },
303+ }
304+
305+ return o .generateTerraformEntityTemplate (resourceTyp , properties .SchemaListResource , names , spec , provider , "resource/list_resource.tmpl" , funcMap )
306+ }
307+
268308// GenerateTerraformAction generates a Terraform action template.
269309func (o * GenerateTerraformProvider ) GenerateTerraformAction (spec * properties.Normalization , provider * properties.TerraformProviderFile ) error {
270310 provider .ImportManager .AddStandardImport ("context" , "" )
@@ -288,7 +328,7 @@ func (o *GenerateTerraformProvider) GenerateTerraformAction(spec *properties.Nor
288328 "metaName" : func () string { return names .MetaName },
289329 "HasCustomValidation" : func () bool { return spec .TerraformProviderConfig .CustomValidation },
290330
291- "RenderStructs " : func () (string , error ) { return RenderStructs (resourceTyp , properties .SchemaAction , names , spec ) },
331+ "RenderModelStructs " : func () (string , error ) { return RenderModelStructs (resourceTyp , properties .SchemaAction , names , spec ) },
292332 "RenderSchema" : func () (string , error ) {
293333 return RenderSchema (resourceTyp , properties .SchemaAction , names , spec , provider .ImportManager )
294334 },
@@ -387,6 +427,15 @@ func (g *GenerateTerraformProvider) GenerateTerraformDataSource(resourceTyp prop
387427 "RenderDataSourceSchema" : func () (string , error ) {
388428 return RenderDataSourceSchema (resourceTyp , names , spec , terraformProvider .ImportManager )
389429 },
430+ "RenderMainStruct" : func () (string , error ) {
431+ return RenderMainStruct (resourceTyp , properties .SchemaDataSource , names , spec )
432+ },
433+ "RenderConfigureFunc" : func () (string , error ) {
434+ return RenderConfigureFunc (resourceTyp , properties .SchemaDataSource , names , spec )
435+ },
436+ "RenderModelStructs" : func () (string , error ) {
437+ return RenderModelStructs (resourceTyp , properties .SchemaDataSource , names , spec )
438+ },
390439 }
391440 err := g .generateTerraformEntityTemplate (resourceTyp , properties .SchemaDataSource , names , spec , terraformProvider , "datasource/datasource.tmpl" , funcMap )
392441 if err != nil {
0 commit comments