pulumiverse-scaleway 1.35.0a1761031391__py3-none-any.whl → 1.39.0a1764841480__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 (109) hide show
  1. pulumiverse_scaleway/__init__.py +38 -0
  2. pulumiverse_scaleway/_inputs.py +271 -166
  3. pulumiverse_scaleway/audittrail/__init__.py +10 -0
  4. pulumiverse_scaleway/audittrail/get_event.py +410 -0
  5. pulumiverse_scaleway/audittrail/outputs.py +234 -0
  6. pulumiverse_scaleway/baremetal_server.py +159 -0
  7. pulumiverse_scaleway/billing/get_consumptions.py +4 -0
  8. pulumiverse_scaleway/block/snapshot.py +78 -0
  9. pulumiverse_scaleway/block_snapshot.py +78 -0
  10. pulumiverse_scaleway/cockpit_grafana_user.py +0 -42
  11. pulumiverse_scaleway/database_instance.py +105 -55
  12. pulumiverse_scaleway/database_user.py +6 -6
  13. pulumiverse_scaleway/databases/_inputs.py +97 -3
  14. pulumiverse_scaleway/databases/get_instance.py +12 -1
  15. pulumiverse_scaleway/databases/instance.py +105 -55
  16. pulumiverse_scaleway/databases/outputs.py +127 -2
  17. pulumiverse_scaleway/databases/user.py +6 -6
  18. pulumiverse_scaleway/datawarehouse/__init__.py +13 -0
  19. pulumiverse_scaleway/datawarehouse/_inputs.py +149 -0
  20. pulumiverse_scaleway/datawarehouse/database.py +338 -0
  21. pulumiverse_scaleway/datawarehouse/deployment.py +821 -0
  22. pulumiverse_scaleway/datawarehouse/outputs.py +113 -0
  23. pulumiverse_scaleway/datawarehouse/user.py +451 -0
  24. pulumiverse_scaleway/domain/record.py +4 -4
  25. pulumiverse_scaleway/domain_record.py +4 -4
  26. pulumiverse_scaleway/edge_services_cache_stage.py +30 -0
  27. pulumiverse_scaleway/edge_services_dns_stage.py +28 -0
  28. pulumiverse_scaleway/elasticmetal/get_offer.py +2 -0
  29. pulumiverse_scaleway/elasticmetal/get_server.py +12 -1
  30. pulumiverse_scaleway/elasticmetal/server.py +159 -0
  31. pulumiverse_scaleway/file_filesystem.py +39 -35
  32. pulumiverse_scaleway/get_baremetal_offer.py +2 -0
  33. pulumiverse_scaleway/get_baremetal_server.py +12 -1
  34. pulumiverse_scaleway/get_billing_consumptions.py +4 -0
  35. pulumiverse_scaleway/get_database_instance.py +12 -1
  36. pulumiverse_scaleway/get_instance_ip.py +14 -2
  37. pulumiverse_scaleway/get_instance_server.py +13 -83
  38. pulumiverse_scaleway/get_k8s_version.py +12 -1
  39. pulumiverse_scaleway/get_kubernetes_cluster.py +34 -1
  40. pulumiverse_scaleway/get_loadbalancer.py +12 -1
  41. pulumiverse_scaleway/get_loadbalancer_certificate.py +60 -0
  42. pulumiverse_scaleway/iam/__init__.py +1 -0
  43. pulumiverse_scaleway/iam/get_policy.py +293 -0
  44. pulumiverse_scaleway/iam/outputs.py +52 -0
  45. pulumiverse_scaleway/inference/deployment.py +36 -0
  46. pulumiverse_scaleway/inference/model.py +7 -7
  47. pulumiverse_scaleway/inference_deployment.py +36 -0
  48. pulumiverse_scaleway/instance/_inputs.py +155 -144
  49. pulumiverse_scaleway/instance/get_ip.py +14 -2
  50. pulumiverse_scaleway/instance/get_server.py +13 -83
  51. pulumiverse_scaleway/instance/image.py +94 -40
  52. pulumiverse_scaleway/instance/outputs.py +164 -167
  53. pulumiverse_scaleway/instance/server.py +116 -244
  54. pulumiverse_scaleway/instance/user_data.py +4 -4
  55. pulumiverse_scaleway/instance/volume.py +14 -0
  56. pulumiverse_scaleway/instance_image.py +94 -40
  57. pulumiverse_scaleway/instance_server.py +116 -244
  58. pulumiverse_scaleway/instance_user_data.py +4 -4
  59. pulumiverse_scaleway/instance_volume.py +14 -0
  60. pulumiverse_scaleway/iot/device.py +0 -38
  61. pulumiverse_scaleway/iot/hub.py +11 -11
  62. pulumiverse_scaleway/iot/route.py +20 -20
  63. pulumiverse_scaleway/iot_device.py +0 -38
  64. pulumiverse_scaleway/iot_hub.py +11 -11
  65. pulumiverse_scaleway/iot_route.py +20 -20
  66. pulumiverse_scaleway/ipam/_inputs.py +6 -6
  67. pulumiverse_scaleway/ipam/ip.py +35 -7
  68. pulumiverse_scaleway/ipam/ip_reverse_dns.py +70 -0
  69. pulumiverse_scaleway/ipam/outputs.py +4 -4
  70. pulumiverse_scaleway/ipam_ip.py +35 -7
  71. pulumiverse_scaleway/ipam_ip_reverse_dns.py +70 -0
  72. pulumiverse_scaleway/key_manager_key.py +134 -25
  73. pulumiverse_scaleway/kubernetes/cluster.py +290 -4
  74. pulumiverse_scaleway/kubernetes/get_cluster.py +34 -1
  75. pulumiverse_scaleway/kubernetes/get_version.py +12 -1
  76. pulumiverse_scaleway/kubernetes/pool.py +7 -7
  77. pulumiverse_scaleway/kubernetes_cluster.py +290 -4
  78. pulumiverse_scaleway/kubernetes_node_pool.py +7 -7
  79. pulumiverse_scaleway/loadbalancer.py +55 -1
  80. pulumiverse_scaleway/loadbalancers/__init__.py +1 -0
  81. pulumiverse_scaleway/loadbalancers/_inputs.py +13 -13
  82. pulumiverse_scaleway/loadbalancers/get_certificate.py +60 -0
  83. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +12 -1
  84. pulumiverse_scaleway/loadbalancers/load_balancer.py +55 -1
  85. pulumiverse_scaleway/loadbalancers/outputs.py +9 -9
  86. pulumiverse_scaleway/loadbalancers/private_network.py +505 -0
  87. pulumiverse_scaleway/mongo_db_instance.py +14 -14
  88. pulumiverse_scaleway/mongodb/instance.py +14 -14
  89. pulumiverse_scaleway/network/gateway_network.py +7 -7
  90. pulumiverse_scaleway/object/__init__.py +1 -0
  91. pulumiverse_scaleway/object/bucket_policy.py +0 -64
  92. pulumiverse_scaleway/object/get.py +290 -0
  93. pulumiverse_scaleway/object/item.py +37 -7
  94. pulumiverse_scaleway/object_bucket_policy.py +0 -64
  95. pulumiverse_scaleway/object_item.py +37 -7
  96. pulumiverse_scaleway/observability/__init__.py +1 -0
  97. pulumiverse_scaleway/observability/get_grafana.py +103 -0
  98. pulumiverse_scaleway/observability/get_sources.py +6 -6
  99. pulumiverse_scaleway/observability/grafana_user.py +0 -42
  100. pulumiverse_scaleway/observability/outputs.py +2 -2
  101. pulumiverse_scaleway/outputs.py +304 -182
  102. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  103. pulumiverse_scaleway/tem/domain.py +42 -0
  104. pulumiverse_scaleway/tem_domain.py +42 -0
  105. pulumiverse_scaleway/vpc_gateway_network.py +7 -7
  106. {pulumiverse_scaleway-1.35.0a1761031391.dist-info → pulumiverse_scaleway-1.39.0a1764841480.dist-info}/METADATA +1 -1
  107. {pulumiverse_scaleway-1.35.0a1761031391.dist-info → pulumiverse_scaleway-1.39.0a1764841480.dist-info}/RECORD +109 -96
  108. {pulumiverse_scaleway-1.35.0a1761031391.dist-info → pulumiverse_scaleway-1.39.0a1764841480.dist-info}/WHEEL +0 -0
  109. {pulumiverse_scaleway-1.35.0a1761031391.dist-info → pulumiverse_scaleway-1.39.0a1764841480.dist-info}/top_level.txt +0 -0
@@ -27,7 +27,7 @@ class GetServerResult:
27
27
  """
28
28
  A collection of values returned by getServer.
29
29
  """
30
- def __init__(__self__, additional_volume_ids=None, admin_password_encryption_ssh_key_id=None, boot_type=None, bootscript_id=None, cloud_init=None, enable_dynamic_ip=None, enable_ipv6=None, id=None, image=None, ip_id=None, ip_ids=None, ipv6_address=None, ipv6_gateway=None, ipv6_prefix_length=None, name=None, organization_id=None, placement_group_id=None, placement_group_policy_respected=None, private_ip=None, private_ips=None, private_networks=None, project_id=None, protected=None, public_ip=None, public_ips=None, replace_on_type_change=None, root_volumes=None, security_group_id=None, server_id=None, state=None, tags=None, type=None, user_data=None, zone=None):
30
+ def __init__(__self__, additional_volume_ids=None, admin_password_encryption_ssh_key_id=None, boot_type=None, bootscript_id=None, cloud_init=None, enable_dynamic_ip=None, filesystems=None, id=None, image=None, ip_id=None, ip_ids=None, name=None, organization_id=None, placement_group_id=None, placement_group_policy_respected=None, private_ips=None, private_networks=None, project_id=None, protected=None, public_ips=None, replace_on_type_change=None, root_volumes=None, security_group_id=None, server_id=None, state=None, tags=None, type=None, user_data=None, zone=None):
31
31
  if additional_volume_ids and not isinstance(additional_volume_ids, list):
32
32
  raise TypeError("Expected argument 'additional_volume_ids' to be a list")
33
33
  pulumi.set(__self__, "additional_volume_ids", additional_volume_ids)
@@ -46,9 +46,9 @@ class GetServerResult:
46
46
  if enable_dynamic_ip and not isinstance(enable_dynamic_ip, bool):
47
47
  raise TypeError("Expected argument 'enable_dynamic_ip' to be a bool")
48
48
  pulumi.set(__self__, "enable_dynamic_ip", enable_dynamic_ip)
49
- if enable_ipv6 and not isinstance(enable_ipv6, bool):
50
- raise TypeError("Expected argument 'enable_ipv6' to be a bool")
51
- pulumi.set(__self__, "enable_ipv6", enable_ipv6)
49
+ if filesystems and not isinstance(filesystems, list):
50
+ raise TypeError("Expected argument 'filesystems' to be a list")
51
+ pulumi.set(__self__, "filesystems", filesystems)
52
52
  if id and not isinstance(id, str):
53
53
  raise TypeError("Expected argument 'id' to be a str")
54
54
  pulumi.set(__self__, "id", id)
@@ -61,15 +61,6 @@ class GetServerResult:
61
61
  if ip_ids and not isinstance(ip_ids, list):
62
62
  raise TypeError("Expected argument 'ip_ids' to be a list")
63
63
  pulumi.set(__self__, "ip_ids", ip_ids)
64
- if ipv6_address and not isinstance(ipv6_address, str):
65
- raise TypeError("Expected argument 'ipv6_address' to be a str")
66
- pulumi.set(__self__, "ipv6_address", ipv6_address)
67
- if ipv6_gateway and not isinstance(ipv6_gateway, str):
68
- raise TypeError("Expected argument 'ipv6_gateway' to be a str")
69
- pulumi.set(__self__, "ipv6_gateway", ipv6_gateway)
70
- if ipv6_prefix_length and not isinstance(ipv6_prefix_length, int):
71
- raise TypeError("Expected argument 'ipv6_prefix_length' to be a int")
72
- pulumi.set(__self__, "ipv6_prefix_length", ipv6_prefix_length)
73
64
  if name and not isinstance(name, str):
74
65
  raise TypeError("Expected argument 'name' to be a str")
75
66
  pulumi.set(__self__, "name", name)
@@ -82,9 +73,6 @@ class GetServerResult:
82
73
  if placement_group_policy_respected and not isinstance(placement_group_policy_respected, bool):
83
74
  raise TypeError("Expected argument 'placement_group_policy_respected' to be a bool")
84
75
  pulumi.set(__self__, "placement_group_policy_respected", placement_group_policy_respected)
85
- if private_ip and not isinstance(private_ip, str):
86
- raise TypeError("Expected argument 'private_ip' to be a str")
87
- pulumi.set(__self__, "private_ip", private_ip)
88
76
  if private_ips and not isinstance(private_ips, list):
89
77
  raise TypeError("Expected argument 'private_ips' to be a list")
90
78
  pulumi.set(__self__, "private_ips", private_ips)
@@ -97,9 +85,6 @@ class GetServerResult:
97
85
  if protected and not isinstance(protected, bool):
98
86
  raise TypeError("Expected argument 'protected' to be a bool")
99
87
  pulumi.set(__self__, "protected", protected)
100
- if public_ip and not isinstance(public_ip, str):
101
- raise TypeError("Expected argument 'public_ip' to be a str")
102
- pulumi.set(__self__, "public_ip", public_ip)
103
88
  if public_ips and not isinstance(public_ips, list):
104
89
  raise TypeError("Expected argument 'public_ips' to be a list")
105
90
  pulumi.set(__self__, "public_ips", public_ips)
@@ -172,12 +157,9 @@ class GetServerResult:
172
157
  return pulumi.get(self, "enable_dynamic_ip")
173
158
 
174
159
  @_builtins.property
175
- @pulumi.getter(name="enableIpv6")
176
- def enable_ipv6(self) -> _builtins.bool:
177
- """
178
- Determines if IPv6 is enabled for the server.
179
- """
180
- return pulumi.get(self, "enable_ipv6")
160
+ @pulumi.getter
161
+ def filesystems(self) -> Sequence['outputs.GetServerFilesystemResult']:
162
+ return pulumi.get(self, "filesystems")
181
163
 
182
164
  @_builtins.property
183
165
  @pulumi.getter
@@ -205,30 +187,6 @@ class GetServerResult:
205
187
  def ip_ids(self) -> Sequence[_builtins.str]:
206
188
  return pulumi.get(self, "ip_ids")
207
189
 
208
- @_builtins.property
209
- @pulumi.getter(name="ipv6Address")
210
- def ipv6_address(self) -> _builtins.str:
211
- """
212
- The default ipv6 address routed to the server. ( Only set when enable_ipv6 is set to true )
213
- """
214
- return pulumi.get(self, "ipv6_address")
215
-
216
- @_builtins.property
217
- @pulumi.getter(name="ipv6Gateway")
218
- def ipv6_gateway(self) -> _builtins.str:
219
- """
220
- The ipv6 gateway address. ( Only set when enable_ipv6 is set to true )
221
- """
222
- return pulumi.get(self, "ipv6_gateway")
223
-
224
- @_builtins.property
225
- @pulumi.getter(name="ipv6PrefixLength")
226
- def ipv6_prefix_length(self) -> _builtins.int:
227
- """
228
- The prefix length of the ipv6 subnet routed to the server. ( Only set when enable_ipv6 is set to true )
229
- """
230
- return pulumi.get(self, "ipv6_prefix_length")
231
-
232
190
  @_builtins.property
233
191
  @pulumi.getter
234
192
  def name(self) -> Optional[_builtins.str]:
@@ -258,17 +216,12 @@ class GetServerResult:
258
216
  """
259
217
  return pulumi.get(self, "placement_group_policy_respected")
260
218
 
261
- @_builtins.property
262
- @pulumi.getter(name="privateIp")
263
- def private_ip(self) -> _builtins.str:
264
- """
265
- The Scaleway internal IP address of the server.
266
- """
267
- return pulumi.get(self, "private_ip")
268
-
269
219
  @_builtins.property
270
220
  @pulumi.getter(name="privateIps")
271
221
  def private_ips(self) -> Sequence['outputs.GetServerPrivateIpResult']:
222
+ """
223
+ The list of private IPs of the server.
224
+ """
272
225
  return pulumi.get(self, "private_ips")
273
226
 
274
227
  @_builtins.property
@@ -286,14 +239,6 @@ class GetServerResult:
286
239
  def protected(self) -> _builtins.bool:
287
240
  return pulumi.get(self, "protected")
288
241
 
289
- @_builtins.property
290
- @pulumi.getter(name="publicIp")
291
- def public_ip(self) -> _builtins.str:
292
- """
293
- The public IP address of the server.
294
- """
295
- return pulumi.get(self, "public_ip")
296
-
297
242
  @_builtins.property
298
243
  @pulumi.getter(name="publicIps")
299
244
  def public_ips(self) -> Sequence['outputs.GetServerPublicIpResult']:
@@ -376,24 +321,19 @@ class AwaitableGetServerResult(GetServerResult):
376
321
  bootscript_id=self.bootscript_id,
377
322
  cloud_init=self.cloud_init,
378
323
  enable_dynamic_ip=self.enable_dynamic_ip,
379
- enable_ipv6=self.enable_ipv6,
324
+ filesystems=self.filesystems,
380
325
  id=self.id,
381
326
  image=self.image,
382
327
  ip_id=self.ip_id,
383
328
  ip_ids=self.ip_ids,
384
- ipv6_address=self.ipv6_address,
385
- ipv6_gateway=self.ipv6_gateway,
386
- ipv6_prefix_length=self.ipv6_prefix_length,
387
329
  name=self.name,
388
330
  organization_id=self.organization_id,
389
331
  placement_group_id=self.placement_group_id,
390
332
  placement_group_policy_respected=self.placement_group_policy_respected,
391
- private_ip=self.private_ip,
392
333
  private_ips=self.private_ips,
393
334
  private_networks=self.private_networks,
394
335
  project_id=self.project_id,
395
336
  protected=self.protected,
396
- public_ip=self.public_ip,
397
337
  public_ips=self.public_ips,
398
338
  replace_on_type_change=self.replace_on_type_change,
399
339
  root_volumes=self.root_volumes,
@@ -435,24 +375,19 @@ def get_server(name: Optional[_builtins.str] = None,
435
375
  bootscript_id=pulumi.get(__ret__, 'bootscript_id'),
436
376
  cloud_init=pulumi.get(__ret__, 'cloud_init'),
437
377
  enable_dynamic_ip=pulumi.get(__ret__, 'enable_dynamic_ip'),
438
- enable_ipv6=pulumi.get(__ret__, 'enable_ipv6'),
378
+ filesystems=pulumi.get(__ret__, 'filesystems'),
439
379
  id=pulumi.get(__ret__, 'id'),
440
380
  image=pulumi.get(__ret__, 'image'),
441
381
  ip_id=pulumi.get(__ret__, 'ip_id'),
442
382
  ip_ids=pulumi.get(__ret__, 'ip_ids'),
443
- ipv6_address=pulumi.get(__ret__, 'ipv6_address'),
444
- ipv6_gateway=pulumi.get(__ret__, 'ipv6_gateway'),
445
- ipv6_prefix_length=pulumi.get(__ret__, 'ipv6_prefix_length'),
446
383
  name=pulumi.get(__ret__, 'name'),
447
384
  organization_id=pulumi.get(__ret__, 'organization_id'),
448
385
  placement_group_id=pulumi.get(__ret__, 'placement_group_id'),
449
386
  placement_group_policy_respected=pulumi.get(__ret__, 'placement_group_policy_respected'),
450
- private_ip=pulumi.get(__ret__, 'private_ip'),
451
387
  private_ips=pulumi.get(__ret__, 'private_ips'),
452
388
  private_networks=pulumi.get(__ret__, 'private_networks'),
453
389
  project_id=pulumi.get(__ret__, 'project_id'),
454
390
  protected=pulumi.get(__ret__, 'protected'),
455
- public_ip=pulumi.get(__ret__, 'public_ip'),
456
391
  public_ips=pulumi.get(__ret__, 'public_ips'),
457
392
  replace_on_type_change=pulumi.get(__ret__, 'replace_on_type_change'),
458
393
  root_volumes=pulumi.get(__ret__, 'root_volumes'),
@@ -491,24 +426,19 @@ def get_server_output(name: Optional[pulumi.Input[Optional[_builtins.str]]] = No
491
426
  bootscript_id=pulumi.get(__response__, 'bootscript_id'),
492
427
  cloud_init=pulumi.get(__response__, 'cloud_init'),
493
428
  enable_dynamic_ip=pulumi.get(__response__, 'enable_dynamic_ip'),
494
- enable_ipv6=pulumi.get(__response__, 'enable_ipv6'),
429
+ filesystems=pulumi.get(__response__, 'filesystems'),
495
430
  id=pulumi.get(__response__, 'id'),
496
431
  image=pulumi.get(__response__, 'image'),
497
432
  ip_id=pulumi.get(__response__, 'ip_id'),
498
433
  ip_ids=pulumi.get(__response__, 'ip_ids'),
499
- ipv6_address=pulumi.get(__response__, 'ipv6_address'),
500
- ipv6_gateway=pulumi.get(__response__, 'ipv6_gateway'),
501
- ipv6_prefix_length=pulumi.get(__response__, 'ipv6_prefix_length'),
502
434
  name=pulumi.get(__response__, 'name'),
503
435
  organization_id=pulumi.get(__response__, 'organization_id'),
504
436
  placement_group_id=pulumi.get(__response__, 'placement_group_id'),
505
437
  placement_group_policy_respected=pulumi.get(__response__, 'placement_group_policy_respected'),
506
- private_ip=pulumi.get(__response__, 'private_ip'),
507
438
  private_ips=pulumi.get(__response__, 'private_ips'),
508
439
  private_networks=pulumi.get(__response__, 'private_networks'),
509
440
  project_id=pulumi.get(__response__, 'project_id'),
510
441
  protected=pulumi.get(__response__, 'protected'),
511
- public_ip=pulumi.get(__response__, 'public_ip'),
512
442
  public_ips=pulumi.get(__response__, 'public_ips'),
513
443
  replace_on_type_change=pulumi.get(__response__, 'replace_on_type_change'),
514
444
  root_volumes=pulumi.get(__response__, 'root_volumes'),
@@ -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