@@ -10,15 +10,16 @@ import (
10
10
"log"
11
11
"time"
12
12
13
- "github.com/aws/aws-sdk-go/aws"
14
- "github.com/aws/aws-sdk-go/service/ram"
15
- "github.com/hashicorp /aws-sdk-go-base/ v2/awsv1shim/v2/tfawserr "
13
+ "github.com/aws/aws-sdk-go-v2 /aws"
14
+ "github.com/aws/aws-sdk-go-v2 /service/ram"
15
+ awstypes "github.com/aws /aws-sdk-go-v2/service/ram/types "
16
16
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
17
17
sdkid "github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
18
18
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry"
19
19
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
20
20
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
21
21
"github.com/hashicorp/terraform-provider-aws/internal/conns"
22
+ "github.com/hashicorp/terraform-provider-aws/internal/enum"
22
23
"github.com/hashicorp/terraform-provider-aws/internal/errs"
23
24
"github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
24
25
"github.com/hashicorp/terraform-provider-aws/internal/flex"
@@ -44,9 +45,12 @@ func resourcePrincipalAssociation() *schema.Resource {
44
45
Type : schema .TypeString ,
45
46
Required : true ,
46
47
ForceNew : true ,
47
- ValidateFunc : validation .Any (
48
- verify .ValidAccountID ,
49
- verify .ValidARN ,
48
+ ValidateFunc : validation .All (
49
+ validation .StringIsNotEmpty ,
50
+ validation .Any (
51
+ verify .ValidAccountID ,
52
+ verify .ValidARN ,
53
+ ),
50
54
),
51
55
},
52
56
"resource_share_arn" : {
@@ -65,7 +69,7 @@ const (
65
69
66
70
func resourcePrincipalAssociationCreate (ctx context.Context , d * schema.ResourceData , meta interface {}) diag.Diagnostics {
67
71
var diags diag.Diagnostics
68
- conn := meta .(* conns.AWSClient ).RAMConn (ctx )
72
+ conn := meta .(* conns.AWSClient ).RAMClient (ctx )
69
73
70
74
resourceShareARN , principal := d .Get ("resource_share_arn" ).(string ), d .Get (names .AttrPrincipal ).(string )
71
75
id := errs .Must (flex .FlattenResourceId ([]string {resourceShareARN , principal }, principalAssociationResourceIDPartCount , false ))
@@ -82,11 +86,11 @@ func resourcePrincipalAssociationCreate(ctx context.Context, d *schema.ResourceD
82
86
83
87
input := & ram.AssociateResourceShareInput {
84
88
ClientToken : aws .String (sdkid .UniqueId ()),
85
- Principals : []* string {aws . String ( principal ) },
89
+ Principals : []string {principal },
86
90
ResourceShareArn : aws .String (resourceShareARN ),
87
91
}
88
92
89
- _ , err = conn .AssociateResourceShareWithContext (ctx , input )
93
+ _ , err = conn .AssociateResourceShare (ctx , input )
90
94
91
95
if err != nil {
92
96
return sdkdiag .AppendErrorf (diags , "creating RAM Principal Association (%s): %s" , id , err )
@@ -108,7 +112,7 @@ func resourcePrincipalAssociationCreate(ctx context.Context, d *schema.ResourceD
108
112
109
113
func resourcePrincipalAssociationRead (ctx context.Context , d * schema.ResourceData , meta interface {}) diag.Diagnostics {
110
114
var diags diag.Diagnostics
111
- conn := meta .(* conns.AWSClient ).RAMConn (ctx )
115
+ conn := meta .(* conns.AWSClient ).RAMClient (ctx )
112
116
113
117
parts , err := flex .ExpandResourceId (d .Id (), principalAssociationResourceIDPartCount , false )
114
118
if err != nil {
@@ -136,7 +140,7 @@ func resourcePrincipalAssociationRead(ctx context.Context, d *schema.ResourceDat
136
140
137
141
func resourcePrincipalAssociationDelete (ctx context.Context , d * schema.ResourceData , meta interface {}) diag.Diagnostics {
138
142
var diags diag.Diagnostics
139
- conn := meta .(* conns.AWSClient ).RAMConn (ctx )
143
+ conn := meta .(* conns.AWSClient ).RAMClient (ctx )
140
144
141
145
parts , err := flex .ExpandResourceId (d .Id (), principalAssociationResourceIDPartCount , false )
142
146
if err != nil {
@@ -145,12 +149,12 @@ func resourcePrincipalAssociationDelete(ctx context.Context, d *schema.ResourceD
145
149
resourceShareARN , principal := parts [0 ], parts [1 ]
146
150
147
151
log .Printf ("[DEBUG] Deleting RAM Principal Association: %s" , d .Id ())
148
- _ , err = conn .DisassociateResourceShareWithContext (ctx , & ram.DisassociateResourceShareInput {
149
- Principals : []* string {aws . String ( principal ) },
152
+ _ , err = conn .DisassociateResourceShare (ctx , & ram.DisassociateResourceShareInput {
153
+ Principals : []string {principal },
150
154
ResourceShareArn : aws .String (resourceShareARN ),
151
155
})
152
156
153
- if tfawserr . ErrCodeEquals (err , ram . ErrCodeUnknownResourceException ) {
157
+ if errs. IsA [ * awstypes. UnknownResourceException ] (err ) {
154
158
return diags
155
159
}
156
160
@@ -165,11 +169,11 @@ func resourcePrincipalAssociationDelete(ctx context.Context, d *schema.ResourceD
165
169
return diags
166
170
}
167
171
168
- func findPrincipalAssociationByTwoPartKey (ctx context.Context , conn * ram.RAM , resourceShareARN , principal string ) (* ram .ResourceShareAssociation , error ) {
172
+ func findPrincipalAssociationByTwoPartKey (ctx context.Context , conn * ram.Client , resourceShareARN , principal string ) (* awstypes .ResourceShareAssociation , error ) {
169
173
input := & ram.GetResourceShareAssociationsInput {
170
- AssociationType : aws . String ( ram . ResourceShareAssociationTypePrincipal ) ,
174
+ AssociationType : awstypes . ResourceShareAssociationTypePrincipal ,
171
175
Principal : aws .String (principal ),
172
- ResourceShareArns : aws . StringSlice ( []string {resourceShareARN }) ,
176
+ ResourceShareArns : []string {resourceShareARN },
173
177
}
174
178
175
179
output , err := findResourceShareAssociation (ctx , conn , input )
@@ -178,17 +182,17 @@ func findPrincipalAssociationByTwoPartKey(ctx context.Context, conn *ram.RAM, re
178
182
return nil , err
179
183
}
180
184
181
- if status := aws . StringValue ( output .Status ) ; status == ram .ResourceShareAssociationStatusDisassociated {
185
+ if status := output .Status ; status == awstypes .ResourceShareAssociationStatusDisassociated {
182
186
return nil , & retry.NotFoundError {
183
- Message : status ,
187
+ Message : string ( status ) ,
184
188
LastRequest : input ,
185
189
}
186
190
}
187
191
188
192
return output , err
189
193
}
190
194
191
- func statusPrincipalAssociation (ctx context.Context , conn * ram.RAM , resourceShareARN , principal string ) retry.StateRefreshFunc {
195
+ func statusPrincipalAssociation (ctx context.Context , conn * ram.Client , resourceShareARN , principal string ) retry.StateRefreshFunc {
192
196
return func () (interface {}, string , error ) {
193
197
output , err := findPrincipalAssociationByTwoPartKey (ctx , conn , resourceShareARN , principal )
194
198
@@ -200,48 +204,50 @@ func statusPrincipalAssociation(ctx context.Context, conn *ram.RAM, resourceShar
200
204
return nil , "" , err
201
205
}
202
206
203
- return output , aws . StringValue (output .Status ), nil
207
+ return output , string (output .Status ), nil
204
208
}
205
209
}
206
210
207
- func waitPrincipalAssociationCreated (ctx context.Context , conn * ram.RAM , resourceShareARN , principal string ) (* ram .ResourceShareAssociation , error ) {
211
+ func waitPrincipalAssociationCreated (ctx context.Context , conn * ram.Client , resourceShareARN , principal string ) (* awstypes .ResourceShareAssociation , error ) {
208
212
const (
209
213
timeout = 3 * time .Minute
210
214
)
211
215
stateConf := & retry.StateChangeConf {
212
- Pending : [] string { ram . ResourceShareAssociationStatusAssociating } ,
213
- Target : [] string { ram . ResourceShareAssociationStatusAssociated } ,
216
+ Pending : enum . Slice ( awstypes . ResourceShareAssociationStatusAssociating ) ,
217
+ Target : enum . Slice ( awstypes . ResourceShareAssociationStatusAssociated ) ,
214
218
Refresh : statusPrincipalAssociation (ctx , conn , resourceShareARN , principal ),
215
219
Timeout : timeout ,
216
220
NotFoundChecks : 20 ,
217
221
}
218
222
219
223
outputRaw , err := stateConf .WaitForStateContext (ctx )
220
224
221
- if output , ok := outputRaw .(* ram .ResourceShareAssociation ); ok {
222
- tfresource .SetLastError (err , errors .New (aws .StringValue (output .StatusMessage )))
225
+ if output , ok := outputRaw .(* awstypes .ResourceShareAssociation ); ok {
226
+ tfresource .SetLastError (err , errors .New (aws .ToString (output .StatusMessage )))
223
227
224
228
return output , err
225
229
}
226
230
227
231
return nil , err
228
232
}
229
233
230
- func waitPrincipalAssociationDeleted (ctx context.Context , conn * ram.RAM , resourceShareARN , principal string ) (* ram .ResourceShareAssociation , error ) {
234
+ func waitPrincipalAssociationDeleted (ctx context.Context , conn * ram.Client , resourceShareARN , principal string ) (* awstypes .ResourceShareAssociation , error ) {
231
235
const (
232
236
timeout = 3 * time .Minute
233
237
)
234
238
stateConf := & retry.StateChangeConf {
235
- Pending : [] string { ram . ResourceShareAssociationStatusAssociated , ram .ResourceShareAssociationStatusDisassociating } ,
239
+ Pending : enum . Slice ( awstypes . ResourceShareAssociationStatusAssociated , awstypes .ResourceShareAssociationStatusDisassociating ) ,
236
240
Target : []string {},
237
241
Refresh : statusPrincipalAssociation (ctx , conn , resourceShareARN , principal ),
238
242
Timeout : timeout ,
239
243
}
240
244
241
245
outputRaw , err := stateConf .WaitForStateContext (ctx )
242
246
243
- if v , ok := outputRaw .(* ram.ResourceShareAssociation ); ok {
244
- return v , err
247
+ if output , ok := outputRaw .(* awstypes.ResourceShareAssociation ); ok {
248
+ tfresource .SetLastError (err , errors .New (aws .ToString (output .StatusMessage )))
249
+
250
+ return output , err
245
251
}
246
252
247
253
return nil , err
0 commit comments