Skip to content

Commit 3d74e31

Browse files
authored
feat(block): add snapshot import (#922)
1 parent 0f09608 commit 3d74e31

File tree

5 files changed

+47
-0
lines changed

5 files changed

+47
-0
lines changed

packages/clients/src/api/block/v1alpha1/api.gen.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
import {
1616
marshalCreateSnapshotRequest,
1717
marshalCreateVolumeRequest,
18+
marshalImportSnapshotFromS3Request,
1819
marshalUpdateSnapshotRequest,
1920
marshalUpdateVolumeRequest,
2021
unmarshalListSnapshotsResponse,
@@ -30,6 +31,7 @@ import type {
3031
DeleteVolumeRequest,
3132
GetSnapshotRequest,
3233
GetVolumeRequest,
34+
ImportSnapshotFromS3Request,
3335
ListSnapshotsRequest,
3436
ListSnapshotsResponse,
3537
ListVolumeTypesRequest,
@@ -327,6 +329,22 @@ export class API extends ParentAPI {
327329
unmarshalSnapshot,
328330
)
329331

332+
importSnapshotFromS3 = (request: Readonly<ImportSnapshotFromS3Request>) =>
333+
this.client.fetch<Snapshot>(
334+
{
335+
body: JSON.stringify(
336+
marshalImportSnapshotFromS3Request(request, this.client.settings),
337+
),
338+
headers: jsonContentHeaders,
339+
method: 'POST',
340+
path: `/block/v1alpha1/zones/${validatePathParam(
341+
'zone',
342+
request.zone ?? this.client.settings.defaultZone,
343+
)}/snapshots/import-from-s3`,
344+
},
345+
unmarshalSnapshot,
346+
)
347+
330348
/**
331349
* Delete a snapshot. You must specify the `snapshot_id` of the snapshot you
332350
* want to delete. The snapshot must not be in use.

packages/clients/src/api/block/v1alpha1/index.gen.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export type {
1111
DeleteVolumeRequest,
1212
GetSnapshotRequest,
1313
GetVolumeRequest,
14+
ImportSnapshotFromS3Request,
1415
ListSnapshotsRequest,
1516
ListSnapshotsRequestOrderBy,
1617
ListSnapshotsResponse,

packages/clients/src/api/block/v1alpha1/marshalling.gen.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import type {
1313
CreateVolumeRequest,
1414
CreateVolumeRequestFromEmpty,
1515
CreateVolumeRequestFromSnapshot,
16+
ImportSnapshotFromS3Request,
1617
ListSnapshotsResponse,
1718
ListVolumeTypesResponse,
1819
ListVolumesResponse,
@@ -255,6 +256,17 @@ export const marshalCreateVolumeRequest = (
255256
),
256257
})
257258

259+
export const marshalImportSnapshotFromS3Request = (
260+
request: ImportSnapshotFromS3Request,
261+
defaults: DefaultValues,
262+
): Record<string, unknown> => ({
263+
bucket: request.bucket,
264+
key: request.key,
265+
name: request.name,
266+
project_id: request.projectId ?? defaults.defaultProjectId,
267+
tags: request.tags,
268+
})
269+
258270
export const marshalUpdateSnapshotRequest = (
259271
request: UpdateSnapshotRequest,
260272
defaults: DefaultValues,

packages/clients/src/api/block/v1alpha1/types.gen.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,16 @@ export type CreateSnapshotRequest = {
389389
tags?: string[]
390390
}
391391

392+
export type ImportSnapshotFromS3Request = {
393+
/** Zone to target. If none is passed will use default zone from the config. */
394+
zone?: Zone
395+
bucket: string
396+
key: string
397+
name: string
398+
projectId?: string
399+
tags?: string[]
400+
}
401+
392402
export type DeleteSnapshotRequest = {
393403
/** Zone to target. If none is passed will use default zone from the config. */
394404
zone?: Zone

packages/clients/src/api/block/v1alpha1/validation-rules.gen.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ export const CreateVolumeRequest = {
1313
},
1414
}
1515

16+
export const ImportSnapshotFromS3Request = {
17+
name: {
18+
minLength: 1,
19+
},
20+
}
21+
1622
export const ListSnapshotsRequest = {
1723
page: {
1824
greaterThan: 0,

0 commit comments

Comments
 (0)