Skip to content

Commit c8d6545

Browse files
committed
chore(block): add support for identity schema
1 parent 1d18128 commit c8d6545

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed

internal/services/block/snapshot.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,25 @@ func ResourceSnapshot() *schema.Resource {
3333
Default: schema.DefaultTimeout(defaultBlockTimeout),
3434
},
3535
SchemaVersion: 0,
36+
Identity: &schema.ResourceIdentity{
37+
Version: 0,
38+
SchemaFunc: func() map[string]*schema.Schema {
39+
return map[string]*schema.Schema{
40+
"snapshot_id": {
41+
Type: schema.TypeString,
42+
Computed: true,
43+
RequiredForImport: true,
44+
Description: "Snapshot ID",
45+
},
46+
"zone": {
47+
Type: schema.TypeString,
48+
Computed: true,
49+
RequiredForImport: true,
50+
Description: "Zone ID",
51+
},
52+
}
53+
},
54+
},
3655
Schema: map[string]*schema.Schema{
3756
"name": {
3857
Type: schema.TypeString,
@@ -202,6 +221,18 @@ func ResourceBlockSnapshotRead(ctx context.Context, d *schema.ResourceData, m an
202221

203222
_ = d.Set("tags", snapshot.Tags)
204223

224+
identity, err := d.Identity()
225+
if err != nil {
226+
return diag.FromErr(err)
227+
}
228+
229+
if err = identity.Set("snapshot_id", snapshot.ID); err != nil {
230+
return diag.FromErr(err)
231+
}
232+
if err = identity.Set("zone", snapshot.Zone); err != nil {
233+
return diag.FromErr(err)
234+
}
235+
205236
return nil
206237
}
207238

internal/services/block/volume.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,25 @@ func ResourceVolume() *schema.Resource {
2626
Importer: &schema.ResourceImporter{
2727
StateContext: schema.ImportStatePassthroughContext,
2828
},
29+
Identity: &schema.ResourceIdentity{
30+
Version: 0,
31+
SchemaFunc: func() map[string]*schema.Schema {
32+
return map[string]*schema.Schema{
33+
"volume_id": {
34+
Type: schema.TypeString,
35+
Computed: true,
36+
RequiredForImport: true,
37+
Description: "Volume ID",
38+
},
39+
"zone": {
40+
Type: schema.TypeString,
41+
Computed: true,
42+
RequiredForImport: true,
43+
Description: "Zone",
44+
},
45+
}
46+
},
47+
},
2948
Timeouts: &schema.ResourceTimeout{
3049
Create: schema.DefaultTimeout(defaultBlockTimeout),
3150
Read: schema.DefaultTimeout(defaultBlockTimeout),
@@ -186,6 +205,18 @@ func ResourceBlockVolumeRead(ctx context.Context, d *schema.ResourceData, m any)
186205

187206
_ = d.Set("snapshot_id", snapshotID)
188207

208+
identity, err := d.Identity()
209+
if err != nil {
210+
return diag.FromErr(err)
211+
}
212+
213+
if err = identity.Set("volume_id", volume.ID); err != nil {
214+
return diag.FromErr(err)
215+
}
216+
if err = identity.Set("zone", volume.Zone); err != nil {
217+
return diag.FromErr(err)
218+
}
219+
189220
return nil
190221
}
191222

0 commit comments

Comments
 (0)