1
1
package route53domains
2
2
3
3
import (
4
+ "context"
4
5
"errors"
5
6
"fmt"
6
7
"log"
@@ -11,6 +12,7 @@ import (
11
12
"github.com/aws/aws-sdk-go/aws"
12
13
"github.com/aws/aws-sdk-go/service/route53domains"
13
14
"github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2/tfawserr"
15
+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
14
16
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
15
17
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
16
18
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
@@ -104,10 +106,10 @@ func ResourceRegisteredDomain() *schema.Resource {
104
106
}
105
107
106
108
return & schema.Resource {
107
- Create : resourceRegisteredDomainCreate ,
108
- Read : resourceRegisteredDomainRead ,
109
- Update : resourceRegisteredDomainUpdate ,
110
- Delete : resourceRegisteredDomainDelete ,
109
+ CreateWithoutTimeout : resourceRegisteredDomainCreate ,
110
+ ReadWithoutTimeout : resourceRegisteredDomainRead ,
111
+ UpdateWithoutTimeout : resourceRegisteredDomainUpdate ,
112
+ DeleteWithoutTimeout : resourceRegisteredDomainDelete ,
111
113
112
114
Timeouts : & schema.ResourceTimeout {
113
115
Create : schema .DefaultTimeout (30 * time .Minute ),
@@ -223,14 +225,14 @@ func ResourceRegisteredDomain() *schema.Resource {
223
225
}
224
226
}
225
227
226
- func resourceRegisteredDomainCreate (d * schema.ResourceData , meta interface {}) error {
228
+ func resourceRegisteredDomainCreate (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
227
229
conn := meta .(* conns.AWSClient ).Route53DomainsConn
228
230
229
231
domainName := d .Get ("domain_name" ).(string )
230
232
domainDetail , err := findDomainDetailByName (conn , domainName )
231
233
232
234
if err != nil {
233
- return fmt .Errorf ("error reading Route 53 Domains Domain (%s): %w" , domainName , err )
235
+ return diag . FromErr ( fmt .Errorf ("error reading Route 53 Domains Domain (%s): %w" , domainName , err ) )
234
236
}
235
237
236
238
d .SetId (aws .StringValue (domainDetail .DomainName ))
@@ -257,19 +259,19 @@ func resourceRegisteredDomainCreate(d *schema.ResourceData, meta interface{}) er
257
259
258
260
if adminContact != nil || registrantContact != nil || techContact != nil {
259
261
if err := modifyDomainContact (conn , d .Id (), adminContact , registrantContact , techContact , d .Timeout (schema .TimeoutCreate )); err != nil {
260
- return err
262
+ return diag . FromErr ( err )
261
263
}
262
264
}
263
265
264
266
if adminPrivacy , registrantPrivacy , techPrivacy := d .Get ("admin_privacy" ).(bool ), d .Get ("registrant_privacy" ).(bool ), d .Get ("tech_privacy" ).(bool ); adminPrivacy != aws .BoolValue (domainDetail .AdminPrivacy ) || registrantPrivacy != aws .BoolValue (domainDetail .RegistrantPrivacy ) || techPrivacy != aws .BoolValue (domainDetail .TechPrivacy ) {
265
267
if err := modifyDomainContactPrivacy (conn , d .Id (), adminPrivacy , registrantPrivacy , techPrivacy , d .Timeout (schema .TimeoutCreate )); err != nil {
266
- return err
268
+ return diag . FromErr ( err )
267
269
}
268
270
}
269
271
270
272
if v := d .Get ("auto_renew" ).(bool ); v != aws .BoolValue (domainDetail .AutoRenew ) {
271
273
if err := modifyDomainAutoRenew (conn , d .Id (), v ); err != nil {
272
- return err
274
+ return diag . FromErr ( err )
273
275
}
274
276
}
275
277
@@ -278,21 +280,21 @@ func resourceRegisteredDomainCreate(d *schema.ResourceData, meta interface{}) er
278
280
279
281
if ! reflect .DeepEqual (nameservers , domainDetail .Nameservers ) {
280
282
if err := modifyDomainNameservers (conn , d .Id (), nameservers , d .Timeout (schema .TimeoutCreate )); err != nil {
281
- return err
283
+ return diag . FromErr ( err )
282
284
}
283
285
}
284
286
}
285
287
286
288
if v := d .Get ("transfer_lock" ).(bool ); v != hasDomainTransferLock (aws .StringValueSlice (domainDetail .StatusList )) {
287
289
if err := modifyDomainTransferLock (conn , d .Id (), v , d .Timeout (schema .TimeoutCreate )); err != nil {
288
- return err
290
+ return diag . FromErr ( err )
289
291
}
290
292
}
291
293
292
294
tags , err := ListTags (conn , d .Id ())
293
295
294
296
if err != nil {
295
- return fmt .Errorf ("error listing tags for Route 53 Domains Domain (%s): %w" , d .Id (), err )
297
+ return diag . FromErr ( fmt .Errorf ("error listing tags for Route 53 Domains Domain (%s): %w" , d .Id (), err ) )
296
298
}
297
299
298
300
defaultTagsConfig := meta .(* conns.AWSClient ).DefaultTagsConfig
@@ -302,14 +304,14 @@ func resourceRegisteredDomainCreate(d *schema.ResourceData, meta interface{}) er
302
304
303
305
if ! oldTags .Equal (newTags ) {
304
306
if err := UpdateTags (conn , d .Id (), oldTags , newTags ); err != nil {
305
- return fmt .Errorf ("error updating Route 53 Domains Domain (%s) tags: %w" , d .Id (), err )
307
+ return diag . FromErr ( fmt .Errorf ("error updating Route 53 Domains Domain (%s) tags: %w" , d .Id (), err ) )
306
308
}
307
309
}
308
310
309
- return resourceRegisteredDomainRead (d , meta )
311
+ return resourceRegisteredDomainRead (ctx , d , meta )
310
312
}
311
313
312
- func resourceRegisteredDomainRead (d * schema.ResourceData , meta interface {}) error {
314
+ func resourceRegisteredDomainRead (_ context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
313
315
conn := meta .(* conns.AWSClient ).Route53DomainsConn
314
316
defaultTagsConfig := meta .(* conns.AWSClient ).DefaultTagsConfig
315
317
ignoreTagsConfig := meta .(* conns.AWSClient ).IgnoreTagsConfig
@@ -323,14 +325,14 @@ func resourceRegisteredDomainRead(d *schema.ResourceData, meta interface{}) erro
323
325
}
324
326
325
327
if err != nil {
326
- return fmt .Errorf ("error reading Route 53 Domains Domain (%s): %w" , d .Id (), err )
328
+ return diag . FromErr ( fmt .Errorf ("error reading Route 53 Domains Domain (%s): %w" , d .Id (), err ) )
327
329
}
328
330
329
331
d .Set ("abuse_contact_email" , domainDetail .AbuseContactEmail )
330
332
d .Set ("abuse_contact_phone" , domainDetail .AbuseContactPhone )
331
333
if domainDetail .AdminContact != nil {
332
334
if err := d .Set ("admin_contact" , []interface {}{flattenContactDetail (domainDetail .AdminContact )}); err != nil {
333
- return fmt .Errorf ("error setting admin_contact: %w" , err )
335
+ return diag . FromErr ( fmt .Errorf ("error setting admin_contact: %w" , err ) )
334
336
}
335
337
} else {
336
338
d .Set ("admin_contact" , nil )
@@ -349,11 +351,11 @@ func resourceRegisteredDomainRead(d *schema.ResourceData, meta interface{}) erro
349
351
d .Set ("expiration_date" , nil )
350
352
}
351
353
if err := d .Set ("name_server" , flattenNameservers (domainDetail .Nameservers )); err != nil {
352
- return fmt .Errorf ("error setting name_servers: %w" , err )
354
+ return diag . FromErr ( fmt .Errorf ("error setting name_servers: %w" , err ) )
353
355
}
354
356
if domainDetail .RegistrantContact != nil {
355
357
if err := d .Set ("registrant_contact" , []interface {}{flattenContactDetail (domainDetail .RegistrantContact )}); err != nil {
356
- return fmt .Errorf ("error setting registrant_contact: %w" , err )
358
+ return diag . FromErr ( fmt .Errorf ("error setting registrant_contact: %w" , err ) )
357
359
}
358
360
} else {
359
361
d .Set ("registrant_contact" , nil )
@@ -366,7 +368,7 @@ func resourceRegisteredDomainRead(d *schema.ResourceData, meta interface{}) erro
366
368
d .Set ("status_list" , statusList )
367
369
if domainDetail .TechContact != nil {
368
370
if err := d .Set ("tech_contact" , []interface {}{flattenContactDetail (domainDetail .TechContact )}); err != nil {
369
- return fmt .Errorf ("error setting tech_contact: %w" , err )
371
+ return diag . FromErr ( fmt .Errorf ("error setting tech_contact: %w" , err ) )
370
372
}
371
373
} else {
372
374
d .Set ("tech_contact" , nil )
@@ -383,24 +385,24 @@ func resourceRegisteredDomainRead(d *schema.ResourceData, meta interface{}) erro
383
385
tags , err := ListTags (conn , d .Id ())
384
386
385
387
if err != nil {
386
- return fmt .Errorf ("error listing tags for Route 53 Domains Domain (%s): %w" , d .Id (), err )
388
+ return diag . FromErr ( fmt .Errorf ("error listing tags for Route 53 Domains Domain (%s): %w" , d .Id (), err ) )
387
389
}
388
390
389
391
tags = tags .IgnoreAWS ().IgnoreConfig (ignoreTagsConfig )
390
392
391
393
//lintignore:AWSR002
392
394
if err := d .Set ("tags" , tags .RemoveDefaultConfig (defaultTagsConfig ).Map ()); err != nil {
393
- return fmt .Errorf ("error setting tags: %w" , err )
395
+ return diag . FromErr ( fmt .Errorf ("error setting tags: %w" , err ) )
394
396
}
395
397
396
398
if err := d .Set ("tags_all" , tags .Map ()); err != nil {
397
- return fmt .Errorf ("error setting tags_all: %w" , err )
399
+ return diag . FromErr ( fmt .Errorf ("error setting tags_all: %w" , err ) )
398
400
}
399
401
400
402
return nil
401
403
}
402
404
403
- func resourceRegisteredDomainUpdate (d * schema.ResourceData , meta interface {}) error {
405
+ func resourceRegisteredDomainUpdate (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
404
406
conn := meta .(* conns.AWSClient ).Route53DomainsConn
405
407
406
408
if d .HasChanges ("admin_contact" , "registrant_contact" , "tech_contact" ) {
@@ -425,48 +427,48 @@ func resourceRegisteredDomainUpdate(d *schema.ResourceData, meta interface{}) er
425
427
}
426
428
427
429
if err := modifyDomainContact (conn , d .Id (), adminContact , registrantContact , techContact , d .Timeout (schema .TimeoutUpdate )); err != nil {
428
- return err
430
+ return diag . FromErr ( err )
429
431
}
430
432
}
431
433
432
434
if d .HasChanges ("admin_privacy" , "registrant_privacy" , "tech_privacy" ) {
433
435
if err := modifyDomainContactPrivacy (conn , d .Id (), d .Get ("admin_privacy" ).(bool ), d .Get ("registrant_privacy" ).(bool ), d .Get ("tech_privacy" ).(bool ), d .Timeout (schema .TimeoutUpdate )); err != nil {
434
- return err
436
+ return diag . FromErr ( err )
435
437
}
436
438
}
437
439
438
440
if d .HasChange ("auto_renew" ) {
439
441
if err := modifyDomainAutoRenew (conn , d .Id (), d .Get ("auto_renew" ).(bool )); err != nil {
440
- return err
442
+ return diag . FromErr ( err )
441
443
}
442
444
}
443
445
444
446
if d .HasChange ("name_server" ) {
445
447
if v , ok := d .GetOk ("name_server" ); ok && len (v .([]interface {})) > 0 {
446
448
if err := modifyDomainNameservers (conn , d .Id (), expandNameservers (v .([]interface {})), d .Timeout (schema .TimeoutUpdate )); err != nil {
447
- return err
449
+ return diag . FromErr ( err )
448
450
}
449
451
}
450
452
}
451
453
452
454
if d .HasChange ("transfer_lock" ) {
453
455
if err := modifyDomainTransferLock (conn , d .Id (), d .Get ("transfer_lock" ).(bool ), d .Timeout (schema .TimeoutUpdate )); err != nil {
454
- return err
456
+ return diag . FromErr ( err )
455
457
}
456
458
}
457
459
458
460
if d .HasChange ("tags_all" ) {
459
461
o , n := d .GetChange ("tags_all" )
460
462
461
463
if err := UpdateTags (conn , d .Id (), o , n ); err != nil {
462
- return fmt .Errorf ("error updating Route 53 Domains Domain (%s) tags: %w" , d .Id (), err )
464
+ return diag . FromErr ( fmt .Errorf ("error updating Route 53 Domains Domain (%s) tags: %w" , d .Id (), err ) )
463
465
}
464
466
}
465
467
466
- return resourceRegisteredDomainRead (d , meta )
468
+ return resourceRegisteredDomainRead (ctx , d , meta )
467
469
}
468
470
469
- func resourceRegisteredDomainDelete (d * schema.ResourceData , meta interface {}) error {
471
+ func resourceRegisteredDomainDelete (_ context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
470
472
log .Printf ("[WARN] Route 53 Domains Registered Domain (%s) not deleted, removing from state" , d .Id ())
471
473
472
474
return nil
0 commit comments