Skip to content

Commit 06c5066

Browse files
committed
extra providerMeta with ElementAs()
1 parent 2a01ff7 commit 06c5066

File tree

2 files changed

+45
-17
lines changed

2 files changed

+45
-17
lines changed

go.mod

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,9 @@ require (
9191
google.golang.org/grpc v1.46.0 // indirect
9292
google.golang.org/protobuf v1.28.0 // indirect
9393
)
94+
95+
// replace github.com/hashicorp/aws-sdk-go-base => ../aws-sdk-go-base
96+
97+
replace github.com/hashicorp/aws-sdk-go-base => ../aws-sdk-go-base
98+
99+
// replace github.com/hashicorp/aws-sdk-go-base/v2 => ../aws-sdk-go-base/v2

internal/generic/resource.go

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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

408413
func (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

Comments
 (0)