pulumiverse-scaleway 1.35.0a1760445454__py3-none-any.whl → 1.35.0a1761072454__py3-none-any.whl

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 (28) hide show
  1. pulumiverse_scaleway/_inputs.py +105 -151
  2. pulumiverse_scaleway/baremetal_server.py +16 -0
  3. pulumiverse_scaleway/billing/get_consumptions.py +4 -0
  4. pulumiverse_scaleway/block/snapshot.py +8 -0
  5. pulumiverse_scaleway/block_snapshot.py +8 -0
  6. pulumiverse_scaleway/database_instance.py +34 -34
  7. pulumiverse_scaleway/databases/instance.py +34 -34
  8. pulumiverse_scaleway/edge_services_cache_stage.py +4 -0
  9. pulumiverse_scaleway/elasticmetal/server.py +16 -0
  10. pulumiverse_scaleway/file_filesystem.py +6 -2
  11. pulumiverse_scaleway/get_billing_consumptions.py +4 -0
  12. pulumiverse_scaleway/inference/deployment.py +4 -0
  13. pulumiverse_scaleway/inference_deployment.py +4 -0
  14. pulumiverse_scaleway/instance/_inputs.py +92 -138
  15. pulumiverse_scaleway/instance/image.py +94 -40
  16. pulumiverse_scaleway/instance/outputs.py +71 -88
  17. pulumiverse_scaleway/instance_image.py +94 -40
  18. pulumiverse_scaleway/key_manager_key.py +134 -25
  19. pulumiverse_scaleway/kubernetes/cluster.py +54 -0
  20. pulumiverse_scaleway/kubernetes_cluster.py +54 -0
  21. pulumiverse_scaleway/loadbalancers/_inputs.py +13 -13
  22. pulumiverse_scaleway/loadbalancers/outputs.py +9 -9
  23. pulumiverse_scaleway/outputs.py +80 -97
  24. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  25. {pulumiverse_scaleway-1.35.0a1760445454.dist-info → pulumiverse_scaleway-1.35.0a1761072454.dist-info}/METADATA +1 -1
  26. {pulumiverse_scaleway-1.35.0a1760445454.dist-info → pulumiverse_scaleway-1.35.0a1761072454.dist-info}/RECORD +28 -28
  27. {pulumiverse_scaleway-1.35.0a1760445454.dist-info → pulumiverse_scaleway-1.35.0a1761072454.dist-info}/WHEEL +0 -0
  28. {pulumiverse_scaleway-1.35.0a1760445454.dist-info → pulumiverse_scaleway-1.35.0a1761072454.dist-info}/top_level.txt +0 -0
@@ -17,6 +17,8 @@ from .. import _utilities
17
17
  __all__ = [
18
18
  'ImageAdditionalVolumeArgs',
19
19
  'ImageAdditionalVolumeArgsDict',
20
+ 'ImageRootVolumeArgs',
21
+ 'ImageRootVolumeArgsDict',
20
22
  'PrivateNicPrivateIpArgs',
21
23
  'PrivateNicPrivateIpArgsDict',
22
24
  'SecurityGroupInboundRuleArgs',
@@ -43,34 +45,14 @@ MYPY = False
43
45
 
44
46
  if not MYPY:
45
47
  class ImageAdditionalVolumeArgsDict(TypedDict):
46
- creation_date: NotRequired[pulumi.Input[_builtins.str]]
47
- """
48
- Date of the volume creation.
49
- """
50
- export_uri: NotRequired[pulumi.Input[_builtins.str]]
51
- """
52
- The export URI of the volume.
53
- """
54
48
  id: NotRequired[pulumi.Input[_builtins.str]]
55
49
  """
56
50
  ID of the server containing the volume.
57
51
  """
58
- modification_date: NotRequired[pulumi.Input[_builtins.str]]
59
- """
60
- Date of volume latest update.
61
- """
62
52
  name: NotRequired[pulumi.Input[_builtins.str]]
63
53
  """
64
54
  The name of the image. If not provided it will be randomly generated.
65
55
  """
66
- organization: NotRequired[pulumi.Input[_builtins.str]]
67
- """
68
- The organization ID the volume is associated with.
69
- """
70
- project: NotRequired[pulumi.Input[_builtins.str]]
71
- """
72
- ID of the project the volume is associated with
73
- """
74
56
  server: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
75
57
  """
76
58
  Description of the server containing the volume (in case the image is a backup from a server).
@@ -79,21 +61,13 @@ if not MYPY:
79
61
  """
80
62
  The size of the volume.
81
63
  """
82
- state: NotRequired[pulumi.Input[_builtins.str]]
83
- """
84
- State of the volume.
85
- """
86
64
  tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
87
65
  """
88
66
  A list of tags to apply to the image.
89
67
  """
90
68
  volume_type: NotRequired[pulumi.Input[_builtins.str]]
91
69
  """
92
- The type of volume, possible values are `l_ssd` and `b_ssd`.
93
- """
94
- zone: NotRequired[pulumi.Input[_builtins.str]]
95
- """
96
- The zone in which the image should be created.
70
+ The type of volume, possible values are `l_ssd` and `sbs_snapshot`.
97
71
  """
98
72
  elif False:
99
73
  ImageAdditionalVolumeArgsDict: TypeAlias = Mapping[str, Any]
@@ -101,84 +75,32 @@ elif False:
101
75
  @pulumi.input_type
102
76
  class ImageAdditionalVolumeArgs:
103
77
  def __init__(__self__, *,
104
- creation_date: Optional[pulumi.Input[_builtins.str]] = None,
105
- export_uri: Optional[pulumi.Input[_builtins.str]] = None,
106
78
  id: Optional[pulumi.Input[_builtins.str]] = None,
107
- modification_date: Optional[pulumi.Input[_builtins.str]] = None,
108
79
  name: Optional[pulumi.Input[_builtins.str]] = None,
109
- organization: Optional[pulumi.Input[_builtins.str]] = None,
110
- project: Optional[pulumi.Input[_builtins.str]] = None,
111
80
  server: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
112
81
  size: Optional[pulumi.Input[_builtins.int]] = None,
113
- state: Optional[pulumi.Input[_builtins.str]] = None,
114
82
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
115
- volume_type: Optional[pulumi.Input[_builtins.str]] = None,
116
- zone: Optional[pulumi.Input[_builtins.str]] = None):
83
+ volume_type: Optional[pulumi.Input[_builtins.str]] = None):
117
84
  """
118
- :param pulumi.Input[_builtins.str] creation_date: Date of the volume creation.
119
- :param pulumi.Input[_builtins.str] export_uri: The export URI of the volume.
120
85
  :param pulumi.Input[_builtins.str] id: ID of the server containing the volume.
121
- :param pulumi.Input[_builtins.str] modification_date: Date of volume latest update.
122
86
  :param pulumi.Input[_builtins.str] name: The name of the image. If not provided it will be randomly generated.
123
- :param pulumi.Input[_builtins.str] organization: The organization ID the volume is associated with.
124
- :param pulumi.Input[_builtins.str] project: ID of the project the volume is associated with
125
87
  :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] server: Description of the server containing the volume (in case the image is a backup from a server).
126
88
  :param pulumi.Input[_builtins.int] size: The size of the volume.
127
- :param pulumi.Input[_builtins.str] state: State of the volume.
128
89
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: A list of tags to apply to the image.
129
- :param pulumi.Input[_builtins.str] volume_type: The type of volume, possible values are `l_ssd` and `b_ssd`.
130
- :param pulumi.Input[_builtins.str] zone: The zone in which the image should be created.
90
+ :param pulumi.Input[_builtins.str] volume_type: The type of volume, possible values are `l_ssd` and `sbs_snapshot`.
131
91
  """
132
- if creation_date is not None:
133
- pulumi.set(__self__, "creation_date", creation_date)
134
- if export_uri is not None:
135
- pulumi.set(__self__, "export_uri", export_uri)
136
92
  if id is not None:
137
93
  pulumi.set(__self__, "id", id)
138
- if modification_date is not None:
139
- pulumi.set(__self__, "modification_date", modification_date)
140
94
  if name is not None:
141
95
  pulumi.set(__self__, "name", name)
142
- if organization is not None:
143
- pulumi.set(__self__, "organization", organization)
144
- if project is not None:
145
- pulumi.set(__self__, "project", project)
146
96
  if server is not None:
147
97
  pulumi.set(__self__, "server", server)
148
98
  if size is not None:
149
99
  pulumi.set(__self__, "size", size)
150
- if state is not None:
151
- pulumi.set(__self__, "state", state)
152
100
  if tags is not None:
153
101
  pulumi.set(__self__, "tags", tags)
154
102
  if volume_type is not None:
155
103
  pulumi.set(__self__, "volume_type", volume_type)
156
- if zone is not None:
157
- pulumi.set(__self__, "zone", zone)
158
-
159
- @_builtins.property
160
- @pulumi.getter(name="creationDate")
161
- def creation_date(self) -> Optional[pulumi.Input[_builtins.str]]:
162
- """
163
- Date of the volume creation.
164
- """
165
- return pulumi.get(self, "creation_date")
166
-
167
- @creation_date.setter
168
- def creation_date(self, value: Optional[pulumi.Input[_builtins.str]]):
169
- pulumi.set(self, "creation_date", value)
170
-
171
- @_builtins.property
172
- @pulumi.getter(name="exportUri")
173
- def export_uri(self) -> Optional[pulumi.Input[_builtins.str]]:
174
- """
175
- The export URI of the volume.
176
- """
177
- return pulumi.get(self, "export_uri")
178
-
179
- @export_uri.setter
180
- def export_uri(self, value: Optional[pulumi.Input[_builtins.str]]):
181
- pulumi.set(self, "export_uri", value)
182
104
 
183
105
  @_builtins.property
184
106
  @pulumi.getter
@@ -192,18 +114,6 @@ class ImageAdditionalVolumeArgs:
192
114
  def id(self, value: Optional[pulumi.Input[_builtins.str]]):
193
115
  pulumi.set(self, "id", value)
194
116
 
195
- @_builtins.property
196
- @pulumi.getter(name="modificationDate")
197
- def modification_date(self) -> Optional[pulumi.Input[_builtins.str]]:
198
- """
199
- Date of volume latest update.
200
- """
201
- return pulumi.get(self, "modification_date")
202
-
203
- @modification_date.setter
204
- def modification_date(self, value: Optional[pulumi.Input[_builtins.str]]):
205
- pulumi.set(self, "modification_date", value)
206
-
207
117
  @_builtins.property
208
118
  @pulumi.getter
209
119
  def name(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -216,30 +126,6 @@ class ImageAdditionalVolumeArgs:
216
126
  def name(self, value: Optional[pulumi.Input[_builtins.str]]):
217
127
  pulumi.set(self, "name", value)
218
128
 
219
- @_builtins.property
220
- @pulumi.getter
221
- def organization(self) -> Optional[pulumi.Input[_builtins.str]]:
222
- """
223
- The organization ID the volume is associated with.
224
- """
225
- return pulumi.get(self, "organization")
226
-
227
- @organization.setter
228
- def organization(self, value: Optional[pulumi.Input[_builtins.str]]):
229
- pulumi.set(self, "organization", value)
230
-
231
- @_builtins.property
232
- @pulumi.getter
233
- def project(self) -> Optional[pulumi.Input[_builtins.str]]:
234
- """
235
- ID of the project the volume is associated with
236
- """
237
- return pulumi.get(self, "project")
238
-
239
- @project.setter
240
- def project(self, value: Optional[pulumi.Input[_builtins.str]]):
241
- pulumi.set(self, "project", value)
242
-
243
129
  @_builtins.property
244
130
  @pulumi.getter
245
131
  def server(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
@@ -264,18 +150,6 @@ class ImageAdditionalVolumeArgs:
264
150
  def size(self, value: Optional[pulumi.Input[_builtins.int]]):
265
151
  pulumi.set(self, "size", value)
266
152
 
267
- @_builtins.property
268
- @pulumi.getter
269
- def state(self) -> Optional[pulumi.Input[_builtins.str]]:
270
- """
271
- State of the volume.
272
- """
273
- return pulumi.get(self, "state")
274
-
275
- @state.setter
276
- def state(self, value: Optional[pulumi.Input[_builtins.str]]):
277
- pulumi.set(self, "state", value)
278
-
279
153
  @_builtins.property
280
154
  @pulumi.getter
281
155
  def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
@@ -292,7 +166,7 @@ class ImageAdditionalVolumeArgs:
292
166
  @pulumi.getter(name="volumeType")
293
167
  def volume_type(self) -> Optional[pulumi.Input[_builtins.str]]:
294
168
  """
295
- The type of volume, possible values are `l_ssd` and `b_ssd`.
169
+ The type of volume, possible values are `l_ssd` and `sbs_snapshot`.
296
170
  """
297
171
  return pulumi.get(self, "volume_type")
298
172
 
@@ -300,17 +174,97 @@ class ImageAdditionalVolumeArgs:
300
174
  def volume_type(self, value: Optional[pulumi.Input[_builtins.str]]):
301
175
  pulumi.set(self, "volume_type", value)
302
176
 
177
+
178
+ if not MYPY:
179
+ class ImageRootVolumeArgsDict(TypedDict):
180
+ id: NotRequired[pulumi.Input[_builtins.str]]
181
+ """
182
+ ID of the server containing the volume.
183
+ """
184
+ name: NotRequired[pulumi.Input[_builtins.str]]
185
+ """
186
+ The name of the image. If not provided it will be randomly generated.
187
+ """
188
+ size: NotRequired[pulumi.Input[_builtins.int]]
189
+ """
190
+ The size of the volume.
191
+ """
192
+ volume_type: NotRequired[pulumi.Input[_builtins.str]]
193
+ """
194
+ The type of volume, possible values are `l_ssd` and `sbs_snapshot`.
195
+ """
196
+ elif False:
197
+ ImageRootVolumeArgsDict: TypeAlias = Mapping[str, Any]
198
+
199
+ @pulumi.input_type
200
+ class ImageRootVolumeArgs:
201
+ def __init__(__self__, *,
202
+ id: Optional[pulumi.Input[_builtins.str]] = None,
203
+ name: Optional[pulumi.Input[_builtins.str]] = None,
204
+ size: Optional[pulumi.Input[_builtins.int]] = None,
205
+ volume_type: Optional[pulumi.Input[_builtins.str]] = None):
206
+ """
207
+ :param pulumi.Input[_builtins.str] id: ID of the server containing the volume.
208
+ :param pulumi.Input[_builtins.str] name: The name of the image. If not provided it will be randomly generated.
209
+ :param pulumi.Input[_builtins.int] size: The size of the volume.
210
+ :param pulumi.Input[_builtins.str] volume_type: The type of volume, possible values are `l_ssd` and `sbs_snapshot`.
211
+ """
212
+ if id is not None:
213
+ pulumi.set(__self__, "id", id)
214
+ if name is not None:
215
+ pulumi.set(__self__, "name", name)
216
+ if size is not None:
217
+ pulumi.set(__self__, "size", size)
218
+ if volume_type is not None:
219
+ pulumi.set(__self__, "volume_type", volume_type)
220
+
303
221
  @_builtins.property
304
222
  @pulumi.getter
305
- def zone(self) -> Optional[pulumi.Input[_builtins.str]]:
223
+ def id(self) -> Optional[pulumi.Input[_builtins.str]]:
306
224
  """
307
- The zone in which the image should be created.
225
+ ID of the server containing the volume.
308
226
  """
309
- return pulumi.get(self, "zone")
227
+ return pulumi.get(self, "id")
310
228
 
311
- @zone.setter
312
- def zone(self, value: Optional[pulumi.Input[_builtins.str]]):
313
- pulumi.set(self, "zone", value)
229
+ @id.setter
230
+ def id(self, value: Optional[pulumi.Input[_builtins.str]]):
231
+ pulumi.set(self, "id", value)
232
+
233
+ @_builtins.property
234
+ @pulumi.getter
235
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
236
+ """
237
+ The name of the image. If not provided it will be randomly generated.
238
+ """
239
+ return pulumi.get(self, "name")
240
+
241
+ @name.setter
242
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
243
+ pulumi.set(self, "name", value)
244
+
245
+ @_builtins.property
246
+ @pulumi.getter
247
+ def size(self) -> Optional[pulumi.Input[_builtins.int]]:
248
+ """
249
+ The size of the volume.
250
+ """
251
+ return pulumi.get(self, "size")
252
+
253
+ @size.setter
254
+ def size(self, value: Optional[pulumi.Input[_builtins.int]]):
255
+ pulumi.set(self, "size", value)
256
+
257
+ @_builtins.property
258
+ @pulumi.getter(name="volumeType")
259
+ def volume_type(self) -> Optional[pulumi.Input[_builtins.str]]:
260
+ """
261
+ The type of volume, possible values are `l_ssd` and `sbs_snapshot`.
262
+ """
263
+ return pulumi.get(self, "volume_type")
264
+
265
+ @volume_type.setter
266
+ def volume_type(self, value: Optional[pulumi.Input[_builtins.str]]):
267
+ pulumi.set(self, "volume_type", value)
314
268
 
315
269
 
316
270
  if not MYPY:
@@ -22,7 +22,7 @@ __all__ = ['ImageArgs', 'Image']
22
22
  class ImageArgs:
23
23
  def __init__(__self__, *,
24
24
  root_volume_id: pulumi.Input[_builtins.str],
25
- additional_volume_ids: Optional[pulumi.Input[_builtins.str]] = None,
25
+ additional_volume_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
26
26
  architecture: Optional[pulumi.Input[_builtins.str]] = None,
27
27
  name: Optional[pulumi.Input[_builtins.str]] = None,
28
28
  project_id: Optional[pulumi.Input[_builtins.str]] = None,
@@ -32,9 +32,7 @@ class ImageArgs:
32
32
  """
33
33
  The set of arguments for constructing a Image resource.
34
34
  :param pulumi.Input[_builtins.str] root_volume_id: The ID of the snapshot of the volume to be used as root in the image.
35
- :param pulumi.Input[_builtins.str] additional_volume_ids: List of IDs of the snapshots of the additional volumes to be attached to the image.
36
-
37
- > **Important:** For now it is only possible to have 1 additional_volume.
35
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] additional_volume_ids: List of IDs of the snapshots of the additional volumes to be attached to the image.
38
36
  :param pulumi.Input[_builtins.str] architecture: The architecture the image is compatible with. Possible values are: `x86_64` or `arm`.
39
37
  :param pulumi.Input[_builtins.str] name: The name of the image. If not provided it will be randomly generated.
40
38
  :param pulumi.Input[_builtins.str] project_id: The ID of the project the image is associated with.
@@ -72,16 +70,14 @@ class ImageArgs:
72
70
 
73
71
  @_builtins.property
74
72
  @pulumi.getter(name="additionalVolumeIds")
75
- def additional_volume_ids(self) -> Optional[pulumi.Input[_builtins.str]]:
73
+ def additional_volume_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
76
74
  """
77
75
  List of IDs of the snapshots of the additional volumes to be attached to the image.
78
-
79
- > **Important:** For now it is only possible to have 1 additional_volume.
80
76
  """
81
77
  return pulumi.get(self, "additional_volume_ids")
82
78
 
83
79
  @additional_volume_ids.setter
84
- def additional_volume_ids(self, value: Optional[pulumi.Input[_builtins.str]]):
80
+ def additional_volume_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
85
81
  pulumi.set(self, "additional_volume_ids", value)
86
82
 
87
83
  @_builtins.property
@@ -160,7 +156,7 @@ class ImageArgs:
160
156
  @pulumi.input_type
161
157
  class _ImageState:
162
158
  def __init__(__self__, *,
163
- additional_volume_ids: Optional[pulumi.Input[_builtins.str]] = None,
159
+ additional_volume_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
164
160
  additional_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['ImageAdditionalVolumeArgs']]]] = None,
165
161
  architecture: Optional[pulumi.Input[_builtins.str]] = None,
166
162
  creation_date: Optional[pulumi.Input[_builtins.str]] = None,
@@ -171,25 +167,25 @@ class _ImageState:
171
167
  project_id: Optional[pulumi.Input[_builtins.str]] = None,
172
168
  public: Optional[pulumi.Input[_builtins.bool]] = None,
173
169
  root_volume_id: Optional[pulumi.Input[_builtins.str]] = None,
170
+ root_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['ImageRootVolumeArgs']]]] = None,
174
171
  state: Optional[pulumi.Input[_builtins.str]] = None,
175
172
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
176
173
  zone: Optional[pulumi.Input[_builtins.str]] = None):
177
174
  """
178
175
  Input properties used for looking up and filtering Image resources.
179
- :param pulumi.Input[_builtins.str] additional_volume_ids: List of IDs of the snapshots of the additional volumes to be attached to the image.
180
-
181
- > **Important:** For now it is only possible to have 1 additional_volume.
176
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] additional_volume_ids: List of IDs of the snapshots of the additional volumes to be attached to the image.
182
177
  :param pulumi.Input[Sequence[pulumi.Input['ImageAdditionalVolumeArgs']]] additional_volumes: The description of the extra volumes attached to the image.
183
178
  :param pulumi.Input[_builtins.str] architecture: The architecture the image is compatible with. Possible values are: `x86_64` or `arm`.
184
- :param pulumi.Input[_builtins.str] creation_date: Date of the volume creation.
179
+ :param pulumi.Input[_builtins.str] creation_date: Date of the image creation.
185
180
  :param pulumi.Input[_builtins.str] from_server_id: ID of the server the image is based on (in case it is a backup).
186
- :param pulumi.Input[_builtins.str] modification_date: Date of volume latest update.
181
+ :param pulumi.Input[_builtins.str] modification_date: Date of image latest update.
187
182
  :param pulumi.Input[_builtins.str] name: The name of the image. If not provided it will be randomly generated.
188
183
  :param pulumi.Input[_builtins.str] organization_id: The organization ID the image is associated with.
189
184
  :param pulumi.Input[_builtins.str] project_id: The ID of the project the image is associated with.
190
185
  :param pulumi.Input[_builtins.bool] public: Set to `true` if the image is public.
191
186
  :param pulumi.Input[_builtins.str] root_volume_id: The ID of the snapshot of the volume to be used as root in the image.
192
- :param pulumi.Input[_builtins.str] state: State of the volume.
187
+ :param pulumi.Input[Sequence[pulumi.Input['ImageRootVolumeArgs']]] root_volumes: The description of the root volume attached to the image.
188
+ :param pulumi.Input[_builtins.str] state: State of the image. Possible values are: `available`, `creating` or `error`.
193
189
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: A list of tags to apply to the image.
194
190
  :param pulumi.Input[_builtins.str] zone: The zone in which the image should be created.
195
191
  """
@@ -215,6 +211,8 @@ class _ImageState:
215
211
  pulumi.set(__self__, "public", public)
216
212
  if root_volume_id is not None:
217
213
  pulumi.set(__self__, "root_volume_id", root_volume_id)
214
+ if root_volumes is not None:
215
+ pulumi.set(__self__, "root_volumes", root_volumes)
218
216
  if state is not None:
219
217
  pulumi.set(__self__, "state", state)
220
218
  if tags is not None:
@@ -224,16 +222,14 @@ class _ImageState:
224
222
 
225
223
  @_builtins.property
226
224
  @pulumi.getter(name="additionalVolumeIds")
227
- def additional_volume_ids(self) -> Optional[pulumi.Input[_builtins.str]]:
225
+ def additional_volume_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
228
226
  """
229
227
  List of IDs of the snapshots of the additional volumes to be attached to the image.
230
-
231
- > **Important:** For now it is only possible to have 1 additional_volume.
232
228
  """
233
229
  return pulumi.get(self, "additional_volume_ids")
234
230
 
235
231
  @additional_volume_ids.setter
236
- def additional_volume_ids(self, value: Optional[pulumi.Input[_builtins.str]]):
232
+ def additional_volume_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
237
233
  pulumi.set(self, "additional_volume_ids", value)
238
234
 
239
235
  @_builtins.property
@@ -264,7 +260,7 @@ class _ImageState:
264
260
  @pulumi.getter(name="creationDate")
265
261
  def creation_date(self) -> Optional[pulumi.Input[_builtins.str]]:
266
262
  """
267
- Date of the volume creation.
263
+ Date of the image creation.
268
264
  """
269
265
  return pulumi.get(self, "creation_date")
270
266
 
@@ -288,7 +284,7 @@ class _ImageState:
288
284
  @pulumi.getter(name="modificationDate")
289
285
  def modification_date(self) -> Optional[pulumi.Input[_builtins.str]]:
290
286
  """
291
- Date of volume latest update.
287
+ Date of image latest update.
292
288
  """
293
289
  return pulumi.get(self, "modification_date")
294
290
 
@@ -356,11 +352,23 @@ class _ImageState:
356
352
  def root_volume_id(self, value: Optional[pulumi.Input[_builtins.str]]):
357
353
  pulumi.set(self, "root_volume_id", value)
358
354
 
355
+ @_builtins.property
356
+ @pulumi.getter(name="rootVolumes")
357
+ def root_volumes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ImageRootVolumeArgs']]]]:
358
+ """
359
+ The description of the root volume attached to the image.
360
+ """
361
+ return pulumi.get(self, "root_volumes")
362
+
363
+ @root_volumes.setter
364
+ def root_volumes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ImageRootVolumeArgs']]]]):
365
+ pulumi.set(self, "root_volumes", value)
366
+
359
367
  @_builtins.property
360
368
  @pulumi.getter
361
369
  def state(self) -> Optional[pulumi.Input[_builtins.str]]:
362
370
  """
363
- State of the volume.
371
+ State of the image. Possible values are: `available`, `creating` or `error`.
364
372
  """
365
373
  return pulumi.get(self, "state")
366
374
 
@@ -399,7 +407,7 @@ class Image(pulumi.CustomResource):
399
407
  def __init__(__self__,
400
408
  resource_name: str,
401
409
  opts: Optional[pulumi.ResourceOptions] = None,
402
- additional_volume_ids: Optional[pulumi.Input[_builtins.str]] = None,
410
+ additional_volume_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
403
411
  architecture: Optional[pulumi.Input[_builtins.str]] = None,
404
412
  name: Optional[pulumi.Input[_builtins.str]] = None,
405
413
  project_id: Optional[pulumi.Input[_builtins.str]] = None,
@@ -444,6 +452,26 @@ class Image(pulumi.CustomResource):
444
452
  root_volume_id=server_snapshot.id)
445
453
  ```
446
454
 
455
+ ### With additional volumes
456
+
457
+ ```python
458
+ import pulumi
459
+ import pulumiverse_scaleway as scaleway
460
+
461
+ server = scaleway.instance.Server("server",
462
+ image="ubuntu_jammy",
463
+ type="DEV1-S")
464
+ volume = scaleway.instance.Volume("volume",
465
+ type="b_ssd",
466
+ size_in_gb=20)
467
+ volume_snapshot = scaleway.instance.Snapshot("volume_snapshot", volume_id=volume.id)
468
+ server_snapshot = scaleway.instance.Snapshot("server_snapshot", volume_id=main["rootVolume"][0]["volumeId"])
469
+ image = scaleway.instance.Image("image",
470
+ name="image_with_extra_volumes",
471
+ root_volume_id=server_snapshot.id,
472
+ additional_volume_ids=[volume_snapshot.id])
473
+ ```
474
+
447
475
  ## Import
448
476
 
449
477
  Images can be imported using the `{zone}/{id}`, e.g.
@@ -456,9 +484,7 @@ class Image(pulumi.CustomResource):
456
484
 
457
485
  :param str resource_name: The name of the resource.
458
486
  :param pulumi.ResourceOptions opts: Options for the resource.
459
- :param pulumi.Input[_builtins.str] additional_volume_ids: List of IDs of the snapshots of the additional volumes to be attached to the image.
460
-
461
- > **Important:** For now it is only possible to have 1 additional_volume.
487
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] additional_volume_ids: List of IDs of the snapshots of the additional volumes to be attached to the image.
462
488
  :param pulumi.Input[_builtins.str] architecture: The architecture the image is compatible with. Possible values are: `x86_64` or `arm`.
463
489
  :param pulumi.Input[_builtins.str] name: The name of the image. If not provided it will be randomly generated.
464
490
  :param pulumi.Input[_builtins.str] project_id: The ID of the project the image is associated with.
@@ -509,6 +535,26 @@ class Image(pulumi.CustomResource):
509
535
  root_volume_id=server_snapshot.id)
510
536
  ```
511
537
 
538
+ ### With additional volumes
539
+
540
+ ```python
541
+ import pulumi
542
+ import pulumiverse_scaleway as scaleway
543
+
544
+ server = scaleway.instance.Server("server",
545
+ image="ubuntu_jammy",
546
+ type="DEV1-S")
547
+ volume = scaleway.instance.Volume("volume",
548
+ type="b_ssd",
549
+ size_in_gb=20)
550
+ volume_snapshot = scaleway.instance.Snapshot("volume_snapshot", volume_id=volume.id)
551
+ server_snapshot = scaleway.instance.Snapshot("server_snapshot", volume_id=main["rootVolume"][0]["volumeId"])
552
+ image = scaleway.instance.Image("image",
553
+ name="image_with_extra_volumes",
554
+ root_volume_id=server_snapshot.id,
555
+ additional_volume_ids=[volume_snapshot.id])
556
+ ```
557
+
512
558
  ## Import
513
559
 
514
560
  Images can be imported using the `{zone}/{id}`, e.g.
@@ -534,7 +580,7 @@ class Image(pulumi.CustomResource):
534
580
  def _internal_init(__self__,
535
581
  resource_name: str,
536
582
  opts: Optional[pulumi.ResourceOptions] = None,
537
- additional_volume_ids: Optional[pulumi.Input[_builtins.str]] = None,
583
+ additional_volume_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
538
584
  architecture: Optional[pulumi.Input[_builtins.str]] = None,
539
585
  name: Optional[pulumi.Input[_builtins.str]] = None,
540
586
  project_id: Optional[pulumi.Input[_builtins.str]] = None,
@@ -566,6 +612,7 @@ class Image(pulumi.CustomResource):
566
612
  __props__.__dict__["from_server_id"] = None
567
613
  __props__.__dict__["modification_date"] = None
568
614
  __props__.__dict__["organization_id"] = None
615
+ __props__.__dict__["root_volumes"] = None
569
616
  __props__.__dict__["state"] = None
570
617
  alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/instanceImage:InstanceImage")])
571
618
  opts = pulumi.ResourceOptions.merge(opts, alias_opts)
@@ -579,7 +626,7 @@ class Image(pulumi.CustomResource):
579
626
  def get(resource_name: str,
580
627
  id: pulumi.Input[str],
581
628
  opts: Optional[pulumi.ResourceOptions] = None,
582
- additional_volume_ids: Optional[pulumi.Input[_builtins.str]] = None,
629
+ additional_volume_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
583
630
  additional_volumes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ImageAdditionalVolumeArgs', 'ImageAdditionalVolumeArgsDict']]]]] = None,
584
631
  architecture: Optional[pulumi.Input[_builtins.str]] = None,
585
632
  creation_date: Optional[pulumi.Input[_builtins.str]] = None,
@@ -590,6 +637,7 @@ class Image(pulumi.CustomResource):
590
637
  project_id: Optional[pulumi.Input[_builtins.str]] = None,
591
638
  public: Optional[pulumi.Input[_builtins.bool]] = None,
592
639
  root_volume_id: Optional[pulumi.Input[_builtins.str]] = None,
640
+ root_volumes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ImageRootVolumeArgs', 'ImageRootVolumeArgsDict']]]]] = None,
593
641
  state: Optional[pulumi.Input[_builtins.str]] = None,
594
642
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
595
643
  zone: Optional[pulumi.Input[_builtins.str]] = None) -> 'Image':
@@ -600,20 +648,19 @@ class Image(pulumi.CustomResource):
600
648
  :param str resource_name: The unique name of the resulting resource.
601
649
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
602
650
  :param pulumi.ResourceOptions opts: Options for the resource.
603
- :param pulumi.Input[_builtins.str] additional_volume_ids: List of IDs of the snapshots of the additional volumes to be attached to the image.
604
-
605
- > **Important:** For now it is only possible to have 1 additional_volume.
651
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] additional_volume_ids: List of IDs of the snapshots of the additional volumes to be attached to the image.
606
652
  :param pulumi.Input[Sequence[pulumi.Input[Union['ImageAdditionalVolumeArgs', 'ImageAdditionalVolumeArgsDict']]]] additional_volumes: The description of the extra volumes attached to the image.
607
653
  :param pulumi.Input[_builtins.str] architecture: The architecture the image is compatible with. Possible values are: `x86_64` or `arm`.
608
- :param pulumi.Input[_builtins.str] creation_date: Date of the volume creation.
654
+ :param pulumi.Input[_builtins.str] creation_date: Date of the image creation.
609
655
  :param pulumi.Input[_builtins.str] from_server_id: ID of the server the image is based on (in case it is a backup).
610
- :param pulumi.Input[_builtins.str] modification_date: Date of volume latest update.
656
+ :param pulumi.Input[_builtins.str] modification_date: Date of image latest update.
611
657
  :param pulumi.Input[_builtins.str] name: The name of the image. If not provided it will be randomly generated.
612
658
  :param pulumi.Input[_builtins.str] organization_id: The organization ID the image is associated with.
613
659
  :param pulumi.Input[_builtins.str] project_id: The ID of the project the image is associated with.
614
660
  :param pulumi.Input[_builtins.bool] public: Set to `true` if the image is public.
615
661
  :param pulumi.Input[_builtins.str] root_volume_id: The ID of the snapshot of the volume to be used as root in the image.
616
- :param pulumi.Input[_builtins.str] state: State of the volume.
662
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ImageRootVolumeArgs', 'ImageRootVolumeArgsDict']]]] root_volumes: The description of the root volume attached to the image.
663
+ :param pulumi.Input[_builtins.str] state: State of the image. Possible values are: `available`, `creating` or `error`.
617
664
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: A list of tags to apply to the image.
618
665
  :param pulumi.Input[_builtins.str] zone: The zone in which the image should be created.
619
666
  """
@@ -632,6 +679,7 @@ class Image(pulumi.CustomResource):
632
679
  __props__.__dict__["project_id"] = project_id
633
680
  __props__.__dict__["public"] = public
634
681
  __props__.__dict__["root_volume_id"] = root_volume_id
682
+ __props__.__dict__["root_volumes"] = root_volumes
635
683
  __props__.__dict__["state"] = state
636
684
  __props__.__dict__["tags"] = tags
637
685
  __props__.__dict__["zone"] = zone
@@ -639,11 +687,9 @@ class Image(pulumi.CustomResource):
639
687
 
640
688
  @_builtins.property
641
689
  @pulumi.getter(name="additionalVolumeIds")
642
- def additional_volume_ids(self) -> pulumi.Output[Optional[_builtins.str]]:
690
+ def additional_volume_ids(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
643
691
  """
644
692
  List of IDs of the snapshots of the additional volumes to be attached to the image.
645
-
646
- > **Important:** For now it is only possible to have 1 additional_volume.
647
693
  """
648
694
  return pulumi.get(self, "additional_volume_ids")
649
695
 
@@ -667,7 +713,7 @@ class Image(pulumi.CustomResource):
667
713
  @pulumi.getter(name="creationDate")
668
714
  def creation_date(self) -> pulumi.Output[_builtins.str]:
669
715
  """
670
- Date of the volume creation.
716
+ Date of the image creation.
671
717
  """
672
718
  return pulumi.get(self, "creation_date")
673
719
 
@@ -683,7 +729,7 @@ class Image(pulumi.CustomResource):
683
729
  @pulumi.getter(name="modificationDate")
684
730
  def modification_date(self) -> pulumi.Output[_builtins.str]:
685
731
  """
686
- Date of volume latest update.
732
+ Date of image latest update.
687
733
  """
688
734
  return pulumi.get(self, "modification_date")
689
735
 
@@ -727,11 +773,19 @@ class Image(pulumi.CustomResource):
727
773
  """
728
774
  return pulumi.get(self, "root_volume_id")
729
775
 
776
+ @_builtins.property
777
+ @pulumi.getter(name="rootVolumes")
778
+ def root_volumes(self) -> pulumi.Output[Sequence['outputs.ImageRootVolume']]:
779
+ """
780
+ The description of the root volume attached to the image.
781
+ """
782
+ return pulumi.get(self, "root_volumes")
783
+
730
784
  @_builtins.property
731
785
  @pulumi.getter
732
786
  def state(self) -> pulumi.Output[_builtins.str]:
733
787
  """
734
- State of the volume.
788
+ State of the image. Possible values are: `available`, `creating` or `error`.
735
789
  """
736
790
  return pulumi.get(self, "state")
737
791