@scaleway/sdk 1.19.0 → 1.21.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,2 +1,4 @@
1
1
  import * as index_gen from './v2/index.gen.js';
2
2
  export { index_gen as v2 };
3
+ import * as index_gen$1 from './v3/index.gen.js';
4
+ export { index_gen$1 as v3 };
@@ -16,9 +16,11 @@ const jsonContentHeaders = {
16
16
  */
17
17
  class API extends API$1 {
18
18
  /**
19
- * Create a new Project for an Organization. Generate a new Project for an
20
- * Organization, specifying its configuration including name and description.
19
+ * Create a new Project for an Organization. Deprecated in favor of Account
20
+ * API v3. Generate a new Project for an Organization, specifying its
21
+ * configuration including name and description.
21
22
  *
23
+ * @deprecated
22
24
  * @param request - The request {@link CreateProjectRequest}
23
25
  * @returns A Promise of Project
24
26
  */
@@ -51,11 +53,13 @@ class API extends API$1 {
51
53
  })();
52
54
 
53
55
  /**
54
- * List all Projects of an Organization. List all Projects of an Organization.
55
- * The response will include the total number of Projects as well as their
56
- * associated Organizations, names and IDs. Other information include the
57
- * creation and update date of the Project.
56
+ * List all Projects of an Organization. Deprecated in favor of Account API
57
+ * v3. List all Projects of an Organization. The response will include the
58
+ * total number of Projects as well as their associated Organizations, names
59
+ * and IDs. Other information include the creation and update date of the
60
+ * Project.
58
61
  *
62
+ * @deprecated
59
63
  * @param request - The request {@link ListProjectsRequest}
60
64
  * @returns A Promise of ListProjectsResponse
61
65
  */
@@ -70,10 +74,12 @@ class API extends API$1 {
70
74
  })();
71
75
 
72
76
  /**
73
- * Get an existing Project. Retrieve information about an existing Project,
74
- * specified by its Project ID. Its full details, including ID, name and
75
- * description, are returned in the response object.
77
+ * Get an existing Project. Deprecated in favor of Account API v3. Retrieve
78
+ * information about an existing Project, specified by its Project ID. Its
79
+ * full details, including ID, name and description, are returned in the
80
+ * response object.
76
81
  *
82
+ * @deprecated
77
83
  * @param request - The request {@link GetProjectRequest}
78
84
  * @returns A Promise of Project
79
85
  */
@@ -91,11 +97,13 @@ class API extends API$1 {
91
97
  })();
92
98
 
93
99
  /**
94
- * Delete an existing Project. Delete an existing Project, specified by its
95
- * Project ID. The Project needs to be empty (meaning there are no resources
96
- * left in it) to be deleted effectively. Note that deleting a Project is
97
- * permanent, and cannot be undone.
100
+ * Delete an existing Project. Deprecated in favor of Account API v3. Delete
101
+ * an existing Project, specified by its Project ID. The Project needs to be
102
+ * empty (meaning there are no resources left in it) to be deleted
103
+ * effectively. Note that deleting a Project is permanent, and cannot be
104
+ * undone.
98
105
  *
106
+ * @deprecated
99
107
  * @param request - The request {@link DeleteProjectRequest}
100
108
  */
101
109
  deleteProject = (() => {
@@ -112,9 +120,11 @@ class API extends API$1 {
112
120
  })();
113
121
 
114
122
  /**
115
- * Update Project. Update the parameters of an existing Project, specified by
116
- * its Project ID. These parameters include the name and description.
123
+ * Update Project. Deprecated in favor of Account API v3. Update the
124
+ * parameters of an existing Project, specified by its Project ID. These
125
+ * parameters include the name and description.
117
126
  *
127
+ * @deprecated
118
128
  * @param request - The request {@link UpdateProjectRequest}
119
129
  * @returns A Promise of Project
120
130
  */
@@ -0,0 +1,129 @@
1
+ import { API as API$1 } from '../../../scw/api.js';
2
+ import { urlParams, validatePathParam } from '../../../helpers/marshalling.js';
3
+ import { enrichForPagination } from '../../../scw/fetch/resource-paginator.js';
4
+ import { marshalProjectApiCreateProjectRequest, unmarshalProject, unmarshalListProjectsResponse, marshalProjectApiUpdateProjectRequest } from './marshalling.gen.js';
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.
8
+ const jsonContentHeaders = {
9
+ 'Content-Type': 'application/json; charset=utf-8'
10
+ };
11
+
12
+ /**
13
+ * Account API.
14
+ *
15
+ * This API allows you to manage projects.
16
+ */
17
+ class ProjectAPI extends API$1 {
18
+ /**
19
+ * Create a new Project for an Organization. Generate a new Project for an
20
+ * Organization, specifying its configuration including name and description.
21
+ *
22
+ * @param request - The request {@link ProjectApiCreateProjectRequest}
23
+ * @returns A Promise of Project
24
+ */
25
+ createProject = request => this.client.fetch({
26
+ body: JSON.stringify(marshalProjectApiCreateProjectRequest(request, this.client.settings)),
27
+ headers: jsonContentHeaders,
28
+ method: 'POST',
29
+ path: `/account/v3/projects`
30
+ }, unmarshalProject);
31
+ pageOfListProjects = (() => {
32
+ var _this = this;
33
+ return function (request) {
34
+ if (request === void 0) {
35
+ request = {};
36
+ }
37
+ return _this.client.fetch({
38
+ method: 'GET',
39
+ path: `/account/v3/projects`,
40
+ urlParams: urlParams(['name', request.name], ['order_by', request.orderBy ?? 'created_at_asc'], ['organization_id', request.organizationId ?? _this.client.settings.defaultOrganizationId], ['page', request.page], ['page_size', request.pageSize ?? _this.client.settings.defaultPageSize], ['project_ids', request.projectIds])
41
+ }, unmarshalListProjectsResponse);
42
+ };
43
+ })();
44
+
45
+ /**
46
+ * List all Projects of an Organization. List all Projects of an Organization.
47
+ * The response will include the total number of Projects as well as their
48
+ * associated Organizations, names, and IDs. Other information includes the
49
+ * creation and update date of the Project.
50
+ *
51
+ * @param request - The request {@link ProjectApiListProjectsRequest}
52
+ * @returns A Promise of ListProjectsResponse
53
+ */
54
+ listProjects = (() => {
55
+ var _this2 = this;
56
+ return function (request) {
57
+ if (request === void 0) {
58
+ request = {};
59
+ }
60
+ return enrichForPagination('projects', _this2.pageOfListProjects, request);
61
+ };
62
+ })();
63
+
64
+ /**
65
+ * Get an existing Project. Retrieve information about an existing Project,
66
+ * specified by its Project ID. Its full details, including ID, name and
67
+ * description, are returned in the response object.
68
+ *
69
+ * @param request - The request {@link ProjectApiGetProjectRequest}
70
+ * @returns A Promise of Project
71
+ */
72
+ getProject = (() => {
73
+ var _this3 = this;
74
+ return function (request) {
75
+ if (request === void 0) {
76
+ request = {};
77
+ }
78
+ return _this3.client.fetch({
79
+ method: 'GET',
80
+ path: `/account/v3/projects/${validatePathParam('projectId', request.projectId ?? _this3.client.settings.defaultProjectId)}`
81
+ }, unmarshalProject);
82
+ };
83
+ })();
84
+
85
+ /**
86
+ * Delete an existing Project. Delete an existing Project, specified by its
87
+ * Project ID. The Project needs to be empty (meaning there are no resources
88
+ * left in it) to be deleted effectively. Note that deleting a Project is
89
+ * permanent, and cannot be undone.
90
+ *
91
+ * @param request - The request {@link ProjectApiDeleteProjectRequest}
92
+ */
93
+ deleteProject = (() => {
94
+ var _this4 = this;
95
+ return function (request) {
96
+ if (request === void 0) {
97
+ request = {};
98
+ }
99
+ return _this4.client.fetch({
100
+ method: 'DELETE',
101
+ path: `/account/v3/projects/${validatePathParam('projectId', request.projectId ?? _this4.client.settings.defaultProjectId)}`
102
+ });
103
+ };
104
+ })();
105
+
106
+ /**
107
+ * Update Project. Update the parameters of an existing Project, specified by
108
+ * its Project ID. These parameters include the name and description.
109
+ *
110
+ * @param request - The request {@link ProjectApiUpdateProjectRequest}
111
+ * @returns A Promise of Project
112
+ */
113
+ updateProject = (() => {
114
+ var _this5 = this;
115
+ return function (request) {
116
+ if (request === void 0) {
117
+ request = {};
118
+ }
119
+ return _this5.client.fetch({
120
+ body: JSON.stringify(marshalProjectApiUpdateProjectRequest(request, _this5.client.settings)),
121
+ headers: jsonContentHeaders,
122
+ method: 'PATCH',
123
+ path: `/account/v3/projects/${validatePathParam('projectId', request.projectId ?? _this5.client.settings.defaultProjectId)}`
124
+ }, unmarshalProject);
125
+ };
126
+ })();
127
+ }
128
+
129
+ export { ProjectAPI };
@@ -0,0 +1,6 @@
1
+ export { ProjectAPI } from './api.gen.js';
2
+ import * as validationRules_gen from './validation-rules.gen.js';
3
+ export { validationRules_gen as ValidationRules };
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.
@@ -0,0 +1,39 @@
1
+ import randomName from '../../../node_modules/.pnpm/@scaleway_random-name@4.0.1/node_modules/@scaleway/random-name/dist/index.js';
2
+ import { isJSONObject } from '../../../helpers/json.js';
3
+ import { unmarshalDate, unmarshalArrayOfObject } 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 unmarshalProject = data => {
8
+ if (!isJSONObject(data)) {
9
+ throw new TypeError(`Unmarshalling the type 'Project' failed as data isn't a dictionary.`);
10
+ }
11
+ return {
12
+ createdAt: unmarshalDate(data.created_at),
13
+ description: data.description,
14
+ id: data.id,
15
+ name: data.name,
16
+ organizationId: data.organization_id,
17
+ updatedAt: unmarshalDate(data.updated_at)
18
+ };
19
+ };
20
+ const unmarshalListProjectsResponse = data => {
21
+ if (!isJSONObject(data)) {
22
+ throw new TypeError(`Unmarshalling the type 'ListProjectsResponse' failed as data isn't a dictionary.`);
23
+ }
24
+ return {
25
+ projects: unmarshalArrayOfObject(data.projects, unmarshalProject),
26
+ totalCount: data.total_count
27
+ };
28
+ };
29
+ const marshalProjectApiCreateProjectRequest = (request, defaults) => ({
30
+ description: request.description,
31
+ name: request.name || randomName('proj'),
32
+ organization_id: request.organizationId ?? defaults.defaultOrganizationId
33
+ });
34
+ const marshalProjectApiUpdateProjectRequest = (request, defaults) => ({
35
+ description: request.description,
36
+ name: request.name
37
+ });
38
+
39
+ export { marshalProjectApiCreateProjectRequest, marshalProjectApiUpdateProjectRequest, unmarshalListProjectsResponse, unmarshalProject };
@@ -0,0 +1,39 @@
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 ProjectApiCreateProjectRequest = {
5
+ description: {
6
+ maxLength: 200
7
+ },
8
+ name: {
9
+ maxLength: 64,
10
+ minLength: 1,
11
+ pattern: /^[a-zA-Z0-9\._\- ]+$/
12
+ }
13
+ };
14
+ const ProjectApiListProjectsRequest = {
15
+ name: {
16
+ maxLength: 64,
17
+ minLength: 1,
18
+ pattern: /^[a-zA-Z0-9\._\- ]+$/
19
+ },
20
+ page: {
21
+ greaterThan: 0
22
+ },
23
+ pageSize: {
24
+ greaterThanOrEqual: 1,
25
+ lessThanOrEqual: 100
26
+ }
27
+ };
28
+ const ProjectApiUpdateProjectRequest = {
29
+ description: {
30
+ maxLength: 200
31
+ },
32
+ name: {
33
+ maxLength: 64,
34
+ minLength: 1,
35
+ pattern: /^[a-zA-Z0-9\._\- ]+$/
36
+ }
37
+ };
38
+
39
+ export { ProjectApiCreateProjectRequest, ProjectApiListProjectsRequest, ProjectApiUpdateProjectRequest };
@@ -102,7 +102,9 @@ const unmarshalClusterType = data => {
102
102
  return {
103
103
  availability: data.availability,
104
104
  commitmentDelay: data.commitment_delay,
105
+ dedicated: data.dedicated,
105
106
  maxNodes: data.max_nodes,
107
+ memory: data.memory,
106
108
  name: data.name,
107
109
  resiliency: data.resiliency,
108
110
  sla: data.sla
@@ -448,6 +448,20 @@ class API extends API$1 {
448
448
  path: `/rdb/v1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/read-replicas/${validatePathParam('readReplicaId', request.readReplicaId)}/reset`
449
449
  }, unmarshalReadReplica);
450
450
 
451
+ /**
452
+ * Promote a Read Replica. Promote a Read Replica to Database Instance
453
+ * automatically.
454
+ *
455
+ * @param request - The request {@link PromoteReadReplicaRequest}
456
+ * @returns A Promise of Instance
457
+ */
458
+ promoteReadReplica = request => this.client.fetch({
459
+ body: '{}',
460
+ headers: jsonContentHeaders,
461
+ method: 'POST',
462
+ path: `/rdb/v1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/read-replicas/${validatePathParam('readReplicaId', request.readReplicaId)}/promote`
463
+ }, unmarshalInstance);
464
+
451
465
  /**
452
466
  * Create an endpoint for a Read Replica. Create a new endpoint for a Read
453
467
  * Replica. Read Replicas can have at most one direct access and one Private
@@ -14,7 +14,7 @@ const INSTANCE_TRANSIENT_STATUSES = ['provisioning', 'configuring', 'deleting',
14
14
  const MAINTENANCE_TRANSIENT_STATUSES = ['pending'];
15
15
 
16
16
  /** Lists transient statutes of the enum {@link ReadReplicaStatus}. */
17
- const READ_REPLICA_TRANSIENT_STATUSES = ['provisioning', 'initializing', 'deleting', 'configuring'];
17
+ const READ_REPLICA_TRANSIENT_STATUSES = ['provisioning', 'initializing', 'deleting', 'configuring', 'promoting'];
18
18
 
19
19
  /** Lists transient statutes of the enum {@link SnapshotStatus}. */
20
20
  const SNAPSHOT_TRANSIENT_STATUSES = ['creating', 'restoring', 'deleting'];
@@ -61,7 +61,7 @@ class API extends API$1 {
61
61
  return _this.client.fetch({
62
62
  method: 'GET',
63
63
  path: `/transactional-email/v1alpha1/regions/${validatePathParam('region', request.region ?? _this.client.settings.defaultRegion)}/emails`,
64
- urlParams: urlParams(['domain_id', request.domainId], ['mail_from', request.mailFrom], ['mail_rcpt', request.mailRcpt], ['mail_to', request.mailTo], ['message_id', request.messageId], ['order_by', request.orderBy ?? 'created_at_desc'], ['page', request.page], ['page_size', request.pageSize ?? _this.client.settings.defaultPageSize], ['project_id', request.projectId], ['search', request.search], ['since', request.since], ['statuses', request.statuses], ['subject', request.subject], ['until', request.until])
64
+ urlParams: urlParams(['domain_id', request.domainId], ['flags', request.flags], ['mail_from', request.mailFrom], ['mail_rcpt', request.mailRcpt], ['mail_to', request.mailTo], ['message_id', request.messageId], ['order_by', request.orderBy ?? 'created_at_desc'], ['page', request.page], ['page_size', request.pageSize ?? _this.client.settings.defaultPageSize], ['project_id', request.projectId], ['search', request.search], ['since', request.since], ['statuses', request.statuses], ['subject', request.subject], ['until', request.until])
65
65
  }, unmarshalListEmailsResponse);
66
66
  };
67
67
  })();
@@ -72,6 +72,7 @@ const unmarshalEmail = data => {
72
72
  }
73
73
  return {
74
74
  createdAt: unmarshalDate(data.created_at),
75
+ flags: data.flags,
75
76
  id: data.id,
76
77
  lastTries: unmarshalArrayOfObject(data.last_tries, unmarshalEmailTry),
77
78
  mailFrom: data.mail_from,
@@ -61,6 +61,7 @@ const unmarshalHosting = data => {
61
61
  dnsStatus: data.dns_status,
62
62
  domain: data.domain,
63
63
  id: data.id,
64
+ offerEndOfLife: data.offer_end_of_life,
64
65
  offerId: data.offer_id,
65
66
  offerName: data.offer_name,
66
67
  options: unmarshalArrayOfObject(data.options, unmarshalHostingOption),
@@ -92,6 +93,7 @@ const unmarshalOffer = data => {
92
93
  return {
93
94
  available: data.available,
94
95
  billingOperationPath: data.billing_operation_path,
96
+ endOfLife: data.end_of_life,
95
97
  id: data.id,
96
98
  price: data.price ? unmarshalMoney(data.price) : undefined,
97
99
  product: data.product ? unmarshalOfferProduct(data.product) : undefined,
package/dist/index.cjs CHANGED
@@ -497,7 +497,7 @@ const assertValidSettings = obj => {
497
497
  }
498
498
  };
499
499
 
500
- const version = 'v1.18.0';
500
+ const version = 'v1.20.0';
501
501
  const userAgent = `scaleway-sdk-js/${version}`;
502
502
 
503
503
  const isBrowser = () => typeof window !== 'undefined' && typeof window.document !== 'undefined';
@@ -2033,7 +2033,7 @@ const randomName = function () {
2033
2033
 
2034
2034
  // This file was automatically generated. DO NOT EDIT.
2035
2035
  // If you have any remark or suggestion do not hesitate to open an issue.
2036
- const unmarshalProject = data => {
2036
+ const unmarshalProject$1 = data => {
2037
2037
  if (!isJSONObject(data)) {
2038
2038
  throw new TypeError(`Unmarshalling the type 'Project' failed as data isn't a dictionary.`);
2039
2039
  }
@@ -2046,12 +2046,12 @@ const unmarshalProject = data => {
2046
2046
  updatedAt: unmarshalDate(data.updated_at)
2047
2047
  };
2048
2048
  };
2049
- const unmarshalListProjectsResponse = data => {
2049
+ const unmarshalListProjectsResponse$1 = data => {
2050
2050
  if (!isJSONObject(data)) {
2051
2051
  throw new TypeError(`Unmarshalling the type 'ListProjectsResponse' failed as data isn't a dictionary.`);
2052
2052
  }
2053
2053
  return {
2054
- projects: unmarshalArrayOfObject(data.projects, unmarshalProject),
2054
+ projects: unmarshalArrayOfObject(data.projects, unmarshalProject$1),
2055
2055
  totalCount: data.total_count
2056
2056
  };
2057
2057
  };
@@ -2067,7 +2067,7 @@ const marshalUpdateProjectRequest = (request, defaults) => ({
2067
2067
 
2068
2068
  // This file was automatically generated. DO NOT EDIT.
2069
2069
  // If you have any remark or suggestion do not hesitate to open an issue.
2070
- const jsonContentHeaders$o = {
2070
+ const jsonContentHeaders$p = {
2071
2071
  'Content-Type': 'application/json; charset=utf-8'
2072
2072
  };
2073
2073
 
@@ -2078,31 +2078,166 @@ const jsonContentHeaders$o = {
2078
2078
  */
2079
2079
  let API$r = class API extends API$s {
2080
2080
  /**
2081
- * Create a new Project for an Organization. Generate a new Project for an
2082
- * Organization, specifying its configuration including name and description.
2081
+ * Create a new Project for an Organization. Deprecated in favor of Account
2082
+ * API v3. Generate a new Project for an Organization, specifying its
2083
+ * configuration including name and description.
2083
2084
  *
2085
+ * @deprecated
2084
2086
  * @param request - The request {@link CreateProjectRequest}
2085
2087
  * @returns A Promise of Project
2086
2088
  */
2087
2089
  createProject = (request = {}) => this.client.fetch({
2088
2090
  body: JSON.stringify(marshalCreateProjectRequest(request, this.client.settings)),
2089
- headers: jsonContentHeaders$o,
2091
+ headers: jsonContentHeaders$p,
2090
2092
  method: 'POST',
2091
2093
  path: `/account/v2/projects`
2092
- }, unmarshalProject);
2094
+ }, unmarshalProject$1);
2093
2095
  pageOfListProjects = (request = {}) => this.client.fetch({
2094
2096
  method: 'GET',
2095
2097
  path: `/account/v2/projects`,
2096
2098
  urlParams: urlParams(['name', request.name], ['order_by', request.orderBy ?? 'created_at_asc'], ['organization_id', request.organizationId ?? this.client.settings.defaultOrganizationId], ['page', request.page], ['page_size', request.pageSize ?? this.client.settings.defaultPageSize], ['project_ids', request.projectIds])
2099
+ }, unmarshalListProjectsResponse$1);
2100
+
2101
+ /**
2102
+ * List all Projects of an Organization. Deprecated in favor of Account API
2103
+ * v3. List all Projects of an Organization. The response will include the
2104
+ * total number of Projects as well as their associated Organizations, names
2105
+ * and IDs. Other information include the creation and update date of the
2106
+ * Project.
2107
+ *
2108
+ * @deprecated
2109
+ * @param request - The request {@link ListProjectsRequest}
2110
+ * @returns A Promise of ListProjectsResponse
2111
+ */
2112
+ listProjects = (request = {}) => enrichForPagination('projects', this.pageOfListProjects, request);
2113
+
2114
+ /**
2115
+ * Get an existing Project. Deprecated in favor of Account API v3. Retrieve
2116
+ * information about an existing Project, specified by its Project ID. Its
2117
+ * full details, including ID, name and description, are returned in the
2118
+ * response object.
2119
+ *
2120
+ * @deprecated
2121
+ * @param request - The request {@link GetProjectRequest}
2122
+ * @returns A Promise of Project
2123
+ */
2124
+ getProject = (request = {}) => this.client.fetch({
2125
+ method: 'GET',
2126
+ path: `/account/v2/projects/${validatePathParam('projectId', request.projectId ?? this.client.settings.defaultProjectId)}`
2127
+ }, unmarshalProject$1);
2128
+
2129
+ /**
2130
+ * Delete an existing Project. Deprecated in favor of Account API v3. Delete
2131
+ * an existing Project, specified by its Project ID. The Project needs to be
2132
+ * empty (meaning there are no resources left in it) to be deleted
2133
+ * effectively. Note that deleting a Project is permanent, and cannot be
2134
+ * undone.
2135
+ *
2136
+ * @deprecated
2137
+ * @param request - The request {@link DeleteProjectRequest}
2138
+ */
2139
+ deleteProject = (request = {}) => this.client.fetch({
2140
+ method: 'DELETE',
2141
+ path: `/account/v2/projects/${validatePathParam('projectId', request.projectId ?? this.client.settings.defaultProjectId)}`
2142
+ });
2143
+
2144
+ /**
2145
+ * Update Project. Deprecated in favor of Account API v3. Update the
2146
+ * parameters of an existing Project, specified by its Project ID. These
2147
+ * parameters include the name and description.
2148
+ *
2149
+ * @deprecated
2150
+ * @param request - The request {@link UpdateProjectRequest}
2151
+ * @returns A Promise of Project
2152
+ */
2153
+ updateProject = (request = {}) => this.client.fetch({
2154
+ body: JSON.stringify(marshalUpdateProjectRequest(request, this.client.settings)),
2155
+ headers: jsonContentHeaders$p,
2156
+ method: 'PATCH',
2157
+ path: `/account/v2/projects/${validatePathParam('projectId', request.projectId ?? this.client.settings.defaultProjectId)}`
2158
+ }, unmarshalProject$1);
2159
+ };
2160
+
2161
+ // This file was automatically generated. DO NOT EDIT.
2162
+ // If you have any remark or suggestion do not hesitate to open an issue.
2163
+
2164
+ var index_gen$o = /*#__PURE__*/Object.freeze({
2165
+ __proto__: null,
2166
+ API: API$r
2167
+ });
2168
+
2169
+ // This file was automatically generated. DO NOT EDIT.
2170
+ // If you have any remark or suggestion do not hesitate to open an issue.
2171
+ const unmarshalProject = data => {
2172
+ if (!isJSONObject(data)) {
2173
+ throw new TypeError(`Unmarshalling the type 'Project' failed as data isn't a dictionary.`);
2174
+ }
2175
+ return {
2176
+ createdAt: unmarshalDate(data.created_at),
2177
+ description: data.description,
2178
+ id: data.id,
2179
+ name: data.name,
2180
+ organizationId: data.organization_id,
2181
+ updatedAt: unmarshalDate(data.updated_at)
2182
+ };
2183
+ };
2184
+ const unmarshalListProjectsResponse = data => {
2185
+ if (!isJSONObject(data)) {
2186
+ throw new TypeError(`Unmarshalling the type 'ListProjectsResponse' failed as data isn't a dictionary.`);
2187
+ }
2188
+ return {
2189
+ projects: unmarshalArrayOfObject(data.projects, unmarshalProject),
2190
+ totalCount: data.total_count
2191
+ };
2192
+ };
2193
+ const marshalProjectApiCreateProjectRequest = (request, defaults) => ({
2194
+ description: request.description,
2195
+ name: request.name || randomName('proj'),
2196
+ organization_id: request.organizationId ?? defaults.defaultOrganizationId
2197
+ });
2198
+ const marshalProjectApiUpdateProjectRequest = (request, defaults) => ({
2199
+ description: request.description,
2200
+ name: request.name
2201
+ });
2202
+
2203
+ // This file was automatically generated. DO NOT EDIT.
2204
+ // If you have any remark or suggestion do not hesitate to open an issue.
2205
+ const jsonContentHeaders$o = {
2206
+ 'Content-Type': 'application/json; charset=utf-8'
2207
+ };
2208
+
2209
+ /**
2210
+ * Account API.
2211
+ *
2212
+ * This API allows you to manage projects.
2213
+ */
2214
+ class ProjectAPI extends API$s {
2215
+ /**
2216
+ * Create a new Project for an Organization. Generate a new Project for an
2217
+ * Organization, specifying its configuration including name and description.
2218
+ *
2219
+ * @param request - The request {@link ProjectApiCreateProjectRequest}
2220
+ * @returns A Promise of Project
2221
+ */
2222
+ createProject = request => this.client.fetch({
2223
+ body: JSON.stringify(marshalProjectApiCreateProjectRequest(request, this.client.settings)),
2224
+ headers: jsonContentHeaders$o,
2225
+ method: 'POST',
2226
+ path: `/account/v3/projects`
2227
+ }, unmarshalProject);
2228
+ pageOfListProjects = (request = {}) => this.client.fetch({
2229
+ method: 'GET',
2230
+ path: `/account/v3/projects`,
2231
+ urlParams: urlParams(['name', request.name], ['order_by', request.orderBy ?? 'created_at_asc'], ['organization_id', request.organizationId ?? this.client.settings.defaultOrganizationId], ['page', request.page], ['page_size', request.pageSize ?? this.client.settings.defaultPageSize], ['project_ids', request.projectIds])
2097
2232
  }, unmarshalListProjectsResponse);
2098
2233
 
2099
2234
  /**
2100
2235
  * List all Projects of an Organization. List all Projects of an Organization.
2101
2236
  * The response will include the total number of Projects as well as their
2102
- * associated Organizations, names and IDs. Other information include the
2237
+ * associated Organizations, names, and IDs. Other information includes the
2103
2238
  * creation and update date of the Project.
2104
2239
  *
2105
- * @param request - The request {@link ListProjectsRequest}
2240
+ * @param request - The request {@link ProjectApiListProjectsRequest}
2106
2241
  * @returns A Promise of ListProjectsResponse
2107
2242
  */
2108
2243
  listProjects = (request = {}) => enrichForPagination('projects', this.pageOfListProjects, request);
@@ -2112,12 +2247,12 @@ let API$r = class API extends API$s {
2112
2247
  * specified by its Project ID. Its full details, including ID, name and
2113
2248
  * description, are returned in the response object.
2114
2249
  *
2115
- * @param request - The request {@link GetProjectRequest}
2250
+ * @param request - The request {@link ProjectApiGetProjectRequest}
2116
2251
  * @returns A Promise of Project
2117
2252
  */
2118
2253
  getProject = (request = {}) => this.client.fetch({
2119
2254
  method: 'GET',
2120
- path: `/account/v2/projects/${validatePathParam('projectId', request.projectId ?? this.client.settings.defaultProjectId)}`
2255
+ path: `/account/v3/projects/${validatePathParam('projectId', request.projectId ?? this.client.settings.defaultProjectId)}`
2121
2256
  }, unmarshalProject);
2122
2257
 
2123
2258
  /**
@@ -2126,39 +2261,86 @@ let API$r = class API extends API$s {
2126
2261
  * left in it) to be deleted effectively. Note that deleting a Project is
2127
2262
  * permanent, and cannot be undone.
2128
2263
  *
2129
- * @param request - The request {@link DeleteProjectRequest}
2264
+ * @param request - The request {@link ProjectApiDeleteProjectRequest}
2130
2265
  */
2131
2266
  deleteProject = (request = {}) => this.client.fetch({
2132
2267
  method: 'DELETE',
2133
- path: `/account/v2/projects/${validatePathParam('projectId', request.projectId ?? this.client.settings.defaultProjectId)}`
2268
+ path: `/account/v3/projects/${validatePathParam('projectId', request.projectId ?? this.client.settings.defaultProjectId)}`
2134
2269
  });
2135
2270
 
2136
2271
  /**
2137
2272
  * Update Project. Update the parameters of an existing Project, specified by
2138
2273
  * its Project ID. These parameters include the name and description.
2139
2274
  *
2140
- * @param request - The request {@link UpdateProjectRequest}
2275
+ * @param request - The request {@link ProjectApiUpdateProjectRequest}
2141
2276
  * @returns A Promise of Project
2142
2277
  */
2143
2278
  updateProject = (request = {}) => this.client.fetch({
2144
- body: JSON.stringify(marshalUpdateProjectRequest(request, this.client.settings)),
2279
+ body: JSON.stringify(marshalProjectApiUpdateProjectRequest(request, this.client.settings)),
2145
2280
  headers: jsonContentHeaders$o,
2146
2281
  method: 'PATCH',
2147
- path: `/account/v2/projects/${validatePathParam('projectId', request.projectId ?? this.client.settings.defaultProjectId)}`
2282
+ path: `/account/v3/projects/${validatePathParam('projectId', request.projectId ?? this.client.settings.defaultProjectId)}`
2148
2283
  }, unmarshalProject);
2284
+ }
2285
+
2286
+ // This file was automatically generated. DO NOT EDIT.
2287
+ // If you have any remark or suggestion do not hesitate to open an issue.
2288
+
2289
+ const ProjectApiCreateProjectRequest = {
2290
+ description: {
2291
+ maxLength: 200
2292
+ },
2293
+ name: {
2294
+ maxLength: 64,
2295
+ minLength: 1,
2296
+ pattern: /^[a-zA-Z0-9\._\- ]+$/
2297
+ }
2298
+ };
2299
+ const ProjectApiListProjectsRequest = {
2300
+ name: {
2301
+ maxLength: 64,
2302
+ minLength: 1,
2303
+ pattern: /^[a-zA-Z0-9\._\- ]+$/
2304
+ },
2305
+ page: {
2306
+ greaterThan: 0
2307
+ },
2308
+ pageSize: {
2309
+ greaterThanOrEqual: 1,
2310
+ lessThanOrEqual: 100
2311
+ }
2312
+ };
2313
+ const ProjectApiUpdateProjectRequest = {
2314
+ description: {
2315
+ maxLength: 200
2316
+ },
2317
+ name: {
2318
+ maxLength: 64,
2319
+ minLength: 1,
2320
+ pattern: /^[a-zA-Z0-9\._\- ]+$/
2321
+ }
2149
2322
  };
2150
2323
 
2324
+ var validationRules_gen$6 = /*#__PURE__*/Object.freeze({
2325
+ __proto__: null,
2326
+ ProjectApiCreateProjectRequest: ProjectApiCreateProjectRequest,
2327
+ ProjectApiListProjectsRequest: ProjectApiListProjectsRequest,
2328
+ ProjectApiUpdateProjectRequest: ProjectApiUpdateProjectRequest
2329
+ });
2330
+
2151
2331
  // This file was automatically generated. DO NOT EDIT.
2152
2332
  // If you have any remark or suggestion do not hesitate to open an issue.
2153
2333
 
2154
2334
  var index_gen$n = /*#__PURE__*/Object.freeze({
2155
2335
  __proto__: null,
2156
- API: API$r
2336
+ ProjectAPI: ProjectAPI,
2337
+ ValidationRules: validationRules_gen$6
2157
2338
  });
2158
2339
 
2159
2340
  var index$t = /*#__PURE__*/Object.freeze({
2160
2341
  __proto__: null,
2161
- v2: index_gen$n
2342
+ v2: index_gen$o,
2343
+ v3: index_gen$n
2162
2344
  });
2163
2345
 
2164
2346
  // This file was automatically generated. DO NOT EDIT.
@@ -13303,7 +13485,9 @@ const unmarshalClusterType = data => {
13303
13485
  return {
13304
13486
  availability: data.availability,
13305
13487
  commitmentDelay: data.commitment_delay,
13488
+ dedicated: data.dedicated,
13306
13489
  maxNodes: data.max_nodes,
13490
+ memory: data.memory,
13307
13491
  name: data.name,
13308
13492
  resiliency: data.resiliency,
13309
13493
  sla: data.sla
@@ -17450,7 +17634,7 @@ const INSTANCE_TRANSIENT_STATUSES = ['provisioning', 'configuring', 'deleting',
17450
17634
  const MAINTENANCE_TRANSIENT_STATUSES = ['pending'];
17451
17635
 
17452
17636
  /** Lists transient statutes of the enum {@link ReadReplicaStatus}. */
17453
- const READ_REPLICA_TRANSIENT_STATUSES = ['provisioning', 'initializing', 'deleting', 'configuring'];
17637
+ const READ_REPLICA_TRANSIENT_STATUSES = ['provisioning', 'initializing', 'deleting', 'configuring', 'promoting'];
17454
17638
 
17455
17639
  /** Lists transient statutes of the enum {@link SnapshotStatus}. */
17456
17640
  const SNAPSHOT_TRANSIENT_STATUSES = ['creating', 'restoring', 'deleting'];
@@ -18536,6 +18720,20 @@ let API$9 = class API extends API$s {
18536
18720
  path: `/rdb/v1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/read-replicas/${validatePathParam('readReplicaId', request.readReplicaId)}/reset`
18537
18721
  }, unmarshalReadReplica);
18538
18722
 
18723
+ /**
18724
+ * Promote a Read Replica. Promote a Read Replica to Database Instance
18725
+ * automatically.
18726
+ *
18727
+ * @param request - The request {@link PromoteReadReplicaRequest}
18728
+ * @returns A Promise of Instance
18729
+ */
18730
+ promoteReadReplica = request => this.client.fetch({
18731
+ body: '{}',
18732
+ headers: jsonContentHeaders$9,
18733
+ method: 'POST',
18734
+ path: `/rdb/v1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/read-replicas/${validatePathParam('readReplicaId', request.readReplicaId)}/promote`
18735
+ }, unmarshalInstance);
18736
+
18539
18737
  /**
18540
18738
  * Create an endpoint for a Read Replica. Create a new endpoint for a Read
18541
18739
  * Replica. Read Replicas can have at most one direct access and one Private
@@ -20832,6 +21030,7 @@ const unmarshalEmail = data => {
20832
21030
  }
20833
21031
  return {
20834
21032
  createdAt: unmarshalDate(data.created_at),
21033
+ flags: data.flags,
20835
21034
  id: data.id,
20836
21035
  lastTries: unmarshalArrayOfObject(data.last_tries, unmarshalEmailTry),
20837
21036
  mailFrom: data.mail_from,
@@ -20974,7 +21173,7 @@ let API$4 = class API extends API$s {
20974
21173
  pageOfListEmails = (request = {}) => this.client.fetch({
20975
21174
  method: 'GET',
20976
21175
  path: `/transactional-email/v1alpha1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/emails`,
20977
- urlParams: urlParams(['domain_id', request.domainId], ['mail_from', request.mailFrom], ['mail_rcpt', request.mailRcpt], ['mail_to', request.mailTo], ['message_id', request.messageId], ['order_by', request.orderBy ?? 'created_at_desc'], ['page', request.page], ['page_size', request.pageSize ?? this.client.settings.defaultPageSize], ['project_id', request.projectId], ['search', request.search], ['since', request.since], ['statuses', request.statuses], ['subject', request.subject], ['until', request.until])
21176
+ urlParams: urlParams(['domain_id', request.domainId], ['flags', request.flags], ['mail_from', request.mailFrom], ['mail_rcpt', request.mailRcpt], ['mail_to', request.mailTo], ['message_id', request.messageId], ['order_by', request.orderBy ?? 'created_at_desc'], ['page', request.page], ['page_size', request.pageSize ?? this.client.settings.defaultPageSize], ['project_id', request.projectId], ['search', request.search], ['since', request.since], ['statuses', request.statuses], ['subject', request.subject], ['until', request.until])
20978
21177
  }, unmarshalListEmailsResponse);
20979
21178
 
20980
21179
  /**
@@ -22580,6 +22779,7 @@ const unmarshalHosting = data => {
22580
22779
  dnsStatus: data.dns_status,
22581
22780
  domain: data.domain,
22582
22781
  id: data.id,
22782
+ offerEndOfLife: data.offer_end_of_life,
22583
22783
  offerId: data.offer_id,
22584
22784
  offerName: data.offer_name,
22585
22785
  options: unmarshalArrayOfObject(data.options, unmarshalHostingOption),
@@ -22611,6 +22811,7 @@ const unmarshalOffer = data => {
22611
22811
  return {
22612
22812
  available: data.available,
22613
22813
  billingOperationPath: data.billing_operation_path,
22814
+ endOfLife: data.end_of_life,
22614
22815
  id: data.id,
22615
22816
  price: data.price ? unmarshalMoney(data.price) : undefined,
22616
22817
  product: data.product ? unmarshalOfferProduct(data.product) : undefined,
package/dist/index.d.ts CHANGED
@@ -1052,16 +1052,16 @@ declare const enrichForPagination: <K extends string, T extends PaginatedContent
1052
1052
  [Symbol.asyncIterator]: () => AsyncGenerator<T[K], void, void>;
1053
1053
  };
1054
1054
 
1055
- type ListProjectsRequestOrderBy = 'created_at_asc' | 'created_at_desc' | 'name_asc' | 'name_desc';
1055
+ type ListProjectsRequestOrderBy$1 = 'created_at_asc' | 'created_at_desc' | 'name_asc' | 'name_desc';
1056
1056
  /** List projects response. */
1057
- interface ListProjectsResponse {
1057
+ interface ListProjectsResponse$1 {
1058
1058
  /** Total number of Projects. */
1059
1059
  totalCount: number;
1060
1060
  /** Paginated returned Projects. */
1061
- projects: Project[];
1061
+ projects: Project$1[];
1062
1062
  }
1063
1063
  /** Project. */
1064
- interface Project {
1064
+ interface Project$1 {
1065
1065
  /** ID of the Project. */
1066
1066
  id: string;
1067
1067
  /** Name of the Project. */
@@ -1093,7 +1093,7 @@ type ListProjectsRequest = {
1093
1093
  /** Maximum number of Project per page. */
1094
1094
  pageSize?: number;
1095
1095
  /** Sort order of the returned Projects. */
1096
- orderBy?: ListProjectsRequestOrderBy;
1096
+ orderBy?: ListProjectsRequestOrderBy$1;
1097
1097
  /**
1098
1098
  * Project IDs to filter for. The results will be limited to any Projects with
1099
1099
  * an ID in this array.
@@ -1123,25 +1123,175 @@ type UpdateProjectRequest = {
1123
1123
  * User related data. This API allows you to manage projects.
1124
1124
  */
1125
1125
  declare class API$r extends API$s {
1126
+ /**
1127
+ * Create a new Project for an Organization. Deprecated in favor of Account
1128
+ * API v3. Generate a new Project for an Organization, specifying its
1129
+ * configuration including name and description.
1130
+ *
1131
+ * @deprecated
1132
+ * @param request - The request {@link CreateProjectRequest}
1133
+ * @returns A Promise of Project
1134
+ */
1135
+ createProject: (request?: Readonly<CreateProjectRequest>) => Promise<Project$1>;
1136
+ protected pageOfListProjects: (request?: Readonly<ListProjectsRequest>) => Promise<ListProjectsResponse$1>;
1137
+ /**
1138
+ * List all Projects of an Organization. Deprecated in favor of Account API
1139
+ * v3. List all Projects of an Organization. The response will include the
1140
+ * total number of Projects as well as their associated Organizations, names
1141
+ * and IDs. Other information include the creation and update date of the
1142
+ * Project.
1143
+ *
1144
+ * @deprecated
1145
+ * @param request - The request {@link ListProjectsRequest}
1146
+ * @returns A Promise of ListProjectsResponse
1147
+ */
1148
+ listProjects: (request?: Readonly<ListProjectsRequest>) => Promise<ListProjectsResponse$1> & {
1149
+ all: () => Promise<Project$1[]>;
1150
+ [Symbol.asyncIterator]: () => AsyncGenerator<Project$1[], void, void>;
1151
+ };
1152
+ /**
1153
+ * Get an existing Project. Deprecated in favor of Account API v3. Retrieve
1154
+ * information about an existing Project, specified by its Project ID. Its
1155
+ * full details, including ID, name and description, are returned in the
1156
+ * response object.
1157
+ *
1158
+ * @deprecated
1159
+ * @param request - The request {@link GetProjectRequest}
1160
+ * @returns A Promise of Project
1161
+ */
1162
+ getProject: (request?: Readonly<GetProjectRequest>) => Promise<Project$1>;
1163
+ /**
1164
+ * Delete an existing Project. Deprecated in favor of Account API v3. Delete
1165
+ * an existing Project, specified by its Project ID. The Project needs to be
1166
+ * empty (meaning there are no resources left in it) to be deleted
1167
+ * effectively. Note that deleting a Project is permanent, and cannot be
1168
+ * undone.
1169
+ *
1170
+ * @deprecated
1171
+ * @param request - The request {@link DeleteProjectRequest}
1172
+ */
1173
+ deleteProject: (request?: Readonly<DeleteProjectRequest>) => Promise<void>;
1174
+ /**
1175
+ * Update Project. Deprecated in favor of Account API v3. Update the
1176
+ * parameters of an existing Project, specified by its Project ID. These
1177
+ * parameters include the name and description.
1178
+ *
1179
+ * @deprecated
1180
+ * @param request - The request {@link UpdateProjectRequest}
1181
+ * @returns A Promise of Project
1182
+ */
1183
+ updateProject: (request?: Readonly<UpdateProjectRequest>) => Promise<Project$1>;
1184
+ }
1185
+
1186
+ type index_gen$o_CreateProjectRequest = CreateProjectRequest;
1187
+ type index_gen$o_DeleteProjectRequest = DeleteProjectRequest;
1188
+ type index_gen$o_GetProjectRequest = GetProjectRequest;
1189
+ type index_gen$o_ListProjectsRequest = ListProjectsRequest;
1190
+ type index_gen$o_UpdateProjectRequest = UpdateProjectRequest;
1191
+ declare namespace index_gen$o {
1192
+ export {
1193
+ API$r as API,
1194
+ index_gen$o_CreateProjectRequest as CreateProjectRequest,
1195
+ index_gen$o_DeleteProjectRequest as DeleteProjectRequest,
1196
+ index_gen$o_GetProjectRequest as GetProjectRequest,
1197
+ index_gen$o_ListProjectsRequest as ListProjectsRequest,
1198
+ ListProjectsRequestOrderBy$1 as ListProjectsRequestOrderBy,
1199
+ ListProjectsResponse$1 as ListProjectsResponse,
1200
+ Project$1 as Project,
1201
+ index_gen$o_UpdateProjectRequest as UpdateProjectRequest,
1202
+ };
1203
+ }
1204
+
1205
+ type ListProjectsRequestOrderBy = 'created_at_asc' | 'created_at_desc' | 'name_asc' | 'name_desc';
1206
+ /** List projects response. */
1207
+ interface ListProjectsResponse {
1208
+ /** Total number of Projects. */
1209
+ totalCount: number;
1210
+ /** Paginated returned Projects. */
1211
+ projects: Project[];
1212
+ }
1213
+ /** Project. */
1214
+ interface Project {
1215
+ /** ID of the Project. */
1216
+ id: string;
1217
+ /** Name of the Project. */
1218
+ name: string;
1219
+ /** Organization ID of the Project. */
1220
+ organizationId: string;
1221
+ /** Creation date of the Project. */
1222
+ createdAt?: Date;
1223
+ /** Update date of the Project. */
1224
+ updatedAt?: Date;
1225
+ /** Description of the Project. */
1226
+ description: string;
1227
+ }
1228
+ type ProjectApiCreateProjectRequest$1 = {
1229
+ /** Name of the Project. */
1230
+ name?: string;
1231
+ /** Organization ID of the Project. */
1232
+ organizationId?: string;
1233
+ /** Description of the Project. */
1234
+ description: string;
1235
+ };
1236
+ type ProjectApiListProjectsRequest$1 = {
1237
+ /** Organization ID of the Project. */
1238
+ organizationId?: string;
1239
+ /** Name of the Project. */
1240
+ name?: string;
1241
+ /** Page number for the returned Projects. */
1242
+ page?: number;
1243
+ /** Maximum number of Project per page. */
1244
+ pageSize?: number;
1245
+ /** Sort order of the returned Projects. */
1246
+ orderBy?: ListProjectsRequestOrderBy;
1247
+ /**
1248
+ * Project IDs to filter for. The results will be limited to any Projects with
1249
+ * an ID in this array.
1250
+ */
1251
+ projectIds?: string[];
1252
+ };
1253
+ type ProjectApiGetProjectRequest = {
1254
+ /** Project ID of the Project. */
1255
+ projectId?: string;
1256
+ };
1257
+ type ProjectApiDeleteProjectRequest = {
1258
+ /** Project ID of the Project. */
1259
+ projectId?: string;
1260
+ };
1261
+ type ProjectApiUpdateProjectRequest$1 = {
1262
+ /** Project ID of the Project. */
1263
+ projectId?: string;
1264
+ /** Name of the Project. */
1265
+ name?: string;
1266
+ /** Description of the Project. */
1267
+ description?: string;
1268
+ };
1269
+
1270
+ /**
1271
+ * Account API.
1272
+ *
1273
+ * This API allows you to manage projects.
1274
+ */
1275
+ declare class ProjectAPI extends API$s {
1126
1276
  /**
1127
1277
  * Create a new Project for an Organization. Generate a new Project for an
1128
1278
  * Organization, specifying its configuration including name and description.
1129
1279
  *
1130
- * @param request - The request {@link CreateProjectRequest}
1280
+ * @param request - The request {@link ProjectApiCreateProjectRequest}
1131
1281
  * @returns A Promise of Project
1132
1282
  */
1133
- createProject: (request?: Readonly<CreateProjectRequest>) => Promise<Project>;
1134
- protected pageOfListProjects: (request?: Readonly<ListProjectsRequest>) => Promise<ListProjectsResponse>;
1283
+ createProject: (request: Readonly<ProjectApiCreateProjectRequest$1>) => Promise<Project>;
1284
+ protected pageOfListProjects: (request?: Readonly<ProjectApiListProjectsRequest$1>) => Promise<ListProjectsResponse>;
1135
1285
  /**
1136
1286
  * List all Projects of an Organization. List all Projects of an Organization.
1137
1287
  * The response will include the total number of Projects as well as their
1138
- * associated Organizations, names and IDs. Other information include the
1288
+ * associated Organizations, names, and IDs. Other information includes the
1139
1289
  * creation and update date of the Project.
1140
1290
  *
1141
- * @param request - The request {@link ListProjectsRequest}
1291
+ * @param request - The request {@link ProjectApiListProjectsRequest}
1142
1292
  * @returns A Promise of ListProjectsResponse
1143
1293
  */
1144
- listProjects: (request?: Readonly<ListProjectsRequest>) => Promise<ListProjectsResponse> & {
1294
+ listProjects: (request?: Readonly<ProjectApiListProjectsRequest$1>) => Promise<ListProjectsResponse> & {
1145
1295
  all: () => Promise<Project[]>;
1146
1296
  [Symbol.asyncIterator]: () => AsyncGenerator<Project[], void, void>;
1147
1297
  };
@@ -1150,54 +1300,101 @@ declare class API$r extends API$s {
1150
1300
  * specified by its Project ID. Its full details, including ID, name and
1151
1301
  * description, are returned in the response object.
1152
1302
  *
1153
- * @param request - The request {@link GetProjectRequest}
1303
+ * @param request - The request {@link ProjectApiGetProjectRequest}
1154
1304
  * @returns A Promise of Project
1155
1305
  */
1156
- getProject: (request?: Readonly<GetProjectRequest>) => Promise<Project>;
1306
+ getProject: (request?: Readonly<ProjectApiGetProjectRequest>) => Promise<Project>;
1157
1307
  /**
1158
1308
  * Delete an existing Project. Delete an existing Project, specified by its
1159
1309
  * Project ID. The Project needs to be empty (meaning there are no resources
1160
1310
  * left in it) to be deleted effectively. Note that deleting a Project is
1161
1311
  * permanent, and cannot be undone.
1162
1312
  *
1163
- * @param request - The request {@link DeleteProjectRequest}
1313
+ * @param request - The request {@link ProjectApiDeleteProjectRequest}
1164
1314
  */
1165
- deleteProject: (request?: Readonly<DeleteProjectRequest>) => Promise<void>;
1315
+ deleteProject: (request?: Readonly<ProjectApiDeleteProjectRequest>) => Promise<void>;
1166
1316
  /**
1167
1317
  * Update Project. Update the parameters of an existing Project, specified by
1168
1318
  * its Project ID. These parameters include the name and description.
1169
1319
  *
1170
- * @param request - The request {@link UpdateProjectRequest}
1320
+ * @param request - The request {@link ProjectApiUpdateProjectRequest}
1171
1321
  * @returns A Promise of Project
1172
1322
  */
1173
- updateProject: (request?: Readonly<UpdateProjectRequest>) => Promise<Project>;
1323
+ updateProject: (request?: Readonly<ProjectApiUpdateProjectRequest$1>) => Promise<Project>;
1324
+ }
1325
+
1326
+ declare const ProjectApiCreateProjectRequest: {
1327
+ description: {
1328
+ maxLength: number;
1329
+ };
1330
+ name: {
1331
+ maxLength: number;
1332
+ minLength: number;
1333
+ pattern: RegExp;
1334
+ };
1335
+ };
1336
+ declare const ProjectApiListProjectsRequest: {
1337
+ name: {
1338
+ maxLength: number;
1339
+ minLength: number;
1340
+ pattern: RegExp;
1341
+ };
1342
+ page: {
1343
+ greaterThan: number;
1344
+ };
1345
+ pageSize: {
1346
+ greaterThanOrEqual: number;
1347
+ lessThanOrEqual: number;
1348
+ };
1349
+ };
1350
+ declare const ProjectApiUpdateProjectRequest: {
1351
+ description: {
1352
+ maxLength: number;
1353
+ };
1354
+ name: {
1355
+ maxLength: number;
1356
+ minLength: number;
1357
+ pattern: RegExp;
1358
+ };
1359
+ };
1360
+
1361
+ declare const validationRules_gen$6_ProjectApiCreateProjectRequest: typeof ProjectApiCreateProjectRequest;
1362
+ declare const validationRules_gen$6_ProjectApiListProjectsRequest: typeof ProjectApiListProjectsRequest;
1363
+ declare const validationRules_gen$6_ProjectApiUpdateProjectRequest: typeof ProjectApiUpdateProjectRequest;
1364
+ declare namespace validationRules_gen$6 {
1365
+ export {
1366
+ validationRules_gen$6_ProjectApiCreateProjectRequest as ProjectApiCreateProjectRequest,
1367
+ validationRules_gen$6_ProjectApiListProjectsRequest as ProjectApiListProjectsRequest,
1368
+ validationRules_gen$6_ProjectApiUpdateProjectRequest as ProjectApiUpdateProjectRequest,
1369
+ };
1174
1370
  }
1175
1371
 
1176
- type index_gen$n_CreateProjectRequest = CreateProjectRequest;
1177
- type index_gen$n_DeleteProjectRequest = DeleteProjectRequest;
1178
- type index_gen$n_GetProjectRequest = GetProjectRequest;
1179
- type index_gen$n_ListProjectsRequest = ListProjectsRequest;
1180
1372
  type index_gen$n_ListProjectsRequestOrderBy = ListProjectsRequestOrderBy;
1181
1373
  type index_gen$n_ListProjectsResponse = ListProjectsResponse;
1182
1374
  type index_gen$n_Project = Project;
1183
- type index_gen$n_UpdateProjectRequest = UpdateProjectRequest;
1375
+ type index_gen$n_ProjectAPI = ProjectAPI;
1376
+ declare const index_gen$n_ProjectAPI: typeof ProjectAPI;
1377
+ type index_gen$n_ProjectApiDeleteProjectRequest = ProjectApiDeleteProjectRequest;
1378
+ type index_gen$n_ProjectApiGetProjectRequest = ProjectApiGetProjectRequest;
1184
1379
  declare namespace index_gen$n {
1185
1380
  export {
1186
- API$r as API,
1187
- index_gen$n_CreateProjectRequest as CreateProjectRequest,
1188
- index_gen$n_DeleteProjectRequest as DeleteProjectRequest,
1189
- index_gen$n_GetProjectRequest as GetProjectRequest,
1190
- index_gen$n_ListProjectsRequest as ListProjectsRequest,
1191
1381
  index_gen$n_ListProjectsRequestOrderBy as ListProjectsRequestOrderBy,
1192
1382
  index_gen$n_ListProjectsResponse as ListProjectsResponse,
1193
1383
  index_gen$n_Project as Project,
1194
- index_gen$n_UpdateProjectRequest as UpdateProjectRequest,
1384
+ index_gen$n_ProjectAPI as ProjectAPI,
1385
+ ProjectApiCreateProjectRequest$1 as ProjectApiCreateProjectRequest,
1386
+ index_gen$n_ProjectApiDeleteProjectRequest as ProjectApiDeleteProjectRequest,
1387
+ index_gen$n_ProjectApiGetProjectRequest as ProjectApiGetProjectRequest,
1388
+ ProjectApiListProjectsRequest$1 as ProjectApiListProjectsRequest,
1389
+ ProjectApiUpdateProjectRequest$1 as ProjectApiUpdateProjectRequest,
1390
+ validationRules_gen$6 as ValidationRules,
1195
1391
  };
1196
1392
  }
1197
1393
 
1198
1394
  declare namespace index$t {
1199
1395
  export {
1200
- index_gen$n as v2,
1396
+ index_gen$o as v2,
1397
+ index_gen$n as v3,
1201
1398
  };
1202
1399
  }
1203
1400
 
@@ -14733,6 +14930,10 @@ interface ClusterType {
14733
14930
  sla: number;
14734
14931
  /** Resiliency offered by the offer. */
14735
14932
  resiliency: ClusterTypeResiliency;
14933
+ /** Max RAM allowed for the control plane. */
14934
+ memory: number;
14935
+ /** Returns information if this offer uses dedicated resources. */
14936
+ dedicated: boolean;
14736
14937
  }
14737
14938
  /** Create cluster request. auto upgrade. */
14738
14939
  interface CreateClusterRequestAutoUpgrade {
@@ -21188,7 +21389,7 @@ type NodeTypeGeneration = 'unknown_generation' | 'generation_v1' | 'generation_v
21188
21389
  type NodeTypeStock$1 = 'unknown' | 'low_stock' | 'out_of_stock' | 'available';
21189
21390
  type Permission = 'readonly' | 'readwrite' | 'all' | 'custom' | 'none';
21190
21391
  /** Read replica. status. */
21191
- type ReadReplicaStatus = 'unknown' | 'provisioning' | 'initializing' | 'ready' | 'deleting' | 'error' | 'locked' | 'configuring';
21392
+ type ReadReplicaStatus = 'unknown' | 'provisioning' | 'initializing' | 'ready' | 'deleting' | 'error' | 'locked' | 'configuring' | 'promoting';
21192
21393
  type SnapshotStatus = 'unknown' | 'creating' | 'ready' | 'restoring' | 'deleting' | 'error' | 'locked';
21193
21394
  type VolumeType = 'lssd' | 'bssd';
21194
21395
  interface ACLRule$1 {
@@ -22164,6 +22365,15 @@ type ResetReadReplicaRequest = {
22164
22365
  /** UUID of the Read Replica. */
22165
22366
  readReplicaId: string;
22166
22367
  };
22368
+ type PromoteReadReplicaRequest = {
22369
+ /**
22370
+ * Region to target. If none is passed will use default region from the
22371
+ * config.
22372
+ */
22373
+ region?: Region;
22374
+ /** UUID of the Read Replica. */
22375
+ readReplicaId: string;
22376
+ };
22167
22377
  type CreateReadReplicaEndpointRequest = {
22168
22378
  /**
22169
22379
  * Region to target. If none is passed will use default region from the
@@ -22829,6 +23039,14 @@ declare class API$9 extends API$s {
22829
23039
  * @returns A Promise of ReadReplica
22830
23040
  */
22831
23041
  resetReadReplica: (request: Readonly<ResetReadReplicaRequest>) => Promise<ReadReplica>;
23042
+ /**
23043
+ * Promote a Read Replica. Promote a Read Replica to Database Instance
23044
+ * automatically.
23045
+ *
23046
+ * @param request - The request {@link PromoteReadReplicaRequest}
23047
+ * @returns A Promise of Instance
23048
+ */
23049
+ promoteReadReplica: (request: Readonly<PromoteReadReplicaRequest>) => Promise<Instance>;
22832
23050
  /**
22833
23051
  * Create an endpoint for a Read Replica. Create a new endpoint for a Read
22834
23052
  * Replica. Read Replicas can have at most one direct access and one Private
@@ -23289,6 +23507,7 @@ type index_gen$9_Permission = Permission;
23289
23507
  type index_gen$9_PrepareInstanceLogsRequest = PrepareInstanceLogsRequest;
23290
23508
  type index_gen$9_PrepareInstanceLogsResponse = PrepareInstanceLogsResponse;
23291
23509
  type index_gen$9_Privilege = Privilege;
23510
+ type index_gen$9_PromoteReadReplicaRequest = PromoteReadReplicaRequest;
23292
23511
  type index_gen$9_PurgeInstanceLogsRequest = PurgeInstanceLogsRequest;
23293
23512
  declare const index_gen$9_READ_REPLICA_TRANSIENT_STATUSES: typeof READ_REPLICA_TRANSIENT_STATUSES;
23294
23513
  type index_gen$9_ReadReplica = ReadReplica;
@@ -23428,6 +23647,7 @@ declare namespace index_gen$9 {
23428
23647
  index_gen$9_PrepareInstanceLogsRequest as PrepareInstanceLogsRequest,
23429
23648
  index_gen$9_PrepareInstanceLogsResponse as PrepareInstanceLogsResponse,
23430
23649
  index_gen$9_Privilege as Privilege,
23650
+ index_gen$9_PromoteReadReplicaRequest as PromoteReadReplicaRequest,
23431
23651
  index_gen$9_PurgeInstanceLogsRequest as PurgeInstanceLogsRequest,
23432
23652
  index_gen$9_READ_REPLICA_TRANSIENT_STATUSES as READ_REPLICA_TRANSIENT_STATUSES,
23433
23653
  index_gen$9_ReadReplica as ReadReplica,
@@ -25846,6 +26066,7 @@ declare namespace index$4 {
25846
26066
 
25847
26067
  type DomainLastStatusRecordStatus = 'unknown_record_status' | 'valid' | 'invalid' | 'not_found';
25848
26068
  type DomainStatus = 'unknown' | 'checked' | 'unchecked' | 'invalid' | 'locked' | 'revoked' | 'pending';
26069
+ type EmailFlag = 'unknown_flag' | 'soft_bounce' | 'hard_bounce';
25849
26070
  type EmailRcptType = 'unknown_rcpt_type' | 'to' | 'cc' | 'bcc';
25850
26071
  type EmailStatus = 'unknown' | 'new' | 'sending' | 'sent' | 'failed' | 'canceled';
25851
26072
  type ListEmailsRequestOrderBy = 'created_at_desc' | 'created_at_asc' | 'updated_at_desc' | 'updated_at_asc' | 'status_desc' | 'status_asc' | 'mail_from_desc' | 'mail_from_asc' | 'mail_rcpt_desc' | 'mail_rcpt_asc' | 'subject_desc' | 'subject_asc';
@@ -25965,6 +26186,11 @@ interface Email {
25965
26186
  tryCount: number;
25966
26187
  /** Information about the last three attempts to send the email. */
25967
26188
  lastTries: EmailTry[];
26189
+ /**
26190
+ * Flags categorize emails. They allow you to obtain more information about
26191
+ * recurring errors, for example.
26192
+ */
26193
+ flags: EmailFlag[];
25968
26194
  }
25969
26195
  /** Email. try. */
25970
26196
  interface EmailTry {
@@ -26094,6 +26320,8 @@ type ListEmailsRequest = {
26094
26320
  search?: string;
26095
26321
  /** (Optional) List emails corresponding to specific criteria. */
26096
26322
  orderBy?: ListEmailsRequestOrderBy;
26323
+ /** (Optional) List emails containing only specific flags. */
26324
+ flags?: EmailFlag[];
26097
26325
  };
26098
26326
  type GetStatisticsRequest = {
26099
26327
  /**
@@ -26333,6 +26561,7 @@ type index_gen$4_DomainStatistics = DomainStatistics;
26333
26561
  type index_gen$4_DomainStatus = DomainStatus;
26334
26562
  declare const index_gen$4_EMAIL_TRANSIENT_STATUSES: typeof EMAIL_TRANSIENT_STATUSES;
26335
26563
  type index_gen$4_Email = Email;
26564
+ type index_gen$4_EmailFlag = EmailFlag;
26336
26565
  type index_gen$4_EmailRcptType = EmailRcptType;
26337
26566
  type index_gen$4_EmailStatus = EmailStatus;
26338
26567
  type index_gen$4_EmailTry = EmailTry;
@@ -26367,6 +26596,7 @@ declare namespace index_gen$4 {
26367
26596
  index_gen$4_DomainStatus as DomainStatus,
26368
26597
  index_gen$4_EMAIL_TRANSIENT_STATUSES as EMAIL_TRANSIENT_STATUSES,
26369
26598
  index_gen$4_Email as Email,
26599
+ index_gen$4_EmailFlag as EmailFlag,
26370
26600
  index_gen$4_EmailRcptType as EmailRcptType,
26371
26601
  index_gen$4_EmailStatus as EmailStatus,
26372
26602
  index_gen$4_EmailTry as EmailTry,
@@ -28532,6 +28762,8 @@ interface Hosting {
28532
28762
  cpanelUrls?: HostingCpanelUrls;
28533
28763
  /** Main Web Hosting cPanel username. */
28534
28764
  username: string;
28765
+ /** Indicates if the hosting offer has reached its end of life. */
28766
+ offerEndOfLife: boolean;
28535
28767
  /** Region where the Web Hosting plan is hosted. */
28536
28768
  region: Region;
28537
28769
  }
@@ -28584,6 +28816,8 @@ interface Offer {
28584
28816
  available: boolean;
28585
28817
  /** Quota warnings, if the offer is not available for the specified hosting_id. */
28586
28818
  quotaWarnings: OfferQuotaWarning[];
28819
+ /** Indicates if the offer has reached its end of life. */
28820
+ endOfLife: boolean;
28587
28821
  }
28588
28822
  /** Offer. product. */
28589
28823
  interface OfferProduct {
@@ -1,4 +1,4 @@
1
- const version = 'v1.18.0';
1
+ const version = 'v1.20.0';
2
2
  const userAgent = `scaleway-sdk-js/${version}`;
3
3
 
4
4
  export { userAgent, version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scaleway/sdk",
3
- "version": "1.19.0",
3
+ "version": "1.21.0",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Scaleway SDK.",
6
6
  "keywords": [
@@ -35,5 +35,5 @@
35
35
  "bundledDependencies": [
36
36
  "@scaleway/random-name"
37
37
  ],
38
- "gitHead": "3b57b4bfa4f59a53ad81f7cff21fc3fdb2bfc0e2"
38
+ "gitHead": "1c7dc52ba566eb458d324d3939dc35121722a2b0"
39
39
  }