pulumiverse-scaleway 1.28.0a1747384911__py3-none-any.whl → 1.29.0__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 (49) hide show
  1. pulumiverse_scaleway/__init__.py +0 -1
  2. pulumiverse_scaleway/_inputs.py +106 -0
  3. pulumiverse_scaleway/account/__init__.py +2 -0
  4. pulumiverse_scaleway/account/get_projects.py +235 -0
  5. pulumiverse_scaleway/account/outputs.py +95 -0
  6. pulumiverse_scaleway/baremetal_server.py +20 -1
  7. pulumiverse_scaleway/block/__init__.py +2 -0
  8. pulumiverse_scaleway/block/_inputs.py +73 -0
  9. pulumiverse_scaleway/block/get_snapshot.py +13 -1
  10. pulumiverse_scaleway/block/outputs.py +79 -0
  11. pulumiverse_scaleway/block/snapshot.py +62 -14
  12. pulumiverse_scaleway/block_snapshot.py +62 -14
  13. pulumiverse_scaleway/container.py +2 -2
  14. pulumiverse_scaleway/containers/container.py +2 -2
  15. pulumiverse_scaleway/database_instance.py +20 -1
  16. pulumiverse_scaleway/databases/instance.py +20 -1
  17. pulumiverse_scaleway/domain/get_zone.py +7 -1
  18. pulumiverse_scaleway/elasticmetal/__init__.py +1 -1
  19. pulumiverse_scaleway/elasticmetal/get_partition_schema.py +215 -0
  20. pulumiverse_scaleway/elasticmetal/server.py +20 -1
  21. pulumiverse_scaleway/get_block_snapshot.py +13 -1
  22. pulumiverse_scaleway/get_domain_zone.py +7 -1
  23. pulumiverse_scaleway/get_mongo_db_instance.py +12 -1
  24. pulumiverse_scaleway/iam/user.py +468 -14
  25. pulumiverse_scaleway/iam_user.py +468 -14
  26. pulumiverse_scaleway/instance/private_nic.py +20 -1
  27. pulumiverse_scaleway/instance/server.py +20 -1
  28. pulumiverse_scaleway/instance/snapshot.py +28 -7
  29. pulumiverse_scaleway/instance/volume.py +28 -7
  30. pulumiverse_scaleway/instance_private_nic.py +20 -1
  31. pulumiverse_scaleway/instance_server.py +20 -1
  32. pulumiverse_scaleway/instance_snapshot.py +28 -7
  33. pulumiverse_scaleway/instance_volume.py +28 -7
  34. pulumiverse_scaleway/mongo_db_instance.py +107 -7
  35. pulumiverse_scaleway/mongodb/_inputs.py +54 -0
  36. pulumiverse_scaleway/mongodb/get_instance.py +12 -1
  37. pulumiverse_scaleway/mongodb/instance.py +107 -7
  38. pulumiverse_scaleway/mongodb/outputs.py +62 -0
  39. pulumiverse_scaleway/network/gateway_network.py +20 -1
  40. pulumiverse_scaleway/observability/__init__.py +0 -1
  41. pulumiverse_scaleway/outputs.py +122 -0
  42. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  43. pulumiverse_scaleway/redis/cluster.py +20 -1
  44. pulumiverse_scaleway/redis_cluster.py +20 -1
  45. pulumiverse_scaleway/vpc_gateway_network.py +20 -1
  46. {pulumiverse_scaleway-1.28.0a1747384911.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/METADATA +1 -1
  47. {pulumiverse_scaleway-1.28.0a1747384911.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/RECORD +49 -44
  48. {pulumiverse_scaleway-1.28.0a1747384911.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/WHEEL +1 -1
  49. {pulumiverse_scaleway-1.28.0a1747384911.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/top_level.txt +0 -0
@@ -34,6 +34,7 @@ class DatabaseInstanceArgs:
34
34
  logs_policy: Optional[pulumi.Input['DatabaseInstanceLogsPolicyArgs']] = None,
35
35
  name: Optional[pulumi.Input[str]] = None,
36
36
  password: Optional[pulumi.Input[str]] = None,
37
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseInstancePrivateIpArgs']]]] = None,
37
38
  private_network: Optional[pulumi.Input['DatabaseInstancePrivateNetworkArgs']] = None,
38
39
  project_id: Optional[pulumi.Input[str]] = None,
39
40
  region: Optional[pulumi.Input[str]] = None,
@@ -67,6 +68,7 @@ class DatabaseInstanceArgs:
67
68
  :param pulumi.Input['DatabaseInstanceLogsPolicyArgs'] logs_policy: Logs policy configuration
68
69
  :param pulumi.Input[str] name: The name of the Database Instance.
69
70
  :param pulumi.Input[str] password: Password for the first user of the Database Instance.
71
+ :param pulumi.Input[Sequence[pulumi.Input['DatabaseInstancePrivateIpArgs']]] private_ips: The private IPv4 address associated with the resource.
70
72
  :param pulumi.Input['DatabaseInstancePrivateNetworkArgs'] private_network: List of Private Networks endpoints of the Database Instance.
71
73
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the Database
72
74
  Instance is associated with.
@@ -108,6 +110,8 @@ class DatabaseInstanceArgs:
108
110
  pulumi.set(__self__, "name", name)
109
111
  if password is not None:
110
112
  pulumi.set(__self__, "password", password)
113
+ if private_ips is not None:
114
+ pulumi.set(__self__, "private_ips", private_ips)
111
115
  if private_network is not None:
112
116
  pulumi.set(__self__, "private_network", private_network)
113
117
  if project_id is not None:
@@ -292,6 +296,18 @@ class DatabaseInstanceArgs:
292
296
  def password(self, value: Optional[pulumi.Input[str]]):
293
297
  pulumi.set(self, "password", value)
294
298
 
299
+ @property
300
+ @pulumi.getter(name="privateIps")
301
+ def private_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseInstancePrivateIpArgs']]]]:
302
+ """
303
+ The private IPv4 address associated with the resource.
304
+ """
305
+ return pulumi.get(self, "private_ips")
306
+
307
+ @private_ips.setter
308
+ def private_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseInstancePrivateIpArgs']]]]):
309
+ pulumi.set(self, "private_ips", value)
310
+
295
311
  @property
296
312
  @pulumi.getter(name="privateNetwork")
297
313
  def private_network(self) -> Optional[pulumi.Input['DatabaseInstancePrivateNetworkArgs']]:
@@ -924,6 +940,7 @@ class DatabaseInstance(pulumi.CustomResource):
924
940
  name: Optional[pulumi.Input[str]] = None,
925
941
  node_type: Optional[pulumi.Input[str]] = None,
926
942
  password: Optional[pulumi.Input[str]] = None,
943
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseInstancePrivateIpArgs', 'DatabaseInstancePrivateIpArgsDict']]]]] = None,
927
944
  private_network: Optional[pulumi.Input[Union['DatabaseInstancePrivateNetworkArgs', 'DatabaseInstancePrivateNetworkArgsDict']]] = None,
928
945
  project_id: Optional[pulumi.Input[str]] = None,
929
946
  region: Optional[pulumi.Input[str]] = None,
@@ -1106,6 +1123,7 @@ class DatabaseInstance(pulumi.CustomResource):
1106
1123
 
1107
1124
  > **Important** Once your Database Instance reaches `disk_full` status, if you are using `lssd` storage, you should upgrade the `node_type`, and if you are using `bssd` storage, you should increase the volume size before making any other changes to your Database Instance.
1108
1125
  :param pulumi.Input[str] password: Password for the first user of the Database Instance.
1126
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DatabaseInstancePrivateIpArgs', 'DatabaseInstancePrivateIpArgsDict']]]] private_ips: The private IPv4 address associated with the resource.
1109
1127
  :param pulumi.Input[Union['DatabaseInstancePrivateNetworkArgs', 'DatabaseInstancePrivateNetworkArgsDict']] private_network: List of Private Networks endpoints of the Database Instance.
1110
1128
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the Database
1111
1129
  Instance is associated with.
@@ -1304,6 +1322,7 @@ class DatabaseInstance(pulumi.CustomResource):
1304
1322
  name: Optional[pulumi.Input[str]] = None,
1305
1323
  node_type: Optional[pulumi.Input[str]] = None,
1306
1324
  password: Optional[pulumi.Input[str]] = None,
1325
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseInstancePrivateIpArgs', 'DatabaseInstancePrivateIpArgsDict']]]]] = None,
1307
1326
  private_network: Optional[pulumi.Input[Union['DatabaseInstancePrivateNetworkArgs', 'DatabaseInstancePrivateNetworkArgsDict']]] = None,
1308
1327
  project_id: Optional[pulumi.Input[str]] = None,
1309
1328
  region: Optional[pulumi.Input[str]] = None,
@@ -1338,6 +1357,7 @@ class DatabaseInstance(pulumi.CustomResource):
1338
1357
  raise TypeError("Missing required property 'node_type'")
1339
1358
  __props__.__dict__["node_type"] = node_type
1340
1359
  __props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password)
1360
+ __props__.__dict__["private_ips"] = private_ips
1341
1361
  __props__.__dict__["private_network"] = private_network
1342
1362
  __props__.__dict__["project_id"] = project_id
1343
1363
  __props__.__dict__["region"] = region
@@ -1351,7 +1371,6 @@ class DatabaseInstance(pulumi.CustomResource):
1351
1371
  __props__.__dict__["endpoint_ip"] = None
1352
1372
  __props__.__dict__["endpoint_port"] = None
1353
1373
  __props__.__dict__["organization_id"] = None
1354
- __props__.__dict__["private_ips"] = None
1355
1374
  __props__.__dict__["read_replicas"] = None
1356
1375
  secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["password"])
1357
1376
  opts = pulumi.ResourceOptions.merge(opts, secret_opts)
@@ -34,6 +34,7 @@ class InstanceArgs:
34
34
  logs_policy: Optional[pulumi.Input['InstanceLogsPolicyArgs']] = None,
35
35
  name: Optional[pulumi.Input[str]] = None,
36
36
  password: Optional[pulumi.Input[str]] = None,
37
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePrivateIpArgs']]]] = None,
37
38
  private_network: Optional[pulumi.Input['InstancePrivateNetworkArgs']] = None,
38
39
  project_id: Optional[pulumi.Input[str]] = None,
39
40
  region: Optional[pulumi.Input[str]] = None,
@@ -67,6 +68,7 @@ class InstanceArgs:
67
68
  :param pulumi.Input['InstanceLogsPolicyArgs'] logs_policy: Logs policy configuration
68
69
  :param pulumi.Input[str] name: The name of the Database Instance.
69
70
  :param pulumi.Input[str] password: Password for the first user of the Database Instance.
71
+ :param pulumi.Input[Sequence[pulumi.Input['InstancePrivateIpArgs']]] private_ips: The private IPv4 address associated with the resource.
70
72
  :param pulumi.Input['InstancePrivateNetworkArgs'] private_network: List of Private Networks endpoints of the Database Instance.
71
73
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the Database
72
74
  Instance is associated with.
@@ -108,6 +110,8 @@ class InstanceArgs:
108
110
  pulumi.set(__self__, "name", name)
109
111
  if password is not None:
110
112
  pulumi.set(__self__, "password", password)
113
+ if private_ips is not None:
114
+ pulumi.set(__self__, "private_ips", private_ips)
111
115
  if private_network is not None:
112
116
  pulumi.set(__self__, "private_network", private_network)
113
117
  if project_id is not None:
@@ -292,6 +296,18 @@ class InstanceArgs:
292
296
  def password(self, value: Optional[pulumi.Input[str]]):
293
297
  pulumi.set(self, "password", value)
294
298
 
299
+ @property
300
+ @pulumi.getter(name="privateIps")
301
+ def private_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstancePrivateIpArgs']]]]:
302
+ """
303
+ The private IPv4 address associated with the resource.
304
+ """
305
+ return pulumi.get(self, "private_ips")
306
+
307
+ @private_ips.setter
308
+ def private_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePrivateIpArgs']]]]):
309
+ pulumi.set(self, "private_ips", value)
310
+
295
311
  @property
296
312
  @pulumi.getter(name="privateNetwork")
297
313
  def private_network(self) -> Optional[pulumi.Input['InstancePrivateNetworkArgs']]:
@@ -919,6 +935,7 @@ class Instance(pulumi.CustomResource):
919
935
  name: Optional[pulumi.Input[str]] = None,
920
936
  node_type: Optional[pulumi.Input[str]] = None,
921
937
  password: Optional[pulumi.Input[str]] = None,
938
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstancePrivateIpArgs', 'InstancePrivateIpArgsDict']]]]] = None,
922
939
  private_network: Optional[pulumi.Input[Union['InstancePrivateNetworkArgs', 'InstancePrivateNetworkArgsDict']]] = None,
923
940
  project_id: Optional[pulumi.Input[str]] = None,
924
941
  region: Optional[pulumi.Input[str]] = None,
@@ -1101,6 +1118,7 @@ class Instance(pulumi.CustomResource):
1101
1118
 
1102
1119
  > **Important** Once your Database Instance reaches `disk_full` status, if you are using `lssd` storage, you should upgrade the `node_type`, and if you are using `bssd` storage, you should increase the volume size before making any other changes to your Database Instance.
1103
1120
  :param pulumi.Input[str] password: Password for the first user of the Database Instance.
1121
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstancePrivateIpArgs', 'InstancePrivateIpArgsDict']]]] private_ips: The private IPv4 address associated with the resource.
1104
1122
  :param pulumi.Input[Union['InstancePrivateNetworkArgs', 'InstancePrivateNetworkArgsDict']] private_network: List of Private Networks endpoints of the Database Instance.
1105
1123
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the Database
1106
1124
  Instance is associated with.
@@ -1299,6 +1317,7 @@ class Instance(pulumi.CustomResource):
1299
1317
  name: Optional[pulumi.Input[str]] = None,
1300
1318
  node_type: Optional[pulumi.Input[str]] = None,
1301
1319
  password: Optional[pulumi.Input[str]] = None,
1320
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstancePrivateIpArgs', 'InstancePrivateIpArgsDict']]]]] = None,
1302
1321
  private_network: Optional[pulumi.Input[Union['InstancePrivateNetworkArgs', 'InstancePrivateNetworkArgsDict']]] = None,
1303
1322
  project_id: Optional[pulumi.Input[str]] = None,
1304
1323
  region: Optional[pulumi.Input[str]] = None,
@@ -1332,6 +1351,7 @@ class Instance(pulumi.CustomResource):
1332
1351
  raise TypeError("Missing required property 'node_type'")
1333
1352
  __props__.__dict__["node_type"] = node_type
1334
1353
  __props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password)
1354
+ __props__.__dict__["private_ips"] = private_ips
1335
1355
  __props__.__dict__["private_network"] = private_network
1336
1356
  __props__.__dict__["project_id"] = project_id
1337
1357
  __props__.__dict__["region"] = region
@@ -1345,7 +1365,6 @@ class Instance(pulumi.CustomResource):
1345
1365
  __props__.__dict__["endpoint_ip"] = None
1346
1366
  __props__.__dict__["endpoint_port"] = None
1347
1367
  __props__.__dict__["organization_id"] = None
1348
- __props__.__dict__["private_ips"] = None
1349
1368
  __props__.__dict__["read_replicas"] = None
1350
1369
  alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/databaseInstance:DatabaseInstance")])
1351
1370
  opts = pulumi.ResourceOptions.merge(opts, alias_opts)
@@ -105,7 +105,7 @@ class GetZoneResult:
105
105
 
106
106
  @property
107
107
  @pulumi.getter(name="projectId")
108
- def project_id(self) -> str:
108
+ def project_id(self) -> Optional[str]:
109
109
  return pulumi.get(self, "project_id")
110
110
 
111
111
  @property
@@ -149,16 +149,19 @@ class AwaitableGetZoneResult(GetZoneResult):
149
149
 
150
150
 
151
151
  def get_zone(domain: Optional[str] = None,
152
+ project_id: Optional[str] = None,
152
153
  subdomain: Optional[str] = None,
153
154
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetZoneResult:
154
155
  """
155
156
  Use this data source to access information about an existing resource.
156
157
 
157
158
  :param str domain: The primary domain name where the DNS zone is located. This is a mandatory field.
159
+ :param str project_id: ). The ID of the Scaleway Project associated with the domain. If not specified, it defaults to the `project_id` set in the provider configuration.
158
160
  :param str subdomain: The subdomain (or zone name) within the primary domain. This is a mandatory field.
159
161
  """
160
162
  __args__ = dict()
161
163
  __args__['domain'] = domain
164
+ __args__['projectId'] = project_id
162
165
  __args__['subdomain'] = subdomain
163
166
  opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
164
167
  __ret__ = pulumi.runtime.invoke('scaleway:domain/getZone:getZone', __args__, opts=opts, typ=GetZoneResult).value
@@ -175,16 +178,19 @@ def get_zone(domain: Optional[str] = None,
175
178
  subdomain=pulumi.get(__ret__, 'subdomain'),
176
179
  updated_at=pulumi.get(__ret__, 'updated_at'))
177
180
  def get_zone_output(domain: Optional[pulumi.Input[Optional[str]]] = None,
181
+ project_id: Optional[pulumi.Input[Optional[str]]] = None,
178
182
  subdomain: Optional[pulumi.Input[Optional[str]]] = None,
179
183
  opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetZoneResult]:
180
184
  """
181
185
  Use this data source to access information about an existing resource.
182
186
 
183
187
  :param str domain: The primary domain name where the DNS zone is located. This is a mandatory field.
188
+ :param str project_id: ). The ID of the Scaleway Project associated with the domain. If not specified, it defaults to the `project_id` set in the provider configuration.
184
189
  :param str subdomain: The subdomain (or zone name) within the primary domain. This is a mandatory field.
185
190
  """
186
191
  __args__ = dict()
187
192
  __args__['domain'] = domain
193
+ __args__['projectId'] = project_id
188
194
  __args__['subdomain'] = subdomain
189
195
  opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
190
196
  __ret__ = pulumi.runtime.invoke_output('scaleway:domain/getZone:getZone', __args__, opts=opts, typ=GetZoneResult)
@@ -5,12 +5,12 @@
5
5
  from .. import _utilities
6
6
  import typing
7
7
  # Export this package's modules as members:
8
- from .get_easy_partitioning import *
9
8
  from .get_ip import *
10
9
  from .get_ips import *
11
10
  from .get_offer import *
12
11
  from .get_option import *
13
12
  from .get_os import *
13
+ from .get_partition_schema import *
14
14
  from .get_server import *
15
15
  from .ip import *
16
16
  from .ip_mac_address import *
@@ -0,0 +1,215 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+
17
+ __all__ = [
18
+ 'GetPartitionSchemaResult',
19
+ 'AwaitableGetPartitionSchemaResult',
20
+ 'get_partition_schema',
21
+ 'get_partition_schema_output',
22
+ ]
23
+
24
+ @pulumi.output_type
25
+ class GetPartitionSchemaResult:
26
+ """
27
+ A collection of values returned by getPartitionSchema.
28
+ """
29
+ def __init__(__self__, ext4_mountpoint=None, extra_partition=None, id=None, json_partition=None, offer_id=None, os_id=None, swap=None):
30
+ if ext4_mountpoint and not isinstance(ext4_mountpoint, str):
31
+ raise TypeError("Expected argument 'ext4_mountpoint' to be a str")
32
+ pulumi.set(__self__, "ext4_mountpoint", ext4_mountpoint)
33
+ if extra_partition and not isinstance(extra_partition, bool):
34
+ raise TypeError("Expected argument 'extra_partition' to be a bool")
35
+ pulumi.set(__self__, "extra_partition", extra_partition)
36
+ if id and not isinstance(id, str):
37
+ raise TypeError("Expected argument 'id' to be a str")
38
+ pulumi.set(__self__, "id", id)
39
+ if json_partition and not isinstance(json_partition, str):
40
+ raise TypeError("Expected argument 'json_partition' to be a str")
41
+ pulumi.set(__self__, "json_partition", json_partition)
42
+ if offer_id and not isinstance(offer_id, str):
43
+ raise TypeError("Expected argument 'offer_id' to be a str")
44
+ pulumi.set(__self__, "offer_id", offer_id)
45
+ if os_id and not isinstance(os_id, str):
46
+ raise TypeError("Expected argument 'os_id' to be a str")
47
+ pulumi.set(__self__, "os_id", os_id)
48
+ if swap and not isinstance(swap, bool):
49
+ raise TypeError("Expected argument 'swap' to be a bool")
50
+ pulumi.set(__self__, "swap", swap)
51
+
52
+ @property
53
+ @pulumi.getter(name="ext4Mountpoint")
54
+ def ext4_mountpoint(self) -> Optional[str]:
55
+ return pulumi.get(self, "ext4_mountpoint")
56
+
57
+ @property
58
+ @pulumi.getter(name="extraPartition")
59
+ def extra_partition(self) -> Optional[bool]:
60
+ return pulumi.get(self, "extra_partition")
61
+
62
+ @property
63
+ @pulumi.getter
64
+ def id(self) -> str:
65
+ """
66
+ The provider-assigned unique ID for this managed resource.
67
+ """
68
+ return pulumi.get(self, "id")
69
+
70
+ @property
71
+ @pulumi.getter(name="jsonPartition")
72
+ def json_partition(self) -> str:
73
+ """
74
+ — A validated partitioning schema in JSON format that can be directly used for BareMetal server deployment.
75
+ """
76
+ return pulumi.get(self, "json_partition")
77
+
78
+ @property
79
+ @pulumi.getter(name="offerId")
80
+ def offer_id(self) -> str:
81
+ return pulumi.get(self, "offer_id")
82
+
83
+ @property
84
+ @pulumi.getter(name="osId")
85
+ def os_id(self) -> str:
86
+ return pulumi.get(self, "os_id")
87
+
88
+ @property
89
+ @pulumi.getter
90
+ def swap(self) -> Optional[bool]:
91
+ return pulumi.get(self, "swap")
92
+
93
+
94
+ class AwaitableGetPartitionSchemaResult(GetPartitionSchemaResult):
95
+ # pylint: disable=using-constant-test
96
+ def __await__(self):
97
+ if False:
98
+ yield self
99
+ return GetPartitionSchemaResult(
100
+ ext4_mountpoint=self.ext4_mountpoint,
101
+ extra_partition=self.extra_partition,
102
+ id=self.id,
103
+ json_partition=self.json_partition,
104
+ offer_id=self.offer_id,
105
+ os_id=self.os_id,
106
+ swap=self.swap)
107
+
108
+
109
+ def get_partition_schema(ext4_mountpoint: Optional[str] = None,
110
+ extra_partition: Optional[bool] = None,
111
+ offer_id: Optional[str] = None,
112
+ os_id: Optional[str] = None,
113
+ swap: Optional[bool] = None,
114
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPartitionSchemaResult:
115
+ """
116
+ The elasticmetal_get_partition_schema data source allows you to retrieve a ready-to-use partitioning schema for a BareMetal server. This schema can be used for custom installations with optional swap and extra partitions.
117
+
118
+ This data source simplifies the process of generating valid partitioning configurations, especially useful when dealing with OS and offer compatibility requirements.
119
+
120
+ ## Partitioning Details
121
+
122
+ The partitioning schema generated by the `elasticmetal_get_partition_schema` data source includes a root (`/`) partition that is **20GB** in size by default.
123
+
124
+ If additional storage is required, you can enable the `extra_partition` option to mount extra space on a custom path (e.g., `/data`).
125
+
126
+ ## Example Usage
127
+
128
+ ```python
129
+ import pulumi
130
+ import pulumi_scaleway as scaleway
131
+
132
+ default = scaleway.elasticmetal.get_partition_schema(offer_id="11111111-1111-1111-1111-111111111111",
133
+ os_id="22222222-2222-2222-2222-222222222222",
134
+ swap=True,
135
+ extra_partition=True,
136
+ ext4_mountpoint="/data")
137
+ ```
138
+
139
+
140
+ :param str ext4_mountpoint: The mount point for the extra partition. Must be an absolute path using alphanumeric characters and underscores.
141
+ :param bool extra_partition: Whether to add an extra ext4 data partition.
142
+ :param str offer_id: The UUID of the BareMetal offer.
143
+ :param str os_id: The UUID of the OS image.
144
+ :param bool swap: Whether to include a swap partition.
145
+ """
146
+ __args__ = dict()
147
+ __args__['ext4Mountpoint'] = ext4_mountpoint
148
+ __args__['extraPartition'] = extra_partition
149
+ __args__['offerId'] = offer_id
150
+ __args__['osId'] = os_id
151
+ __args__['swap'] = swap
152
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
153
+ __ret__ = pulumi.runtime.invoke('scaleway:elasticmetal/getPartitionSchema:getPartitionSchema', __args__, opts=opts, typ=GetPartitionSchemaResult).value
154
+
155
+ return AwaitableGetPartitionSchemaResult(
156
+ ext4_mountpoint=pulumi.get(__ret__, 'ext4_mountpoint'),
157
+ extra_partition=pulumi.get(__ret__, 'extra_partition'),
158
+ id=pulumi.get(__ret__, 'id'),
159
+ json_partition=pulumi.get(__ret__, 'json_partition'),
160
+ offer_id=pulumi.get(__ret__, 'offer_id'),
161
+ os_id=pulumi.get(__ret__, 'os_id'),
162
+ swap=pulumi.get(__ret__, 'swap'))
163
+ def get_partition_schema_output(ext4_mountpoint: Optional[pulumi.Input[Optional[str]]] = None,
164
+ extra_partition: Optional[pulumi.Input[Optional[bool]]] = None,
165
+ offer_id: Optional[pulumi.Input[str]] = None,
166
+ os_id: Optional[pulumi.Input[str]] = None,
167
+ swap: Optional[pulumi.Input[Optional[bool]]] = None,
168
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetPartitionSchemaResult]:
169
+ """
170
+ The elasticmetal_get_partition_schema data source allows you to retrieve a ready-to-use partitioning schema for a BareMetal server. This schema can be used for custom installations with optional swap and extra partitions.
171
+
172
+ This data source simplifies the process of generating valid partitioning configurations, especially useful when dealing with OS and offer compatibility requirements.
173
+
174
+ ## Partitioning Details
175
+
176
+ The partitioning schema generated by the `elasticmetal_get_partition_schema` data source includes a root (`/`) partition that is **20GB** in size by default.
177
+
178
+ If additional storage is required, you can enable the `extra_partition` option to mount extra space on a custom path (e.g., `/data`).
179
+
180
+ ## Example Usage
181
+
182
+ ```python
183
+ import pulumi
184
+ import pulumi_scaleway as scaleway
185
+
186
+ default = scaleway.elasticmetal.get_partition_schema(offer_id="11111111-1111-1111-1111-111111111111",
187
+ os_id="22222222-2222-2222-2222-222222222222",
188
+ swap=True,
189
+ extra_partition=True,
190
+ ext4_mountpoint="/data")
191
+ ```
192
+
193
+
194
+ :param str ext4_mountpoint: The mount point for the extra partition. Must be an absolute path using alphanumeric characters and underscores.
195
+ :param bool extra_partition: Whether to add an extra ext4 data partition.
196
+ :param str offer_id: The UUID of the BareMetal offer.
197
+ :param str os_id: The UUID of the OS image.
198
+ :param bool swap: Whether to include a swap partition.
199
+ """
200
+ __args__ = dict()
201
+ __args__['ext4Mountpoint'] = ext4_mountpoint
202
+ __args__['extraPartition'] = extra_partition
203
+ __args__['offerId'] = offer_id
204
+ __args__['osId'] = os_id
205
+ __args__['swap'] = swap
206
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
207
+ __ret__ = pulumi.runtime.invoke_output('scaleway:elasticmetal/getPartitionSchema:getPartitionSchema', __args__, opts=opts, typ=GetPartitionSchemaResult)
208
+ return __ret__.apply(lambda __response__: GetPartitionSchemaResult(
209
+ ext4_mountpoint=pulumi.get(__response__, 'ext4_mountpoint'),
210
+ extra_partition=pulumi.get(__response__, 'extra_partition'),
211
+ id=pulumi.get(__response__, 'id'),
212
+ json_partition=pulumi.get(__response__, 'json_partition'),
213
+ offer_id=pulumi.get(__response__, 'offer_id'),
214
+ os_id=pulumi.get(__response__, 'os_id'),
215
+ swap=pulumi.get(__response__, 'swap')))
@@ -30,6 +30,7 @@ class ServerArgs:
30
30
  os: Optional[pulumi.Input[str]] = None,
31
31
  partitioning: Optional[pulumi.Input[str]] = None,
32
32
  password: Optional[pulumi.Input[str]] = None,
33
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPrivateIpArgs']]]] = None,
33
34
  private_networks: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPrivateNetworkArgs']]]] = None,
34
35
  project_id: Optional[pulumi.Input[str]] = None,
35
36
  reinstall_on_config_changes: Optional[pulumi.Input[bool]] = None,
@@ -56,6 +57,7 @@ class ServerArgs:
56
57
  > **Important:** Updates to `os` will reinstall the server.
57
58
  :param pulumi.Input[str] partitioning: The partitioning schema in JSON format
58
59
  :param pulumi.Input[str] password: Password used for the installation. May be required depending on used os.
60
+ :param pulumi.Input[Sequence[pulumi.Input['ServerPrivateIpArgs']]] private_ips: The list of private IPv4 and IPv6 addresses associated with the resource.
59
61
  :param pulumi.Input[Sequence[pulumi.Input['ServerPrivateNetworkArgs']]] private_networks: The private networks to attach to the server. For more information, see [the documentation](https://www.scaleway.com/en/docs/compute/elastic-metal/how-to/use-private-networks/)
60
62
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the server is associated with.
61
63
  :param pulumi.Input[bool] reinstall_on_config_changes: If True, this boolean allows to reinstall the server on install config changes.
@@ -84,6 +86,8 @@ class ServerArgs:
84
86
  pulumi.set(__self__, "partitioning", partitioning)
85
87
  if password is not None:
86
88
  pulumi.set(__self__, "password", password)
89
+ if private_ips is not None:
90
+ pulumi.set(__self__, "private_ips", private_ips)
87
91
  if private_networks is not None:
88
92
  pulumi.set(__self__, "private_networks", private_networks)
89
93
  if project_id is not None:
@@ -217,6 +221,18 @@ class ServerArgs:
217
221
  def password(self, value: Optional[pulumi.Input[str]]):
218
222
  pulumi.set(self, "password", value)
219
223
 
224
+ @property
225
+ @pulumi.getter(name="privateIps")
226
+ def private_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerPrivateIpArgs']]]]:
227
+ """
228
+ The list of private IPv4 and IPv6 addresses associated with the resource.
229
+ """
230
+ return pulumi.get(self, "private_ips")
231
+
232
+ @private_ips.setter
233
+ def private_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPrivateIpArgs']]]]):
234
+ pulumi.set(self, "private_ips", value)
235
+
220
236
  @property
221
237
  @pulumi.getter(name="privateNetworks")
222
238
  def private_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerPrivateNetworkArgs']]]]:
@@ -795,6 +811,7 @@ class Server(pulumi.CustomResource):
795
811
  os: Optional[pulumi.Input[str]] = None,
796
812
  partitioning: Optional[pulumi.Input[str]] = None,
797
813
  password: Optional[pulumi.Input[str]] = None,
814
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPrivateIpArgs', 'ServerPrivateIpArgsDict']]]]] = None,
798
815
  private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPrivateNetworkArgs', 'ServerPrivateNetworkArgsDict']]]]] = None,
799
816
  project_id: Optional[pulumi.Input[str]] = None,
800
817
  reinstall_on_config_changes: Optional[pulumi.Input[bool]] = None,
@@ -928,6 +945,7 @@ class Server(pulumi.CustomResource):
928
945
  > **Important:** Updates to `os` will reinstall the server.
929
946
  :param pulumi.Input[str] partitioning: The partitioning schema in JSON format
930
947
  :param pulumi.Input[str] password: Password used for the installation. May be required depending on used os.
948
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ServerPrivateIpArgs', 'ServerPrivateIpArgsDict']]]] private_ips: The list of private IPv4 and IPv6 addresses associated with the resource.
931
949
  :param pulumi.Input[Sequence[pulumi.Input[Union['ServerPrivateNetworkArgs', 'ServerPrivateNetworkArgsDict']]]] private_networks: The private networks to attach to the server. For more information, see [the documentation](https://www.scaleway.com/en/docs/compute/elastic-metal/how-to/use-private-networks/)
932
950
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the server is associated with.
933
951
  :param pulumi.Input[bool] reinstall_on_config_changes: If True, this boolean allows to reinstall the server on install config changes.
@@ -1075,6 +1093,7 @@ class Server(pulumi.CustomResource):
1075
1093
  os: Optional[pulumi.Input[str]] = None,
1076
1094
  partitioning: Optional[pulumi.Input[str]] = None,
1077
1095
  password: Optional[pulumi.Input[str]] = None,
1096
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPrivateIpArgs', 'ServerPrivateIpArgsDict']]]]] = None,
1078
1097
  private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPrivateNetworkArgs', 'ServerPrivateNetworkArgsDict']]]]] = None,
1079
1098
  project_id: Optional[pulumi.Input[str]] = None,
1080
1099
  reinstall_on_config_changes: Optional[pulumi.Input[bool]] = None,
@@ -1104,6 +1123,7 @@ class Server(pulumi.CustomResource):
1104
1123
  __props__.__dict__["os"] = os
1105
1124
  __props__.__dict__["partitioning"] = partitioning
1106
1125
  __props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password)
1126
+ __props__.__dict__["private_ips"] = private_ips
1107
1127
  __props__.__dict__["private_networks"] = private_networks
1108
1128
  __props__.__dict__["project_id"] = project_id
1109
1129
  __props__.__dict__["reinstall_on_config_changes"] = reinstall_on_config_changes
@@ -1121,7 +1141,6 @@ class Server(pulumi.CustomResource):
1121
1141
  __props__.__dict__["offer_name"] = None
1122
1142
  __props__.__dict__["organization_id"] = None
1123
1143
  __props__.__dict__["os_name"] = None
1124
- __props__.__dict__["private_ips"] = None
1125
1144
  alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/baremetalServer:BaremetalServer")])
1126
1145
  opts = pulumi.ResourceOptions.merge(opts, alias_opts)
1127
1146
  secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["password", "servicePassword"])
@@ -13,6 +13,7 @@ if sys.version_info >= (3, 11):
13
13
  else:
14
14
  from typing_extensions import NotRequired, TypedDict, TypeAlias
15
15
  from . import _utilities
16
+ from . import outputs
16
17
 
17
18
  __all__ = [
18
19
  'GetBlockSnapshotResult',
@@ -28,10 +29,13 @@ class GetBlockSnapshotResult:
28
29
  """
29
30
  A collection of values returned by getBlockSnapshot.
30
31
  """
31
- def __init__(__self__, id=None, name=None, project_id=None, snapshot_id=None, tags=None, volume_id=None, zone=None):
32
+ def __init__(__self__, id=None, imports=None, name=None, project_id=None, snapshot_id=None, tags=None, volume_id=None, zone=None):
32
33
  if id and not isinstance(id, str):
33
34
  raise TypeError("Expected argument 'id' to be a str")
34
35
  pulumi.set(__self__, "id", id)
36
+ if imports and not isinstance(imports, list):
37
+ raise TypeError("Expected argument 'imports' to be a list")
38
+ pulumi.set(__self__, "imports", imports)
35
39
  if name and not isinstance(name, str):
36
40
  raise TypeError("Expected argument 'name' to be a str")
37
41
  pulumi.set(__self__, "name", name)
@@ -59,6 +63,11 @@ class GetBlockSnapshotResult:
59
63
  """
60
64
  return pulumi.get(self, "id")
61
65
 
66
+ @property
67
+ @pulumi.getter
68
+ def imports(self) -> Sequence['outputs.GetBlockSnapshotImportResult']:
69
+ return pulumi.get(self, "imports")
70
+
62
71
  @property
63
72
  @pulumi.getter
64
73
  def name(self) -> Optional[str]:
@@ -97,6 +106,7 @@ class AwaitableGetBlockSnapshotResult(GetBlockSnapshotResult):
97
106
  yield self
98
107
  return GetBlockSnapshotResult(
99
108
  id=self.id,
109
+ imports=self.imports,
100
110
  name=self.name,
101
111
  project_id=self.project_id,
102
112
  snapshot_id=self.snapshot_id,
@@ -135,6 +145,7 @@ def get_block_snapshot(name: Optional[str] = None,
135
145
 
136
146
  return AwaitableGetBlockSnapshotResult(
137
147
  id=pulumi.get(__ret__, 'id'),
148
+ imports=pulumi.get(__ret__, 'imports'),
138
149
  name=pulumi.get(__ret__, 'name'),
139
150
  project_id=pulumi.get(__ret__, 'project_id'),
140
151
  snapshot_id=pulumi.get(__ret__, 'snapshot_id'),
@@ -170,6 +181,7 @@ def get_block_snapshot_output(name: Optional[pulumi.Input[Optional[str]]] = None
170
181
  __ret__ = pulumi.runtime.invoke_output('scaleway:index/getBlockSnapshot:getBlockSnapshot', __args__, opts=opts, typ=GetBlockSnapshotResult)
171
182
  return __ret__.apply(lambda __response__: GetBlockSnapshotResult(
172
183
  id=pulumi.get(__response__, 'id'),
184
+ imports=pulumi.get(__response__, 'imports'),
173
185
  name=pulumi.get(__response__, 'name'),
174
186
  project_id=pulumi.get(__response__, 'project_id'),
175
187
  snapshot_id=pulumi.get(__response__, 'snapshot_id'),
@@ -107,7 +107,7 @@ class GetDomainZoneResult:
107
107
 
108
108
  @property
109
109
  @pulumi.getter(name="projectId")
110
- def project_id(self) -> str:
110
+ def project_id(self) -> Optional[str]:
111
111
  return pulumi.get(self, "project_id")
112
112
 
113
113
  @property
@@ -151,17 +151,20 @@ class AwaitableGetDomainZoneResult(GetDomainZoneResult):
151
151
 
152
152
 
153
153
  def get_domain_zone(domain: Optional[str] = None,
154
+ project_id: Optional[str] = None,
154
155
  subdomain: Optional[str] = None,
155
156
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDomainZoneResult:
156
157
  """
157
158
  Use this data source to access information about an existing resource.
158
159
 
159
160
  :param str domain: The primary domain name where the DNS zone is located. This is a mandatory field.
161
+ :param str project_id: ). The ID of the Scaleway Project associated with the domain. If not specified, it defaults to the `project_id` set in the provider configuration.
160
162
  :param str subdomain: The subdomain (or zone name) within the primary domain. This is a mandatory field.
161
163
  """
162
164
  pulumi.log.warn("""get_domain_zone is deprecated: scaleway.index/getdomainzone.getDomainZone has been deprecated in favor of scaleway.domain/getzone.getZone""")
163
165
  __args__ = dict()
164
166
  __args__['domain'] = domain
167
+ __args__['projectId'] = project_id
165
168
  __args__['subdomain'] = subdomain
166
169
  opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
167
170
  __ret__ = pulumi.runtime.invoke('scaleway:index/getDomainZone:getDomainZone', __args__, opts=opts, typ=GetDomainZoneResult).value
@@ -178,17 +181,20 @@ def get_domain_zone(domain: Optional[str] = None,
178
181
  subdomain=pulumi.get(__ret__, 'subdomain'),
179
182
  updated_at=pulumi.get(__ret__, 'updated_at'))
180
183
  def get_domain_zone_output(domain: Optional[pulumi.Input[Optional[str]]] = None,
184
+ project_id: Optional[pulumi.Input[Optional[str]]] = None,
181
185
  subdomain: Optional[pulumi.Input[Optional[str]]] = None,
182
186
  opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetDomainZoneResult]:
183
187
  """
184
188
  Use this data source to access information about an existing resource.
185
189
 
186
190
  :param str domain: The primary domain name where the DNS zone is located. This is a mandatory field.
191
+ :param str project_id: ). The ID of the Scaleway Project associated with the domain. If not specified, it defaults to the `project_id` set in the provider configuration.
187
192
  :param str subdomain: The subdomain (or zone name) within the primary domain. This is a mandatory field.
188
193
  """
189
194
  pulumi.log.warn("""get_domain_zone is deprecated: scaleway.index/getdomainzone.getDomainZone has been deprecated in favor of scaleway.domain/getzone.getZone""")
190
195
  __args__ = dict()
191
196
  __args__['domain'] = domain
197
+ __args__['projectId'] = project_id
192
198
  __args__['subdomain'] = subdomain
193
199
  opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
194
200
  __ret__ = pulumi.runtime.invoke_output('scaleway:index/getDomainZone:getDomainZone', __args__, opts=opts, typ=GetDomainZoneResult)