@@ -156,11 +156,7 @@ func (r *resourceBot) Create(ctx context.Context, req resource.CreateRequest, re
156
156
return
157
157
}
158
158
159
- dpInput , d := expandDataPrivacy (ctx , dp )
160
- resp .Diagnostics .Append (d ... )
161
- if resp .Diagnostics .HasError () {
162
- return
163
- }
159
+ dpInput := expandDataPrivacy (ctx , dp )
164
160
165
161
in := lexmodelsv2.CreateBotInput {
166
162
BotName : aws .String (plan .Name .ValueString ()),
@@ -178,6 +174,12 @@ func (r *resourceBot) Create(ctx context.Context, req resource.CreateRequest, re
178
174
in .Description = aws .String (plan .Description .ValueString ())
179
175
}
180
176
177
+ var bm []membersData
178
+ if ! plan .Members .IsNull () {
179
+ bmInput := expandMembers (ctx , bm )
180
+ in .BotMembers = bmInput
181
+ }
182
+
181
183
out , err := conn .CreateBot (ctx , & in )
182
184
if err != nil {
183
185
resp .Diagnostics .AddError (
@@ -255,7 +257,7 @@ func (r *resourceBot) Read(ctx context.Context, req resource.ReadRequest, resp *
255
257
state .Description = flex .StringToFramework (ctx , out .Description )
256
258
state .IdleSessionTTLInSeconds = flex .Int32ToFramework (ctx , out .IdleSessionTTLInSeconds )
257
259
258
- datap , _ := flattenDataPrivacy (ctx , out .DataPrivacy )
260
+ datap , _ := flattenDataPrivacy (out .DataPrivacy )
259
261
if resp .Diagnostics .HasError () {
260
262
return
261
263
}
@@ -280,18 +282,13 @@ func (r *resourceBot) Update(ctx context.Context, req resource.UpdateRequest, re
280
282
! plan .TestBotAliasTags .Equal (state .TestBotAliasTags ) ||
281
283
! plan .DataPrivacy .Equal (state .DataPrivacy ) ||
282
284
! plan .Type .Equal (state .Type ) {
283
-
284
285
var dp []dataPrivacyData
285
286
resp .Diagnostics .Append (plan .DataPrivacy .ElementsAs (ctx , & dp , false )... )
286
287
if resp .Diagnostics .HasError () {
287
288
return
288
289
}
289
290
290
- dpInput , d := expandDataPrivacy (ctx , dp )
291
- resp .Diagnostics .Append (d ... )
292
- if resp .Diagnostics .HasError () {
293
- return
294
- }
291
+ dpInput := expandDataPrivacy (ctx , dp )
295
292
296
293
in := lexmodelsv2.UpdateBotInput {
297
294
BotId : flex .StringFromFramework (ctx , plan .ID ),
@@ -481,9 +478,7 @@ func FindBotByID(ctx context.Context, conn *lexmodelsv2.Client, id string) (*lex
481
478
return out , nil
482
479
}
483
480
484
- func flattenDataPrivacy (ctx context.Context , apiObject * awstypes.DataPrivacy ) (types.List , diag.Diagnostics ) {
485
- // attributeTypes := flex.AttributeTypesMust[dataPrivacyData](ctx)
486
-
481
+ func flattenDataPrivacy (apiObject * awstypes.DataPrivacy ) (types.List , diag.Diagnostics ) {
487
482
var diags diag.Diagnostics
488
483
elemType := types.ObjectType {AttrTypes : dataPrivacyAttrTypes }
489
484
@@ -503,35 +498,37 @@ func flattenDataPrivacy(ctx context.Context, apiObject *awstypes.DataPrivacy) (t
503
498
return listVal , diags
504
499
}
505
500
506
- func expandDataPrivacy (ctx context.Context , tfList []dataPrivacyData ) (* awstypes.DataPrivacy , diag.Diagnostics ) {
507
- var diags diag.Diagnostics
501
+ func expandDataPrivacy (ctx context.Context , tfList []dataPrivacyData ) * awstypes.DataPrivacy {
508
502
if len (tfList ) == 0 {
509
- return nil , diags
503
+ return nil
510
504
}
511
505
512
506
dp := tfList [0 ]
513
507
cdBool := flex .BoolFromFramework (ctx , dp .ChildDirected )
514
508
515
509
return & awstypes.DataPrivacy {
516
510
ChildDirected : aws .ToBool (cdBool ),
517
- }, diags
511
+ }
518
512
}
519
513
520
- func expandMembers (tfList []membersData ) (* awstypes.BotMember , diag.Diagnostics ) {
521
- var diags diag.Diagnostics
522
-
514
+ func expandMembers (ctx context.Context , tfList []membersData ) []awstypes.BotMember {
523
515
if len (tfList ) == 0 {
524
- return nil , diags
516
+ return nil
517
+ }
518
+ var mb []awstypes.BotMember
519
+
520
+ for _ , item := range tfList {
521
+ new := awstypes.BotMember {
522
+ BotMemberAliasId : flex .StringFromFramework (ctx , item .AliasID ),
523
+ BotMemberAliasName : flex .StringFromFramework (ctx , item .AliasName ),
524
+ BotMemberId : flex .StringFromFramework (ctx , item .ID ),
525
+ BotMemberName : flex .StringFromFramework (ctx , item .Name ),
526
+ BotMemberVersion : flex .StringFromFramework (ctx , item .Version ),
527
+ }
528
+ mb = append (mb , new )
525
529
}
526
530
527
- mb := tfList [0 ]
528
- return & awstypes.BotMember {
529
- BotMemberAliasId : aws .String (mb .AliasID .ValueString ()),
530
- BotMemberAliasName : aws .String (mb .AliasName .ValueString ()),
531
- BotMemberId : aws .String (mb .ID .ValueString ()),
532
- BotMemberName : aws .String (mb .Name .ValueString ()),
533
- BotMemberVersion : aws .String (mb .Version .ValueString ()),
534
- }, diags
531
+ return mb
535
532
}
536
533
537
534
func (rd * resourceBotData ) refreshFromOutput (ctx context.Context , out * lexmodelsv2.DescribeBotOutput ) diag.Diagnostics {
@@ -547,8 +544,7 @@ func (rd *resourceBotData) refreshFromOutput(ctx context.Context, out *lexmodels
547
544
rd .Description = flex .StringToFramework (ctx , out .Description )
548
545
rd .IdleSessionTTLInSeconds = flex .Int32ToFramework (ctx , out .IdleSessionTTLInSeconds )
549
546
550
- // TIP: Setting a complex type.
551
- datap , d := flattenDataPrivacy (ctx , out .DataPrivacy )
547
+ datap , d := flattenDataPrivacy (out .DataPrivacy )
552
548
diags .Append (d ... )
553
549
rd .DataPrivacy = datap
554
550
0 commit comments