@scaleway/sdk-file 2.3.2 → 2.5.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.
@@ -1,6 +1,6 @@
1
1
  import type { ApiLocality, WaitForOptions } from '@scaleway/sdk-client';
2
2
  import { API as ParentAPI } from '@scaleway/sdk-client';
3
- import type { CreateFileSystemRequest, DeleteFileSystemRequest, FileSystem, GetFileSystemRequest, ListAttachmentsRequest, ListAttachmentsResponse, ListFileSystemsRequest, ListFileSystemsResponse, UpdateFileSystemRequest } from './types.gen.js';
3
+ import type { CreateFileSystemRequest, DeleteFileSystemRequest, FileSystem, GetFileSystemRequest, ListAttachmentsRequest, ListAttachmentsResponse, ListFileSystemsRequest, ListFileSystemsResponse, ListFileSystemTypesRequest, ListFileSystemTypesResponse, UpdateFileSystemRequest } from './types.gen.js';
4
4
  /**
5
5
  * File Storage API.
6
6
 
@@ -12,6 +12,17 @@ export declare class API extends ParentAPI {
12
12
  * type ∈ {'zone','region','global','unspecified'}
13
13
  */
14
14
  static readonly LOCALITY: ApiLocality;
15
+ protected pageOfListFileSystemTypes: (request?: Readonly<ListFileSystemTypesRequest>) => Promise<ListFileSystemTypesResponse>;
16
+ /**
17
+ * List filesystems types.
18
+ *
19
+ * @param request - The request {@link ListFileSystemTypesRequest}
20
+ * @returns A Promise of ListFileSystemTypesResponse
21
+ */
22
+ listFileSystemTypes: (request?: Readonly<ListFileSystemTypesRequest>) => Promise<ListFileSystemTypesResponse> & {
23
+ all: () => Promise<import("./types.gen.js").FileSystemType[]>;
24
+ [Symbol.asyncIterator]: () => AsyncGenerator<import("./types.gen.js").FileSystemType[], void, void>;
25
+ };
15
26
  /**
16
27
  * Get filesystem details. Retrieve all properties and current status of a specific filesystem identified by its ID.
17
28
  *
@@ -1,5 +1,5 @@
1
1
  import { FILE_SYSTEM_TRANSIENT_STATUSES } from "./content.gen.js";
2
- import { marshalCreateFileSystemRequest, marshalUpdateFileSystemRequest, unmarshalFileSystem, unmarshalListAttachmentsResponse, unmarshalListFileSystemsResponse } from "./marshalling.gen.js";
2
+ import { marshalCreateFileSystemRequest, marshalUpdateFileSystemRequest, unmarshalFileSystem, unmarshalListAttachmentsResponse, unmarshalListFileSystemTypesResponse, unmarshalListFileSystemsResponse } from "./marshalling.gen.js";
3
3
  import { API as API$1, enrichForPagination, toApiLocality, urlParams, validatePathParam, waitForResource } from "@scaleway/sdk-client";
4
4
  //#region src/v1alpha1/api.gen.ts
5
5
  var jsonContentHeaders = { "Content-Type": "application/json; charset=utf-8" };
@@ -14,6 +14,18 @@ var API = class extends API$1 {
14
14
  * type ∈ {'zone','region','global','unspecified'}
15
15
  */
16
16
  static LOCALITY = toApiLocality({ regions: ["fr-par"] });
17
+ pageOfListFileSystemTypes = (request = {}) => this.client.fetch({
18
+ method: "GET",
19
+ path: `/file/v1alpha1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/filesystem-types`,
20
+ urlParams: urlParams(["page", request.page], ["page_size", request.pageSize ?? this.client.settings.defaultPageSize])
21
+ }, unmarshalListFileSystemTypesResponse);
22
+ /**
23
+ * List filesystems types.
24
+ *
25
+ * @param request - The request {@link ListFileSystemTypesRequest}
26
+ * @returns A Promise of ListFileSystemTypesResponse
27
+ */
28
+ listFileSystemTypes = (request = {}) => enrichForPagination("filesystemTypes", this.pageOfListFileSystemTypes, request);
17
29
  /**
18
30
  * Get filesystem details. Retrieve all properties and current status of a specific filesystem identified by its ID.
19
31
  *
@@ -35,7 +47,7 @@ var API = class extends API$1 {
35
47
  pageOfListFileSystems = (request = {}) => this.client.fetch({
36
48
  method: "GET",
37
49
  path: `/file/v1alpha1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/filesystems`,
38
- urlParams: urlParams(["filesystem_ids", request.filesystemIds], ["name", request.name], ["order_by", request.orderBy], ["organization_id", request.organizationId], ["page", request.page], ["page_size", request.pageSize ?? this.client.settings.defaultPageSize], ["project_id", request.projectId], ["tags", request.tags])
50
+ urlParams: urlParams(["filesystem_ids", request.filesystemIds], ["filesystem_type", request.filesystemType], ["name", request.name], ["order_by", request.orderBy], ["organization_id", request.organizationId], ["page", request.page], ["page_size", request.pageSize ?? this.client.settings.defaultPageSize], ["project_id", request.projectId], ["tags", request.tags])
39
51
  }, unmarshalListFileSystemsResponse);
40
52
  /**
41
53
  * List all filesystems. Retrieve all filesystems in the specified region. By default, the filesystems listed are ordered by creation date in ascending order. This can be modified using the `order_by` field.
@@ -1,5 +1,5 @@
1
1
  export { API, } from './api.gen.js';
2
2
  export * from './content.gen.js';
3
3
  export * from './marshalling.gen.js';
4
- export type { Attachment, AttachmentResourceType, CreateFileSystemRequest, DeleteFileSystemRequest, FileSystem, FileSystemStatus, GetFileSystemRequest, ListAttachmentsRequest, ListAttachmentsResponse, ListFileSystemsRequest, ListFileSystemsRequestOrderBy, ListFileSystemsResponse, UpdateFileSystemRequest, } from './types.gen.js';
4
+ export type { Attachment, AttachmentResourceType, CreateFileSystemRequest, DeleteFileSystemRequest, FileSystem, FileSystemStatus, FileSystemType, GetFileSystemRequest, ListAttachmentsRequest, ListAttachmentsResponse, ListFileSystemsRequest, ListFileSystemsRequestOrderBy, ListFileSystemsResponse, ListFileSystemTypesRequest, ListFileSystemTypesResponse, UpdateFileSystemRequest, } from './types.gen.js';
5
5
  export * as ValidationRules from './validation-rules.gen.js';
@@ -1,6 +1,6 @@
1
1
  import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
2
  import { FILE_SYSTEM_TRANSIENT_STATUSES } from "./content.gen.js";
3
- import { marshalCreateFileSystemRequest, marshalUpdateFileSystemRequest, unmarshalFileSystem, unmarshalListAttachmentsResponse, unmarshalListFileSystemsResponse } from "./marshalling.gen.js";
3
+ import { marshalCreateFileSystemRequest, marshalUpdateFileSystemRequest, unmarshalFileSystem, unmarshalListAttachmentsResponse, unmarshalListFileSystemTypesResponse, unmarshalListFileSystemsResponse } from "./marshalling.gen.js";
4
4
  import { API } from "./api.gen.js";
5
5
  import { validation_rules_gen_exports } from "./validation-rules.gen.js";
6
6
  //#region src/v1alpha1/index.gen.ts
@@ -12,7 +12,8 @@ var index_gen_exports = /* @__PURE__ */ __exportAll({
12
12
  marshalUpdateFileSystemRequest: () => marshalUpdateFileSystemRequest,
13
13
  unmarshalFileSystem: () => unmarshalFileSystem,
14
14
  unmarshalListAttachmentsResponse: () => unmarshalListAttachmentsResponse,
15
+ unmarshalListFileSystemTypesResponse: () => unmarshalListFileSystemTypesResponse,
15
16
  unmarshalListFileSystemsResponse: () => unmarshalListFileSystemsResponse
16
17
  });
17
18
  //#endregion
18
- export { API, FILE_SYSTEM_TRANSIENT_STATUSES, validation_rules_gen_exports as ValidationRules, index_gen_exports, marshalCreateFileSystemRequest, marshalUpdateFileSystemRequest, unmarshalFileSystem, unmarshalListAttachmentsResponse, unmarshalListFileSystemsResponse };
19
+ export { API, FILE_SYSTEM_TRANSIENT_STATUSES, validation_rules_gen_exports as ValidationRules, index_gen_exports, marshalCreateFileSystemRequest, marshalUpdateFileSystemRequest, unmarshalFileSystem, unmarshalListAttachmentsResponse, unmarshalListFileSystemTypesResponse, unmarshalListFileSystemsResponse };
@@ -1,7 +1,8 @@
1
1
  import type { DefaultValues } from '@scaleway/sdk-client';
2
- import type { CreateFileSystemRequest, FileSystem, ListAttachmentsResponse, ListFileSystemsResponse, UpdateFileSystemRequest } from './types.gen.js';
2
+ import type { CreateFileSystemRequest, FileSystem, ListAttachmentsResponse, ListFileSystemsResponse, ListFileSystemTypesResponse, UpdateFileSystemRequest } from './types.gen.js';
3
3
  export declare const unmarshalFileSystem: (data: unknown) => FileSystem;
4
4
  export declare const unmarshalListAttachmentsResponse: (data: unknown) => ListAttachmentsResponse;
5
+ export declare const unmarshalListFileSystemTypesResponse: (data: unknown) => ListFileSystemTypesResponse;
5
6
  export declare const unmarshalListFileSystemsResponse: (data: unknown) => ListFileSystemsResponse;
6
7
  export declare const marshalCreateFileSystemRequest: (request: CreateFileSystemRequest, defaults: DefaultValues) => Record<string, unknown>;
7
8
  export declare const marshalUpdateFileSystemRequest: (request: UpdateFileSystemRequest, defaults: DefaultValues) => Record<string, unknown>;
@@ -1,9 +1,10 @@
1
- import { isJSONObject, unmarshalArrayOfObject, unmarshalDate } from "@scaleway/sdk-client";
1
+ import { isJSONObject, unmarshalArrayOfObject, unmarshalDate, unmarshalMoney } from "@scaleway/sdk-client";
2
2
  //#region src/v1alpha1/marshalling.gen.ts
3
3
  var unmarshalFileSystem = (data) => {
4
4
  if (!isJSONObject(data)) throw new TypeError(`Unmarshalling the type 'FileSystem' failed as data isn't a dictionary.`);
5
5
  return {
6
6
  createdAt: unmarshalDate(data.created_at),
7
+ filesystemTypeId: data.filesystem_type_id,
7
8
  id: data.id,
8
9
  name: data.name,
9
10
  numberOfAttachments: data.number_of_attachments,
@@ -33,6 +34,21 @@ var unmarshalListAttachmentsResponse = (data) => {
33
34
  totalCount: data.total_count
34
35
  };
35
36
  };
37
+ var unmarshalFileSystemType = (data) => {
38
+ if (!isJSONObject(data)) throw new TypeError(`Unmarshalling the type 'FileSystemType' failed as data isn't a dictionary.`);
39
+ return {
40
+ filesystemPriceGbPerHour: data.filesystem_price_gb_per_hour ? unmarshalMoney(data.filesystem_price_gb_per_hour) : void 0,
41
+ name: data.name,
42
+ snapshotPriceGbPerHour: data.snapshot_price_gb_per_hour ? unmarshalMoney(data.snapshot_price_gb_per_hour) : void 0
43
+ };
44
+ };
45
+ var unmarshalListFileSystemTypesResponse = (data) => {
46
+ if (!isJSONObject(data)) throw new TypeError(`Unmarshalling the type 'ListFileSystemTypesResponse' failed as data isn't a dictionary.`);
47
+ return {
48
+ filesystemTypes: unmarshalArrayOfObject(data.filesystem_types, unmarshalFileSystemType),
49
+ totalCount: data.total_count
50
+ };
51
+ };
36
52
  var unmarshalListFileSystemsResponse = (data) => {
37
53
  if (!isJSONObject(data)) throw new TypeError(`Unmarshalling the type 'ListFileSystemsResponse' failed as data isn't a dictionary.`);
38
54
  return {
@@ -44,7 +60,8 @@ var marshalCreateFileSystemRequest = (request, defaults) => ({
44
60
  name: request.name,
45
61
  project_id: request.projectId ?? defaults.defaultProjectId,
46
62
  size: request.size,
47
- tags: request.tags
63
+ tags: request.tags,
64
+ type: request.type
48
65
  });
49
66
  var marshalUpdateFileSystemRequest = (request, defaults) => ({
50
67
  name: request.name,
@@ -52,4 +69,4 @@ var marshalUpdateFileSystemRequest = (request, defaults) => ({
52
69
  tags: request.tags
53
70
  });
54
71
  //#endregion
55
- export { marshalCreateFileSystemRequest, marshalUpdateFileSystemRequest, unmarshalFileSystem, unmarshalListAttachmentsResponse, unmarshalListFileSystemsResponse };
72
+ export { marshalCreateFileSystemRequest, marshalUpdateFileSystemRequest, unmarshalFileSystem, unmarshalListAttachmentsResponse, unmarshalListFileSystemTypesResponse, unmarshalListFileSystemsResponse };
@@ -0,0 +1,53 @@
1
+ export declare const queriesMetadata: {
2
+ readonly namespace: "file";
3
+ readonly version: "v1alpha1";
4
+ readonly folderName: "filev1alpha1";
5
+ readonly services: readonly [{
6
+ readonly apiClass: "API";
7
+ readonly methods: readonly [{
8
+ readonly methodName: "listFileSystemTypes";
9
+ readonly protoName: "ListFileSystemTypes";
10
+ readonly paramsType: "ListFileSystemTypesRequest";
11
+ readonly returnType: "ListFileSystemTypesResponse";
12
+ readonly isList: true;
13
+ readonly paginationType: "offset";
14
+ readonly pageParamKey: "page";
15
+ readonly listItemType: "FileSystemType";
16
+ readonly isPrivate: false;
17
+ readonly description: "\"";
18
+ }, {
19
+ readonly methodName: "getFileSystem";
20
+ readonly protoName: "GetFileSystem";
21
+ readonly paramsType: "GetFileSystemRequest";
22
+ readonly returnType: "FileSystem";
23
+ readonly isList: false;
24
+ readonly paginationType: "none";
25
+ readonly isPrivate: false;
26
+ readonly description: "\"";
27
+ readonly hasWaiter: true;
28
+ }, {
29
+ readonly methodName: "listFileSystems";
30
+ readonly protoName: "ListFileSystems";
31
+ readonly paramsType: "ListFileSystemsRequest";
32
+ readonly returnType: "ListFileSystemsResponse";
33
+ readonly isList: true;
34
+ readonly paginationType: "offset";
35
+ readonly pageParamKey: "page";
36
+ readonly listItemType: "FileSystem";
37
+ readonly isPrivate: false;
38
+ readonly description: "\"";
39
+ }, {
40
+ readonly methodName: "listAttachments";
41
+ readonly protoName: "ListAttachments";
42
+ readonly paramsType: "ListAttachmentsRequest";
43
+ readonly returnType: "ListAttachmentsResponse";
44
+ readonly isList: true;
45
+ readonly paginationType: "offset";
46
+ readonly pageParamKey: "page";
47
+ readonly listItemType: "Attachment";
48
+ readonly isPrivate: false;
49
+ readonly description: "\"";
50
+ }];
51
+ }];
52
+ };
53
+ export type QueriesMetadata = typeof queriesMetadata;
@@ -0,0 +1,60 @@
1
+ //#region src/v1alpha1/metadata.gen.ts
2
+ var queriesMetadata = {
3
+ namespace: "file",
4
+ version: "v1alpha1",
5
+ folderName: "filev1alpha1",
6
+ services: [{
7
+ apiClass: "API",
8
+ methods: [
9
+ {
10
+ methodName: "listFileSystemTypes",
11
+ protoName: "ListFileSystemTypes",
12
+ paramsType: "ListFileSystemTypesRequest",
13
+ returnType: "ListFileSystemTypesResponse",
14
+ isList: true,
15
+ paginationType: "offset",
16
+ pageParamKey: "page",
17
+ listItemType: "FileSystemType",
18
+ isPrivate: false,
19
+ description: "\""
20
+ },
21
+ {
22
+ methodName: "getFileSystem",
23
+ protoName: "GetFileSystem",
24
+ paramsType: "GetFileSystemRequest",
25
+ returnType: "FileSystem",
26
+ isList: false,
27
+ paginationType: "none",
28
+ isPrivate: false,
29
+ description: "\"",
30
+ hasWaiter: true
31
+ },
32
+ {
33
+ methodName: "listFileSystems",
34
+ protoName: "ListFileSystems",
35
+ paramsType: "ListFileSystemsRequest",
36
+ returnType: "ListFileSystemsResponse",
37
+ isList: true,
38
+ paginationType: "offset",
39
+ pageParamKey: "page",
40
+ listItemType: "FileSystem",
41
+ isPrivate: false,
42
+ description: "\""
43
+ },
44
+ {
45
+ methodName: "listAttachments",
46
+ protoName: "ListAttachments",
47
+ paramsType: "ListAttachmentsRequest",
48
+ returnType: "ListAttachmentsResponse",
49
+ isList: true,
50
+ paginationType: "offset",
51
+ pageParamKey: "page",
52
+ listItemType: "Attachment",
53
+ isPrivate: false,
54
+ description: "\""
55
+ }
56
+ ]
57
+ }]
58
+ };
59
+ //#endregion
60
+ export { queriesMetadata };
@@ -1,4 +1,4 @@
1
- import type { Region as ScwRegion, Zone as ScwZone } from '@scaleway/sdk-client';
1
+ import type { Money, Region as ScwRegion, Zone as ScwZone } from '@scaleway/sdk-client';
2
2
  export type AttachmentResourceType = 'unknown_resource_type' | 'instance_server';
3
3
  export type FileSystemStatus = 'unknown_status' | 'available' | 'error' | 'creating' | 'updating';
4
4
  export type ListFileSystemsRequestOrderBy = 'created_at_asc' | 'created_at_desc' | 'name_asc' | 'name_desc';
@@ -27,6 +27,20 @@ export interface Attachment {
27
27
  */
28
28
  zone?: ScwZone;
29
29
  }
30
+ export interface FileSystemType {
31
+ /**
32
+ * Filesystem type name.
33
+ */
34
+ name: string;
35
+ /**
36
+ * Price of the filesystem billed in GB/hour.
37
+ */
38
+ filesystemPriceGbPerHour?: Money;
39
+ /**
40
+ * Price of the snapshot billed in GB/hour.
41
+ */
42
+ snapshotPriceGbPerHour?: Money;
43
+ }
30
44
  /**
31
45
  * Represents a filesystem resource and its properties.
32
46
  */
@@ -75,6 +89,10 @@ export interface FileSystem {
75
89
  * Last update date of the properties of the filesystem.
76
90
  */
77
91
  updatedAt?: Date;
92
+ /**
93
+ * UUID of the filesystem type.
94
+ */
95
+ filesystemTypeId: string;
78
96
  }
79
97
  /**
80
98
  * Request to create a new filesystem.
@@ -96,6 +114,10 @@ export type CreateFileSystemRequest = {
96
114
  * Must be compliant with the minimum (100 GB) and maximum (10 TB) allowed size.
97
115
  */
98
116
  size: number;
117
+ /**
118
+ * Type of the filesystem.
119
+ */
120
+ type?: string;
99
121
  /**
100
122
  * List of tags assigned to the filesystem.
101
123
  */
@@ -173,6 +195,33 @@ export interface ListAttachmentsResponse {
173
195
  */
174
196
  totalCount: number;
175
197
  }
198
+ /**
199
+ * Request to list filesystem types with pagination options.
200
+ */
201
+ export type ListFileSystemTypesRequest = {
202
+ /**
203
+ * Region to target. If none is passed will use default region from the config.
204
+ */
205
+ region?: ScwRegion;
206
+ /**
207
+ * Page number (starts at 1).
208
+ */
209
+ page?: number;
210
+ /**
211
+ * Number of entries per page (default: 50, max: 100).
212
+ */
213
+ pageSize?: number;
214
+ };
215
+ export interface ListFileSystemTypesResponse {
216
+ /**
217
+ * Returns paginated list of filesystem-types.
218
+ */
219
+ filesystemTypes: FileSystemType[];
220
+ /**
221
+ * Total number of file system types.
222
+ */
223
+ totalCount: number;
224
+ }
176
225
  /**
177
226
  * Request to list filesystems with filtering and pagination options.
178
227
  */
@@ -205,6 +254,10 @@ export type ListFileSystemsRequest = {
205
254
  * Filter the returned filesystems by their names.
206
255
  */
207
256
  name?: string;
257
+ /**
258
+ * Type of the filesystem.
259
+ */
260
+ filesystemType?: string;
208
261
  /**
209
262
  * Filter by tags. Only filesystems with one or more matching tags will be returned.
210
263
  */
@@ -15,6 +15,15 @@ export declare const ListAttachmentsRequest: {
15
15
  lessThanOrEqual: number;
16
16
  };
17
17
  };
18
+ export declare const ListFileSystemTypesRequest: {
19
+ page: {
20
+ greaterThan: number;
21
+ };
22
+ pageSize: {
23
+ greaterThan: number;
24
+ lessThanOrEqual: number;
25
+ };
26
+ };
18
27
  export declare const ListFileSystemsRequest: {
19
28
  page: {
20
29
  greaterThan: number;
@@ -3,6 +3,7 @@ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
3
3
  var validation_rules_gen_exports = /* @__PURE__ */ __exportAll({
4
4
  CreateFileSystemRequest: () => CreateFileSystemRequest,
5
5
  ListAttachmentsRequest: () => ListAttachmentsRequest,
6
+ ListFileSystemTypesRequest: () => ListFileSystemTypesRequest,
6
7
  ListFileSystemsRequest: () => ListFileSystemsRequest,
7
8
  UpdateFileSystemRequest: () => UpdateFileSystemRequest
8
9
  });
@@ -17,6 +18,13 @@ var ListAttachmentsRequest = {
17
18
  lessThanOrEqual: 100
18
19
  }
19
20
  };
21
+ var ListFileSystemTypesRequest = {
22
+ page: { greaterThan: 0 },
23
+ pageSize: {
24
+ greaterThan: 0,
25
+ lessThanOrEqual: 100
26
+ }
27
+ };
20
28
  var ListFileSystemsRequest = {
21
29
  page: { greaterThan: 0 },
22
30
  pageSize: {
@@ -29,4 +37,4 @@ var UpdateFileSystemRequest = {
29
37
  size: { greaterThan: 0 }
30
38
  };
31
39
  //#endregion
32
- export { CreateFileSystemRequest, ListAttachmentsRequest, ListFileSystemsRequest, UpdateFileSystemRequest, validation_rules_gen_exports };
40
+ export { CreateFileSystemRequest, ListAttachmentsRequest, ListFileSystemTypesRequest, ListFileSystemsRequest, UpdateFileSystemRequest, validation_rules_gen_exports };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scaleway/sdk-file",
3
- "version": "2.3.2",
3
+ "version": "2.5.0",
4
4
  "description": "Scaleway SDK file",
5
5
  "license": "Apache-2.0",
6
6
  "files": [