Skip to content

Commit 2817bc7

Browse files
committed
Updates documentation
1 parent b0f5303 commit 2817bc7

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

docs/error-handling.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -257,21 +257,25 @@ To prevent this type of Terraform CLI error, the resource implementation should
257257
In the Terraform AWS Provider, an initial fix for the Terraform CLI error will typically look like:
258258
259259
```go
260-
func resourceServiceThingCreate(d *schema.ResourceData, meta interface{}) error {
261-
/* ... */
260+
func resourceServiceThingCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
261+
var diags diag.Diagnostics
262+
263+
/* ... */
262264
263-
return resourceServiceThingRead(d, meta)
265+
return append(diags, resourceServiceThingRead(ctx, d, meta)...)
264266
}
265267
266-
func resourceServiceThingRead(d *schema.ResourceData, meta interface{}) error {
267-
/* ... */
268+
func resourceServiceThingRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
269+
var diags diag.Diagnostics
270+
271+
/* ... */
268272
269273
output, err := conn.DescribeServiceThing(input)
270274
271275
if !d.IsNewResource() && tfawserr.ErrCodeEquals(err, "ResourceNotFoundException") {
272276
log.Printf("[WARN] {Service} {Thing} (%s) not found, removing from state", d.Id())
273277
d.SetId("")
274-
return nil
278+
return diags
275279
}
276280
277281
if err != nil {

docs/retries-and-waiters.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -439,12 +439,15 @@ const (
439439
```go
440440
// internal/service/{service}/{thing}.go
441441

442-
function ExampleThingCreate(d *schema.ResourceData, meta interface{}) error {
442+
function ExampleThingCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
443+
var diags diag.Diagnostics
443444
// ...
444-
return ExampleThingRead(d, meta)
445+
return append(diags, ExampleThingRead(ctx, d, meta)...)
445446
}
446447

447-
function ExampleThingRead(d *schema.ResourceData, meta interface{}) error {
448+
function ExampleThingRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
449+
var diags diag.Diagnostics
450+
448451
conn := meta.(*AWSClient).ExampleConn()
449452

450453
input := &example.OperationInput{/* ... */}
@@ -476,16 +479,16 @@ const (
476479
if !d.IsNewResource() && tfawserr.ErrorCodeEquals(err, example.ErrCodeNoSuchEntityException) {
477480
log.Printf("[WARN] Example Thing (%s) not found, removing from state", d.Id())
478481
d.SetId("")
479-
return nil
482+
return diags
480483
}
481484

482485
if err != nil {
483-
return fmt.Errorf("reading Example Thing (%s): %w", d.Id(), err)
486+
return sdkdiag.AppendErrorf(diags, "reading Example Thing (%s): %w", d.Id(), err)
484487
}
485488

486489
// Prevent panics.
487490
if output == nil {
488-
return fmt.Errorf("reading Example Thing (%s): empty response", d.Id())
491+
return sdkdiag.AppendErrorf(diags, "reading Example Thing (%s): empty response", d.Id())
489492
}
490493

491494
// ... refresh Terraform state as normal ...
@@ -770,13 +773,15 @@ func waitThingDeleted(ctx context.Context, conn *example.Example, id string, tim
770773
=== "Terraform Plugin SDK V2"
771774
```go
772775
func resourceThingCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
776+
var diags diag.Diagnostics
777+
773778
// ... AWS Go SDK logic to create resource ...
774779

775780
if _, err := waitThingCreated(ctx, conn, d.Id(), d.Timeout(schema.TimeoutCreate)) {
776781
return append(diags, create.DiagError(names.Example, create.ErrActionWaitingForCreation, ResNameThing, d.Id(), err)...)
777782
}
778783

779-
return ExampleThingRead(d, meta)
784+
return append(diags, ExampleThingRead(ctx, d, meta)...)
780785
}
781786

782787
func resourceThingDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {

0 commit comments

Comments
 (0)