pulumiverse-scaleway 1.28.0a1747119212__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 (102) hide show
  1. pulumiverse_scaleway/__init__.py +16 -1
  2. pulumiverse_scaleway/_inputs.py +604 -6
  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 +67 -258
  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 +61 -21
  16. pulumiverse_scaleway/databases/_inputs.py +54 -0
  17. pulumiverse_scaleway/databases/get_instance.py +12 -1
  18. pulumiverse_scaleway/databases/instance.py +61 -21
  19. pulumiverse_scaleway/databases/outputs.py +62 -0
  20. pulumiverse_scaleway/databases/snapshot.py +2 -2
  21. pulumiverse_scaleway/domain/get_zone.py +7 -1
  22. pulumiverse_scaleway/elasticmetal/__init__.py +1 -1
  23. pulumiverse_scaleway/elasticmetal/_inputs.py +74 -0
  24. pulumiverse_scaleway/elasticmetal/get_partition_schema.py +215 -0
  25. pulumiverse_scaleway/elasticmetal/get_server.py +12 -1
  26. pulumiverse_scaleway/elasticmetal/outputs.py +87 -0
  27. pulumiverse_scaleway/elasticmetal/server.py +67 -258
  28. pulumiverse_scaleway/get_baremetal_server.py +12 -1
  29. pulumiverse_scaleway/get_block_snapshot.py +13 -1
  30. pulumiverse_scaleway/get_cockpit_plan.py +2 -38
  31. pulumiverse_scaleway/get_database_instance.py +12 -1
  32. pulumiverse_scaleway/get_domain_zone.py +7 -1
  33. pulumiverse_scaleway/get_instance_private_nic.py +13 -1
  34. pulumiverse_scaleway/get_instance_server.py +12 -1
  35. pulumiverse_scaleway/get_lb_route.py +12 -1
  36. pulumiverse_scaleway/get_loadbalancer.py +12 -1
  37. pulumiverse_scaleway/get_mongo_db_instance.py +12 -1
  38. pulumiverse_scaleway/get_redis_cluster.py +12 -1
  39. pulumiverse_scaleway/get_vpc_gateway_network.py +12 -1
  40. pulumiverse_scaleway/iam/user.py +468 -14
  41. pulumiverse_scaleway/iam_user.py +468 -14
  42. pulumiverse_scaleway/inference/__init__.py +2 -0
  43. pulumiverse_scaleway/inference/_inputs.py +128 -0
  44. pulumiverse_scaleway/inference/deployment.py +70 -55
  45. pulumiverse_scaleway/inference/get_model.py +299 -0
  46. pulumiverse_scaleway/inference/model.py +683 -0
  47. pulumiverse_scaleway/inference/outputs.py +184 -0
  48. pulumiverse_scaleway/inference_deployment.py +70 -55
  49. pulumiverse_scaleway/instance/_inputs.py +108 -0
  50. pulumiverse_scaleway/instance/get_private_nic.py +13 -1
  51. pulumiverse_scaleway/instance/get_server.py +12 -1
  52. pulumiverse_scaleway/instance/outputs.py +124 -0
  53. pulumiverse_scaleway/instance/private_nic.py +49 -0
  54. pulumiverse_scaleway/instance/server.py +47 -0
  55. pulumiverse_scaleway/instance/snapshot.py +28 -7
  56. pulumiverse_scaleway/instance/volume.py +28 -7
  57. pulumiverse_scaleway/instance_private_nic.py +49 -0
  58. pulumiverse_scaleway/instance_server.py +47 -0
  59. pulumiverse_scaleway/instance_snapshot.py +28 -7
  60. pulumiverse_scaleway/instance_volume.py +28 -7
  61. pulumiverse_scaleway/kubernetes/__init__.py +1 -0
  62. pulumiverse_scaleway/kubernetes/_inputs.py +203 -0
  63. pulumiverse_scaleway/kubernetes/acl.py +446 -0
  64. pulumiverse_scaleway/kubernetes/outputs.py +195 -1
  65. pulumiverse_scaleway/loadbalancer.py +28 -0
  66. pulumiverse_scaleway/loadbalancer_route.py +138 -14
  67. pulumiverse_scaleway/loadbalancers/_inputs.py +54 -0
  68. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +12 -1
  69. pulumiverse_scaleway/loadbalancers/get_route.py +12 -1
  70. pulumiverse_scaleway/loadbalancers/load_balancer.py +28 -0
  71. pulumiverse_scaleway/loadbalancers/outputs.py +62 -0
  72. pulumiverse_scaleway/loadbalancers/route.py +138 -14
  73. pulumiverse_scaleway/mnq/sns_credentials.py +7 -7
  74. pulumiverse_scaleway/mnq/sqs_credentials.py +7 -7
  75. pulumiverse_scaleway/mnq_sns_credentials.py +7 -7
  76. pulumiverse_scaleway/mnq_sqs_credentials.py +7 -7
  77. pulumiverse_scaleway/mongo_db_instance.py +107 -7
  78. pulumiverse_scaleway/mongodb/_inputs.py +54 -0
  79. pulumiverse_scaleway/mongodb/get_instance.py +12 -1
  80. pulumiverse_scaleway/mongodb/instance.py +107 -7
  81. pulumiverse_scaleway/mongodb/outputs.py +62 -0
  82. pulumiverse_scaleway/network/_inputs.py +54 -0
  83. pulumiverse_scaleway/network/gateway_network.py +47 -0
  84. pulumiverse_scaleway/network/get_gateway_network.py +12 -1
  85. pulumiverse_scaleway/network/outputs.py +62 -0
  86. pulumiverse_scaleway/network/route.py +90 -2
  87. pulumiverse_scaleway/observability/__init__.py +0 -1
  88. pulumiverse_scaleway/observability/get_plan.py +2 -38
  89. pulumiverse_scaleway/outputs.py +718 -27
  90. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  91. pulumiverse_scaleway/rdb_snapshot.py +2 -2
  92. pulumiverse_scaleway/redis/_inputs.py +60 -6
  93. pulumiverse_scaleway/redis/cluster.py +47 -0
  94. pulumiverse_scaleway/redis/get_cluster.py +12 -1
  95. pulumiverse_scaleway/redis/outputs.py +66 -4
  96. pulumiverse_scaleway/redis_cluster.py +47 -0
  97. pulumiverse_scaleway/vpc_gateway_network.py +47 -0
  98. pulumiverse_scaleway/vpc_route.py +90 -2
  99. {pulumiverse_scaleway-1.28.0a1747119212.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/METADATA +1 -1
  100. {pulumiverse_scaleway-1.28.0a1747119212.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/RECORD +102 -94
  101. {pulumiverse_scaleway-1.28.0a1747119212.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/WHEEL +1 -1
  102. {pulumiverse_scaleway-1.28.0a1747119212.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/top_level.txt +0 -0
@@ -30,6 +30,7 @@ class BaremetalServerArgs:
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['BaremetalServerPrivateIpArgs']]]] = None,
33
34
  private_networks: Optional[pulumi.Input[Sequence[pulumi.Input['BaremetalServerPrivateNetworkArgs']]]] = 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 BaremetalServerArgs:
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['BaremetalServerPrivateIpArgs']]] private_ips: The list of private IPv4 and IPv6 addresses associated with the resource.
59
61
  :param pulumi.Input[Sequence[pulumi.Input['BaremetalServerPrivateNetworkArgs']]] 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 BaremetalServerArgs:
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 BaremetalServerArgs:
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['BaremetalServerPrivateIpArgs']]]]:
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['BaremetalServerPrivateIpArgs']]]]):
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['BaremetalServerPrivateNetworkArgs']]]]:
@@ -347,6 +363,7 @@ class _BaremetalServerState:
347
363
  os_name: Optional[pulumi.Input[str]] = None,
348
364
  partitioning: Optional[pulumi.Input[str]] = None,
349
365
  password: Optional[pulumi.Input[str]] = None,
366
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input['BaremetalServerPrivateIpArgs']]]] = None,
350
367
  private_networks: Optional[pulumi.Input[Sequence[pulumi.Input['BaremetalServerPrivateNetworkArgs']]]] = None,
351
368
  project_id: Optional[pulumi.Input[str]] = None,
352
369
  reinstall_on_config_changes: Optional[pulumi.Input[bool]] = None,
@@ -381,6 +398,7 @@ class _BaremetalServerState:
381
398
  :param pulumi.Input[str] os_name: The name of the os.
382
399
  :param pulumi.Input[str] partitioning: The partitioning schema in JSON format
383
400
  :param pulumi.Input[str] password: Password used for the installation. May be required depending on used os.
401
+ :param pulumi.Input[Sequence[pulumi.Input['BaremetalServerPrivateIpArgs']]] private_ips: The list of private IPv4 and IPv6 addresses associated with the resource.
384
402
  :param pulumi.Input[Sequence[pulumi.Input['BaremetalServerPrivateNetworkArgs']]] 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/)
385
403
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the server is associated with.
386
404
  :param pulumi.Input[bool] reinstall_on_config_changes: If True, this boolean allows to reinstall the server on install config changes.
@@ -426,6 +444,8 @@ class _BaremetalServerState:
426
444
  pulumi.set(__self__, "partitioning", partitioning)
427
445
  if password is not None:
428
446
  pulumi.set(__self__, "password", password)
447
+ if private_ips is not None:
448
+ pulumi.set(__self__, "private_ips", private_ips)
429
449
  if private_networks is not None:
430
450
  pulumi.set(__self__, "private_networks", private_networks)
431
451
  if project_id is not None:
@@ -655,6 +675,18 @@ class _BaremetalServerState:
655
675
  def password(self, value: Optional[pulumi.Input[str]]):
656
676
  pulumi.set(self, "password", value)
657
677
 
678
+ @property
679
+ @pulumi.getter(name="privateIps")
680
+ def private_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BaremetalServerPrivateIpArgs']]]]:
681
+ """
682
+ The list of private IPv4 and IPv6 addresses associated with the resource.
683
+ """
684
+ return pulumi.get(self, "private_ips")
685
+
686
+ @private_ips.setter
687
+ def private_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BaremetalServerPrivateIpArgs']]]]):
688
+ pulumi.set(self, "private_ips", value)
689
+
658
690
  @property
659
691
  @pulumi.getter(name="privateNetworks")
660
692
  def private_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BaremetalServerPrivateNetworkArgs']]]]:
@@ -784,6 +816,7 @@ class BaremetalServer(pulumi.CustomResource):
784
816
  os: Optional[pulumi.Input[str]] = None,
785
817
  partitioning: Optional[pulumi.Input[str]] = None,
786
818
  password: Optional[pulumi.Input[str]] = None,
819
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BaremetalServerPrivateIpArgs', 'BaremetalServerPrivateIpArgsDict']]]]] = None,
787
820
  private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BaremetalServerPrivateNetworkArgs', 'BaremetalServerPrivateNetworkArgsDict']]]]] = None,
788
821
  project_id: Optional[pulumi.Input[str]] = None,
789
822
  reinstall_on_config_changes: Optional[pulumi.Input[bool]] = None,
@@ -799,127 +832,6 @@ class BaremetalServer(pulumi.CustomResource):
799
832
 
800
833
  ## Example Usage
801
834
 
802
- ### Basic
803
-
804
- ```python
805
- import pulumi
806
- import pulumi_scaleway as scaleway
807
- import pulumiverse_scaleway as scaleway
808
-
809
- main = scaleway.iam.get_ssh_key(name="main")
810
- my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-2",
811
- name="EM-I220E-NVME")
812
- base = scaleway.elasticmetal.Server("base",
813
- zone="fr-par-2",
814
- offer=my_offer.offer_id,
815
- os="d17d6872-0412-45d9-a198-af82c34d3c5c",
816
- ssh_key_ids=[main_scaleway_account_ssh_key["id"]])
817
- ```
818
-
819
- ### With option
820
-
821
- ```python
822
- import pulumi
823
- import pulumi_scaleway as scaleway
824
- import pulumiverse_scaleway as scaleway
825
-
826
- main = scaleway.iam.get_ssh_key(name="main")
827
- my_os = scaleway.elasticmetal.get_os(zone="fr-par-2",
828
- name="Ubuntu",
829
- version="22.04 LTS (Jammy Jellyfish)")
830
- my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-2",
831
- name="EM-B112X-SSD")
832
- private_network = scaleway.elasticmetal.get_option(zone="fr-par-2",
833
- name="Private Network")
834
- remote_access = scaleway.elasticmetal.get_option(zone="fr-par-2",
835
- name="Remote Access")
836
- base = scaleway.elasticmetal.Server("base",
837
- zone="fr-par-2",
838
- offer=my_offer.offer_id,
839
- os=my_os.os_id,
840
- ssh_key_ids=[main_scaleway_account_ssh_key["id"]],
841
- options=[
842
- {
843
- "id": private_network.option_id,
844
- },
845
- {
846
- "id": remote_access.option_id,
847
- },
848
- ])
849
- ```
850
-
851
- ### With private network
852
-
853
- ```python
854
- import pulumi
855
- import pulumi_scaleway as scaleway
856
- import pulumiverse_scaleway as scaleway
857
-
858
- main = scaleway.iam.get_ssh_key(name="main")
859
- my_os = scaleway.elasticmetal.get_os(zone="fr-par-2",
860
- name="Ubuntu",
861
- version="22.04 LTS (Jammy Jellyfish)")
862
- my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-2",
863
- name="EM-B112X-SSD")
864
- private_network = scaleway.elasticmetal.get_option(zone="fr-par-2",
865
- name="Private Network")
866
- pn = scaleway.network.PrivateNetwork("pn",
867
- region="fr-par",
868
- name="baremetal_private_network")
869
- base = scaleway.elasticmetal.Server("base",
870
- zone="fr-par-2",
871
- offer=my_offer.offer_id,
872
- os=my_os.os_id,
873
- ssh_key_ids=[main_scaleway_account_ssh_key["id"]],
874
- options=[{
875
- "id": private_network.option_id,
876
- }],
877
- private_networks=[{
878
- "id": pn.id,
879
- }])
880
- ```
881
-
882
- ### With IPAM IP IDs
883
-
884
- ```python
885
- import pulumi
886
- import pulumi_scaleway as scaleway
887
- import pulumiverse_scaleway as scaleway
888
-
889
- vpc01 = scaleway.network.Vpc("vpc01", name="vpc_baremetal")
890
- pn01 = scaleway.network.PrivateNetwork("pn01",
891
- name="private_network_baremetal",
892
- ipv4_subnet={
893
- "subnet": "172.16.64.0/22",
894
- },
895
- vpc_id=vpc01.id)
896
- ip01 = scaleway.ipam.Ip("ip01",
897
- address="172.16.64.7",
898
- sources=[{
899
- "private_network_id": pn01.id,
900
- }])
901
- my_key = scaleway.iam.get_ssh_key(name="main")
902
- my_os = scaleway.elasticmetal.get_os(zone="fr-par-1",
903
- name="Ubuntu",
904
- version="22.04 LTS (Jammy Jellyfish)")
905
- my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
906
- name="EM-A115X-SSD")
907
- private_network = scaleway.elasticmetal.get_option(zone="fr-par-1",
908
- name="Private Network")
909
- base = scaleway.elasticmetal.Server("base",
910
- zone="fr-par-2",
911
- offer=my_offer.offer_id,
912
- os=my_os.os_id,
913
- ssh_key_ids=[my_key_scaleway_account_ssh_key["id"]],
914
- options=[{
915
- "id": private_network.option_id,
916
- }],
917
- private_networks=[{
918
- "id": pn01.id,
919
- "ipam_ip_ids": [ip01.id],
920
- }])
921
- ```
922
-
923
835
  ### Without install config
924
836
 
925
837
  ```python
@@ -929,7 +841,7 @@ class BaremetalServer(pulumi.CustomResource):
929
841
 
930
842
  my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-2",
931
843
  name="EM-B112X-SSD")
932
- base = scaleway.elasticmetal.Server("base",
844
+ my_server = scaleway.elasticmetal.Server("my_server",
933
845
  zone="fr-par-2",
934
846
  offer=my_offer.offer_id,
935
847
  install_config_afterward=True)
@@ -945,16 +857,18 @@ class BaremetalServer(pulumi.CustomResource):
945
857
  config = pulumi.Config()
946
858
  config_custom_partitioning = config.get("configCustomPartitioning")
947
859
  if config_custom_partitioning is None:
948
- config_custom_partitioning = "{\\"disks\\":[{\\"device\\":\\"/dev/nvme0n1\\",\\"partitions\\":[{\\"label\\":\\"uefi\\",\\"number\\":1,\\"size\\":536870912},{\\"label\\":\\"swap\\",\\"number\\":2,\\"size\\":4294967296},{\\"label\\":\\"boot\\",\\"number\\":3,\\"size\\":1073741824},{\\"label\\":\\"root\\",\\"number\\":4,\\"size\\":1017827045376}]},{\\"device\\":\\"/dev/nvme1n1\\",\\"partitions\\":[{\\"label\\":\\"swap\\",\\"number\\":1,\\"size\\":4294967296},{\\"label\\":\\"boot\\",\\"number\\":2,\\"size\\":1073741824},{\\"label\\":\\"root\\",\\"number\\":3,\\"size\\":1017827045376}]}],\\"filesystems\\":[{\\"device\\":\\"/dev/nvme0n1p1\\",\\"format\\":\\"fat32\\",\\"mountpoint\\":\\"/boot/efi\\"},{\\"device\\":\\"/dev/md0\\",\\"format\\":\\"ext4\\",\\"mountpoint\\":\\"/boot\\"},{\\"device\\":\\"/dev/md1\\",\\"format\\":\\"ext4\\",\\"mountpoint\\":\\"/\\"}],\\"raids\\":[{\\"devices\\":[\\"/dev/nvme0n1p3\\",\\"/dev/nvme1n1p2\\"],\\"level\\":\\"raid_level_1\\",\\"name\\":\\"/dev/md0\\"},{\\"devices\\":[\\"/dev/nvme0n1p4\\",\\"/dev/nvme1n1p3\\"],\\"level\\":\\"raid_level_1\\",\\"name\\":\\"/dev/md1\\"}],\\"zfs\\":{\\"pools\\":[]}}"
860
+ config_custom_partitioning = "{\\"disks\\":[{\\"device\\":\\"/dev/nvme0n1\\",\\"partitions\\":[{\\"label\\":\\"uefi\\",\\"number\\":1,\\"size\\":536870912,\\"useAllAvailableSpace\\":false},{\\"label\\":\\"boot\\",\\"number\\":2,\\"size\\":536870912,\\"useAllAvailableSpace\\":false},{\\"label\\":\\"root\\",\\"number\\":3,\\"size\\":1018839433216,\\"useAllAvailableSpace\\":false}]},{\\"device\\":\\"/dev/nvme1n1\\",\\"partitions\\":[{\\"label\\":\\"boot\\",\\"number\\":1,\\"size\\":536870912,\\"useAllAvailableSpace\\":false},{\\"label\\":\\"data\\",\\"number\\":2,\\"size\\":1018839433216,\\"useAllAvailableSpace\\":false}]}],\\"filesystems\\":[{\\"device\\":\\"/dev/nvme0n1p1\\",\\"format\\":\\"fat32\\",\\"mountpoint\\":\\"/boot/efi\\"},{\\"device\\":\\"/dev/nvme0n1p2\\",\\"format\\":\\"ext4\\",\\"mountpoint\\":\\"/boot\\"},{\\"device\\":\\"/dev/nvme0n1p3\\",\\"format\\":\\"ext4\\",\\"mountpoint\\":\\"/\\"},{\\"device\\":\\"/dev/nvme1n1p2\\",\\"format\\":\\"ext4\\",\\"mountpoint\\":\\"/data\\"}],\\"raids\\":[]}"
949
861
  my_os = scaleway.elasticmetal.get_os(zone="fr-par-1",
950
862
  name="Ubuntu",
951
863
  version="22.04 LTS (Jammy Jellyfish)")
952
- main = scaleway.iam.SshKey("main", name="main")
864
+ my_ssh_key = scaleway.iam.SshKey("my_ssh_key",
865
+ name="my_ssh_key",
866
+ public_key="ssh XXXXXXXXXXX")
953
867
  my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
954
868
  name="EM-B220E-NVME",
955
869
  subscription_period="hourly")
956
- base = scaleway.elasticmetal.Server("base",
957
- name="%s",
870
+ my_server = scaleway.elasticmetal.Server("my_server",
871
+ name="my_super_server",
958
872
  zone="fr-par-1",
959
873
  description="test a description",
960
874
  offer=my_offer.offer_id,
@@ -965,7 +879,7 @@ class BaremetalServer(pulumi.CustomResource):
965
879
  "scaleway_baremetal_server",
966
880
  "minimal",
967
881
  ],
968
- ssh_key_ids=[main.id])
882
+ ssh_key_ids=[my_ssh_key.id])
969
883
  ```
970
884
 
971
885
  ### Migrate from hourly to monthly plan
@@ -983,7 +897,7 @@ class BaremetalServer(pulumi.CustomResource):
983
897
  my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
984
898
  name="EM-B220E-NVME",
985
899
  subscription_period="hourly")
986
- server01 = scaleway.elasticmetal.Server("server01",
900
+ my_server = scaleway.elasticmetal.Server("my_server",
987
901
  name="UpdateSubscriptionPeriod",
988
902
  offer=my_offer.offer_id,
989
903
  zone="%s",
@@ -1000,7 +914,7 @@ class BaremetalServer(pulumi.CustomResource):
1000
914
  my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
1001
915
  name="EM-B220E-NVME",
1002
916
  subscription_period="monthly")
1003
- server01 = scaleway.elasticmetal.Server("server01",
917
+ my_server = scaleway.elasticmetal.Server("my_server",
1004
918
  name="UpdateSubscriptionPeriod",
1005
919
  offer=my_offer.offer_id,
1006
920
  zone="fr-par-1",
@@ -1036,6 +950,7 @@ class BaremetalServer(pulumi.CustomResource):
1036
950
  > **Important:** Updates to `os` will reinstall the server.
1037
951
  :param pulumi.Input[str] partitioning: The partitioning schema in JSON format
1038
952
  :param pulumi.Input[str] password: Password used for the installation. May be required depending on used os.
953
+ :param pulumi.Input[Sequence[pulumi.Input[Union['BaremetalServerPrivateIpArgs', 'BaremetalServerPrivateIpArgsDict']]]] private_ips: The list of private IPv4 and IPv6 addresses associated with the resource.
1039
954
  :param pulumi.Input[Sequence[pulumi.Input[Union['BaremetalServerPrivateNetworkArgs', 'BaremetalServerPrivateNetworkArgsDict']]]] 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/)
1040
955
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the server is associated with.
1041
956
  :param pulumi.Input[bool] reinstall_on_config_changes: If True, this boolean allows to reinstall the server on install config changes.
@@ -1058,127 +973,6 @@ class BaremetalServer(pulumi.CustomResource):
1058
973
 
1059
974
  ## Example Usage
1060
975
 
1061
- ### Basic
1062
-
1063
- ```python
1064
- import pulumi
1065
- import pulumi_scaleway as scaleway
1066
- import pulumiverse_scaleway as scaleway
1067
-
1068
- main = scaleway.iam.get_ssh_key(name="main")
1069
- my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-2",
1070
- name="EM-I220E-NVME")
1071
- base = scaleway.elasticmetal.Server("base",
1072
- zone="fr-par-2",
1073
- offer=my_offer.offer_id,
1074
- os="d17d6872-0412-45d9-a198-af82c34d3c5c",
1075
- ssh_key_ids=[main_scaleway_account_ssh_key["id"]])
1076
- ```
1077
-
1078
- ### With option
1079
-
1080
- ```python
1081
- import pulumi
1082
- import pulumi_scaleway as scaleway
1083
- import pulumiverse_scaleway as scaleway
1084
-
1085
- main = scaleway.iam.get_ssh_key(name="main")
1086
- my_os = scaleway.elasticmetal.get_os(zone="fr-par-2",
1087
- name="Ubuntu",
1088
- version="22.04 LTS (Jammy Jellyfish)")
1089
- my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-2",
1090
- name="EM-B112X-SSD")
1091
- private_network = scaleway.elasticmetal.get_option(zone="fr-par-2",
1092
- name="Private Network")
1093
- remote_access = scaleway.elasticmetal.get_option(zone="fr-par-2",
1094
- name="Remote Access")
1095
- base = scaleway.elasticmetal.Server("base",
1096
- zone="fr-par-2",
1097
- offer=my_offer.offer_id,
1098
- os=my_os.os_id,
1099
- ssh_key_ids=[main_scaleway_account_ssh_key["id"]],
1100
- options=[
1101
- {
1102
- "id": private_network.option_id,
1103
- },
1104
- {
1105
- "id": remote_access.option_id,
1106
- },
1107
- ])
1108
- ```
1109
-
1110
- ### With private network
1111
-
1112
- ```python
1113
- import pulumi
1114
- import pulumi_scaleway as scaleway
1115
- import pulumiverse_scaleway as scaleway
1116
-
1117
- main = scaleway.iam.get_ssh_key(name="main")
1118
- my_os = scaleway.elasticmetal.get_os(zone="fr-par-2",
1119
- name="Ubuntu",
1120
- version="22.04 LTS (Jammy Jellyfish)")
1121
- my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-2",
1122
- name="EM-B112X-SSD")
1123
- private_network = scaleway.elasticmetal.get_option(zone="fr-par-2",
1124
- name="Private Network")
1125
- pn = scaleway.network.PrivateNetwork("pn",
1126
- region="fr-par",
1127
- name="baremetal_private_network")
1128
- base = scaleway.elasticmetal.Server("base",
1129
- zone="fr-par-2",
1130
- offer=my_offer.offer_id,
1131
- os=my_os.os_id,
1132
- ssh_key_ids=[main_scaleway_account_ssh_key["id"]],
1133
- options=[{
1134
- "id": private_network.option_id,
1135
- }],
1136
- private_networks=[{
1137
- "id": pn.id,
1138
- }])
1139
- ```
1140
-
1141
- ### With IPAM IP IDs
1142
-
1143
- ```python
1144
- import pulumi
1145
- import pulumi_scaleway as scaleway
1146
- import pulumiverse_scaleway as scaleway
1147
-
1148
- vpc01 = scaleway.network.Vpc("vpc01", name="vpc_baremetal")
1149
- pn01 = scaleway.network.PrivateNetwork("pn01",
1150
- name="private_network_baremetal",
1151
- ipv4_subnet={
1152
- "subnet": "172.16.64.0/22",
1153
- },
1154
- vpc_id=vpc01.id)
1155
- ip01 = scaleway.ipam.Ip("ip01",
1156
- address="172.16.64.7",
1157
- sources=[{
1158
- "private_network_id": pn01.id,
1159
- }])
1160
- my_key = scaleway.iam.get_ssh_key(name="main")
1161
- my_os = scaleway.elasticmetal.get_os(zone="fr-par-1",
1162
- name="Ubuntu",
1163
- version="22.04 LTS (Jammy Jellyfish)")
1164
- my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
1165
- name="EM-A115X-SSD")
1166
- private_network = scaleway.elasticmetal.get_option(zone="fr-par-1",
1167
- name="Private Network")
1168
- base = scaleway.elasticmetal.Server("base",
1169
- zone="fr-par-2",
1170
- offer=my_offer.offer_id,
1171
- os=my_os.os_id,
1172
- ssh_key_ids=[my_key_scaleway_account_ssh_key["id"]],
1173
- options=[{
1174
- "id": private_network.option_id,
1175
- }],
1176
- private_networks=[{
1177
- "id": pn01.id,
1178
- "ipam_ip_ids": [ip01.id],
1179
- }])
1180
- ```
1181
-
1182
976
  ### Without install config
1183
977
 
1184
978
  ```python
@@ -1188,7 +982,7 @@ class BaremetalServer(pulumi.CustomResource):
1188
982
 
1189
983
  my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-2",
1190
984
  name="EM-B112X-SSD")
1191
- base = scaleway.elasticmetal.Server("base",
985
+ my_server = scaleway.elasticmetal.Server("my_server",
1192
986
  zone="fr-par-2",
1193
987
  offer=my_offer.offer_id,
1194
988
  install_config_afterward=True)
@@ -1204,16 +998,18 @@ class BaremetalServer(pulumi.CustomResource):
1204
998
  config = pulumi.Config()
1205
999
  config_custom_partitioning = config.get("configCustomPartitioning")
1206
1000
  if config_custom_partitioning is None:
1207
- config_custom_partitioning = "{\\"disks\\":[{\\"device\\":\\"/dev/nvme0n1\\",\\"partitions\\":[{\\"label\\":\\"uefi\\",\\"number\\":1,\\"size\\":536870912},{\\"label\\":\\"swap\\",\\"number\\":2,\\"size\\":4294967296},{\\"label\\":\\"boot\\",\\"number\\":3,\\"size\\":1073741824},{\\"label\\":\\"root\\",\\"number\\":4,\\"size\\":1017827045376}]},{\\"device\\":\\"/dev/nvme1n1\\",\\"partitions\\":[{\\"label\\":\\"swap\\",\\"number\\":1,\\"size\\":4294967296},{\\"label\\":\\"boot\\",\\"number\\":2,\\"size\\":1073741824},{\\"label\\":\\"root\\",\\"number\\":3,\\"size\\":1017827045376}]}],\\"filesystems\\":[{\\"device\\":\\"/dev/nvme0n1p1\\",\\"format\\":\\"fat32\\",\\"mountpoint\\":\\"/boot/efi\\"},{\\"device\\":\\"/dev/md0\\",\\"format\\":\\"ext4\\",\\"mountpoint\\":\\"/boot\\"},{\\"device\\":\\"/dev/md1\\",\\"format\\":\\"ext4\\",\\"mountpoint\\":\\"/\\"}],\\"raids\\":[{\\"devices\\":[\\"/dev/nvme0n1p3\\",\\"/dev/nvme1n1p2\\"],\\"level\\":\\"raid_level_1\\",\\"name\\":\\"/dev/md0\\"},{\\"devices\\":[\\"/dev/nvme0n1p4\\",\\"/dev/nvme1n1p3\\"],\\"level\\":\\"raid_level_1\\",\\"name\\":\\"/dev/md1\\"}],\\"zfs\\":{\\"pools\\":[]}}"
1001
+ config_custom_partitioning = "{\\"disks\\":[{\\"device\\":\\"/dev/nvme0n1\\",\\"partitions\\":[{\\"label\\":\\"uefi\\",\\"number\\":1,\\"size\\":536870912,\\"useAllAvailableSpace\\":false},{\\"label\\":\\"boot\\",\\"number\\":2,\\"size\\":536870912,\\"useAllAvailableSpace\\":false},{\\"label\\":\\"root\\",\\"number\\":3,\\"size\\":1018839433216,\\"useAllAvailableSpace\\":false}]},{\\"device\\":\\"/dev/nvme1n1\\",\\"partitions\\":[{\\"label\\":\\"boot\\",\\"number\\":1,\\"size\\":536870912,\\"useAllAvailableSpace\\":false},{\\"label\\":\\"data\\",\\"number\\":2,\\"size\\":1018839433216,\\"useAllAvailableSpace\\":false}]}],\\"filesystems\\":[{\\"device\\":\\"/dev/nvme0n1p1\\",\\"format\\":\\"fat32\\",\\"mountpoint\\":\\"/boot/efi\\"},{\\"device\\":\\"/dev/nvme0n1p2\\",\\"format\\":\\"ext4\\",\\"mountpoint\\":\\"/boot\\"},{\\"device\\":\\"/dev/nvme0n1p3\\",\\"format\\":\\"ext4\\",\\"mountpoint\\":\\"/\\"},{\\"device\\":\\"/dev/nvme1n1p2\\",\\"format\\":\\"ext4\\",\\"mountpoint\\":\\"/data\\"}],\\"raids\\":[]}"
1208
1002
  my_os = scaleway.elasticmetal.get_os(zone="fr-par-1",
1209
1003
  name="Ubuntu",
1210
1004
  version="22.04 LTS (Jammy Jellyfish)")
1211
- main = scaleway.iam.SshKey("main", name="main")
1005
+ my_ssh_key = scaleway.iam.SshKey("my_ssh_key",
1006
+ name="my_ssh_key",
1007
+ public_key="ssh XXXXXXXXXXX")
1212
1008
  my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
1213
1009
  name="EM-B220E-NVME",
1214
1010
  subscription_period="hourly")
1215
- base = scaleway.elasticmetal.Server("base",
1216
- name="%s",
1011
+ my_server = scaleway.elasticmetal.Server("my_server",
1012
+ name="my_super_server",
1217
1013
  zone="fr-par-1",
1218
1014
  description="test a description",
1219
1015
  offer=my_offer.offer_id,
@@ -1224,7 +1020,7 @@ class BaremetalServer(pulumi.CustomResource):
1224
1020
  "scaleway_baremetal_server",
1225
1021
  "minimal",
1226
1022
  ],
1227
- ssh_key_ids=[main.id])
1023
+ ssh_key_ids=[my_ssh_key.id])
1228
1024
  ```
1229
1025
 
1230
1026
  ### Migrate from hourly to monthly plan
@@ -1242,7 +1038,7 @@ class BaremetalServer(pulumi.CustomResource):
1242
1038
  my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
1243
1039
  name="EM-B220E-NVME",
1244
1040
  subscription_period="hourly")
1245
- server01 = scaleway.elasticmetal.Server("server01",
1041
+ my_server = scaleway.elasticmetal.Server("my_server",
1246
1042
  name="UpdateSubscriptionPeriod",
1247
1043
  offer=my_offer.offer_id,
1248
1044
  zone="%s",
@@ -1259,7 +1055,7 @@ class BaremetalServer(pulumi.CustomResource):
1259
1055
  my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
1260
1056
  name="EM-B220E-NVME",
1261
1057
  subscription_period="monthly")
1262
- server01 = scaleway.elasticmetal.Server("server01",
1058
+ my_server = scaleway.elasticmetal.Server("my_server",
1263
1059
  name="UpdateSubscriptionPeriod",
1264
1060
  offer=my_offer.offer_id,
1265
1061
  zone="fr-par-1",
@@ -1302,6 +1098,7 @@ class BaremetalServer(pulumi.CustomResource):
1302
1098
  os: Optional[pulumi.Input[str]] = None,
1303
1099
  partitioning: Optional[pulumi.Input[str]] = None,
1304
1100
  password: Optional[pulumi.Input[str]] = None,
1101
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BaremetalServerPrivateIpArgs', 'BaremetalServerPrivateIpArgsDict']]]]] = None,
1305
1102
  private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BaremetalServerPrivateNetworkArgs', 'BaremetalServerPrivateNetworkArgsDict']]]]] = None,
1306
1103
  project_id: Optional[pulumi.Input[str]] = None,
1307
1104
  reinstall_on_config_changes: Optional[pulumi.Input[bool]] = None,
@@ -1332,6 +1129,7 @@ class BaremetalServer(pulumi.CustomResource):
1332
1129
  __props__.__dict__["os"] = os
1333
1130
  __props__.__dict__["partitioning"] = partitioning
1334
1131
  __props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password)
1132
+ __props__.__dict__["private_ips"] = private_ips
1335
1133
  __props__.__dict__["private_networks"] = private_networks
1336
1134
  __props__.__dict__["project_id"] = project_id
1337
1135
  __props__.__dict__["reinstall_on_config_changes"] = reinstall_on_config_changes
@@ -1378,6 +1176,7 @@ class BaremetalServer(pulumi.CustomResource):
1378
1176
  os_name: Optional[pulumi.Input[str]] = None,
1379
1177
  partitioning: Optional[pulumi.Input[str]] = None,
1380
1178
  password: Optional[pulumi.Input[str]] = None,
1179
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BaremetalServerPrivateIpArgs', 'BaremetalServerPrivateIpArgsDict']]]]] = None,
1381
1180
  private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BaremetalServerPrivateNetworkArgs', 'BaremetalServerPrivateNetworkArgsDict']]]]] = None,
1382
1181
  project_id: Optional[pulumi.Input[str]] = None,
1383
1182
  reinstall_on_config_changes: Optional[pulumi.Input[bool]] = None,
@@ -1417,6 +1216,7 @@ class BaremetalServer(pulumi.CustomResource):
1417
1216
  :param pulumi.Input[str] os_name: The name of the os.
1418
1217
  :param pulumi.Input[str] partitioning: The partitioning schema in JSON format
1419
1218
  :param pulumi.Input[str] password: Password used for the installation. May be required depending on used os.
1219
+ :param pulumi.Input[Sequence[pulumi.Input[Union['BaremetalServerPrivateIpArgs', 'BaremetalServerPrivateIpArgsDict']]]] private_ips: The list of private IPv4 and IPv6 addresses associated with the resource.
1420
1220
  :param pulumi.Input[Sequence[pulumi.Input[Union['BaremetalServerPrivateNetworkArgs', 'BaremetalServerPrivateNetworkArgsDict']]]] 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/)
1421
1221
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the server is associated with.
1422
1222
  :param pulumi.Input[bool] reinstall_on_config_changes: If True, this boolean allows to reinstall the server on install config changes.
@@ -1449,6 +1249,7 @@ class BaremetalServer(pulumi.CustomResource):
1449
1249
  __props__.__dict__["os_name"] = os_name
1450
1250
  __props__.__dict__["partitioning"] = partitioning
1451
1251
  __props__.__dict__["password"] = password
1252
+ __props__.__dict__["private_ips"] = private_ips
1452
1253
  __props__.__dict__["private_networks"] = private_networks
1453
1254
  __props__.__dict__["project_id"] = project_id
1454
1255
  __props__.__dict__["reinstall_on_config_changes"] = reinstall_on_config_changes
@@ -1602,6 +1403,14 @@ class BaremetalServer(pulumi.CustomResource):
1602
1403
  """
1603
1404
  return pulumi.get(self, "password")
1604
1405
 
1406
+ @property
1407
+ @pulumi.getter(name="privateIps")
1408
+ def private_ips(self) -> pulumi.Output[Sequence['outputs.BaremetalServerPrivateIp']]:
1409
+ """
1410
+ The list of private IPv4 and IPv6 addresses associated with the resource.
1411
+ """
1412
+ return pulumi.get(self, "private_ips")
1413
+
1605
1414
  @property
1606
1415
  @pulumi.getter(name="privateNetworks")
1607
1416
  def private_networks(self) -> pulumi.Output[Optional[Sequence['outputs.BaremetalServerPrivateNetwork']]]:
@@ -9,3 +9,5 @@ from .get_snapshot import *
9
9
  from .get_volume import *
10
10
  from .snapshot import *
11
11
  from .volume import *
12
+ from ._inputs import *
13
+ from . import outputs
@@ -0,0 +1,73 @@
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
+ 'SnapshotImportArgs',
19
+ 'SnapshotImportArgsDict',
20
+ ]
21
+
22
+ MYPY = False
23
+
24
+ if not MYPY:
25
+ class SnapshotImportArgsDict(TypedDict):
26
+ bucket: pulumi.Input[str]
27
+ """
28
+ Bucket containing qcow
29
+ """
30
+ key: pulumi.Input[str]
31
+ """
32
+ Key of the qcow file in the specified bucket
33
+ """
34
+ elif False:
35
+ SnapshotImportArgsDict: TypeAlias = Mapping[str, Any]
36
+
37
+ @pulumi.input_type
38
+ class SnapshotImportArgs:
39
+ def __init__(__self__, *,
40
+ bucket: pulumi.Input[str],
41
+ key: pulumi.Input[str]):
42
+ """
43
+ :param pulumi.Input[str] bucket: Bucket containing qcow
44
+ :param pulumi.Input[str] key: Key of the qcow file in the specified bucket
45
+ """
46
+ pulumi.set(__self__, "bucket", bucket)
47
+ pulumi.set(__self__, "key", key)
48
+
49
+ @property
50
+ @pulumi.getter
51
+ def bucket(self) -> pulumi.Input[str]:
52
+ """
53
+ Bucket containing qcow
54
+ """
55
+ return pulumi.get(self, "bucket")
56
+
57
+ @bucket.setter
58
+ def bucket(self, value: pulumi.Input[str]):
59
+ pulumi.set(self, "bucket", value)
60
+
61
+ @property
62
+ @pulumi.getter
63
+ def key(self) -> pulumi.Input[str]:
64
+ """
65
+ Key of the qcow file in the specified bucket
66
+ """
67
+ return pulumi.get(self, "key")
68
+
69
+ @key.setter
70
+ def key(self, value: pulumi.Input[str]):
71
+ pulumi.set(self, "key", value)
72
+
73
+