Skip to content

Commit 58fd7f2

Browse files
committed
add import to random_pet resource #184
1 parent 7d4676c commit 58fd7f2

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

docs/resources/pet.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,11 @@ resource "aws_instance" "server" {
5454

5555
- `id` (String) The random pet name
5656

57+
## Import
5758

59+
Random Pet can be imported by just specifying the value:
60+
61+
Example:
62+
```
63+
$ terraform import random_pet.example pet_name
64+
```

internal/provider/resource_pet.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ func resourcePet() *schema.Resource {
2626
CreateContext: CreatePet,
2727
ReadContext: schema.NoopContext,
2828
DeleteContext: RemoveResourceFromState,
29+
Importer: &schema.ResourceImporter{
30+
StateContext: importPet,
31+
},
2932

3033
Schema: map[string]*schema.Schema{
3134
"keepers": {
@@ -83,3 +86,19 @@ func CreatePet(_ context.Context, d *schema.ResourceData, meta interface{}) diag
8386

8487
return nil
8588
}
89+
90+
func importPet(ctx context.Context, d *schema.ResourceData, _ interface{}) ([]*schema.ResourceData, error) {
91+
92+
val := d.Id()
93+
d.SetId(val)
94+
95+
if err := d.Set("length", len(val)); err != nil {
96+
return nil, fmt.Errorf("error setting result: %w", err)
97+
}
98+
99+
if err := d.Set("separator", "-"); err != nil {
100+
return nil, fmt.Errorf("error setting result: %w", err)
101+
}
102+
103+
return []*schema.ResourceData{d}, nil
104+
}

0 commit comments

Comments
 (0)