@scaleway/sdk-mongodb 2.2.0 → 2.3.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 { CreateEndpointRequest, CreateInstanceRequest, CreateSnapshotRequest, CreateUserRequest, DeleteEndpointRequest, DeleteInstanceRequest, DeleteSnapshotRequest, DeleteUserRequest, Endpoint, GetInstanceCertificateRequest, GetInstanceRequest, GetSnapshotRequest, Instance, ListDatabasesRequest, ListDatabasesResponse, ListInstancesRequest, ListInstancesResponse, ListNodeTypesRequest, ListNodeTypesResponse, ListSnapshotsRequest, ListSnapshotsResponse, ListUsersRequest, ListUsersResponse, ListVersionsRequest, ListVersionsResponse, RestoreSnapshotRequest, SetUserRoleRequest, Snapshot, UpdateInstanceRequest, UpdateSnapshotRequest, UpdateUserRequest, UpgradeInstanceRequest, User } from './types.gen.js';
3
+ import type { ApplyMaintenanceRequest, CreateEndpointRequest, CreateInstanceRequest, CreateSnapshotRequest, CreateUserRequest, DeleteEndpointRequest, DeleteInstanceRequest, DeleteSnapshotRequest, DeleteUserRequest, Endpoint, GetInstanceCertificateRequest, GetInstanceRequest, GetMaintenanceRequest, GetSnapshotRequest, Instance, ListDatabasesRequest, ListDatabasesResponse, ListInstancesRequest, ListInstancesResponse, ListMaintenancesRequest, ListMaintenancesResponse, ListNodeTypesRequest, ListNodeTypesResponse, ListSnapshotsRequest, ListSnapshotsResponse, ListUsersRequest, ListUsersResponse, ListVersionsRequest, ListVersionsResponse, Maintenance, RestoreSnapshotRequest, SetUserRoleRequest, Snapshot, UpdateInstanceRequest, UpdateSnapshotRequest, UpdateUserRequest, UpgradeInstanceRequest, User } from './types.gen.js';
4
4
  /**
5
5
  * Managed MongoDB®.
6
6
 
@@ -211,4 +211,37 @@ export declare class API extends ParentAPI {
211
211
  * @returns A Promise of Endpoint
212
212
  */
213
213
  createEndpoint: (request: Readonly<CreateEndpointRequest>) => Promise<Endpoint>;
214
+ protected pageOfListMaintenances: (request: Readonly<ListMaintenancesRequest>) => Promise<ListMaintenancesResponse>;
215
+ /**
216
+ * List all the maintenances of a MongoDB® Database Instance.. List all the maintenances of a MongoDB® Database Instance.
217
+ *
218
+ * @param request - The request {@link ListMaintenancesRequest}
219
+ * @returns A Promise of ListMaintenancesResponse
220
+ */
221
+ listMaintenances: (request: Readonly<ListMaintenancesRequest>) => Promise<ListMaintenancesResponse> & {
222
+ all: () => Promise<Maintenance[]>;
223
+ [Symbol.asyncIterator]: () => AsyncGenerator<Maintenance[], void, void>;
224
+ };
225
+ /**
226
+ * Get a maintenance of a MongoDB® Database Instance.. Get a maintenance of a MongoDB® Database Instance.
227
+ *
228
+ * @param request - The request {@link GetMaintenanceRequest}
229
+ * @returns A Promise of Maintenance
230
+ */
231
+ getMaintenance: (request: Readonly<GetMaintenanceRequest>) => Promise<Maintenance>;
232
+ /**
233
+ * Waits for {@link Maintenance} to be in a final state.
234
+ *
235
+ * @param request - The request {@link GetMaintenanceRequest}
236
+ * @param options - The waiting options
237
+ * @returns A Promise of Maintenance
238
+ */
239
+ waitForMaintenance: (request: Readonly<GetMaintenanceRequest>, options?: Readonly<WaitForOptions<Maintenance>>) => Promise<Maintenance>;
240
+ /**
241
+ * Apply a maintenance of a MongoDB® Database Instance.. Apply a maintenance of a MongoDB® Database Instance.
242
+ *
243
+ * @param request - The request {@link ApplyMaintenanceRequest}
244
+ * @returns A Promise of Maintenance
245
+ */
246
+ applyMaintenance: (request: Readonly<ApplyMaintenanceRequest>) => Promise<Maintenance>;
214
247
  }
@@ -1,6 +1,6 @@
1
1
  import { API as API$1, toApiLocality, urlParams, validatePathParam, enrichForPagination, waitForResource } from "@scaleway/sdk-client";
2
- import { INSTANCE_TRANSIENT_STATUSES, SNAPSHOT_TRANSIENT_STATUSES } from "./content.gen.js";
3
- import { unmarshalListNodeTypesResponse, unmarshalListVersionsResponse, unmarshalListInstancesResponse, unmarshalInstance, marshalCreateInstanceRequest, marshalUpdateInstanceRequest, marshalUpgradeInstanceRequest, marshalCreateSnapshotRequest, unmarshalSnapshot, marshalUpdateSnapshotRequest, marshalRestoreSnapshotRequest, unmarshalListSnapshotsResponse, unmarshalListUsersResponse, marshalCreateUserRequest, unmarshalUser, marshalUpdateUserRequest, marshalSetUserRoleRequest, unmarshalListDatabasesResponse, marshalCreateEndpointRequest, unmarshalEndpoint } from "./marshalling.gen.js";
2
+ import { INSTANCE_TRANSIENT_STATUSES, SNAPSHOT_TRANSIENT_STATUSES, MAINTENANCE_TRANSIENT_STATUSES } from "./content.gen.js";
3
+ import { unmarshalListNodeTypesResponse, unmarshalListVersionsResponse, unmarshalListInstancesResponse, unmarshalInstance, marshalCreateInstanceRequest, marshalUpdateInstanceRequest, marshalUpgradeInstanceRequest, marshalCreateSnapshotRequest, unmarshalSnapshot, marshalUpdateSnapshotRequest, marshalRestoreSnapshotRequest, unmarshalListSnapshotsResponse, unmarshalListUsersResponse, marshalCreateUserRequest, unmarshalUser, marshalUpdateUserRequest, marshalSetUserRoleRequest, unmarshalListDatabasesResponse, marshalCreateEndpointRequest, unmarshalEndpoint, unmarshalListMaintenancesResponse, unmarshalMaintenance } from "./marshalling.gen.js";
4
4
  const jsonContentHeaders = {
5
5
  "Content-Type": "application/json; charset=utf-8"
6
6
  };
@@ -435,6 +435,72 @@ class API extends API$1 {
435
435
  },
436
436
  unmarshalEndpoint
437
437
  );
438
+ pageOfListMaintenances = (request) => this.client.fetch(
439
+ {
440
+ method: "GET",
441
+ path: `/mongodb/v1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/maintenances`,
442
+ urlParams: urlParams(
443
+ ["instance_id", request.instanceId],
444
+ ["order_by", request.orderBy],
445
+ ["page", request.page],
446
+ [
447
+ "page_size",
448
+ request.pageSize ?? this.client.settings.defaultPageSize
449
+ ]
450
+ )
451
+ },
452
+ unmarshalListMaintenancesResponse
453
+ );
454
+ /**
455
+ * List all the maintenances of a MongoDB® Database Instance.. List all the maintenances of a MongoDB® Database Instance.
456
+ *
457
+ * @param request - The request {@link ListMaintenancesRequest}
458
+ * @returns A Promise of ListMaintenancesResponse
459
+ */
460
+ listMaintenances = (request) => enrichForPagination("maintenances", this.pageOfListMaintenances, request);
461
+ /**
462
+ * Get a maintenance of a MongoDB® Database Instance.. Get a maintenance of a MongoDB® Database Instance.
463
+ *
464
+ * @param request - The request {@link GetMaintenanceRequest}
465
+ * @returns A Promise of Maintenance
466
+ */
467
+ getMaintenance = (request) => this.client.fetch(
468
+ {
469
+ method: "GET",
470
+ path: `/mongodb/v1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/maintenances/${validatePathParam("maintenanceId", request.maintenanceId)}`
471
+ },
472
+ unmarshalMaintenance
473
+ );
474
+ /**
475
+ * Waits for {@link Maintenance} to be in a final state.
476
+ *
477
+ * @param request - The request {@link GetMaintenanceRequest}
478
+ * @param options - The waiting options
479
+ * @returns A Promise of Maintenance
480
+ */
481
+ waitForMaintenance = (request, options) => waitForResource(
482
+ options?.stop ?? ((res) => Promise.resolve(
483
+ !MAINTENANCE_TRANSIENT_STATUSES.includes(res.status)
484
+ )),
485
+ this.getMaintenance,
486
+ request,
487
+ options
488
+ );
489
+ /**
490
+ * Apply a maintenance of a MongoDB® Database Instance.. Apply a maintenance of a MongoDB® Database Instance.
491
+ *
492
+ * @param request - The request {@link ApplyMaintenanceRequest}
493
+ * @returns A Promise of Maintenance
494
+ */
495
+ applyMaintenance = (request) => this.client.fetch(
496
+ {
497
+ body: "{}",
498
+ headers: jsonContentHeaders,
499
+ method: "POST",
500
+ path: `/mongodb/v1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/maintenances/${validatePathParam("maintenanceId", request.maintenanceId)}/apply`
501
+ },
502
+ unmarshalMaintenance
503
+ );
438
504
  }
439
505
  export {
440
506
  API
@@ -1,5 +1,7 @@
1
- import type { InstanceStatus, SnapshotStatus } from './types.gen.js';
1
+ import type { InstanceStatus, MaintenanceStatus, SnapshotStatus } from './types.gen.js';
2
2
  /** Lists transient statutes of the enum {@link InstanceStatus}. */
3
3
  export declare const INSTANCE_TRANSIENT_STATUSES: InstanceStatus[];
4
+ /** Lists transient statutes of the enum {@link MaintenanceStatus}. */
5
+ export declare const MAINTENANCE_TRANSIENT_STATUSES: MaintenanceStatus[];
4
6
  /** Lists transient statutes of the enum {@link SnapshotStatus}. */
5
7
  export declare const SNAPSHOT_TRANSIENT_STATUSES: SnapshotStatus[];
@@ -5,6 +5,7 @@ const INSTANCE_TRANSIENT_STATUSES = [
5
5
  "initializing",
6
6
  "snapshotting"
7
7
  ];
8
+ const MAINTENANCE_TRANSIENT_STATUSES = ["ongoing"];
8
9
  const SNAPSHOT_TRANSIENT_STATUSES = [
9
10
  "creating",
10
11
  "restoring",
@@ -12,5 +13,6 @@ const SNAPSHOT_TRANSIENT_STATUSES = [
12
13
  ];
13
14
  export {
14
15
  INSTANCE_TRANSIENT_STATUSES,
16
+ MAINTENANCE_TRANSIENT_STATUSES,
15
17
  SNAPSHOT_TRANSIENT_STATUSES
16
18
  };
@@ -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 { CreateEndpointRequest, CreateInstanceRequest, CreateSnapshotRequest, CreateUserRequest, Database, DeleteEndpointRequest, DeleteInstanceRequest, DeleteSnapshotRequest, DeleteUserRequest, Endpoint, EndpointPrivateNetworkDetails, EndpointPublicNetworkDetails, EndpointSpec, EndpointSpecPrivateNetworkDetails, EndpointSpecPublicNetworkDetails, GetInstanceCertificateRequest, GetInstanceRequest, GetSnapshotRequest, Instance, InstanceSnapshotSchedule, InstanceStatus, ListDatabasesRequest, ListDatabasesRequestOrderBy, ListDatabasesResponse, ListInstancesRequest, ListInstancesRequestOrderBy, ListInstancesResponse, ListNodeTypesRequest, ListNodeTypesResponse, ListSnapshotsRequest, ListSnapshotsRequestOrderBy, ListSnapshotsResponse, ListUsersRequest, ListUsersRequestOrderBy, ListUsersResponse, ListVersionsRequest, ListVersionsResponse, NodeType, NodeTypeStock, NodeTypeVolumeType, RestoreSnapshotRequest, SetUserRoleRequest, Snapshot, SnapshotStatus, UpdateInstanceRequest, UpdateSnapshotRequest, UpdateUserRequest, UpgradeInstanceRequest, User, UserRole, UserRoleRole, Version, Volume, VolumeType, } from './types.gen.js';
4
+ export type { ApplyMaintenanceRequest, CreateEndpointRequest, CreateInstanceRequest, CreateSnapshotRequest, CreateUserRequest, Database, DeleteEndpointRequest, DeleteInstanceRequest, DeleteSnapshotRequest, DeleteUserRequest, Endpoint, EndpointPrivateNetworkDetails, EndpointPublicNetworkDetails, EndpointSpec, EndpointSpecPrivateNetworkDetails, EndpointSpecPublicNetworkDetails, EngineUpgrade, GetInstanceCertificateRequest, GetInstanceRequest, GetMaintenanceRequest, GetSnapshotRequest, Instance, InstanceSnapshotSchedule, InstanceStatus, ListDatabasesRequest, ListDatabasesRequestOrderBy, ListDatabasesResponse, ListInstancesRequest, ListInstancesRequestOrderBy, ListInstancesResponse, ListMaintenancesRequest, ListMaintenancesRequestOrderBy, ListMaintenancesResponse, ListNodeTypesRequest, ListNodeTypesResponse, ListSnapshotsRequest, ListSnapshotsRequestOrderBy, ListSnapshotsResponse, ListUsersRequest, ListUsersRequestOrderBy, ListUsersResponse, ListVersionsRequest, ListVersionsResponse, Maintenance, MaintenanceAppliedBy, MaintenanceStatus, NodeType, NodeTypeStock, NodeTypeVolumeType, RestoreSnapshotRequest, ServiceUpdate, SetUserRoleRequest, Snapshot, SnapshotStatus, UpdateInstanceRequest, UpdateSnapshotRequest, UpdateUserRequest, UpgradeInstanceRequest, User, UserRole, UserRoleRole, Version, Volume, VolumeType, Workflow, } from './types.gen.js';
5
5
  export * as ValidationRules from './validation-rules.gen.js';
@@ -1,10 +1,11 @@
1
1
  import { API } from "./api.gen.js";
2
- import { INSTANCE_TRANSIENT_STATUSES, SNAPSHOT_TRANSIENT_STATUSES } from "./content.gen.js";
3
- import { marshalCreateEndpointRequest, marshalCreateInstanceRequest, marshalCreateSnapshotRequest, marshalCreateUserRequest, marshalRestoreSnapshotRequest, marshalSetUserRoleRequest, marshalUpdateInstanceRequest, marshalUpdateSnapshotRequest, marshalUpdateUserRequest, marshalUpgradeInstanceRequest, unmarshalEndpoint, unmarshalInstance, unmarshalListDatabasesResponse, unmarshalListInstancesResponse, unmarshalListNodeTypesResponse, unmarshalListSnapshotsResponse, unmarshalListUsersResponse, unmarshalListVersionsResponse, unmarshalSnapshot, unmarshalUser } from "./marshalling.gen.js";
2
+ import { INSTANCE_TRANSIENT_STATUSES, MAINTENANCE_TRANSIENT_STATUSES, SNAPSHOT_TRANSIENT_STATUSES } from "./content.gen.js";
3
+ import { marshalCreateEndpointRequest, marshalCreateInstanceRequest, marshalCreateSnapshotRequest, marshalCreateUserRequest, marshalRestoreSnapshotRequest, marshalSetUserRoleRequest, marshalUpdateInstanceRequest, marshalUpdateSnapshotRequest, marshalUpdateUserRequest, marshalUpgradeInstanceRequest, unmarshalEndpoint, unmarshalInstance, unmarshalListDatabasesResponse, unmarshalListInstancesResponse, unmarshalListMaintenancesResponse, unmarshalListNodeTypesResponse, unmarshalListSnapshotsResponse, unmarshalListUsersResponse, unmarshalListVersionsResponse, unmarshalMaintenance, unmarshalSnapshot, unmarshalUser } from "./marshalling.gen.js";
4
4
  import * as validationRules_gen from "./validation-rules.gen.js";
5
5
  export {
6
6
  API,
7
7
  INSTANCE_TRANSIENT_STATUSES,
8
+ MAINTENANCE_TRANSIENT_STATUSES,
8
9
  SNAPSHOT_TRANSIENT_STATUSES,
9
10
  validationRules_gen as ValidationRules,
10
11
  marshalCreateEndpointRequest,
@@ -21,10 +22,12 @@ export {
21
22
  unmarshalInstance,
22
23
  unmarshalListDatabasesResponse,
23
24
  unmarshalListInstancesResponse,
25
+ unmarshalListMaintenancesResponse,
24
26
  unmarshalListNodeTypesResponse,
25
27
  unmarshalListSnapshotsResponse,
26
28
  unmarshalListUsersResponse,
27
29
  unmarshalListVersionsResponse,
30
+ unmarshalMaintenance,
28
31
  unmarshalSnapshot,
29
32
  unmarshalUser
30
33
  };
@@ -1,11 +1,13 @@
1
1
  import type { DefaultValues } from '@scaleway/sdk-client';
2
- import type { CreateEndpointRequest, CreateInstanceRequest, CreateSnapshotRequest, CreateUserRequest, Endpoint, Instance, ListDatabasesResponse, ListInstancesResponse, ListNodeTypesResponse, ListSnapshotsResponse, ListUsersResponse, ListVersionsResponse, RestoreSnapshotRequest, SetUserRoleRequest, Snapshot, UpdateInstanceRequest, UpdateSnapshotRequest, UpdateUserRequest, UpgradeInstanceRequest, User } from './types.gen.js';
2
+ import type { CreateEndpointRequest, CreateInstanceRequest, CreateSnapshotRequest, CreateUserRequest, Endpoint, Instance, ListDatabasesResponse, ListInstancesResponse, ListMaintenancesResponse, ListNodeTypesResponse, ListSnapshotsResponse, ListUsersResponse, ListVersionsResponse, Maintenance, RestoreSnapshotRequest, SetUserRoleRequest, Snapshot, UpdateInstanceRequest, UpdateSnapshotRequest, UpdateUserRequest, UpgradeInstanceRequest, User } from './types.gen.js';
3
3
  export declare const unmarshalEndpoint: (data: unknown) => Endpoint;
4
4
  export declare const unmarshalInstance: (data: unknown) => Instance;
5
+ export declare const unmarshalMaintenance: (data: unknown) => Maintenance;
5
6
  export declare const unmarshalSnapshot: (data: unknown) => Snapshot;
6
7
  export declare const unmarshalUser: (data: unknown) => User;
7
8
  export declare const unmarshalListDatabasesResponse: (data: unknown) => ListDatabasesResponse;
8
9
  export declare const unmarshalListInstancesResponse: (data: unknown) => ListInstancesResponse;
10
+ export declare const unmarshalListMaintenancesResponse: (data: unknown) => ListMaintenancesResponse;
9
11
  export declare const unmarshalListNodeTypesResponse: (data: unknown) => ListNodeTypesResponse;
10
12
  export declare const unmarshalListSnapshotsResponse: (data: unknown) => ListSnapshotsResponse;
11
13
  export declare const unmarshalListUsersResponse: (data: unknown) => ListUsersResponse;
@@ -80,6 +80,57 @@ const unmarshalInstance = (data) => {
80
80
  volume: data.volume ? unmarshalVolume(data.volume) : void 0
81
81
  };
82
82
  };
83
+ const unmarshalEngineUpgrade = (data) => {
84
+ if (!isJSONObject(data)) {
85
+ throw new TypeError(
86
+ `Unmarshalling the type 'EngineUpgrade' failed as data isn't a dictionary.`
87
+ );
88
+ }
89
+ return {
90
+ newVersionId: data.new_version_id
91
+ };
92
+ };
93
+ const unmarshalServiceUpdate = (data) => {
94
+ if (!isJSONObject(data)) {
95
+ throw new TypeError(
96
+ `Unmarshalling the type 'ServiceUpdate' failed as data isn't a dictionary.`
97
+ );
98
+ }
99
+ return {
100
+ serviceName: data.service_name
101
+ };
102
+ };
103
+ const unmarshalWorkflow = (data) => {
104
+ if (!isJSONObject(data)) {
105
+ throw new TypeError(
106
+ `Unmarshalling the type 'Workflow' failed as data isn't a dictionary.`
107
+ );
108
+ }
109
+ return {
110
+ engineUpgrade: data.engine_upgrade ? unmarshalEngineUpgrade(data.engine_upgrade) : void 0,
111
+ serviceUpdate: data.service_update ? unmarshalServiceUpdate(data.service_update) : void 0
112
+ };
113
+ };
114
+ const unmarshalMaintenance = (data) => {
115
+ if (!isJSONObject(data)) {
116
+ throw new TypeError(
117
+ `Unmarshalling the type 'Maintenance' failed as data isn't a dictionary.`
118
+ );
119
+ }
120
+ return {
121
+ appliedAt: unmarshalDate(data.applied_at),
122
+ appliedBy: data.applied_by,
123
+ createdAt: unmarshalDate(data.created_at),
124
+ forcedAt: unmarshalDate(data.forced_at),
125
+ id: data.id,
126
+ instanceId: data.instance_id,
127
+ reason: data.reason,
128
+ startsAt: unmarshalDate(data.starts_at),
129
+ status: data.status,
130
+ stopsAt: unmarshalDate(data.stops_at),
131
+ workflow: data.workflow ? unmarshalWorkflow(data.workflow) : void 0
132
+ };
133
+ };
83
134
  const unmarshalSnapshot = (data) => {
84
135
  if (!isJSONObject(data)) {
85
136
  throw new TypeError(
@@ -156,6 +207,20 @@ const unmarshalListInstancesResponse = (data) => {
156
207
  totalCount: data.total_count
157
208
  };
158
209
  };
210
+ const unmarshalListMaintenancesResponse = (data) => {
211
+ if (!isJSONObject(data)) {
212
+ throw new TypeError(
213
+ `Unmarshalling the type 'ListMaintenancesResponse' failed as data isn't a dictionary.`
214
+ );
215
+ }
216
+ return {
217
+ maintenances: unmarshalArrayOfObject(
218
+ data.maintenances,
219
+ unmarshalMaintenance
220
+ ),
221
+ totalCount: data.total_count
222
+ };
223
+ };
159
224
  const unmarshalNodeTypeVolumeType = (data) => {
160
225
  if (!isJSONObject(data)) {
161
226
  throw new TypeError(
@@ -328,7 +393,8 @@ const marshalUpdateUserRequest = (request, defaults) => ({
328
393
  });
329
394
  const marshalUpgradeInstanceRequest = (request, defaults) => ({
330
395
  ...resolveOneOf([
331
- { param: "volume_size_bytes", value: request.volumeSizeBytes }
396
+ { param: "volume_size_bytes", value: request.volumeSizeBytes },
397
+ { param: "version_id", value: request.versionId }
332
398
  ])
333
399
  });
334
400
  export {
@@ -346,10 +412,12 @@ export {
346
412
  unmarshalInstance,
347
413
  unmarshalListDatabasesResponse,
348
414
  unmarshalListInstancesResponse,
415
+ unmarshalListMaintenancesResponse,
349
416
  unmarshalListNodeTypesResponse,
350
417
  unmarshalListSnapshotsResponse,
351
418
  unmarshalListUsersResponse,
352
419
  unmarshalListVersionsResponse,
420
+ unmarshalMaintenance,
353
421
  unmarshalSnapshot,
354
422
  unmarshalUser
355
423
  };
@@ -2,8 +2,11 @@ import type { Region as ScwRegion } from '@scaleway/sdk-client';
2
2
  export type InstanceStatus = 'unknown_status' | 'ready' | 'provisioning' | 'configuring' | 'deleting' | 'error' | 'initializing' | 'locked' | 'snapshotting';
3
3
  export type ListDatabasesRequestOrderBy = 'name_asc' | 'name_desc';
4
4
  export type ListInstancesRequestOrderBy = 'created_at_asc' | 'created_at_desc' | 'name_asc' | 'name_desc' | 'status_asc' | 'status_desc';
5
+ export type ListMaintenancesRequestOrderBy = 'created_at_asc' | 'created_at_desc' | 'starts_at_asc' | 'starts_at_desc' | 'stops_at_asc' | 'stops_at_desc';
5
6
  export type ListSnapshotsRequestOrderBy = 'created_at_asc' | 'created_at_desc' | 'name_asc' | 'name_desc' | 'expires_at_asc' | 'expires_at_desc';
6
7
  export type ListUsersRequestOrderBy = 'name_asc' | 'name_desc';
8
+ export type MaintenanceAppliedBy = 'unknown_applied_by' | 'user' | 'admin';
9
+ export type MaintenanceStatus = 'unknown_status' | 'planned' | 'done' | 'cancelled' | 'ongoing';
7
10
  export type NodeTypeStock = 'unknown_stock' | 'low_stock' | 'out_of_stock' | 'available';
8
11
  export type SnapshotStatus = 'unknown_status' | 'creating' | 'ready' | 'restoring' | 'deleting' | 'error' | 'locked';
9
12
  export type UserRoleRole = 'unknown_role' | 'read' | 'read_write' | 'db_admin' | 'sync';
@@ -22,6 +25,12 @@ export interface EndpointPrivateNetworkDetails {
22
25
  */
23
26
  export interface EndpointPublicNetworkDetails {
24
27
  }
28
+ export interface EngineUpgrade {
29
+ newVersionId: string;
30
+ }
31
+ export interface ServiceUpdate {
32
+ serviceName: string;
33
+ }
25
34
  export interface EndpointSpecPrivateNetworkDetails {
26
35
  /**
27
36
  * UUID of the Private Network.
@@ -73,6 +82,18 @@ export interface Volume {
73
82
  */
74
83
  sizeBytes: number;
75
84
  }
85
+ export interface Workflow {
86
+ /**
87
+ *
88
+ * One-of ('workflowType'): at most one of 'engineUpgrade', 'serviceUpdate' could be set.
89
+ */
90
+ engineUpgrade?: EngineUpgrade;
91
+ /**
92
+ *
93
+ * One-of ('workflowType'): at most one of 'engineUpgrade', 'serviceUpdate' could be set.
94
+ */
95
+ serviceUpdate?: ServiceUpdate;
96
+ }
76
97
  export interface NodeTypeVolumeType {
77
98
  /**
78
99
  * Volume Type.
@@ -186,6 +207,52 @@ export interface Instance {
186
207
  */
187
208
  snapshotSchedule?: InstanceSnapshotSchedule;
188
209
  }
210
+ export interface Maintenance {
211
+ /**
212
+ * ID of the maintenance.
213
+ */
214
+ id: string;
215
+ /**
216
+ * ID of the instance on which the maintenance is applied.
217
+ */
218
+ instanceId: string;
219
+ /**
220
+ * Creation date of the maintenance.
221
+ */
222
+ createdAt?: Date;
223
+ /**
224
+ * Start date of the maintenance.
225
+ */
226
+ startsAt?: Date;
227
+ /**
228
+ * Stop date of the maintenance.
229
+ */
230
+ stopsAt?: Date;
231
+ /**
232
+ * Current status of the maintenance.
233
+ */
234
+ status: MaintenanceStatus;
235
+ /**
236
+ * Forced application date of the maintenance.
237
+ */
238
+ forcedAt?: Date;
239
+ /**
240
+ * Application date of the maintenance.
241
+ */
242
+ appliedAt?: Date;
243
+ /**
244
+ * Usertype who launched the maintenance.
245
+ */
246
+ appliedBy: MaintenanceAppliedBy;
247
+ /**
248
+ * Workflow to be applied during maintenance.
249
+ */
250
+ workflow?: Workflow;
251
+ /**
252
+ * Reason of the maintenance.
253
+ */
254
+ reason: string;
255
+ }
189
256
  export interface NodeType {
190
257
  /**
191
258
  * Node type name identifier.
@@ -294,6 +361,13 @@ export interface Version {
294
361
  */
295
362
  endOfLifeAt?: Date;
296
363
  }
364
+ export type ApplyMaintenanceRequest = {
365
+ /**
366
+ * Region to target. If none is passed will use default region from the config.
367
+ */
368
+ region?: ScwRegion;
369
+ maintenanceId: string;
370
+ };
297
371
  export type CreateEndpointRequest = {
298
372
  /**
299
373
  * Region to target. If none is passed will use default region from the config.
@@ -454,6 +528,16 @@ export type GetInstanceRequest = {
454
528
  */
455
529
  instanceId: string;
456
530
  };
531
+ export type GetMaintenanceRequest = {
532
+ /**
533
+ * Region to target. If none is passed will use default region from the config.
534
+ */
535
+ region?: ScwRegion;
536
+ /**
537
+ * ID of the maintenance.
538
+ */
539
+ maintenanceId: string;
540
+ };
457
541
  export type GetSnapshotRequest = {
458
542
  /**
459
543
  * Region to target. If none is passed will use default region from the config.
@@ -528,6 +612,32 @@ export interface ListInstancesResponse {
528
612
  */
529
613
  totalCount: number;
530
614
  }
615
+ export type ListMaintenancesRequest = {
616
+ /**
617
+ * Region to target. If none is passed will use default region from the config.
618
+ */
619
+ region?: ScwRegion;
620
+ /**
621
+ * ID of the instance.
622
+ */
623
+ instanceId: string;
624
+ /**
625
+ * Criteria to use when requesting user listing.
626
+ */
627
+ orderBy?: ListMaintenancesRequestOrderBy;
628
+ page?: number;
629
+ pageSize?: number;
630
+ };
631
+ export interface ListMaintenancesResponse {
632
+ /**
633
+ * List of maintenances of a MongoDB© instance.
634
+ */
635
+ maintenances: Maintenance[];
636
+ /**
637
+ * Total count of maintenances of a MongoDB© instance.
638
+ */
639
+ totalCount: number;
640
+ }
531
641
  export type ListNodeTypesRequest = {
532
642
  /**
533
643
  * Region to target. If none is passed will use default region from the config.
@@ -759,7 +869,12 @@ export type UpgradeInstanceRequest = {
759
869
  /**
760
870
  * Increase your Block Storage volume size.
761
871
  *
762
- * One-of ('upgradeTarget'): at most one of 'volumeSizeBytes' could be set.
872
+ * One-of ('upgradeTarget'): at most one of 'volumeSizeBytes', 'versionId' could be set.
763
873
  */
764
874
  volumeSizeBytes?: number;
875
+ /**
876
+ *
877
+ * One-of ('upgradeTarget'): at most one of 'volumeSizeBytes', 'versionId' could be set.
878
+ */
879
+ versionId?: string;
765
880
  };
@@ -74,6 +74,15 @@ export declare const ListInstancesRequest: {
74
74
  lessThanOrEqual: number;
75
75
  };
76
76
  };
77
+ export declare const ListMaintenancesRequest: {
78
+ page: {
79
+ greaterThanOrEqual: number;
80
+ };
81
+ pageSize: {
82
+ greaterThanOrEqual: number;
83
+ lessThanOrEqual: number;
84
+ };
85
+ };
77
86
  export declare const ListNodeTypesRequest: {
78
87
  page: {
79
88
  greaterThanOrEqual: number;
@@ -74,6 +74,15 @@ const ListInstancesRequest = {
74
74
  lessThanOrEqual: 100
75
75
  }
76
76
  };
77
+ const ListMaintenancesRequest = {
78
+ page: {
79
+ greaterThanOrEqual: 1
80
+ },
81
+ pageSize: {
82
+ greaterThanOrEqual: 1,
83
+ lessThanOrEqual: 100
84
+ }
85
+ };
77
86
  const ListNodeTypesRequest = {
78
87
  page: {
79
88
  greaterThanOrEqual: 1
@@ -186,6 +195,7 @@ export {
186
195
  DeleteUserRequest,
187
196
  ListDatabasesRequest,
188
197
  ListInstancesRequest,
198
+ ListMaintenancesRequest,
189
199
  ListNodeTypesRequest,
190
200
  ListSnapshotsRequest,
191
201
  ListUsersRequest,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scaleway/sdk-mongodb",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Scaleway SDK mongodb",
5
5
  "license": "Apache-2.0",
6
6
  "files": [