@pulumiverse/scaleway 1.35.0-alpha.1761031391 → 1.35.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 (54) hide show
  1. package/baremetalServer.d.ts +8 -0
  2. package/baremetalServer.js +8 -0
  3. package/baremetalServer.js.map +1 -1
  4. package/billing/getConsumptions.d.ts +4 -0
  5. package/billing/getConsumptions.js +4 -0
  6. package/billing/getConsumptions.js.map +1 -1
  7. package/block/snapshot.d.ts +4 -0
  8. package/block/snapshot.js +4 -0
  9. package/block/snapshot.js.map +1 -1
  10. package/blockSnapshot.d.ts +4 -0
  11. package/blockSnapshot.js +4 -0
  12. package/blockSnapshot.js.map +1 -1
  13. package/databaseInstance.d.ts +4 -4
  14. package/databaseInstance.js +3 -3
  15. package/databaseInstance.js.map +1 -1
  16. package/databases/instance.d.ts +4 -4
  17. package/databases/instance.js +3 -3
  18. package/databases/instance.js.map +1 -1
  19. package/edgeServicesCacheStage.d.ts +2 -0
  20. package/edgeServicesCacheStage.js +2 -0
  21. package/edgeServicesCacheStage.js.map +1 -1
  22. package/elasticmetal/server.d.ts +8 -0
  23. package/elasticmetal/server.js +8 -0
  24. package/elasticmetal/server.js.map +1 -1
  25. package/fileFilesystem.d.ts +3 -1
  26. package/fileFilesystem.js +3 -1
  27. package/fileFilesystem.js.map +1 -1
  28. package/getBillingConsumptions.d.ts +4 -0
  29. package/getBillingConsumptions.js +4 -0
  30. package/getBillingConsumptions.js.map +1 -1
  31. package/inference/deployment.d.ts +2 -0
  32. package/inference/deployment.js +2 -0
  33. package/inference/deployment.js.map +1 -1
  34. package/inferenceDeployment.d.ts +2 -0
  35. package/inferenceDeployment.js +2 -0
  36. package/inferenceDeployment.js.map +1 -1
  37. package/instance/image.d.ts +40 -15
  38. package/instance/image.js +25 -0
  39. package/instance/image.js.map +1 -1
  40. package/instanceImage.d.ts +40 -15
  41. package/instanceImage.js +25 -0
  42. package/instanceImage.js.map +1 -1
  43. package/keyManagerKey.d.ts +54 -12
  44. package/keyManagerKey.js +35 -9
  45. package/keyManagerKey.js.map +1 -1
  46. package/kubernetes/cluster.d.ts +29 -0
  47. package/kubernetes/cluster.js +29 -0
  48. package/kubernetes/cluster.js.map +1 -1
  49. package/kubernetesCluster.d.ts +29 -0
  50. package/kubernetesCluster.js +29 -0
  51. package/kubernetesCluster.js.map +1 -1
  52. package/package.json +2 -2
  53. package/types/input.d.ts +36 -56
  54. package/types/output.d.ts +36 -56
@@ -41,6 +41,29 @@ import * as outputs from "../types/output";
41
41
  * });
42
42
  * ```
43
43
  *
44
+ * ### With additional volumes
45
+ *
46
+ * ```typescript
47
+ * import * as pulumi from "@pulumi/pulumi";
48
+ * import * as scaleway from "@pulumiverse/scaleway";
49
+ *
50
+ * const server = new scaleway.instance.Server("server", {
51
+ * image: "ubuntu_jammy",
52
+ * type: "DEV1-S",
53
+ * });
54
+ * const volume = new scaleway.instance.Volume("volume", {
55
+ * type: "b_ssd",
56
+ * sizeInGb: 20,
57
+ * });
58
+ * const volumeSnapshot = new scaleway.instance.Snapshot("volume_snapshot", {volumeId: volume.id});
59
+ * const serverSnapshot = new scaleway.instance.Snapshot("server_snapshot", {volumeId: main.rootVolume[0].volumeId});
60
+ * const image = new scaleway.instance.Image("image", {
61
+ * name: "image_with_extra_volumes",
62
+ * rootVolumeId: serverSnapshot.id,
63
+ * additionalVolumeIds: [volumeSnapshot.id],
64
+ * });
65
+ * ```
66
+ *
44
67
  * ## Import
45
68
  *
46
69
  * Images can be imported using the `{zone}/{id}`, e.g.
@@ -69,10 +92,8 @@ export declare class Image extends pulumi.CustomResource {
69
92
  static isInstance(obj: any): obj is Image;
70
93
  /**
71
94
  * List of IDs of the snapshots of the additional volumes to be attached to the image.
72
- *
73
- * > **Important:** For now it is only possible to have 1 additional_volume.
74
95
  */
75
- readonly additionalVolumeIds: pulumi.Output<string | undefined>;
96
+ readonly additionalVolumeIds: pulumi.Output<string[] | undefined>;
76
97
  /**
77
98
  * The description of the extra volumes attached to the image.
78
99
  */
@@ -82,7 +103,7 @@ export declare class Image extends pulumi.CustomResource {
82
103
  */
83
104
  readonly architecture: pulumi.Output<string | undefined>;
84
105
  /**
85
- * Date of the volume creation.
106
+ * Date of the image creation.
86
107
  */
87
108
  readonly creationDate: pulumi.Output<string>;
88
109
  /**
@@ -90,7 +111,7 @@ export declare class Image extends pulumi.CustomResource {
90
111
  */
91
112
  readonly fromServerId: pulumi.Output<string>;
92
113
  /**
93
- * Date of volume latest update.
114
+ * Date of image latest update.
94
115
  */
95
116
  readonly modificationDate: pulumi.Output<string>;
96
117
  /**
@@ -114,7 +135,11 @@ export declare class Image extends pulumi.CustomResource {
114
135
  */
115
136
  readonly rootVolumeId: pulumi.Output<string>;
116
137
  /**
117
- * State of the volume.
138
+ * The description of the root volume attached to the image.
139
+ */
140
+ readonly rootVolumes: pulumi.Output<outputs.instance.ImageRootVolume[]>;
141
+ /**
142
+ * State of the image. Possible values are: `available`, `creating` or `error`.
118
143
  */
119
144
  readonly state: pulumi.Output<string>;
120
145
  /**
@@ -140,10 +165,8 @@ export declare class Image extends pulumi.CustomResource {
140
165
  export interface ImageState {
141
166
  /**
142
167
  * List of IDs of the snapshots of the additional volumes to be attached to the image.
143
- *
144
- * > **Important:** For now it is only possible to have 1 additional_volume.
145
168
  */
146
- additionalVolumeIds?: pulumi.Input<string>;
169
+ additionalVolumeIds?: pulumi.Input<pulumi.Input<string>[]>;
147
170
  /**
148
171
  * The description of the extra volumes attached to the image.
149
172
  */
@@ -153,7 +176,7 @@ export interface ImageState {
153
176
  */
154
177
  architecture?: pulumi.Input<string>;
155
178
  /**
156
- * Date of the volume creation.
179
+ * Date of the image creation.
157
180
  */
158
181
  creationDate?: pulumi.Input<string>;
159
182
  /**
@@ -161,7 +184,7 @@ export interface ImageState {
161
184
  */
162
185
  fromServerId?: pulumi.Input<string>;
163
186
  /**
164
- * Date of volume latest update.
187
+ * Date of image latest update.
165
188
  */
166
189
  modificationDate?: pulumi.Input<string>;
167
190
  /**
@@ -185,7 +208,11 @@ export interface ImageState {
185
208
  */
186
209
  rootVolumeId?: pulumi.Input<string>;
187
210
  /**
188
- * State of the volume.
211
+ * The description of the root volume attached to the image.
212
+ */
213
+ rootVolumes?: pulumi.Input<pulumi.Input<inputs.instance.ImageRootVolume>[]>;
214
+ /**
215
+ * State of the image. Possible values are: `available`, `creating` or `error`.
189
216
  */
190
217
  state?: pulumi.Input<string>;
191
218
  /**
@@ -203,10 +230,8 @@ export interface ImageState {
203
230
  export interface ImageArgs {
204
231
  /**
205
232
  * List of IDs of the snapshots of the additional volumes to be attached to the image.
206
- *
207
- * > **Important:** For now it is only possible to have 1 additional_volume.
208
233
  */
209
- additionalVolumeIds?: pulumi.Input<string>;
234
+ additionalVolumeIds?: pulumi.Input<pulumi.Input<string>[]>;
210
235
  /**
211
236
  * The architecture the image is compatible with. Possible values are: `x8664` or `arm`.
212
237
  */
package/instance/image.js CHANGED
@@ -45,6 +45,29 @@ const utilities = require("../utilities");
45
45
  * });
46
46
  * ```
47
47
  *
48
+ * ### With additional volumes
49
+ *
50
+ * ```typescript
51
+ * import * as pulumi from "@pulumi/pulumi";
52
+ * import * as scaleway from "@pulumiverse/scaleway";
53
+ *
54
+ * const server = new scaleway.instance.Server("server", {
55
+ * image: "ubuntu_jammy",
56
+ * type: "DEV1-S",
57
+ * });
58
+ * const volume = new scaleway.instance.Volume("volume", {
59
+ * type: "b_ssd",
60
+ * sizeInGb: 20,
61
+ * });
62
+ * const volumeSnapshot = new scaleway.instance.Snapshot("volume_snapshot", {volumeId: volume.id});
63
+ * const serverSnapshot = new scaleway.instance.Snapshot("server_snapshot", {volumeId: main.rootVolume[0].volumeId});
64
+ * const image = new scaleway.instance.Image("image", {
65
+ * name: "image_with_extra_volumes",
66
+ * rootVolumeId: serverSnapshot.id,
67
+ * additionalVolumeIds: [volumeSnapshot.id],
68
+ * });
69
+ * ```
70
+ *
48
71
  * ## Import
49
72
  *
50
73
  * Images can be imported using the `{zone}/{id}`, e.g.
@@ -94,6 +117,7 @@ class Image extends pulumi.CustomResource {
94
117
  resourceInputs["projectId"] = state?.projectId;
95
118
  resourceInputs["public"] = state?.public;
96
119
  resourceInputs["rootVolumeId"] = state?.rootVolumeId;
120
+ resourceInputs["rootVolumes"] = state?.rootVolumes;
97
121
  resourceInputs["state"] = state?.state;
98
122
  resourceInputs["tags"] = state?.tags;
99
123
  resourceInputs["zone"] = state?.zone;
@@ -116,6 +140,7 @@ class Image extends pulumi.CustomResource {
116
140
  resourceInputs["fromServerId"] = undefined /*out*/;
117
141
  resourceInputs["modificationDate"] = undefined /*out*/;
118
142
  resourceInputs["organizationId"] = undefined /*out*/;
143
+ resourceInputs["rootVolumes"] = undefined /*out*/;
119
144
  resourceInputs["state"] = undefined /*out*/;
120
145
  }
121
146
  opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
@@ -1 +1 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../instance/image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../instance/image.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,29 @@ import * as outputs from "./types/output";
41
41
  * });
42
42
  * ```
43
43
  *
44
+ * ### With additional volumes
45
+ *
46
+ * ```typescript
47
+ * import * as pulumi from "@pulumi/pulumi";
48
+ * import * as scaleway from "@pulumiverse/scaleway";
49
+ *
50
+ * const server = new scaleway.instance.Server("server", {
51
+ * image: "ubuntu_jammy",
52
+ * type: "DEV1-S",
53
+ * });
54
+ * const volume = new scaleway.instance.Volume("volume", {
55
+ * type: "b_ssd",
56
+ * sizeInGb: 20,
57
+ * });
58
+ * const volumeSnapshot = new scaleway.instance.Snapshot("volume_snapshot", {volumeId: volume.id});
59
+ * const serverSnapshot = new scaleway.instance.Snapshot("server_snapshot", {volumeId: main.rootVolume[0].volumeId});
60
+ * const image = new scaleway.instance.Image("image", {
61
+ * name: "image_with_extra_volumes",
62
+ * rootVolumeId: serverSnapshot.id,
63
+ * additionalVolumeIds: [volumeSnapshot.id],
64
+ * });
65
+ * ```
66
+ *
44
67
  * ## Import
45
68
  *
46
69
  * Images can be imported using the `{zone}/{id}`, e.g.
@@ -71,10 +94,8 @@ export declare class InstanceImage extends pulumi.CustomResource {
71
94
  static isInstance(obj: any): obj is InstanceImage;
72
95
  /**
73
96
  * List of IDs of the snapshots of the additional volumes to be attached to the image.
74
- *
75
- * > **Important:** For now it is only possible to have 1 additional_volume.
76
97
  */
77
- readonly additionalVolumeIds: pulumi.Output<string | undefined>;
98
+ readonly additionalVolumeIds: pulumi.Output<string[] | undefined>;
78
99
  /**
79
100
  * The description of the extra volumes attached to the image.
80
101
  */
@@ -84,7 +105,7 @@ export declare class InstanceImage extends pulumi.CustomResource {
84
105
  */
85
106
  readonly architecture: pulumi.Output<string | undefined>;
86
107
  /**
87
- * Date of the volume creation.
108
+ * Date of the image creation.
88
109
  */
89
110
  readonly creationDate: pulumi.Output<string>;
90
111
  /**
@@ -92,7 +113,7 @@ export declare class InstanceImage extends pulumi.CustomResource {
92
113
  */
93
114
  readonly fromServerId: pulumi.Output<string>;
94
115
  /**
95
- * Date of volume latest update.
116
+ * Date of image latest update.
96
117
  */
97
118
  readonly modificationDate: pulumi.Output<string>;
98
119
  /**
@@ -116,7 +137,11 @@ export declare class InstanceImage extends pulumi.CustomResource {
116
137
  */
117
138
  readonly rootVolumeId: pulumi.Output<string>;
118
139
  /**
119
- * State of the volume.
140
+ * The description of the root volume attached to the image.
141
+ */
142
+ readonly rootVolumes: pulumi.Output<outputs.InstanceImageRootVolume[]>;
143
+ /**
144
+ * State of the image. Possible values are: `available`, `creating` or `error`.
120
145
  */
121
146
  readonly state: pulumi.Output<string>;
122
147
  /**
@@ -143,10 +168,8 @@ export declare class InstanceImage extends pulumi.CustomResource {
143
168
  export interface InstanceImageState {
144
169
  /**
145
170
  * List of IDs of the snapshots of the additional volumes to be attached to the image.
146
- *
147
- * > **Important:** For now it is only possible to have 1 additional_volume.
148
171
  */
149
- additionalVolumeIds?: pulumi.Input<string>;
172
+ additionalVolumeIds?: pulumi.Input<pulumi.Input<string>[]>;
150
173
  /**
151
174
  * The description of the extra volumes attached to the image.
152
175
  */
@@ -156,7 +179,7 @@ export interface InstanceImageState {
156
179
  */
157
180
  architecture?: pulumi.Input<string>;
158
181
  /**
159
- * Date of the volume creation.
182
+ * Date of the image creation.
160
183
  */
161
184
  creationDate?: pulumi.Input<string>;
162
185
  /**
@@ -164,7 +187,7 @@ export interface InstanceImageState {
164
187
  */
165
188
  fromServerId?: pulumi.Input<string>;
166
189
  /**
167
- * Date of volume latest update.
190
+ * Date of image latest update.
168
191
  */
169
192
  modificationDate?: pulumi.Input<string>;
170
193
  /**
@@ -188,7 +211,11 @@ export interface InstanceImageState {
188
211
  */
189
212
  rootVolumeId?: pulumi.Input<string>;
190
213
  /**
191
- * State of the volume.
214
+ * The description of the root volume attached to the image.
215
+ */
216
+ rootVolumes?: pulumi.Input<pulumi.Input<inputs.InstanceImageRootVolume>[]>;
217
+ /**
218
+ * State of the image. Possible values are: `available`, `creating` or `error`.
192
219
  */
193
220
  state?: pulumi.Input<string>;
194
221
  /**
@@ -206,10 +233,8 @@ export interface InstanceImageState {
206
233
  export interface InstanceImageArgs {
207
234
  /**
208
235
  * List of IDs of the snapshots of the additional volumes to be attached to the image.
209
- *
210
- * > **Important:** For now it is only possible to have 1 additional_volume.
211
236
  */
212
- additionalVolumeIds?: pulumi.Input<string>;
237
+ additionalVolumeIds?: pulumi.Input<pulumi.Input<string>[]>;
213
238
  /**
214
239
  * The architecture the image is compatible with. Possible values are: `x8664` or `arm`.
215
240
  */
package/instanceImage.js CHANGED
@@ -45,6 +45,29 @@ const utilities = require("./utilities");
45
45
  * });
46
46
  * ```
47
47
  *
48
+ * ### With additional volumes
49
+ *
50
+ * ```typescript
51
+ * import * as pulumi from "@pulumi/pulumi";
52
+ * import * as scaleway from "@pulumiverse/scaleway";
53
+ *
54
+ * const server = new scaleway.instance.Server("server", {
55
+ * image: "ubuntu_jammy",
56
+ * type: "DEV1-S",
57
+ * });
58
+ * const volume = new scaleway.instance.Volume("volume", {
59
+ * type: "b_ssd",
60
+ * sizeInGb: 20,
61
+ * });
62
+ * const volumeSnapshot = new scaleway.instance.Snapshot("volume_snapshot", {volumeId: volume.id});
63
+ * const serverSnapshot = new scaleway.instance.Snapshot("server_snapshot", {volumeId: main.rootVolume[0].volumeId});
64
+ * const image = new scaleway.instance.Image("image", {
65
+ * name: "image_with_extra_volumes",
66
+ * rootVolumeId: serverSnapshot.id,
67
+ * additionalVolumeIds: [volumeSnapshot.id],
68
+ * });
69
+ * ```
70
+ *
48
71
  * ## Import
49
72
  *
50
73
  * Images can be imported using the `{zone}/{id}`, e.g.
@@ -99,6 +122,7 @@ class InstanceImage extends pulumi.CustomResource {
99
122
  resourceInputs["projectId"] = state?.projectId;
100
123
  resourceInputs["public"] = state?.public;
101
124
  resourceInputs["rootVolumeId"] = state?.rootVolumeId;
125
+ resourceInputs["rootVolumes"] = state?.rootVolumes;
102
126
  resourceInputs["state"] = state?.state;
103
127
  resourceInputs["tags"] = state?.tags;
104
128
  resourceInputs["zone"] = state?.zone;
@@ -121,6 +145,7 @@ class InstanceImage extends pulumi.CustomResource {
121
145
  resourceInputs["fromServerId"] = undefined /*out*/;
122
146
  resourceInputs["modificationDate"] = undefined /*out*/;
123
147
  resourceInputs["organizationId"] = undefined /*out*/;
148
+ resourceInputs["rootVolumes"] = undefined /*out*/;
124
149
  resourceInputs["state"] = undefined /*out*/;
125
150
  }
126
151
  opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
@@ -1 +1 @@
1
- {"version":3,"file":"instanceImage.js","sourceRoot":"","sources":["../instanceImage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instanceImage.js","sourceRoot":"","sources":["../instanceImage.ts"],"names":[],"mappings":"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"}
@@ -7,15 +7,18 @@ import * as outputs from "./types/output";
7
7
  *
8
8
  * ## Example Usage
9
9
  *
10
+ * ### Symmetric Encryption Key
11
+ *
10
12
  * ```typescript
11
13
  * import * as pulumi from "@pulumi/pulumi";
12
14
  * import * as scaleway from "@pulumiverse/scaleway";
13
15
  *
14
- * const main = new scaleway.KeyManagerKey("main", {
16
+ * const symmetric = new scaleway.KeyManagerKey("symmetric", {
15
17
  * name: "my-kms-key",
16
18
  * region: "fr-par",
17
19
  * projectId: "your-project-id",
18
20
  * usage: "symmetric_encryption",
21
+ * algorithm: "aes_256_gcm",
19
22
  * description: "Key for encrypting secrets",
20
23
  * tags: [
21
24
  * "env:prod",
@@ -28,28 +31,46 @@ import * as outputs from "./types/output";
28
31
  * });
29
32
  * ```
30
33
  *
31
- * ## Notes
34
+ * ### Asymmetric Encryption Key with RSA-4096
32
35
  *
33
- * - **Protection**: By default, keys are protected and cannot be deleted. To allow deletion, set `unprotected = true` when creating the key.
34
- * - **Rotation Policy**: The `rotationPolicy` block allows you to set automatic rotation for your key.
35
- * - **Origin**: The `origin` argument is optional and defaults to `scalewayKms`. Use `external` if you want to import an external key (see Scaleway documentation for details).
36
- * - **Project and Region**: If not specified, `projectId` and `region` will default to the provider configuration.
36
+ * ```typescript
37
+ * import * as pulumi from "@pulumi/pulumi";
38
+ * import * as scaleway from "@pulumiverse/scaleway";
37
39
  *
38
- * ## Example: Asymmetric Key
40
+ * const rsa4096 = new scaleway.KeyManagerKey("rsa_4096", {
41
+ * name: "rsa-4096-key",
42
+ * region: "fr-par",
43
+ * usage: "asymmetric_encryption",
44
+ * algorithm: "rsa_oaep_4096_sha256",
45
+ * description: "Key for encrypting large files with RSA-4096",
46
+ * unprotected: true,
47
+ * });
48
+ * ```
49
+ *
50
+ * ### Asymmetric Signing Key
39
51
  *
40
52
  * ```typescript
41
53
  * import * as pulumi from "@pulumi/pulumi";
42
54
  * import * as scaleway from "@pulumiverse/scaleway";
43
55
  *
44
- * const asym = new scaleway.KeyManagerKey("asym", {
45
- * name: "asymmetric-key",
56
+ * const signing = new scaleway.KeyManagerKey("signing", {
57
+ * name: "signing-key",
46
58
  * region: "fr-par",
47
59
  * usage: "asymmetric_signing",
60
+ * algorithm: "rsa_pss_2048_sha256",
48
61
  * description: "Key for signing documents",
49
62
  * unprotected: true,
50
63
  * });
51
64
  * ```
52
65
  *
66
+ * ## Notes
67
+ *
68
+ * - **Protection**: By default, keys are protected and cannot be deleted. To allow deletion, set `unprotected = true` when creating the key.
69
+ * - **Rotation Policy**: The `rotationPolicy` block allows you to set automatic rotation for your key.
70
+ * - **Origin**: The `origin` argument is optional and defaults to `scalewayKms`. Use `external` if you want to import an external key (see Scaleway documentation for details).
71
+ * - **Project and Region**: If not specified, `projectId` and `region` will default to the provider configuration.
72
+ * - **Algorithm Validation**: The provider validates that the specified `algorithm` is compatible with the `usage` type at plan time, providing early feedback on configuration errors.
73
+ *
53
74
  * ## Import
54
75
  *
55
76
  * You can import a key using its ID and region:
@@ -74,6 +95,11 @@ export declare class KeyManagerKey extends pulumi.CustomResource {
74
95
  * when multiple copies of the Pulumi SDK have been loaded into the same process.
75
96
  */
76
97
  static isInstance(obj: any): obj is KeyManagerKey;
98
+ /**
99
+ * – The cryptographic algorithm to use. Valid values depend on the `usage`:
100
+ * - For `symmetricEncryption`:
101
+ */
102
+ readonly algorithm: pulumi.Output<string>;
77
103
  /**
78
104
  * The date and time when the key was created.
79
105
  */
@@ -96,6 +122,8 @@ export declare class KeyManagerKey extends pulumi.CustomResource {
96
122
  readonly origin: pulumi.Output<string | undefined>;
97
123
  /**
98
124
  * – The ID of the project the key belongs to.
125
+ *
126
+ * **Key Usage and Algorithm (both required):**
99
127
  */
100
128
  readonly projectId: pulumi.Output<string>;
101
129
  /**
@@ -135,7 +163,7 @@ export declare class KeyManagerKey extends pulumi.CustomResource {
135
163
  */
136
164
  readonly updatedAt: pulumi.Output<string>;
137
165
  /**
138
- * – The usage of the key. Valid values are:
166
+ * – The usage type of the key. Valid values:
139
167
  */
140
168
  readonly usage: pulumi.Output<string>;
141
169
  /**
@@ -151,6 +179,11 @@ export declare class KeyManagerKey extends pulumi.CustomResource {
151
179
  * Input properties used for looking up and filtering KeyManagerKey resources.
152
180
  */
153
181
  export interface KeyManagerKeyState {
182
+ /**
183
+ * – The cryptographic algorithm to use. Valid values depend on the `usage`:
184
+ * - For `symmetricEncryption`:
185
+ */
186
+ algorithm?: pulumi.Input<string>;
154
187
  /**
155
188
  * The date and time when the key was created.
156
189
  */
@@ -173,6 +206,8 @@ export interface KeyManagerKeyState {
173
206
  origin?: pulumi.Input<string>;
174
207
  /**
175
208
  * – The ID of the project the key belongs to.
209
+ *
210
+ * **Key Usage and Algorithm (both required):**
176
211
  */
177
212
  projectId?: pulumi.Input<string>;
178
213
  /**
@@ -212,7 +247,7 @@ export interface KeyManagerKeyState {
212
247
  */
213
248
  updatedAt?: pulumi.Input<string>;
214
249
  /**
215
- * – The usage of the key. Valid values are:
250
+ * – The usage type of the key. Valid values:
216
251
  */
217
252
  usage?: pulumi.Input<string>;
218
253
  }
@@ -220,6 +255,11 @@ export interface KeyManagerKeyState {
220
255
  * The set of arguments for constructing a KeyManagerKey resource.
221
256
  */
222
257
  export interface KeyManagerKeyArgs {
258
+ /**
259
+ * – The cryptographic algorithm to use. Valid values depend on the `usage`:
260
+ * - For `symmetricEncryption`:
261
+ */
262
+ algorithm: pulumi.Input<string>;
223
263
  /**
224
264
  * – A description for the key.
225
265
  */
@@ -234,6 +274,8 @@ export interface KeyManagerKeyArgs {
234
274
  origin?: pulumi.Input<string>;
235
275
  /**
236
276
  * – The ID of the project the key belongs to.
277
+ *
278
+ * **Key Usage and Algorithm (both required):**
237
279
  */
238
280
  projectId?: pulumi.Input<string>;
239
281
  /**
@@ -253,7 +295,7 @@ export interface KeyManagerKeyArgs {
253
295
  */
254
296
  unprotected?: pulumi.Input<boolean>;
255
297
  /**
256
- * – The usage of the key. Valid values are:
298
+ * – The usage type of the key. Valid values:
257
299
  */
258
300
  usage: pulumi.Input<string>;
259
301
  }
package/keyManagerKey.js CHANGED
@@ -11,15 +11,18 @@ const utilities = require("./utilities");
11
11
  *
12
12
  * ## Example Usage
13
13
  *
14
+ * ### Symmetric Encryption Key
15
+ *
14
16
  * ```typescript
15
17
  * import * as pulumi from "@pulumi/pulumi";
16
18
  * import * as scaleway from "@pulumiverse/scaleway";
17
19
  *
18
- * const main = new scaleway.KeyManagerKey("main", {
20
+ * const symmetric = new scaleway.KeyManagerKey("symmetric", {
19
21
  * name: "my-kms-key",
20
22
  * region: "fr-par",
21
23
  * projectId: "your-project-id",
22
24
  * usage: "symmetric_encryption",
25
+ * algorithm: "aes_256_gcm",
23
26
  * description: "Key for encrypting secrets",
24
27
  * tags: [
25
28
  * "env:prod",
@@ -32,28 +35,46 @@ const utilities = require("./utilities");
32
35
  * });
33
36
  * ```
34
37
  *
35
- * ## Notes
38
+ * ### Asymmetric Encryption Key with RSA-4096
36
39
  *
37
- * - **Protection**: By default, keys are protected and cannot be deleted. To allow deletion, set `unprotected = true` when creating the key.
38
- * - **Rotation Policy**: The `rotationPolicy` block allows you to set automatic rotation for your key.
39
- * - **Origin**: The `origin` argument is optional and defaults to `scalewayKms`. Use `external` if you want to import an external key (see Scaleway documentation for details).
40
- * - **Project and Region**: If not specified, `projectId` and `region` will default to the provider configuration.
40
+ * ```typescript
41
+ * import * as pulumi from "@pulumi/pulumi";
42
+ * import * as scaleway from "@pulumiverse/scaleway";
43
+ *
44
+ * const rsa4096 = new scaleway.KeyManagerKey("rsa_4096", {
45
+ * name: "rsa-4096-key",
46
+ * region: "fr-par",
47
+ * usage: "asymmetric_encryption",
48
+ * algorithm: "rsa_oaep_4096_sha256",
49
+ * description: "Key for encrypting large files with RSA-4096",
50
+ * unprotected: true,
51
+ * });
52
+ * ```
41
53
  *
42
- * ## Example: Asymmetric Key
54
+ * ### Asymmetric Signing Key
43
55
  *
44
56
  * ```typescript
45
57
  * import * as pulumi from "@pulumi/pulumi";
46
58
  * import * as scaleway from "@pulumiverse/scaleway";
47
59
  *
48
- * const asym = new scaleway.KeyManagerKey("asym", {
49
- * name: "asymmetric-key",
60
+ * const signing = new scaleway.KeyManagerKey("signing", {
61
+ * name: "signing-key",
50
62
  * region: "fr-par",
51
63
  * usage: "asymmetric_signing",
64
+ * algorithm: "rsa_pss_2048_sha256",
52
65
  * description: "Key for signing documents",
53
66
  * unprotected: true,
54
67
  * });
55
68
  * ```
56
69
  *
70
+ * ## Notes
71
+ *
72
+ * - **Protection**: By default, keys are protected and cannot be deleted. To allow deletion, set `unprotected = true` when creating the key.
73
+ * - **Rotation Policy**: The `rotationPolicy` block allows you to set automatic rotation for your key.
74
+ * - **Origin**: The `origin` argument is optional and defaults to `scalewayKms`. Use `external` if you want to import an external key (see Scaleway documentation for details).
75
+ * - **Project and Region**: If not specified, `projectId` and `region` will default to the provider configuration.
76
+ * - **Algorithm Validation**: The provider validates that the specified `algorithm` is compatible with the `usage` type at plan time, providing early feedback on configuration errors.
77
+ *
57
78
  * ## Import
58
79
  *
59
80
  * You can import a key using its ID and region:
@@ -90,6 +111,7 @@ class KeyManagerKey extends pulumi.CustomResource {
90
111
  opts = opts || {};
91
112
  if (opts.id) {
92
113
  const state = argsOrState;
114
+ resourceInputs["algorithm"] = state?.algorithm;
93
115
  resourceInputs["createdAt"] = state?.createdAt;
94
116
  resourceInputs["description"] = state?.description;
95
117
  resourceInputs["locked"] = state?.locked;
@@ -109,9 +131,13 @@ class KeyManagerKey extends pulumi.CustomResource {
109
131
  }
110
132
  else {
111
133
  const args = argsOrState;
134
+ if (args?.algorithm === undefined && !opts.urn) {
135
+ throw new Error("Missing required property 'algorithm'");
136
+ }
112
137
  if (args?.usage === undefined && !opts.urn) {
113
138
  throw new Error("Missing required property 'usage'");
114
139
  }
140
+ resourceInputs["algorithm"] = args?.algorithm;
115
141
  resourceInputs["description"] = args?.description;
116
142
  resourceInputs["name"] = args?.name;
117
143
  resourceInputs["origin"] = args?.origin;
@@ -1 +1 @@
1
- {"version":3,"file":"keyManagerKey.js","sourceRoot":"","sources":["../keyManagerKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyManagerKey.js","sourceRoot":"","sources":["../keyManagerKey.ts"],"names":[],"mappings":"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"}