@@ -10,6 +10,7 @@ import (
1010 "github.com/aws/aws-sdk-go-v2/aws"
1111 "github.com/aws/aws-sdk-go-v2/service/cloudcontrol"
1212 cctypes "github.com/aws/aws-sdk-go-v2/service/cloudcontrol/types"
13+ awsbase "github.com/hashicorp/aws-sdk-go-base/v2"
1314 hclog "github.com/hashicorp/go-hclog"
1415 "github.com/hashicorp/terraform-plugin-framework/diag"
1516 "github.com/hashicorp/terraform-plugin-framework/tfsdk"
@@ -395,36 +396,57 @@ var (
395396 idAttributePath = tftypes .NewAttributePath ().WithAttributeName ("id" )
396397)
397398
398- type meta struct {
399- UserAgents [] userAgentProduct `tfsdk:"user_agent"`
399+ type ProviderMetaData struct {
400+ UserAgent types. List `tfsdk:"user_agent"`
400401}
401402
402- type userAgentProduct struct {
403- ProductName types.String `tfsdk:"product_name"`
404- ProductVersion types.String `tfsdk:"product_version"`
405- Comment types.String `tfsdk:"comment"`
406- }
403+ // type meta struct {
404+ // UserAgents []userAgentProduct `tfsdk:"user_agent"`
405+ // }
406+
407+ // type userAgentProduct struct {
408+ // Name types.String `tfsdk:"product_name"`
409+ // Version types.String `tfsdk:"product_version"`
410+ // Comment types.String `tfsdk:"comment"`
411+ // }
407412
408413func (r * resource ) Create (ctx context.Context , request tfsdk.CreateResourceRequest , response * tfsdk.CreateResourceResponse ) {
409414 ctx = r .cfnTypeContext (ctx )
410415
411416 traceEntry (ctx , "Resource.Create" )
412417
413- var m []meta
414- providerMeta := request .ProviderMeta
418+ var providerMetaData ProviderMetaData
419+ var userAgentProducts []awsbase.UserAgentProduct
420+
421+ response .Diagnostics .Append (request .ProviderMeta .Get (ctx , & providerMetaData )... )
422+
423+ if response .Diagnostics .HasError () {
424+ return
425+ }
426+
427+ if ! providerMetaData .UserAgent .Null && ! providerMetaData .UserAgent .Unknown {
428+ response .Diagnostics .Append (providerMetaData .UserAgent .ElementsAs (ctx , & userAgentProducts , false )... )
415429
416- // diags := providerMeta.GetAttribute(ctx, idAttributePath, &m)
430+ if response .Diagnostics .HasError () {
431+ return
432+ }
433+ }
434+
435+ // var m []meta
436+ // providerMeta := request.ProviderMeta
417437
418- diags := providerMeta .Get (ctx , & m )
419-
438+ // // diags := providerMeta.GetAttribute(ctx, idAttributePath, &m)
420439
421- // userAgentProducts
440+ // diags := providerMeta.Get(ctx, &m)
422441
423- //(*(*r).resourceType).cfTypeName == "AWS::EC2::VPC"
424- //providerMeta.Raw.value != nil
425- newCtx := context .WithValue (ctx , "meta" , m )
442+ // // userAgentProducts
443+
444+ // //(*(*r).resourceType).cfTypeName == "AWS::EC2::VPC"
445+ // //providerMeta.Raw.value != nil
446+ newCtx := context .WithValue (ctx , "awsbase.ContextScopedUserAgent" , userAgentProducts )
426447
427448 conn := r .provider .CloudControlApiClient (newCtx )
449+
428450 // conn := r.provider.CloudControlApiClient(ctx)
429451
430452 tflog .Debug (ctx , "Request.Plan.Raw" , map [string ]interface {}{
@@ -506,7 +528,7 @@ func (r *resource) Create(ctx context.Context, request tfsdk.CreateResourceReque
506528 }
507529 }
508530
509- diags = r .populateUnknownValues (ctx , id , & response .State )
531+ diags : = r .populateUnknownValues (ctx , id , & response .State )
510532
511533 if diags .HasError () {
512534 response .Diagnostics .Append (diags ... )
0 commit comments