@scaleway/sdk 1.32.1 → 1.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,6 +11,14 @@ import { unmarshalGetConsumptionResponse, unmarshalListInvoicesResponse } from '
11
11
  * This API allows you to query your consumption. Billing API.
12
12
  */
13
13
  class API extends API$1 {
14
+ /**
15
+ * Get current month's consumption. The consumption reflects the amount of
16
+ * money you have spent for the products you have used. The consumption value
17
+ * is monetary and is not computed in real time.
18
+ *
19
+ * @param request - The request {@link GetConsumptionRequest}
20
+ * @returns A Promise of GetConsumptionResponse
21
+ */
14
22
  getConsumption = (() => {
15
23
  var _this = this;
16
24
  return function (request) {
@@ -37,6 +45,14 @@ class API extends API$1 {
37
45
  }, unmarshalListInvoicesResponse);
38
46
  };
39
47
  })();
48
+
49
+ /**
50
+ * List invoices. List all your invoices, filtering by `start_date` and
51
+ * `invoice_type`. Each invoice has its own ID.
52
+ *
53
+ * @param request - The request {@link ListInvoicesRequest}
54
+ * @returns A Promise of ListInvoicesResponse
55
+ */
40
56
  listInvoices = (() => {
41
57
  var _this3 = this;
42
58
  return function (request) {
@@ -46,6 +62,13 @@ class API extends API$1 {
46
62
  return enrichForPagination('invoices', _this3.pageOfListInvoices, request);
47
63
  };
48
64
  })();
65
+
66
+ /**
67
+ * Download an invoice. Download a specific invoice, specified by its ID.
68
+ *
69
+ * @param request - The request {@link DownloadInvoiceRequest}
70
+ * @returns A Promise of Blob
71
+ */
49
72
  downloadInvoice = request => this.client.fetch({
50
73
  method: 'GET',
51
74
  path: `/billing/v2alpha1/invoices/${validatePathParam('invoiceId', request.invoiceId)}/download`,
@@ -0,0 +1,2 @@
1
+ import * as index_gen from './v1alpha1/index.gen.js';
2
+ export { index_gen as v1alpha1 };
@@ -0,0 +1,245 @@
1
+ import { waitForResource } from '../../../internal/async/interval-retrier.js';
2
+ import { API as API$1 } from '../../../scw/api.js';
3
+ import { validatePathParam, urlParams } from '../../../helpers/marshalling.js';
4
+ import { enrichForPagination } from '../../../scw/fetch/resource-paginator.js';
5
+ import { VOLUME_TRANSIENT_STATUSES, SNAPSHOT_TRANSIENT_STATUSES } from './content.gen.js';
6
+ import { unmarshalListVolumeTypesResponse, unmarshalListVolumesResponse, marshalCreateVolumeRequest, unmarshalVolume, marshalUpdateVolumeRequest, unmarshalListSnapshotsResponse, unmarshalSnapshot, marshalCreateSnapshotRequest, marshalUpdateSnapshotRequest } from './marshalling.gen.js';
7
+
8
+ // This file was automatically generated. DO NOT EDIT.
9
+ // If you have any remark or suggestion do not hesitate to open an issue.
10
+ const jsonContentHeaders = {
11
+ 'Content-Type': 'application/json; charset=utf-8'
12
+ };
13
+
14
+ /**
15
+ * Scaleway Block Storage (SBS) API.
16
+ *
17
+ * This API allows you to use and manage your Block Storage volumes. Scaleway
18
+ * Block Storage (SBS) API.
19
+ */
20
+ class API extends API$1 {
21
+ /** Lists the available zones of the API. */
22
+ static LOCALITIES = ['fr-par-1', 'pl-waw-3'];
23
+ pageOfListVolumeTypes = (() => {
24
+ var _this = this;
25
+ return function (request) {
26
+ if (request === void 0) {
27
+ request = {};
28
+ }
29
+ return _this.client.fetch({
30
+ method: 'GET',
31
+ path: `/block/v1alpha1/zones/${validatePathParam('zone', request.zone ?? _this.client.settings.defaultZone)}/volume-types`,
32
+ urlParams: urlParams(['page', request.page], ['page_size', request.pageSize ?? _this.client.settings.defaultPageSize])
33
+ }, unmarshalListVolumeTypesResponse);
34
+ };
35
+ })();
36
+
37
+ /**
38
+ * List volume types. List all available volume types in a specified zone. The
39
+ * volume types listed are ordered by name in ascending order.
40
+ *
41
+ * @param request - The request {@link ListVolumeTypesRequest}
42
+ * @returns A Promise of ListVolumeTypesResponse
43
+ */
44
+ listVolumeTypes = (() => {
45
+ var _this2 = this;
46
+ return function (request) {
47
+ if (request === void 0) {
48
+ request = {};
49
+ }
50
+ return enrichForPagination('volumeTypes', _this2.pageOfListVolumeTypes, request);
51
+ };
52
+ })();
53
+ pageOfListVolumes = (() => {
54
+ var _this3 = this;
55
+ return function (request) {
56
+ if (request === void 0) {
57
+ request = {};
58
+ }
59
+ return _this3.client.fetch({
60
+ method: 'GET',
61
+ path: `/block/v1alpha1/zones/${validatePathParam('zone', request.zone ?? _this3.client.settings.defaultZone)}/volumes`,
62
+ urlParams: urlParams(['name', request.name], ['order_by', request.orderBy ?? 'created_at_asc'], ['page', request.page], ['page_size', request.pageSize ?? _this3.client.settings.defaultPageSize], ['product_resource_id', request.productResourceId], ['project_id', request.projectId])
63
+ }, unmarshalListVolumesResponse);
64
+ };
65
+ })();
66
+
67
+ /**
68
+ * List volumes. List all existing volumes in a specified zone. By default,
69
+ * the volume listed are ordered by creation date in ascending order. This can
70
+ * be modified via the `order_by` field.
71
+ *
72
+ * @param request - The request {@link ListVolumesRequest}
73
+ * @returns A Promise of ListVolumesResponse
74
+ */
75
+ listVolumes = (() => {
76
+ var _this4 = this;
77
+ return function (request) {
78
+ if (request === void 0) {
79
+ request = {};
80
+ }
81
+ return enrichForPagination('volumes', _this4.pageOfListVolumes, request);
82
+ };
83
+ })();
84
+
85
+ /**
86
+ * Create a new empty volume by specifying the `size`. To create a volume from
87
+ * an existing snapshot, specify the `snapshot_id` in the request payload
88
+ * instead, size is optional and can be specified if you need to extend the
89
+ * original size. In that case the created volume will have the same volume
90
+ * class (and underlying IOPS limitations) as the originating snapshot. You
91
+ * can specify the desired performance of the volume by setting `requirements`
92
+ * accordingly.
93
+ *
94
+ * @param request - The request {@link CreateVolumeRequest}
95
+ * @returns A Promise of Volume
96
+ */
97
+ createVolume = request => this.client.fetch({
98
+ body: JSON.stringify(marshalCreateVolumeRequest(request, this.client.settings)),
99
+ headers: jsonContentHeaders,
100
+ method: 'POST',
101
+ path: `/block/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/volumes`
102
+ }, unmarshalVolume);
103
+
104
+ /**
105
+ * Get a volume. Retrieve technical information about a specific volume.
106
+ * Details such as size, type, and status are returned in the response.
107
+ *
108
+ * @param request - The request {@link GetVolumeRequest}
109
+ * @returns A Promise of Volume
110
+ */
111
+ getVolume = request => this.client.fetch({
112
+ method: 'GET',
113
+ path: `/block/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/volumes/${validatePathParam('volumeId', request.volumeId)}`
114
+ }, unmarshalVolume);
115
+
116
+ /**
117
+ * Waits for {@link Volume} to be in a final state.
118
+ *
119
+ * @param request - The request {@link GetVolumeRequest}
120
+ * @param options - The waiting options
121
+ * @returns A Promise of Volume
122
+ */
123
+ waitForVolume = (request, options) => waitForResource(options?.stop ?? (res => Promise.resolve(!VOLUME_TRANSIENT_STATUSES.includes(res.status))), this.getVolume, request, options);
124
+
125
+ /**
126
+ * Delete a detached volume. You must specify the `volume_id` of the volume
127
+ * you want to delete. The volume must not be in the `in_use` status.
128
+ *
129
+ * @param request - The request {@link DeleteVolumeRequest}
130
+ */
131
+ deleteVolume = request => this.client.fetch({
132
+ method: 'DELETE',
133
+ path: `/block/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/volumes/${validatePathParam('volumeId', request.volumeId)}`
134
+ });
135
+
136
+ /**
137
+ * Update a volume. Update technical details about a volume, such as its name,
138
+ * tags, or its new size and `volume_type` (within the same Block Storage
139
+ * class). You can only resize a volume to a larger size. It is not possible
140
+ * for now to change your Block Storage Class.
141
+ *
142
+ * @param request - The request {@link UpdateVolumeRequest}
143
+ * @returns A Promise of Volume
144
+ */
145
+ updateVolume = request => this.client.fetch({
146
+ body: JSON.stringify(marshalUpdateVolumeRequest(request, this.client.settings)),
147
+ headers: jsonContentHeaders,
148
+ method: 'PATCH',
149
+ path: `/block/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/volumes/${validatePathParam('volumeId', request.volumeId)}`
150
+ }, unmarshalVolume);
151
+ pageOfListSnapshots = (() => {
152
+ var _this5 = this;
153
+ return function (request) {
154
+ if (request === void 0) {
155
+ request = {};
156
+ }
157
+ return _this5.client.fetch({
158
+ method: 'GET',
159
+ path: `/block/v1alpha1/zones/${validatePathParam('zone', request.zone ?? _this5.client.settings.defaultZone)}/snapshots`,
160
+ urlParams: urlParams(['name', request.name], ['order_by', request.orderBy ?? 'created_at_asc'], ['page', request.page], ['page_size', request.pageSize ?? _this5.client.settings.defaultPageSize], ['project_id', request.projectId], ['volume_id', request.volumeId])
161
+ }, unmarshalListSnapshotsResponse);
162
+ };
163
+ })();
164
+
165
+ /**
166
+ * List all snapshots. List all available snapshots in a specified zone. By
167
+ * default, the snapshots listed are ordered by creation date in ascending
168
+ * order. This can be modified via the `order_by` field.
169
+ *
170
+ * @param request - The request {@link ListSnapshotsRequest}
171
+ * @returns A Promise of ListSnapshotsResponse
172
+ */
173
+ listSnapshots = (() => {
174
+ var _this6 = this;
175
+ return function (request) {
176
+ if (request === void 0) {
177
+ request = {};
178
+ }
179
+ return enrichForPagination('snapshots', _this6.pageOfListSnapshots, request);
180
+ };
181
+ })();
182
+
183
+ /**
184
+ * Get a snapshot. Retrieve technical information about a specific snapshot.
185
+ * Details such as size, volume type, and status are returned in the
186
+ * response.
187
+ *
188
+ * @param request - The request {@link GetSnapshotRequest}
189
+ * @returns A Promise of Snapshot
190
+ */
191
+ getSnapshot = request => this.client.fetch({
192
+ method: 'GET',
193
+ path: `/block/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/snapshots/${validatePathParam('snapshotId', request.snapshotId)}`
194
+ }, unmarshalSnapshot);
195
+
196
+ /**
197
+ * Waits for {@link Snapshot} to be in a final state.
198
+ *
199
+ * @param request - The request {@link GetSnapshotRequest}
200
+ * @param options - The waiting options
201
+ * @returns A Promise of Snapshot
202
+ */
203
+ waitForSnapshot = (request, options) => waitForResource(options?.stop ?? (res => Promise.resolve(!SNAPSHOT_TRANSIENT_STATUSES.includes(res.status))), this.getSnapshot, request, options);
204
+
205
+ /**
206
+ * Create a snapshot of a volume. To create a snapshot, the volume must be in
207
+ * the `in_use` or the `available` status. If your volume is in a transient
208
+ * state, you need to wait until the end of the current operation.
209
+ *
210
+ * @param request - The request {@link CreateSnapshotRequest}
211
+ * @returns A Promise of Snapshot
212
+ */
213
+ createSnapshot = request => this.client.fetch({
214
+ body: JSON.stringify(marshalCreateSnapshotRequest(request, this.client.settings)),
215
+ headers: jsonContentHeaders,
216
+ method: 'POST',
217
+ path: `/block/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/snapshots`
218
+ }, unmarshalSnapshot);
219
+
220
+ /**
221
+ * Delete a snapshot. You must specify the `snapshot_id` of the snapshot you
222
+ * want to delete. The snapshot must not be in use.
223
+ *
224
+ * @param request - The request {@link DeleteSnapshotRequest}
225
+ */
226
+ deleteSnapshot = request => this.client.fetch({
227
+ method: 'DELETE',
228
+ path: `/block/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/snapshots/${validatePathParam('snapshotId', request.snapshotId)}`
229
+ });
230
+
231
+ /**
232
+ * Update a snapshot. Update name or tags of the snapshot.
233
+ *
234
+ * @param request - The request {@link UpdateSnapshotRequest}
235
+ * @returns A Promise of Snapshot
236
+ */
237
+ updateSnapshot = request => this.client.fetch({
238
+ body: JSON.stringify(marshalUpdateSnapshotRequest(request, this.client.settings)),
239
+ headers: jsonContentHeaders,
240
+ method: 'PATCH',
241
+ path: `/block/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/snapshots/${validatePathParam('snapshotId', request.snapshotId)}`
242
+ }, unmarshalSnapshot);
243
+ }
244
+
245
+ export { API };
@@ -0,0 +1,13 @@
1
+ // This file was automatically generated. DO NOT EDIT.
2
+ // If you have any remark or suggestion do not hesitate to open an issue.
3
+
4
+ /** Lists transient statutes of the enum {@link ReferenceStatus}. */
5
+ const REFERENCE_TRANSIENT_STATUSES = ['attaching', 'detaching', 'snapshotting'];
6
+
7
+ /** Lists transient statutes of the enum {@link SnapshotStatus}. */
8
+ const SNAPSHOT_TRANSIENT_STATUSES = ['creating', 'deleting'];
9
+
10
+ /** Lists transient statutes of the enum {@link VolumeStatus}. */
11
+ const VOLUME_TRANSIENT_STATUSES = ['creating', 'deleting', 'resizing', 'snapshotting'];
12
+
13
+ export { REFERENCE_TRANSIENT_STATUSES, SNAPSHOT_TRANSIENT_STATUSES, VOLUME_TRANSIENT_STATUSES };
@@ -0,0 +1,7 @@
1
+ export { API } from './api.gen.js';
2
+ export { REFERENCE_TRANSIENT_STATUSES, SNAPSHOT_TRANSIENT_STATUSES, VOLUME_TRANSIENT_STATUSES } from './content.gen.js';
3
+ import * as validationRules_gen from './validation-rules.gen.js';
4
+ export { validationRules_gen as ValidationRules };
5
+
6
+ // This file was automatically generated. DO NOT EDIT.
7
+ // If you have any remark or suggestion do not hesitate to open an issue.
@@ -0,0 +1,175 @@
1
+ import { isJSONObject } from '../../../helpers/json.js';
2
+ import { unmarshalMoney } from '../../../scw/custom-marshalling.js';
3
+ import { unmarshalDate, unmarshalArrayOfObject, resolveOneOf } from '../../../helpers/marshalling.js';
4
+
5
+ // This file was automatically generated. DO NOT EDIT.
6
+ // If you have any remark or suggestion do not hesitate to open an issue.
7
+ const unmarshalReference = data => {
8
+ if (!isJSONObject(data)) {
9
+ throw new TypeError(`Unmarshalling the type 'Reference' failed as data isn't a dictionary.`);
10
+ }
11
+ return {
12
+ createdAt: unmarshalDate(data.created_at),
13
+ id: data.id,
14
+ productResourceId: data.product_resource_id,
15
+ productResourceType: data.product_resource_type,
16
+ status: data.status,
17
+ type: data.type
18
+ };
19
+ };
20
+ const unmarshalSnapshotParentVolume = data => {
21
+ if (!isJSONObject(data)) {
22
+ throw new TypeError(`Unmarshalling the type 'SnapshotParentVolume' failed as data isn't a dictionary.`);
23
+ }
24
+ return {
25
+ id: data.id,
26
+ name: data.name,
27
+ status: data.status,
28
+ type: data.type
29
+ };
30
+ };
31
+ const unmarshalVolumeSpecifications = data => {
32
+ if (!isJSONObject(data)) {
33
+ throw new TypeError(`Unmarshalling the type 'VolumeSpecifications' failed as data isn't a dictionary.`);
34
+ }
35
+ return {
36
+ class: data.class,
37
+ perfIops: data.perf_iops
38
+ };
39
+ };
40
+ const unmarshalSnapshotSummary = data => {
41
+ if (!isJSONObject(data)) {
42
+ throw new TypeError(`Unmarshalling the type 'SnapshotSummary' failed as data isn't a dictionary.`);
43
+ }
44
+ return {
45
+ class: data.class,
46
+ createdAt: unmarshalDate(data.created_at),
47
+ id: data.id,
48
+ name: data.name,
49
+ parentVolume: data.parent_volume ? unmarshalSnapshotParentVolume(data.parent_volume) : undefined,
50
+ projectId: data.project_id,
51
+ size: data.size,
52
+ status: data.status,
53
+ tags: data.tags,
54
+ updatedAt: unmarshalDate(data.updated_at),
55
+ zone: data.zone
56
+ };
57
+ };
58
+ const unmarshalVolume = data => {
59
+ if (!isJSONObject(data)) {
60
+ throw new TypeError(`Unmarshalling the type 'Volume' failed as data isn't a dictionary.`);
61
+ }
62
+ return {
63
+ createdAt: unmarshalDate(data.created_at),
64
+ id: data.id,
65
+ name: data.name,
66
+ parentSnapshotId: data.parent_snapshot_id,
67
+ projectId: data.project_id,
68
+ references: unmarshalArrayOfObject(data.references, unmarshalReference),
69
+ size: data.size,
70
+ specs: data.specs ? unmarshalVolumeSpecifications(data.specs) : undefined,
71
+ status: data.status,
72
+ tags: data.tags,
73
+ type: data.type,
74
+ updatedAt: unmarshalDate(data.updated_at),
75
+ zone: data.zone
76
+ };
77
+ };
78
+ const unmarshalVolumeType = data => {
79
+ if (!isJSONObject(data)) {
80
+ throw new TypeError(`Unmarshalling the type 'VolumeType' failed as data isn't a dictionary.`);
81
+ }
82
+ return {
83
+ pricing: data.pricing ? unmarshalMoney(data.pricing) : undefined,
84
+ snapshotPricing: data.snapshot_pricing ? unmarshalMoney(data.snapshot_pricing) : undefined,
85
+ specs: data.specs ? unmarshalVolumeSpecifications(data.specs) : undefined,
86
+ type: data.type
87
+ };
88
+ };
89
+ const unmarshalListSnapshotsResponse = data => {
90
+ if (!isJSONObject(data)) {
91
+ throw new TypeError(`Unmarshalling the type 'ListSnapshotsResponse' failed as data isn't a dictionary.`);
92
+ }
93
+ return {
94
+ snapshots: unmarshalArrayOfObject(data.snapshots, unmarshalSnapshotSummary),
95
+ totalCount: data.total_count
96
+ };
97
+ };
98
+ const unmarshalListVolumeTypesResponse = data => {
99
+ if (!isJSONObject(data)) {
100
+ throw new TypeError(`Unmarshalling the type 'ListVolumeTypesResponse' failed as data isn't a dictionary.`);
101
+ }
102
+ return {
103
+ totalCount: data.total_count,
104
+ volumeTypes: unmarshalArrayOfObject(data.volume_types, unmarshalVolumeType)
105
+ };
106
+ };
107
+ const unmarshalListVolumesResponse = data => {
108
+ if (!isJSONObject(data)) {
109
+ throw new TypeError(`Unmarshalling the type 'ListVolumesResponse' failed as data isn't a dictionary.`);
110
+ }
111
+ return {
112
+ totalCount: data.total_count,
113
+ volumes: unmarshalArrayOfObject(data.volumes, unmarshalVolume)
114
+ };
115
+ };
116
+ const unmarshalSnapshot = data => {
117
+ if (!isJSONObject(data)) {
118
+ throw new TypeError(`Unmarshalling the type 'Snapshot' failed as data isn't a dictionary.`);
119
+ }
120
+ return {
121
+ class: data.class,
122
+ createdAt: unmarshalDate(data.created_at),
123
+ id: data.id,
124
+ name: data.name,
125
+ parentVolume: data.parent_volume ? unmarshalSnapshotParentVolume(data.parent_volume) : undefined,
126
+ projectId: data.project_id,
127
+ references: unmarshalArrayOfObject(data.references, unmarshalReference),
128
+ size: data.size,
129
+ status: data.status,
130
+ tags: data.tags,
131
+ updatedAt: unmarshalDate(data.updated_at),
132
+ zone: data.zone
133
+ };
134
+ };
135
+ const marshalCreateVolumeRequestFromEmpty = (request, defaults) => ({
136
+ size: request.size
137
+ });
138
+ const marshalCreateVolumeRequestFromSnapshot = (request, defaults) => ({
139
+ size: request.size,
140
+ snapshot_id: request.snapshotId
141
+ });
142
+ const marshalCreateSnapshotRequest = (request, defaults) => ({
143
+ name: request.name,
144
+ project_id: request.projectId ?? defaults.defaultProjectId,
145
+ tags: request.tags,
146
+ volume_id: request.volumeId
147
+ });
148
+ const marshalCreateVolumeRequest = (request, defaults) => ({
149
+ name: request.name,
150
+ project_id: request.projectId ?? defaults.defaultProjectId,
151
+ tags: request.tags,
152
+ ...resolveOneOf([{
153
+ param: 'from_empty',
154
+ value: request.fromEmpty ? marshalCreateVolumeRequestFromEmpty(request.fromEmpty) : undefined
155
+ }, {
156
+ param: 'from_snapshot',
157
+ value: request.fromSnapshot ? marshalCreateVolumeRequestFromSnapshot(request.fromSnapshot) : undefined
158
+ }]),
159
+ ...resolveOneOf([{
160
+ param: 'perf_iops',
161
+ value: request.perfIops
162
+ }], true)
163
+ });
164
+ const marshalUpdateSnapshotRequest = (request, defaults) => ({
165
+ name: request.name,
166
+ tags: request.tags
167
+ });
168
+ const marshalUpdateVolumeRequest = (request, defaults) => ({
169
+ name: request.name,
170
+ perf_iops: request.perfIops,
171
+ size: request.size,
172
+ tags: request.tags
173
+ });
174
+
175
+ export { marshalCreateSnapshotRequest, marshalCreateVolumeRequest, marshalUpdateSnapshotRequest, marshalUpdateVolumeRequest, unmarshalListSnapshotsResponse, unmarshalListVolumeTypesResponse, unmarshalListVolumesResponse, unmarshalSnapshot, unmarshalVolume };
@@ -0,0 +1,42 @@
1
+ // This file was automatically generated. DO NOT EDIT.
2
+ // If you have any remark or suggestion do not hesitate to open an issue.
3
+
4
+ const CreateSnapshotRequest = {
5
+ name: {
6
+ minLength: 1
7
+ }
8
+ };
9
+ const CreateVolumeRequest = {
10
+ name: {
11
+ minLength: 1
12
+ }
13
+ };
14
+ const ListSnapshotsRequest = {
15
+ page: {
16
+ greaterThan: 0
17
+ },
18
+ pageSize: {
19
+ greaterThan: 0,
20
+ lessThanOrEqual: 100
21
+ }
22
+ };
23
+ const ListVolumeTypesRequest = {
24
+ page: {
25
+ greaterThan: 0
26
+ },
27
+ pageSize: {
28
+ greaterThan: 0,
29
+ lessThanOrEqual: 100
30
+ }
31
+ };
32
+ const ListVolumesRequest = {
33
+ page: {
34
+ greaterThan: 0
35
+ },
36
+ pageSize: {
37
+ greaterThan: 0,
38
+ lessThanOrEqual: 100
39
+ }
40
+ };
41
+
42
+ export { CreateSnapshotRequest, CreateVolumeRequest, ListSnapshotsRequest, ListVolumeTypesRequest, ListVolumesRequest };
@@ -0,0 +1,2 @@
1
+ import * as index_gen from './v1beta1/index.gen.js';
2
+ export { index_gen as v1beta1 };