Skip to content

Commit 5c9c363

Browse files
committed
add import to random_pet resource #184
1 parent b7b4a99 commit 5c9c363

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

docs/resources/pet.md

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

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

57+
## Import
5758

59+
Import is supported using the following syntax:
60+
61+
```shell
62+
# Random Pet can be imported by just specifying the value:
63+
64+
terraform import random_pet.example pet_name
65+
```
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Random Pet can be imported by just specifying the value:
2+
3+
terraform import random_pet.example pet_name

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)