@scaleway/sdk 2.45.0 → 2.46.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.
Files changed (110) hide show
  1. package/dist/api/account/index.gen.d.ts +6 -0
  2. package/dist/api/applesilicon/index.gen.d.ts +5 -0
  3. package/dist/api/baremetal/index.gen.d.ts +5 -0
  4. package/dist/api/baremetal/v1/index.gen.d.ts +1 -1
  5. package/dist/api/baremetal/v1/marshalling.gen.cjs +61 -1
  6. package/dist/api/baremetal/v1/marshalling.gen.js +61 -1
  7. package/dist/api/baremetal/v1/types.gen.d.ts +120 -1
  8. package/dist/api/billing/index.gen.d.ts +6 -0
  9. package/dist/api/block/index.gen.d.ts +5 -0
  10. package/dist/api/cockpit/index.gen.d.ts +6 -0
  11. package/dist/api/cockpit/v1/types.gen.d.ts +1 -1
  12. package/dist/api/container/index.gen.d.ts +5 -0
  13. package/dist/api/container/v1beta1/api.gen.cjs +0 -23
  14. package/dist/api/container/v1beta1/api.gen.d.ts +1 -9
  15. package/dist/api/container/v1beta1/api.gen.js +1 -24
  16. package/dist/api/container/v1beta1/index.gen.d.ts +1 -1
  17. package/dist/api/container/v1beta1/types.gen.d.ts +0 -12
  18. package/dist/api/dedibox/index.gen.d.ts +5 -0
  19. package/dist/api/document_db/index.gen.d.ts +5 -0
  20. package/dist/api/domain/index.gen.d.ts +5 -0
  21. package/dist/api/edge_services/index.gen.d.ts +5 -0
  22. package/dist/api/flexibleip/index.gen.d.ts +5 -0
  23. package/dist/api/function/index.gen.d.ts +5 -0
  24. package/dist/api/function/v1beta1/api.gen.cjs +0 -23
  25. package/dist/api/function/v1beta1/api.gen.d.ts +1 -9
  26. package/dist/api/function/v1beta1/api.gen.js +1 -24
  27. package/dist/api/function/v1beta1/index.gen.d.ts +1 -1
  28. package/dist/api/function/v1beta1/types.gen.d.ts +0 -12
  29. package/dist/api/iam/index.gen.d.ts +5 -0
  30. package/dist/api/iam/v1alpha1/api.gen.cjs +1 -1
  31. package/dist/api/iam/v1alpha1/api.gen.d.ts +1 -1
  32. package/dist/api/iam/v1alpha1/api.gen.js +1 -1
  33. package/dist/api/iam/v1alpha1/index.gen.d.ts +1 -1
  34. package/dist/api/iam/v1alpha1/marshalling.gen.cjs +16 -3
  35. package/dist/api/iam/v1alpha1/marshalling.gen.js +16 -3
  36. package/dist/api/iam/v1alpha1/types.gen.d.ts +25 -3
  37. package/dist/api/iam/v1alpha1/validation-rules.gen.cjs +12 -0
  38. package/dist/api/iam/v1alpha1/validation-rules.gen.d.ts +11 -0
  39. package/dist/api/iam/v1alpha1/validation-rules.gen.js +12 -0
  40. package/dist/api/index.gen.d.ts +43 -0
  41. package/dist/api/inference/index.gen.d.ts +5 -0
  42. package/dist/api/instance/index.gen.d.ts +5 -0
  43. package/dist/api/instance/v1/marshalling.gen.cjs +1 -0
  44. package/dist/api/instance/v1/marshalling.gen.js +1 -0
  45. package/dist/api/instance/v1/types.gen.d.ts +22 -8
  46. package/dist/api/instance/v1/types.private.gen.d.ts +2 -2
  47. package/dist/api/iot/index.gen.d.ts +5 -0
  48. package/dist/api/ipam/index.gen.d.ts +5 -0
  49. package/dist/api/ipam/v1/api.gen.cjs +67 -2
  50. package/dist/api/ipam/v1/api.gen.d.ts +38 -3
  51. package/dist/api/ipam/v1/api.gen.js +68 -3
  52. package/dist/api/ipam/v1/index.gen.d.ts +1 -1
  53. package/dist/api/ipam/v1/marshalling.gen.cjs +18 -0
  54. package/dist/api/ipam/v1/marshalling.gen.d.ts +4 -1
  55. package/dist/api/ipam/v1/marshalling.gen.js +18 -0
  56. package/dist/api/ipam/v1/types.gen.d.ts +59 -5
  57. package/dist/api/ipfs/index.gen.d.ts +5 -0
  58. package/dist/api/jobs/index.gen.d.ts +5 -0
  59. package/dist/api/k8s/index.gen.d.ts +5 -0
  60. package/dist/api/k8s/v1/api.gen.cjs +17 -0
  61. package/dist/api/k8s/v1/api.gen.d.ts +10 -1
  62. package/dist/api/k8s/v1/api.gen.js +17 -0
  63. package/dist/api/k8s/v1/index.gen.d.ts +1 -1
  64. package/dist/api/k8s/v1/types.gen.d.ts +13 -0
  65. package/dist/api/key_manager/index.gen.d.ts +5 -0
  66. package/dist/api/key_manager/v1alpha1/api.gen.cjs +31 -0
  67. package/dist/api/key_manager/v1alpha1/api.gen.d.ts +17 -1
  68. package/dist/api/key_manager/v1alpha1/api.gen.js +32 -1
  69. package/dist/api/key_manager/v1alpha1/index.gen.d.ts +1 -1
  70. package/dist/api/key_manager/v1alpha1/marshalling.gen.cjs +7 -0
  71. package/dist/api/key_manager/v1alpha1/marshalling.gen.d.ts +2 -1
  72. package/dist/api/key_manager/v1alpha1/marshalling.gen.js +7 -0
  73. package/dist/api/key_manager/v1alpha1/types.gen.d.ts +33 -0
  74. package/dist/api/lb/index.gen.d.ts +5 -0
  75. package/dist/api/llm_inference/index.gen.d.ts +5 -0
  76. package/dist/api/marketplace/index.gen.d.ts +5 -0
  77. package/dist/api/mnq/index.gen.d.ts +5 -0
  78. package/dist/api/qaas/index.gen.d.ts +5 -0
  79. package/dist/api/qaas/v1alpha1/api.gen.d.ts +256 -0
  80. package/dist/api/qaas/v1alpha1/content.gen.d.ts +7 -0
  81. package/dist/api/qaas/v1alpha1/index.gen.d.ts +4 -0
  82. package/dist/api/qaas/v1alpha1/marshalling.gen.d.ts +22 -0
  83. package/dist/api/qaas/v1alpha1/types.gen.d.ts +470 -0
  84. package/dist/api/qaas/v1alpha1/validation-rules.gen.d.ts +10 -0
  85. package/dist/api/rdb/index.gen.d.ts +5 -0
  86. package/dist/api/redis/index.gen.d.ts +5 -0
  87. package/dist/api/registry/index.gen.d.ts +5 -0
  88. package/dist/api/secret/index.gen.d.ts +6 -0
  89. package/dist/api/serverless_sqldb/index.gen.d.ts +5 -0
  90. package/dist/api/tem/index.gen.d.ts +5 -0
  91. package/dist/api/tem/v1alpha1/content.gen.cjs +4 -1
  92. package/dist/api/tem/v1alpha1/content.gen.js +4 -1
  93. package/dist/api/tem/v1alpha1/types.gen.d.ts +1 -1
  94. package/dist/api/test/index.gen.d.ts +5 -0
  95. package/dist/api/vpc/index.gen.d.ts +6 -0
  96. package/dist/api/vpc/v2/marshalling.gen.cjs +1 -0
  97. package/dist/api/vpc/v2/marshalling.gen.js +1 -0
  98. package/dist/api/vpc/v2/types.gen.d.ts +3 -0
  99. package/dist/api/vpcgw/index.gen.d.ts +5 -0
  100. package/dist/api/webhosting/index.gen.d.ts +6 -0
  101. package/dist/api/webhosting/v1/api.gen.d.ts +326 -0
  102. package/dist/api/webhosting/v1/content.gen.d.ts +5 -0
  103. package/dist/api/webhosting/v1/index.gen.d.ts +4 -0
  104. package/dist/api/webhosting/v1/marshalling.gen.d.ts +29 -0
  105. package/dist/api/webhosting/v1/types.gen.d.ts +693 -0
  106. package/dist/api/webhosting/v1/validation-rules.gen.d.ts +72 -0
  107. package/dist/scw/constants.cjs +1 -1
  108. package/dist/scw/constants.d.ts +2 -2
  109. package/dist/scw/constants.js +1 -1
  110. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  import { API as ParentAPI } from '../../../bridge';
2
2
  import type { Region } from '../../../bridge';
3
- import type { BookIPRequest, GetIPRequest, IP, ListIPsRequest, ListIPsResponse, ReleaseIPRequest, ReleaseIPSetRequest, UpdateIPRequest } from './types.gen';
3
+ import type { AttachIPRequest, BookIPRequest, DetachIPRequest, GetIPRequest, IP, ListIPsRequest, ListIPsResponse, MoveIPRequest, ReleaseIPRequest, ReleaseIPSetRequest, UpdateIPRequest } from './types.gen';
4
4
  /**
5
5
  * IPAM API.
6
6
  *
@@ -11,8 +11,8 @@ export declare class API extends ParentAPI {
11
11
  /** Lists the available regions of the API. */
12
12
  static readonly LOCALITIES: Region[];
13
13
  /**
14
- * Book a new IP. Book a new IP from the specified source. Currently IPs can
15
- * only be booked from a Private Network.
14
+ * Reserve a new IP. Reserve a new IP from the specified source. Currently IPs
15
+ * can only be reserved from a Private Network.
16
16
  *
17
17
  * @param request - The request {@link BookIPRequest}
18
18
  * @returns A Promise of IP
@@ -55,4 +55,39 @@ export declare class API extends ParentAPI {
55
55
  all: () => Promise<IP[]>;
56
56
  [Symbol.asyncIterator]: () => AsyncGenerator<IP[], void, void>;
57
57
  };
58
+ /**
59
+ * Attach IP to custom resource. Attach an existing reserved IP from a Private
60
+ * Network subnet to a custom, named resource via its MAC address. An example
61
+ * of a custom resource is a virtual machine hosted on an Elastic Metal
62
+ * server. Do not use this method for attaching IP addresses to standard
63
+ * Scaleway resources as it will fail - see the relevant product API for an
64
+ * equivalent method.
65
+ *
66
+ * @param request - The request {@link AttachIPRequest}
67
+ * @returns A Promise of IP
68
+ */
69
+ attachIP: (request: Readonly<AttachIPRequest>) => Promise<IP>;
70
+ /**
71
+ * Detach IP from a custom resource. Detach a private IP from a custom
72
+ * resource. An example of a custom resource is a virtual machine hosted on an
73
+ * Elastic Metal server. Do not use this method for detaching IP addresses
74
+ * from standard Scaleway resources (e.g. Instances, Load Balancers) as it
75
+ * will fail - see the relevant product API for an equivalent method.
76
+ *
77
+ * @param request - The request {@link DetachIPRequest}
78
+ * @returns A Promise of IP
79
+ */
80
+ detachIP: (request: Readonly<DetachIPRequest>) => Promise<IP>;
81
+ /**
82
+ * Move IP to a custom resource. Move an existing reserved private IP from one
83
+ * custom resource (e.g. a virtual machine hosted on an Elastic Metal server)
84
+ * to another custom resource. This will detach it from the first resource,
85
+ * and attach it to the second. Do not use this method for moving IP addresses
86
+ * between standard Scaleway resources (e.g. Instances, Load Balancers) as it
87
+ * will fail - see the relevant product API for an equivalent method.
88
+ *
89
+ * @param request - The request {@link MoveIPRequest}
90
+ * @returns A Promise of IP
91
+ */
92
+ moveIP: (request: Readonly<MoveIPRequest>) => Promise<IP>;
58
93
  }
@@ -2,7 +2,7 @@ import { API as API$1 } from "../../../scw/api.js";
2
2
  import { validatePathParam, urlParams, resolveOneOf } from "../../../helpers/marshalling.js";
3
3
  import "../../../vendor/base64/index.js";
4
4
  import { enrichForPagination } from "../../../scw/fetch/resource-paginator.js";
5
- import { marshalBookIPRequest, unmarshalIP, marshalReleaseIPSetRequest, marshalUpdateIPRequest, unmarshalListIPsResponse } from "./marshalling.gen.js";
5
+ import { marshalBookIPRequest, unmarshalIP, marshalReleaseIPSetRequest, marshalUpdateIPRequest, unmarshalListIPsResponse, marshalAttachIPRequest, marshalDetachIPRequest, marshalMoveIPRequest } from "./marshalling.gen.js";
6
6
  const jsonContentHeaders = {
7
7
  "Content-Type": "application/json; charset=utf-8"
8
8
  };
@@ -10,8 +10,8 @@ class API extends API$1 {
10
10
  /** Lists the available regions of the API. */
11
11
  static LOCALITIES = ["fr-par", "nl-ams", "pl-waw"];
12
12
  /**
13
- * Book a new IP. Book a new IP from the specified source. Currently IPs can
14
- * only be booked from a Private Network.
13
+ * Reserve a new IP. Reserve a new IP from the specified source. Currently IPs
14
+ * can only be reserved from a Private Network.
15
15
  *
16
16
  * @param request - The request {@link BookIPRequest}
17
17
  * @returns A Promise of IP
@@ -121,6 +121,71 @@ class API extends API$1 {
121
121
  * @returns A Promise of ListIPsResponse
122
122
  */
123
123
  listIPs = (request = {}) => enrichForPagination("ips", this.pageOfListIPs, request);
124
+ /**
125
+ * Attach IP to custom resource. Attach an existing reserved IP from a Private
126
+ * Network subnet to a custom, named resource via its MAC address. An example
127
+ * of a custom resource is a virtual machine hosted on an Elastic Metal
128
+ * server. Do not use this method for attaching IP addresses to standard
129
+ * Scaleway resources as it will fail - see the relevant product API for an
130
+ * equivalent method.
131
+ *
132
+ * @param request - The request {@link AttachIPRequest}
133
+ * @returns A Promise of IP
134
+ */
135
+ attachIP = (request) => this.client.fetch(
136
+ {
137
+ body: JSON.stringify(
138
+ marshalAttachIPRequest(request, this.client.settings)
139
+ ),
140
+ headers: jsonContentHeaders,
141
+ method: "POST",
142
+ path: `/ipam/v1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/ips/${validatePathParam("ipId", request.ipId)}/attach`
143
+ },
144
+ unmarshalIP
145
+ );
146
+ /**
147
+ * Detach IP from a custom resource. Detach a private IP from a custom
148
+ * resource. An example of a custom resource is a virtual machine hosted on an
149
+ * Elastic Metal server. Do not use this method for detaching IP addresses
150
+ * from standard Scaleway resources (e.g. Instances, Load Balancers) as it
151
+ * will fail - see the relevant product API for an equivalent method.
152
+ *
153
+ * @param request - The request {@link DetachIPRequest}
154
+ * @returns A Promise of IP
155
+ */
156
+ detachIP = (request) => this.client.fetch(
157
+ {
158
+ body: JSON.stringify(
159
+ marshalDetachIPRequest(request, this.client.settings)
160
+ ),
161
+ headers: jsonContentHeaders,
162
+ method: "POST",
163
+ path: `/ipam/v1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/ips/${validatePathParam("ipId", request.ipId)}/detach`
164
+ },
165
+ unmarshalIP
166
+ );
167
+ /**
168
+ * Move IP to a custom resource. Move an existing reserved private IP from one
169
+ * custom resource (e.g. a virtual machine hosted on an Elastic Metal server)
170
+ * to another custom resource. This will detach it from the first resource,
171
+ * and attach it to the second. Do not use this method for moving IP addresses
172
+ * between standard Scaleway resources (e.g. Instances, Load Balancers) as it
173
+ * will fail - see the relevant product API for an equivalent method.
174
+ *
175
+ * @param request - The request {@link MoveIPRequest}
176
+ * @returns A Promise of IP
177
+ */
178
+ moveIP = (request) => this.client.fetch(
179
+ {
180
+ body: JSON.stringify(
181
+ marshalMoveIPRequest(request, this.client.settings)
182
+ ),
183
+ headers: jsonContentHeaders,
184
+ method: "POST",
185
+ path: `/ipam/v1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/ips/${validatePathParam("ipId", request.ipId)}/move`
186
+ },
187
+ unmarshalIP
188
+ );
124
189
  }
125
190
  export {
126
191
  API
@@ -1,3 +1,3 @@
1
1
  export { API } from './api.gen';
2
- export type { BookIPRequest, GetIPRequest, IP, ListIPsRequest, ListIPsRequestOrderBy, ListIPsResponse, ReleaseIPRequest, ReleaseIPSetRequest, Resource, ResourceType, Reverse, Source, UpdateIPRequest, } from './types.gen';
2
+ export type { AttachIPRequest, BookIPRequest, CustomResource, DetachIPRequest, GetIPRequest, IP, ListIPsRequest, ListIPsRequestOrderBy, ListIPsResponse, MoveIPRequest, ReleaseIPRequest, ReleaseIPSetRequest, Resource, ResourceType, Reverse, Source, UpdateIPRequest, } from './types.gen';
3
3
  export * as ValidationRules from './validation-rules.gen';
@@ -71,6 +71,13 @@ const unmarshalListIPsResponse = (data) => {
71
71
  totalCount: data.total_count
72
72
  };
73
73
  };
74
+ const marshalCustomResource = (request, defaults) => ({
75
+ mac_address: request.macAddress,
76
+ name: request.name
77
+ });
78
+ const marshalAttachIPRequest = (request, defaults) => ({
79
+ resource: marshalCustomResource(request.resource)
80
+ });
74
81
  const marshalSource = (request, defaults) => ({
75
82
  ...marshalling.resolveOneOf([
76
83
  { param: "zonal", value: request.zonal },
@@ -82,9 +89,17 @@ const marshalBookIPRequest = (request, defaults) => ({
82
89
  address: request.address,
83
90
  is_ipv6: request.isIpv6,
84
91
  project_id: request.projectId ?? defaults.defaultProjectId,
92
+ resource: request.resource !== void 0 ? marshalCustomResource(request.resource) : void 0,
85
93
  source: marshalSource(request.source),
86
94
  tags: request.tags
87
95
  });
96
+ const marshalDetachIPRequest = (request, defaults) => ({
97
+ resource: marshalCustomResource(request.resource)
98
+ });
99
+ const marshalMoveIPRequest = (request, defaults) => ({
100
+ from_resource: marshalCustomResource(request.fromResource),
101
+ to_resource: request.toResource !== void 0 ? marshalCustomResource(request.toResource) : void 0
102
+ });
88
103
  const marshalReleaseIPSetRequest = (request, defaults) => ({
89
104
  ip_ids: request.ipIds
90
105
  });
@@ -96,7 +111,10 @@ const marshalUpdateIPRequest = (request, defaults) => ({
96
111
  reverses: request.reverses !== void 0 ? request.reverses.map((elt) => marshalReverse(elt)) : void 0,
97
112
  tags: request.tags
98
113
  });
114
+ exports.marshalAttachIPRequest = marshalAttachIPRequest;
99
115
  exports.marshalBookIPRequest = marshalBookIPRequest;
116
+ exports.marshalDetachIPRequest = marshalDetachIPRequest;
117
+ exports.marshalMoveIPRequest = marshalMoveIPRequest;
100
118
  exports.marshalReleaseIPSetRequest = marshalReleaseIPSetRequest;
101
119
  exports.marshalUpdateIPRequest = marshalUpdateIPRequest;
102
120
  exports.unmarshalIP = unmarshalIP;
@@ -1,7 +1,10 @@
1
1
  import type { DefaultValues } from '../../../bridge';
2
- import type { BookIPRequest, IP, ListIPsResponse, ReleaseIPSetRequest, UpdateIPRequest } from './types.gen';
2
+ import type { AttachIPRequest, BookIPRequest, DetachIPRequest, IP, ListIPsResponse, MoveIPRequest, ReleaseIPSetRequest, UpdateIPRequest } from './types.gen';
3
3
  export declare const unmarshalIP: (data: unknown) => IP;
4
4
  export declare const unmarshalListIPsResponse: (data: unknown) => ListIPsResponse;
5
+ export declare const marshalAttachIPRequest: (request: AttachIPRequest, defaults: DefaultValues) => Record<string, unknown>;
5
6
  export declare const marshalBookIPRequest: (request: BookIPRequest, defaults: DefaultValues) => Record<string, unknown>;
7
+ export declare const marshalDetachIPRequest: (request: DetachIPRequest, defaults: DefaultValues) => Record<string, unknown>;
8
+ export declare const marshalMoveIPRequest: (request: MoveIPRequest, defaults: DefaultValues) => Record<string, unknown>;
6
9
  export declare const marshalReleaseIPSetRequest: (request: ReleaseIPSetRequest, defaults: DefaultValues) => Record<string, unknown>;
7
10
  export declare const marshalUpdateIPRequest: (request: UpdateIPRequest, defaults: DefaultValues) => Record<string, unknown>;
@@ -69,6 +69,13 @@ const unmarshalListIPsResponse = (data) => {
69
69
  totalCount: data.total_count
70
70
  };
71
71
  };
72
+ const marshalCustomResource = (request, defaults) => ({
73
+ mac_address: request.macAddress,
74
+ name: request.name
75
+ });
76
+ const marshalAttachIPRequest = (request, defaults) => ({
77
+ resource: marshalCustomResource(request.resource)
78
+ });
72
79
  const marshalSource = (request, defaults) => ({
73
80
  ...resolveOneOf([
74
81
  { param: "zonal", value: request.zonal },
@@ -80,9 +87,17 @@ const marshalBookIPRequest = (request, defaults) => ({
80
87
  address: request.address,
81
88
  is_ipv6: request.isIpv6,
82
89
  project_id: request.projectId ?? defaults.defaultProjectId,
90
+ resource: request.resource !== void 0 ? marshalCustomResource(request.resource) : void 0,
83
91
  source: marshalSource(request.source),
84
92
  tags: request.tags
85
93
  });
94
+ const marshalDetachIPRequest = (request, defaults) => ({
95
+ resource: marshalCustomResource(request.resource)
96
+ });
97
+ const marshalMoveIPRequest = (request, defaults) => ({
98
+ from_resource: marshalCustomResource(request.fromResource),
99
+ to_resource: request.toResource !== void 0 ? marshalCustomResource(request.toResource) : void 0
100
+ });
86
101
  const marshalReleaseIPSetRequest = (request, defaults) => ({
87
102
  ip_ids: request.ipIds
88
103
  });
@@ -95,7 +110,10 @@ const marshalUpdateIPRequest = (request, defaults) => ({
95
110
  tags: request.tags
96
111
  });
97
112
  export {
113
+ marshalAttachIPRequest,
98
114
  marshalBookIPRequest,
115
+ marshalDetachIPRequest,
116
+ marshalMoveIPRequest,
99
117
  marshalReleaseIPSetRequest,
100
118
  marshalUpdateIPRequest,
101
119
  unmarshalIP,
@@ -1,6 +1,6 @@
1
1
  import type { Region, Zone } from '../../../bridge';
2
2
  export type ListIPsRequestOrderBy = 'created_at_desc' | 'created_at_asc' | 'updated_at_desc' | 'updated_at_asc' | 'attached_at_desc' | 'attached_at_asc';
3
- export type ResourceType = 'unknown_type' | 'instance_server' | 'instance_ip' | 'instance_private_nic' | 'lb_server' | 'fip_ip' | 'vpc_gateway' | 'vpc_gateway_network' | 'k8s_node' | 'k8s_cluster' | 'rdb_instance' | 'redis_cluster' | 'baremetal_server' | 'baremetal_private_nic' | 'llm_deployment';
3
+ export type ResourceType = 'unknown_type' | 'custom' | 'instance_server' | 'instance_ip' | 'instance_private_nic' | 'lb_server' | 'fip_ip' | 'vpc_gateway' | 'vpc_gateway_network' | 'k8s_node' | 'k8s_cluster' | 'rdb_instance' | 'redis_cluster' | 'baremetal_server' | 'baremetal_private_nic' | 'llm_deployment';
4
4
  export interface Resource {
5
5
  /** Type of resource the IP is attached to. */
6
6
  type: ResourceType;
@@ -43,6 +43,15 @@ export interface Source {
43
43
  */
44
44
  subnetId?: string;
45
45
  }
46
+ export interface CustomResource {
47
+ /** MAC address of the custom resource. */
48
+ macAddress: string;
49
+ /**
50
+ * When the resource is in a Private Network, a DNS record is available to
51
+ * resolve the resource name.
52
+ */
53
+ name?: string;
54
+ }
46
55
  export interface IP {
47
56
  /** IP ID. */
48
57
  id: string;
@@ -52,11 +61,11 @@ export interface IP {
52
61
  projectId: string;
53
62
  /** Defines whether the IP is an IPv6 (false = IPv4). */
54
63
  isIpv6: boolean;
55
- /** Date the IP was booked. */
64
+ /** Date the IP was reserved. */
56
65
  createdAt?: Date;
57
66
  /** Date the IP was last modified. */
58
67
  updatedAt?: Date;
59
- /** Source pool where the IP was booked in. */
68
+ /** Source pool where the IP was reserved in. */
60
69
  source?: Source;
61
70
  /** Resource which the IP is attached to. */
62
71
  resource?: Resource;
@@ -69,6 +78,17 @@ export interface IP {
69
78
  /** Zone of the IP, if zonal. */
70
79
  zone?: Zone;
71
80
  }
81
+ export type AttachIPRequest = {
82
+ /**
83
+ * Region to target. If none is passed will use default region from the
84
+ * config.
85
+ */
86
+ region?: Region;
87
+ /** IP ID. */
88
+ ipId: string;
89
+ /** Custom resource to be attached to the IP. */
90
+ resource: CustomResource;
91
+ };
72
92
  export type BookIPRequest = {
73
93
  /**
74
94
  * Region to target. If none is passed will use default region from the
@@ -80,18 +100,39 @@ export type BookIPRequest = {
80
100
  * Private Network's Project.
81
101
  */
82
102
  projectId?: string;
83
- /** Source in which to book the IP. Not all sources are available for booking. */
103
+ /**
104
+ * Source in which to reserve the IP. Not all sources are available for
105
+ * reservation.
106
+ */
84
107
  source: Source;
85
108
  /** Request an IPv6 instead of an IPv4. */
86
109
  isIpv6: boolean;
87
110
  /**
88
111
  * The requested address should not include the subnet mask (/suffix). Note
89
112
  * that only the Private Network source allows you to pick a specific IP. If
90
- * the requested IP is already booked, then the call will fail.
113
+ * the requested IP is already reserved, then the call will fail.
91
114
  */
92
115
  address?: string;
93
116
  /** Tags for the IP. */
94
117
  tags?: string[];
118
+ /**
119
+ * Custom resource to attach to the IP being reserved. An example of a custom
120
+ * resource is a virtual machine hosted on an Elastic Metal server. Do not use
121
+ * this for attaching IP addresses to standard Scaleway resources, as it will
122
+ * fail - instead, see the relevant product API for an equivalent method.
123
+ */
124
+ resource?: CustomResource;
125
+ };
126
+ export type DetachIPRequest = {
127
+ /**
128
+ * Region to target. If none is passed will use default region from the
129
+ * config.
130
+ */
131
+ region?: Region;
132
+ /** IP ID. */
133
+ ipId: string;
134
+ /** Custom resource currently attached to the IP. */
135
+ resource: CustomResource;
95
136
  };
96
137
  export type GetIPRequest = {
97
138
  /**
@@ -187,6 +228,19 @@ export interface ListIPsResponse {
187
228
  totalCount: number;
188
229
  ips: IP[];
189
230
  }
231
+ export type MoveIPRequest = {
232
+ /**
233
+ * Region to target. If none is passed will use default region from the
234
+ * config.
235
+ */
236
+ region?: Region;
237
+ /** IP ID. */
238
+ ipId: string;
239
+ /** Custom resource currently attached to the IP. */
240
+ fromResource: CustomResource;
241
+ /** Custom resource to be attached to the IP. */
242
+ toResource?: CustomResource;
243
+ };
190
244
  export type ReleaseIPRequest = {
191
245
  /**
192
246
  * Region to target. If none is passed will use default region from the
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This file is automatically generated from /scripts/generate.js PLEASE DO NOT
3
+ * EDIT HERE
4
+ */
5
+ export * as v1alpha1 from './v1alpha1/index.gen';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This file is automatically generated from /scripts/generate.js PLEASE DO NOT
3
+ * EDIT HERE
4
+ */
5
+ export * as v1alpha1 from './v1alpha1/index.gen';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This file is automatically generated from /scripts/generate.js PLEASE DO NOT
3
+ * EDIT HERE
4
+ */
5
+ export * as v1 from './v1/index';
@@ -227,6 +227,23 @@ class API extends api.API {
227
227
  },
228
228
  marshalling_gen.unmarshalCluster
229
229
  );
230
+ /**
231
+ * Migrate a cluster to SBS CSI. Enable the latest CSI compatible with
232
+ * Scaleway Block Storage (SBS) and migrate all existing
233
+ * PersistentVolumes/VolumeSnapshotContents to SBS.
234
+ *
235
+ * @param request - The request {@link MigrateClusterToSBSCSIRequest}
236
+ * @returns A Promise of Cluster
237
+ */
238
+ migrateClusterToSBSCSI = (request) => this.client.fetch(
239
+ {
240
+ body: "{}",
241
+ headers: jsonContentHeaders,
242
+ method: "POST",
243
+ path: `/k8s/v1/regions/${marshalling.validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/clusters/${marshalling.validatePathParam("clusterId", request.clusterId)}/migrate-to-sbs-csi`
244
+ },
245
+ marshalling_gen.unmarshalCluster
246
+ );
230
247
  pageOfListPools = (request) => this.client.fetch(
231
248
  {
232
249
  method: "GET",
@@ -1,6 +1,6 @@
1
1
  import { API as ParentAPI } from '../../../bridge';
2
2
  import type { Region, WaitForOptions } from '../../../bridge';
3
- import type { AuthExternalNodeRequest, Cluster, CreateClusterRequest, CreateExternalNodeRequest, CreatePoolRequest, DeleteClusterRequest, DeleteNodeRequest, DeletePoolRequest, ExternalNode, ExternalNodeAuth, GetClusterKubeConfigRequest, GetClusterRequest, GetNodeMetadataRequest, GetNodeRequest, GetPoolRequest, GetVersionRequest, ListClusterAvailableTypesRequest, ListClusterAvailableTypesResponse, ListClusterAvailableVersionsRequest, ListClusterAvailableVersionsResponse, ListClusterTypesRequest, ListClusterTypesResponse, ListClustersRequest, ListClustersResponse, ListNodesRequest, ListNodesResponse, ListPoolsRequest, ListPoolsResponse, ListVersionsRequest, ListVersionsResponse, MigrateClusterToRoutedIPsRequest, Node, NodeMetadata, Pool, RebootNodeRequest, ReplaceNodeRequest, ResetClusterAdminTokenRequest, SetClusterTypeRequest, UpdateClusterRequest, UpdatePoolRequest, UpgradeClusterRequest, UpgradePoolRequest, Version } from './types.gen';
3
+ import type { AuthExternalNodeRequest, Cluster, CreateClusterRequest, CreateExternalNodeRequest, CreatePoolRequest, DeleteClusterRequest, DeleteNodeRequest, DeletePoolRequest, ExternalNode, ExternalNodeAuth, GetClusterKubeConfigRequest, GetClusterRequest, GetNodeMetadataRequest, GetNodeRequest, GetPoolRequest, GetVersionRequest, ListClusterAvailableTypesRequest, ListClusterAvailableTypesResponse, ListClusterAvailableVersionsRequest, ListClusterAvailableVersionsResponse, ListClusterTypesRequest, ListClusterTypesResponse, ListClustersRequest, ListClustersResponse, ListNodesRequest, ListNodesResponse, ListPoolsRequest, ListPoolsResponse, ListVersionsRequest, ListVersionsResponse, MigrateClusterToRoutedIPsRequest, MigrateClusterToSBSCSIRequest, Node, NodeMetadata, Pool, RebootNodeRequest, ReplaceNodeRequest, ResetClusterAdminTokenRequest, SetClusterTypeRequest, UpdateClusterRequest, UpdatePoolRequest, UpgradeClusterRequest, UpgradePoolRequest, Version } from './types.gen';
4
4
  /**
5
5
  * Kubernetes API.
6
6
  *
@@ -115,6 +115,15 @@ export declare class API extends ParentAPI {
115
115
  * @returns A Promise of Cluster
116
116
  */
117
117
  migrateClusterToRoutedIPs: (request: Readonly<MigrateClusterToRoutedIPsRequest>) => Promise<Cluster>;
118
+ /**
119
+ * Migrate a cluster to SBS CSI. Enable the latest CSI compatible with
120
+ * Scaleway Block Storage (SBS) and migrate all existing
121
+ * PersistentVolumes/VolumeSnapshotContents to SBS.
122
+ *
123
+ * @param request - The request {@link MigrateClusterToSBSCSIRequest}
124
+ * @returns A Promise of Cluster
125
+ */
126
+ migrateClusterToSBSCSI: (request: Readonly<MigrateClusterToSBSCSIRequest>) => Promise<Cluster>;
118
127
  protected pageOfListPools: (request: Readonly<ListPoolsRequest>) => Promise<ListPoolsResponse>;
119
128
  /**
120
129
  * List Pools in a Cluster. List all the existing pools for a specific
@@ -225,6 +225,23 @@ class API extends API$1 {
225
225
  },
226
226
  unmarshalCluster
227
227
  );
228
+ /**
229
+ * Migrate a cluster to SBS CSI. Enable the latest CSI compatible with
230
+ * Scaleway Block Storage (SBS) and migrate all existing
231
+ * PersistentVolumes/VolumeSnapshotContents to SBS.
232
+ *
233
+ * @param request - The request {@link MigrateClusterToSBSCSIRequest}
234
+ * @returns A Promise of Cluster
235
+ */
236
+ migrateClusterToSBSCSI = (request) => this.client.fetch(
237
+ {
238
+ body: "{}",
239
+ headers: jsonContentHeaders,
240
+ method: "POST",
241
+ path: `/k8s/v1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/clusters/${validatePathParam("clusterId", request.clusterId)}/migrate-to-sbs-csi`
242
+ },
243
+ unmarshalCluster
244
+ );
228
245
  pageOfListPools = (request) => this.client.fetch(
229
246
  {
230
247
  method: "GET",
@@ -1,4 +1,4 @@
1
1
  export { API } from './api.gen';
2
2
  export * from './content.gen';
3
- export type { AuthExternalNodeRequest, AutoscalerEstimator, AutoscalerExpander, CNI, Cluster, ClusterAutoUpgrade, ClusterAutoscalerConfig, ClusterOpenIDConnectConfig, ClusterStatus, ClusterType, ClusterTypeAvailability, ClusterTypeResiliency, CreateClusterRequest, CreateClusterRequestAutoUpgrade, CreateClusterRequestAutoscalerConfig, CreateClusterRequestOpenIDConnectConfig, CreateClusterRequestPoolConfig, CreateClusterRequestPoolConfigUpgradePolicy, CreateExternalNodeRequest, CreatePoolRequest, CreatePoolRequestUpgradePolicy, DeleteClusterRequest, DeleteNodeRequest, DeletePoolRequest, ExternalNode, ExternalNodeAuth, ExternalNodeCoreV1Taint, GetClusterKubeConfigRequest, GetClusterRequest, GetNodeMetadataRequest, GetNodeRequest, GetPoolRequest, GetVersionRequest, ListClusterAvailableTypesRequest, ListClusterAvailableTypesResponse, ListClusterAvailableVersionsRequest, ListClusterAvailableVersionsResponse, ListClusterTypesRequest, ListClusterTypesResponse, ListClustersRequest, ListClustersRequestOrderBy, ListClustersResponse, ListNodesRequest, ListNodesRequestOrderBy, ListNodesResponse, ListPoolsRequest, ListPoolsRequestOrderBy, ListPoolsResponse, ListVersionsRequest, ListVersionsResponse, MaintenanceWindow, MaintenanceWindowDayOfTheWeek, MigrateClusterToRoutedIPsRequest, Node, NodeMetadata, NodeMetadataCoreV1Taint, NodeStatus, Pool, PoolStatus, PoolUpgradePolicy, PoolVolumeType, RebootNodeRequest, ReplaceNodeRequest, ResetClusterAdminTokenRequest, Runtime, SetClusterTypeRequest, UpdateClusterRequest, UpdateClusterRequestAutoUpgrade, UpdateClusterRequestAutoscalerConfig, UpdateClusterRequestOpenIDConnectConfig, UpdatePoolRequest, UpdatePoolRequestUpgradePolicy, UpgradeClusterRequest, UpgradePoolRequest, Version, } from './types.gen';
3
+ export type { AuthExternalNodeRequest, AutoscalerEstimator, AutoscalerExpander, CNI, Cluster, ClusterAutoUpgrade, ClusterAutoscalerConfig, ClusterOpenIDConnectConfig, ClusterStatus, ClusterType, ClusterTypeAvailability, ClusterTypeResiliency, CreateClusterRequest, CreateClusterRequestAutoUpgrade, CreateClusterRequestAutoscalerConfig, CreateClusterRequestOpenIDConnectConfig, CreateClusterRequestPoolConfig, CreateClusterRequestPoolConfigUpgradePolicy, CreateExternalNodeRequest, CreatePoolRequest, CreatePoolRequestUpgradePolicy, DeleteClusterRequest, DeleteNodeRequest, DeletePoolRequest, ExternalNode, ExternalNodeAuth, ExternalNodeCoreV1Taint, GetClusterKubeConfigRequest, GetClusterRequest, GetNodeMetadataRequest, GetNodeRequest, GetPoolRequest, GetVersionRequest, ListClusterAvailableTypesRequest, ListClusterAvailableTypesResponse, ListClusterAvailableVersionsRequest, ListClusterAvailableVersionsResponse, ListClusterTypesRequest, ListClusterTypesResponse, ListClustersRequest, ListClustersRequestOrderBy, ListClustersResponse, ListNodesRequest, ListNodesRequestOrderBy, ListNodesResponse, ListPoolsRequest, ListPoolsRequestOrderBy, ListPoolsResponse, ListVersionsRequest, ListVersionsResponse, MaintenanceWindow, MaintenanceWindowDayOfTheWeek, MigrateClusterToRoutedIPsRequest, MigrateClusterToSBSCSIRequest, Node, NodeMetadata, NodeMetadataCoreV1Taint, NodeStatus, Pool, PoolStatus, PoolUpgradePolicy, PoolVolumeType, RebootNodeRequest, ReplaceNodeRequest, ResetClusterAdminTokenRequest, Runtime, SetClusterTypeRequest, UpdateClusterRequest, UpdateClusterRequestAutoUpgrade, UpdateClusterRequestAutoscalerConfig, UpdateClusterRequestOpenIDConnectConfig, UpdatePoolRequest, UpdatePoolRequestUpgradePolicy, UpgradeClusterRequest, UpgradePoolRequest, Version, } from './types.gen';
4
4
  export * as ValidationRules from './validation-rules.gen';
@@ -1004,6 +1004,19 @@ export type MigrateClusterToRoutedIPsRequest = {
1004
1004
  * config.
1005
1005
  */
1006
1006
  region?: Region;
1007
+ /** Cluster ID for which the routed ip will be enabled for the nodes. */
1008
+ clusterId: string;
1009
+ };
1010
+ export type MigrateClusterToSBSCSIRequest = {
1011
+ /**
1012
+ * Region to target. If none is passed will use default region from the
1013
+ * config.
1014
+ */
1015
+ region?: Region;
1016
+ /**
1017
+ * Cluster ID for which the latest CSI compatible with Scaleway Block Storage
1018
+ * will be enabled.
1019
+ */
1007
1020
  clusterId: string;
1008
1021
  };
1009
1022
  export interface NodeMetadata {
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This file is automatically generated from /scripts/generate.js PLEASE DO NOT
3
+ * EDIT HERE
4
+ */
5
+ export * as v1alpha1 from './v1alpha1/index.gen';
@@ -254,5 +254,36 @@ class API extends api.API {
254
254
  },
255
255
  marshalling_gen.unmarshalDecryptResponse
256
256
  );
257
+ /**
258
+ * Import key material. Import key material to use to derive a new
259
+ * cryptographic key. The key's origin must be `external`.
260
+ *
261
+ * @param request - The request {@link ImportKeyMaterialRequest}
262
+ * @returns A Promise of Key
263
+ */
264
+ importKeyMaterial = (request) => this.client.fetch(
265
+ {
266
+ body: JSON.stringify(
267
+ marshalling_gen.marshalImportKeyMaterialRequest(request, this.client.settings)
268
+ ),
269
+ headers: jsonContentHeaders,
270
+ method: "POST",
271
+ path: `/key-manager/v1alpha1/regions/${marshalling.validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/keys/${marshalling.validatePathParam("keyId", request.keyId)}/import-key-material`
272
+ },
273
+ marshalling_gen.unmarshalKey
274
+ );
275
+ /**
276
+ * Delete key material. Delete previously imported key material. This renders
277
+ * the associated cryptographic key unusable for any operation. The key's
278
+ * origin must be `external`.
279
+ *
280
+ * @param request - The request {@link DeleteKeyMaterialRequest}
281
+ */
282
+ deleteKeyMaterial = (request) => this.client.fetch({
283
+ body: "{}",
284
+ headers: jsonContentHeaders,
285
+ method: "POST",
286
+ path: `/key-manager/v1alpha1/regions/${marshalling.validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/keys/${marshalling.validatePathParam("keyId", request.keyId)}/delete-key-material`
287
+ });
257
288
  }
258
289
  exports.API = API;
@@ -1,6 +1,6 @@
1
1
  import { API as ParentAPI } from '../../../bridge';
2
2
  import type { Region } from '../../../bridge';
3
- import type { CreateKeyRequest, DataKey, DecryptRequest, DecryptResponse, DeleteKeyRequest, DisableKeyRequest, EnableKeyRequest, EncryptRequest, EncryptResponse, GenerateDataKeyRequest, GetKeyRequest, Key, ListKeysRequest, ListKeysResponse, ProtectKeyRequest, RotateKeyRequest, UnprotectKeyRequest, UpdateKeyRequest } from './types.gen';
3
+ import type { CreateKeyRequest, DataKey, DecryptRequest, DecryptResponse, DeleteKeyMaterialRequest, DeleteKeyRequest, DisableKeyRequest, EnableKeyRequest, EncryptRequest, EncryptResponse, GenerateDataKeyRequest, GetKeyRequest, ImportKeyMaterialRequest, Key, ListKeysRequest, ListKeysResponse, ProtectKeyRequest, RotateKeyRequest, UnprotectKeyRequest, UpdateKeyRequest } from './types.gen';
4
4
  /**
5
5
  * Key Manager API.
6
6
  *
@@ -139,4 +139,20 @@ export declare class API extends ParentAPI {
139
139
  * @returns A Promise of DecryptResponse
140
140
  */
141
141
  decrypt: (request: Readonly<DecryptRequest>) => Promise<DecryptResponse>;
142
+ /**
143
+ * Import key material. Import key material to use to derive a new
144
+ * cryptographic key. The key's origin must be `external`.
145
+ *
146
+ * @param request - The request {@link ImportKeyMaterialRequest}
147
+ * @returns A Promise of Key
148
+ */
149
+ importKeyMaterial: (request: Readonly<ImportKeyMaterialRequest>) => Promise<Key>;
150
+ /**
151
+ * Delete key material. Delete previously imported key material. This renders
152
+ * the associated cryptographic key unusable for any operation. The key's
153
+ * origin must be `external`.
154
+ *
155
+ * @param request - The request {@link DeleteKeyMaterialRequest}
156
+ */
157
+ deleteKeyMaterial: (request: Readonly<DeleteKeyMaterialRequest>) => Promise<void>;
142
158
  }
@@ -2,7 +2,7 @@ import { API as API$1 } from "../../../scw/api.js";
2
2
  import { validatePathParam, urlParams } from "../../../helpers/marshalling.js";
3
3
  import "../../../vendor/base64/index.js";
4
4
  import { enrichForPagination } from "../../../scw/fetch/resource-paginator.js";
5
- import { marshalCreateKeyRequest, unmarshalKey, marshalUpdateKeyRequest, unmarshalListKeysResponse, marshalGenerateDataKeyRequest, unmarshalDataKey, marshalEncryptRequest, unmarshalEncryptResponse, marshalDecryptRequest, unmarshalDecryptResponse } from "./marshalling.gen.js";
5
+ import { marshalCreateKeyRequest, unmarshalKey, marshalUpdateKeyRequest, unmarshalListKeysResponse, marshalGenerateDataKeyRequest, unmarshalDataKey, marshalEncryptRequest, unmarshalEncryptResponse, marshalDecryptRequest, unmarshalDecryptResponse, marshalImportKeyMaterialRequest } from "./marshalling.gen.js";
6
6
  const jsonContentHeaders = {
7
7
  "Content-Type": "application/json; charset=utf-8"
8
8
  };
@@ -252,6 +252,37 @@ class API extends API$1 {
252
252
  },
253
253
  unmarshalDecryptResponse
254
254
  );
255
+ /**
256
+ * Import key material. Import key material to use to derive a new
257
+ * cryptographic key. The key's origin must be `external`.
258
+ *
259
+ * @param request - The request {@link ImportKeyMaterialRequest}
260
+ * @returns A Promise of Key
261
+ */
262
+ importKeyMaterial = (request) => this.client.fetch(
263
+ {
264
+ body: JSON.stringify(
265
+ marshalImportKeyMaterialRequest(request, this.client.settings)
266
+ ),
267
+ headers: jsonContentHeaders,
268
+ method: "POST",
269
+ path: `/key-manager/v1alpha1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/keys/${validatePathParam("keyId", request.keyId)}/import-key-material`
270
+ },
271
+ unmarshalKey
272
+ );
273
+ /**
274
+ * Delete key material. Delete previously imported key material. This renders
275
+ * the associated cryptographic key unusable for any operation. The key's
276
+ * origin must be `external`.
277
+ *
278
+ * @param request - The request {@link DeleteKeyMaterialRequest}
279
+ */
280
+ deleteKeyMaterial = (request) => this.client.fetch({
281
+ body: "{}",
282
+ headers: jsonContentHeaders,
283
+ method: "POST",
284
+ path: `/key-manager/v1alpha1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/keys/${validatePathParam("keyId", request.keyId)}/delete-key-material`
285
+ });
255
286
  }
256
287
  export {
257
288
  API
@@ -1,2 +1,2 @@
1
1
  export { API } from './api.gen';
2
- export type { CreateKeyRequest, DataKey, DataKeyAlgorithmSymmetricEncryption, DecryptRequest, DecryptResponse, DeleteKeyRequest, DisableKeyRequest, EnableKeyRequest, EncryptRequest, EncryptResponse, GenerateDataKeyRequest, GetKeyRequest, Key, KeyAlgorithmSymmetricEncryption, KeyRotationPolicy, KeyState, KeyUsage, ListKeysRequest, ListKeysRequestOrderBy, ListKeysResponse, ProtectKeyRequest, RotateKeyRequest, UnprotectKeyRequest, UpdateKeyRequest, } from './types.gen';
2
+ export type { CreateKeyRequest, DataKey, DataKeyAlgorithmSymmetricEncryption, DecryptRequest, DecryptResponse, DeleteKeyMaterialRequest, DeleteKeyRequest, DisableKeyRequest, EnableKeyRequest, EncryptRequest, EncryptResponse, GenerateDataKeyRequest, GetKeyRequest, ImportKeyMaterialRequest, Key, KeyAlgorithmSymmetricEncryption, KeyOrigin, KeyRotationPolicy, KeyState, KeyUsage, ListKeysRequest, ListKeysRequestOrderBy, ListKeysResponse, ProtectKeyRequest, RotateKeyRequest, UnprotectKeyRequest, UpdateKeyRequest, } from './types.gen';