pulumiverse-scaleway 1.26.0a1742897201__py3-none-any.whl → 1.27.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 (85) hide show
  1. pulumiverse_scaleway/__init__.py +105 -0
  2. pulumiverse_scaleway/_inputs.py +776 -0
  3. pulumiverse_scaleway/apple_silicon_server.py +105 -0
  4. pulumiverse_scaleway/applesilicon/server.py +105 -0
  5. pulumiverse_scaleway/baremetal_server.py +82 -0
  6. pulumiverse_scaleway/cockpit.py +7 -0
  7. pulumiverse_scaleway/domain/__init__.py +1 -0
  8. pulumiverse_scaleway/domain/_inputs.py +2697 -0
  9. pulumiverse_scaleway/domain/outputs.py +2145 -0
  10. pulumiverse_scaleway/domain/registration.py +777 -0
  11. pulumiverse_scaleway/edge_services_backend_stage.py +472 -0
  12. pulumiverse_scaleway/edge_services_cache_stage.py +584 -0
  13. pulumiverse_scaleway/edge_services_dns_stage.py +516 -0
  14. pulumiverse_scaleway/edge_services_head_stage.py +258 -0
  15. pulumiverse_scaleway/edge_services_pipeline.py +478 -0
  16. pulumiverse_scaleway/edge_services_plan.py +239 -0
  17. pulumiverse_scaleway/edge_services_route_stage.py +422 -0
  18. pulumiverse_scaleway/edge_services_tls_stage.py +640 -0
  19. pulumiverse_scaleway/edge_services_waf_stage.py +444 -0
  20. pulumiverse_scaleway/elasticmetal/__init__.py +1 -0
  21. pulumiverse_scaleway/elasticmetal/get_easy_partitioning.py +177 -0
  22. pulumiverse_scaleway/elasticmetal/ip.py +13 -7
  23. pulumiverse_scaleway/elasticmetal/server.py +82 -0
  24. pulumiverse_scaleway/flexible_ip.py +13 -7
  25. pulumiverse_scaleway/get_cockpit_plan.py +1 -0
  26. pulumiverse_scaleway/get_instance_server.py +12 -1
  27. pulumiverse_scaleway/get_lb_frontend.py +12 -1
  28. pulumiverse_scaleway/get_lb_route.py +12 -1
  29. pulumiverse_scaleway/get_secret.py +15 -4
  30. pulumiverse_scaleway/get_vpc_public_gateway.py +34 -1
  31. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +8 -0
  32. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +8 -0
  33. pulumiverse_scaleway/hosting/hosting.py +2 -2
  34. pulumiverse_scaleway/instance/get_server.py +12 -1
  35. pulumiverse_scaleway/instance/outputs.py +0 -11
  36. pulumiverse_scaleway/instance/server.py +54 -7
  37. pulumiverse_scaleway/instance_server.py +54 -7
  38. pulumiverse_scaleway/job/_inputs.py +113 -0
  39. pulumiverse_scaleway/job/definition.py +107 -0
  40. pulumiverse_scaleway/job/outputs.py +88 -0
  41. pulumiverse_scaleway/job_definition.py +107 -0
  42. pulumiverse_scaleway/loadbalancer_backend.py +2 -2
  43. pulumiverse_scaleway/loadbalancer_frontend.py +47 -0
  44. pulumiverse_scaleway/loadbalancer_route.py +48 -1
  45. pulumiverse_scaleway/loadbalancers/backend.py +2 -2
  46. pulumiverse_scaleway/loadbalancers/frontend.py +47 -0
  47. pulumiverse_scaleway/loadbalancers/get_frontend.py +12 -1
  48. pulumiverse_scaleway/loadbalancers/get_route.py +12 -1
  49. pulumiverse_scaleway/loadbalancers/outputs.py +13 -2
  50. pulumiverse_scaleway/loadbalancers/route.py +48 -1
  51. pulumiverse_scaleway/network/__init__.py +1 -0
  52. pulumiverse_scaleway/network/_inputs.py +194 -0
  53. pulumiverse_scaleway/network/acl.py +415 -0
  54. pulumiverse_scaleway/network/gateway_network.py +104 -122
  55. pulumiverse_scaleway/network/get_public_gateway.py +34 -1
  56. pulumiverse_scaleway/network/get_public_gateway_dhcp.py +8 -0
  57. pulumiverse_scaleway/network/get_public_gateway_dhcp_reservation.py +8 -0
  58. pulumiverse_scaleway/network/outputs.py +139 -0
  59. pulumiverse_scaleway/network/public_gateway.py +124 -21
  60. pulumiverse_scaleway/network/public_gateway_dhcp.py +8 -0
  61. pulumiverse_scaleway/network/public_gateway_dhcp_reservation.py +8 -0
  62. pulumiverse_scaleway/observability/cockpit.py +7 -0
  63. pulumiverse_scaleway/observability/get_plan.py +1 -0
  64. pulumiverse_scaleway/outputs.py +750 -13
  65. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  66. pulumiverse_scaleway/secret.py +22 -2
  67. pulumiverse_scaleway/secret_version.py +6 -6
  68. pulumiverse_scaleway/secrets/_inputs.py +154 -0
  69. pulumiverse_scaleway/secrets/get_secret.py +15 -4
  70. pulumiverse_scaleway/secrets/outputs.py +200 -0
  71. pulumiverse_scaleway/secrets/secret.py +22 -2
  72. pulumiverse_scaleway/tem/__init__.py +2 -0
  73. pulumiverse_scaleway/tem/blocked_list.py +442 -0
  74. pulumiverse_scaleway/tem/domain.py +7 -0
  75. pulumiverse_scaleway/tem/get_offer_subscription.py +254 -0
  76. pulumiverse_scaleway/tem_domain.py +7 -0
  77. pulumiverse_scaleway/vpc_gateway_network.py +104 -122
  78. pulumiverse_scaleway/vpc_public_gateway.py +124 -21
  79. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +8 -0
  80. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +8 -0
  81. pulumiverse_scaleway/webhosting.py +2 -2
  82. {pulumiverse_scaleway-1.26.0a1742897201.dist-info → pulumiverse_scaleway-1.27.0.dist-info}/METADATA +1 -1
  83. {pulumiverse_scaleway-1.26.0a1742897201.dist-info → pulumiverse_scaleway-1.27.0.dist-info}/RECORD +85 -71
  84. {pulumiverse_scaleway-1.26.0a1742897201.dist-info → pulumiverse_scaleway-1.27.0.dist-info}/WHEEL +1 -1
  85. {pulumiverse_scaleway-1.26.0a1742897201.dist-info → pulumiverse_scaleway-1.27.0.dist-info}/top_level.txt +0 -0
@@ -34,7 +34,7 @@ class IpArgs:
34
34
  :param pulumi.Input[str] reverse: The reverse domain associated with this flexible IP.
35
35
  :param pulumi.Input[str] server_id: The ID of the associated server.
36
36
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the flexible IP.
37
- :param pulumi.Input[str] zone: The zone of the Flexible IP.
37
+ :param pulumi.Input[str] zone: `zone`) The zone of the Flexible IP.
38
38
  """
39
39
  if description is not None:
40
40
  pulumi.set(__self__, "description", description)
@@ -127,7 +127,7 @@ class IpArgs:
127
127
  @pulumi.getter
128
128
  def zone(self) -> Optional[pulumi.Input[str]]:
129
129
  """
130
- The zone of the Flexible IP.
130
+ `zone`) The zone of the Flexible IP.
131
131
  """
132
132
  return pulumi.get(self, "zone")
133
133
 
@@ -164,7 +164,7 @@ class _IpState:
164
164
  :param pulumi.Input[str] status: The status of the flexible IP.
165
165
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the flexible IP.
166
166
  :param pulumi.Input[str] updated_at: The date and time of the last update of the Flexible IP (Format ISO 8601).
167
- :param pulumi.Input[str] zone: The zone of the Flexible IP.
167
+ :param pulumi.Input[str] zone: `zone`) The zone of the Flexible IP.
168
168
  """
169
169
  if created_at is not None:
170
170
  pulumi.set(__self__, "created_at", created_at)
@@ -327,7 +327,7 @@ class _IpState:
327
327
  @pulumi.getter
328
328
  def zone(self) -> Optional[pulumi.Input[str]]:
329
329
  """
330
- The zone of the Flexible IP.
330
+ `zone`) The zone of the Flexible IP.
331
331
  """
332
332
  return pulumi.get(self, "zone")
333
333
 
@@ -353,6 +353,9 @@ class Ip(pulumi.CustomResource):
353
353
  Creates and manages Scaleway flexible IPs.
354
354
  For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip).
355
355
 
356
+ > **Note:**
357
+ Flexible IPs are exclusively available for Elastic Metal (bare metal) servers. They are not compatible with other Scaleway products.
358
+
356
359
  ## Example Usage
357
360
 
358
361
  ### Basic
@@ -425,7 +428,7 @@ class Ip(pulumi.CustomResource):
425
428
  :param pulumi.Input[str] reverse: The reverse domain associated with this flexible IP.
426
429
  :param pulumi.Input[str] server_id: The ID of the associated server.
427
430
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the flexible IP.
428
- :param pulumi.Input[str] zone: The zone of the Flexible IP.
431
+ :param pulumi.Input[str] zone: `zone`) The zone of the Flexible IP.
429
432
  """
430
433
  ...
431
434
  @overload
@@ -437,6 +440,9 @@ class Ip(pulumi.CustomResource):
437
440
  Creates and manages Scaleway flexible IPs.
438
441
  For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip).
439
442
 
443
+ > **Note:**
444
+ Flexible IPs are exclusively available for Elastic Metal (bare metal) servers. They are not compatible with other Scaleway products.
445
+
440
446
  ## Example Usage
441
447
 
442
448
  ### Basic
@@ -586,7 +592,7 @@ class Ip(pulumi.CustomResource):
586
592
  :param pulumi.Input[str] status: The status of the flexible IP.
587
593
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the flexible IP.
588
594
  :param pulumi.Input[str] updated_at: The date and time of the last update of the Flexible IP (Format ISO 8601).
589
- :param pulumi.Input[str] zone: The zone of the Flexible IP.
595
+ :param pulumi.Input[str] zone: `zone`) The zone of the Flexible IP.
590
596
  """
591
597
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
592
598
 
@@ -698,7 +704,7 @@ class Ip(pulumi.CustomResource):
698
704
  @pulumi.getter
699
705
  def zone(self) -> pulumi.Output[str]:
700
706
  """
701
- The zone of the Flexible IP.
707
+ `zone`) The zone of the Flexible IP.
702
708
  """
703
709
  return pulumi.get(self, "zone")
704
710
 
@@ -963,6 +963,47 @@ class Server(pulumi.CustomResource):
963
963
  ssh_key_ids=[main.id])
964
964
  ```
965
965
 
966
+ ### Migrate from hourly to monthly plan
967
+
968
+ To migrate from an hourly to a monthly subscription for a Scaleway Baremetal server, it is important to understand that the migration can only be done by using the data source.
969
+ You cannot directly modify the subscription_period of an existing elasticmetal_get_offer resource. Instead, you must define the monthly offer using the data source and then update the server configuration accordingly.
970
+
971
+ ### Hourly Plan Example
972
+
973
+ ```python
974
+ import pulumi
975
+ import pulumi_scaleway as scaleway
976
+ import pulumiverse_scaleway as scaleway
977
+
978
+ my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
979
+ name="EM-B220E-NVME",
980
+ subscription_period="hourly")
981
+ server01 = scaleway.elasticmetal.Server("server01",
982
+ name="UpdateSubscriptionPeriod",
983
+ offer=my_offer.offer_id,
984
+ zone="%s",
985
+ install_config_afterward=True)
986
+ ```
987
+
988
+ ### Monthly Plan Example
989
+
990
+ ```python
991
+ import pulumi
992
+ import pulumi_scaleway as scaleway
993
+ import pulumiverse_scaleway as scaleway
994
+
995
+ my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
996
+ name="EM-B220E-NVME",
997
+ subscription_period="monthly")
998
+ server01 = scaleway.elasticmetal.Server("server01",
999
+ name="UpdateSubscriptionPeriod",
1000
+ offer=my_offer.offer_id,
1001
+ zone="fr-par-1",
1002
+ install_config_afterward=True)
1003
+ ```
1004
+
1005
+ **Important** Once you migrate to a monthly subscription, you cannot downgrade back to an hourly plan. Ensure that the monthly plan meets your needs before making the switch.
1006
+
966
1007
  ## Import
967
1008
 
968
1009
  Baremetal servers can be imported using the `{zone}/{id}`, e.g.
@@ -1181,6 +1222,47 @@ class Server(pulumi.CustomResource):
1181
1222
  ssh_key_ids=[main.id])
1182
1223
  ```
1183
1224
 
1225
+ ### Migrate from hourly to monthly plan
1226
+
1227
+ To migrate from an hourly to a monthly subscription for a Scaleway Baremetal server, it is important to understand that the migration can only be done by using the data source.
1228
+ You cannot directly modify the subscription_period of an existing elasticmetal_get_offer resource. Instead, you must define the monthly offer using the data source and then update the server configuration accordingly.
1229
+
1230
+ ### Hourly Plan Example
1231
+
1232
+ ```python
1233
+ import pulumi
1234
+ import pulumi_scaleway as scaleway
1235
+ import pulumiverse_scaleway as scaleway
1236
+
1237
+ my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
1238
+ name="EM-B220E-NVME",
1239
+ subscription_period="hourly")
1240
+ server01 = scaleway.elasticmetal.Server("server01",
1241
+ name="UpdateSubscriptionPeriod",
1242
+ offer=my_offer.offer_id,
1243
+ zone="%s",
1244
+ install_config_afterward=True)
1245
+ ```
1246
+
1247
+ ### Monthly Plan Example
1248
+
1249
+ ```python
1250
+ import pulumi
1251
+ import pulumi_scaleway as scaleway
1252
+ import pulumiverse_scaleway as scaleway
1253
+
1254
+ my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
1255
+ name="EM-B220E-NVME",
1256
+ subscription_period="monthly")
1257
+ server01 = scaleway.elasticmetal.Server("server01",
1258
+ name="UpdateSubscriptionPeriod",
1259
+ offer=my_offer.offer_id,
1260
+ zone="fr-par-1",
1261
+ install_config_afterward=True)
1262
+ ```
1263
+
1264
+ **Important** Once you migrate to a monthly subscription, you cannot downgrade back to an hourly plan. Ensure that the monthly plan meets your needs before making the switch.
1265
+
1184
1266
  ## Import
1185
1267
 
1186
1268
  Baremetal servers can be imported using the `{zone}/{id}`, e.g.
@@ -34,7 +34,7 @@ class FlexibleIpArgs:
34
34
  :param pulumi.Input[str] reverse: The reverse domain associated with this flexible IP.
35
35
  :param pulumi.Input[str] server_id: The ID of the associated server.
36
36
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the flexible IP.
37
- :param pulumi.Input[str] zone: The zone of the Flexible IP.
37
+ :param pulumi.Input[str] zone: `zone`) The zone of the Flexible IP.
38
38
  """
39
39
  if description is not None:
40
40
  pulumi.set(__self__, "description", description)
@@ -127,7 +127,7 @@ class FlexibleIpArgs:
127
127
  @pulumi.getter
128
128
  def zone(self) -> Optional[pulumi.Input[str]]:
129
129
  """
130
- The zone of the Flexible IP.
130
+ `zone`) The zone of the Flexible IP.
131
131
  """
132
132
  return pulumi.get(self, "zone")
133
133
 
@@ -164,7 +164,7 @@ class _FlexibleIpState:
164
164
  :param pulumi.Input[str] status: The status of the flexible IP.
165
165
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the flexible IP.
166
166
  :param pulumi.Input[str] updated_at: The date and time of the last update of the Flexible IP (Format ISO 8601).
167
- :param pulumi.Input[str] zone: The zone of the Flexible IP.
167
+ :param pulumi.Input[str] zone: `zone`) The zone of the Flexible IP.
168
168
  """
169
169
  if created_at is not None:
170
170
  pulumi.set(__self__, "created_at", created_at)
@@ -327,7 +327,7 @@ class _FlexibleIpState:
327
327
  @pulumi.getter
328
328
  def zone(self) -> Optional[pulumi.Input[str]]:
329
329
  """
330
- The zone of the Flexible IP.
330
+ `zone`) The zone of the Flexible IP.
331
331
  """
332
332
  return pulumi.get(self, "zone")
333
333
 
@@ -358,6 +358,9 @@ class FlexibleIp(pulumi.CustomResource):
358
358
  Creates and manages Scaleway flexible IPs.
359
359
  For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip).
360
360
 
361
+ > **Note:**
362
+ Flexible IPs are exclusively available for Elastic Metal (bare metal) servers. They are not compatible with other Scaleway products.
363
+
361
364
  ## Example Usage
362
365
 
363
366
  ### Basic
@@ -430,7 +433,7 @@ class FlexibleIp(pulumi.CustomResource):
430
433
  :param pulumi.Input[str] reverse: The reverse domain associated with this flexible IP.
431
434
  :param pulumi.Input[str] server_id: The ID of the associated server.
432
435
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the flexible IP.
433
- :param pulumi.Input[str] zone: The zone of the Flexible IP.
436
+ :param pulumi.Input[str] zone: `zone`) The zone of the Flexible IP.
434
437
  """
435
438
  ...
436
439
  @overload
@@ -442,6 +445,9 @@ class FlexibleIp(pulumi.CustomResource):
442
445
  Creates and manages Scaleway flexible IPs.
443
446
  For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip).
444
447
 
448
+ > **Note:**
449
+ Flexible IPs are exclusively available for Elastic Metal (bare metal) servers. They are not compatible with other Scaleway products.
450
+
445
451
  ## Example Usage
446
452
 
447
453
  ### Basic
@@ -590,7 +596,7 @@ class FlexibleIp(pulumi.CustomResource):
590
596
  :param pulumi.Input[str] status: The status of the flexible IP.
591
597
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the flexible IP.
592
598
  :param pulumi.Input[str] updated_at: The date and time of the last update of the Flexible IP (Format ISO 8601).
593
- :param pulumi.Input[str] zone: The zone of the Flexible IP.
599
+ :param pulumi.Input[str] zone: `zone`) The zone of the Flexible IP.
594
600
  """
595
601
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
596
602
 
@@ -702,7 +708,7 @@ class FlexibleIp(pulumi.CustomResource):
702
708
  @pulumi.getter
703
709
  def zone(self) -> pulumi.Output[str]:
704
710
  """
705
- The zone of the Flexible IP.
711
+ `zone`) The zone of the Flexible IP.
706
712
  """
707
713
  return pulumi.get(self, "zone")
708
714
 
@@ -46,6 +46,7 @@ class GetCockpitPlanResult:
46
46
 
47
47
  @property
48
48
  @pulumi.getter
49
+ @_utilities.deprecated("""The 'plan' attribute is deprecated and no longer has any effect. Future updates will remove this attribute entirely.""")
49
50
  def name(self) -> str:
50
51
  return pulumi.get(self, "name")
51
52
 
@@ -29,7 +29,7 @@ class GetInstanceServerResult:
29
29
  """
30
30
  A collection of values returned by getInstanceServer.
31
31
  """
32
- def __init__(__self__, additional_volume_ids=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_networks=None, project_id=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):
32
+ def __init__(__self__, additional_volume_ids=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_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):
33
33
  if additional_volume_ids and not isinstance(additional_volume_ids, list):
34
34
  raise TypeError("Expected argument 'additional_volume_ids' to be a list")
35
35
  pulumi.set(__self__, "additional_volume_ids", additional_volume_ids)
@@ -90,6 +90,9 @@ class GetInstanceServerResult:
90
90
  if project_id and not isinstance(project_id, str):
91
91
  raise TypeError("Expected argument 'project_id' to be a str")
92
92
  pulumi.set(__self__, "project_id", project_id)
93
+ if protected and not isinstance(protected, bool):
94
+ raise TypeError("Expected argument 'protected' to be a bool")
95
+ pulumi.set(__self__, "protected", protected)
93
96
  if public_ip and not isinstance(public_ip, str):
94
97
  raise TypeError("Expected argument 'public_ip' to be a str")
95
98
  pulumi.set(__self__, "public_ip", public_ip)
@@ -264,6 +267,11 @@ class GetInstanceServerResult:
264
267
  def project_id(self) -> Optional[str]:
265
268
  return pulumi.get(self, "project_id")
266
269
 
270
+ @property
271
+ @pulumi.getter
272
+ def protected(self) -> bool:
273
+ return pulumi.get(self, "protected")
274
+
267
275
  @property
268
276
  @pulumi.getter(name="publicIp")
269
277
  def public_ip(self) -> str:
@@ -368,6 +376,7 @@ class AwaitableGetInstanceServerResult(GetInstanceServerResult):
368
376
  private_ip=self.private_ip,
369
377
  private_networks=self.private_networks,
370
378
  project_id=self.project_id,
379
+ protected=self.protected,
371
380
  public_ip=self.public_ip,
372
381
  public_ips=self.public_ips,
373
382
  replace_on_type_change=self.replace_on_type_change,
@@ -425,6 +434,7 @@ def get_instance_server(name: Optional[str] = None,
425
434
  private_ip=pulumi.get(__ret__, 'private_ip'),
426
435
  private_networks=pulumi.get(__ret__, 'private_networks'),
427
436
  project_id=pulumi.get(__ret__, 'project_id'),
437
+ protected=pulumi.get(__ret__, 'protected'),
428
438
  public_ip=pulumi.get(__ret__, 'public_ip'),
429
439
  public_ips=pulumi.get(__ret__, 'public_ips'),
430
440
  replace_on_type_change=pulumi.get(__ret__, 'replace_on_type_change'),
@@ -479,6 +489,7 @@ def get_instance_server_output(name: Optional[pulumi.Input[Optional[str]]] = Non
479
489
  private_ip=pulumi.get(__response__, 'private_ip'),
480
490
  private_networks=pulumi.get(__response__, 'private_networks'),
481
491
  project_id=pulumi.get(__response__, 'project_id'),
492
+ protected=pulumi.get(__response__, 'protected'),
482
493
  public_ip=pulumi.get(__response__, 'public_ip'),
483
494
  public_ips=pulumi.get(__response__, 'public_ips'),
484
495
  replace_on_type_change=pulumi.get(__response__, 'replace_on_type_change'),
@@ -29,7 +29,7 @@ class GetLbFrontendResult:
29
29
  """
30
30
  A collection of values returned by getLbFrontend.
31
31
  """
32
- def __init__(__self__, acls=None, backend_id=None, certificate_id=None, certificate_ids=None, enable_http3=None, external_acls=None, frontend_id=None, id=None, inbound_port=None, lb_id=None, name=None, timeout_client=None):
32
+ def __init__(__self__, acls=None, backend_id=None, certificate_id=None, certificate_ids=None, connection_rate_limit=None, enable_http3=None, external_acls=None, frontend_id=None, id=None, inbound_port=None, lb_id=None, name=None, timeout_client=None):
33
33
  if acls and not isinstance(acls, list):
34
34
  raise TypeError("Expected argument 'acls' to be a list")
35
35
  pulumi.set(__self__, "acls", acls)
@@ -42,6 +42,9 @@ class GetLbFrontendResult:
42
42
  if certificate_ids and not isinstance(certificate_ids, list):
43
43
  raise TypeError("Expected argument 'certificate_ids' to be a list")
44
44
  pulumi.set(__self__, "certificate_ids", certificate_ids)
45
+ if connection_rate_limit and not isinstance(connection_rate_limit, int):
46
+ raise TypeError("Expected argument 'connection_rate_limit' to be a int")
47
+ pulumi.set(__self__, "connection_rate_limit", connection_rate_limit)
45
48
  if enable_http3 and not isinstance(enable_http3, bool):
46
49
  raise TypeError("Expected argument 'enable_http3' to be a bool")
47
50
  pulumi.set(__self__, "enable_http3", enable_http3)
@@ -87,6 +90,11 @@ class GetLbFrontendResult:
87
90
  def certificate_ids(self) -> Sequence[str]:
88
91
  return pulumi.get(self, "certificate_ids")
89
92
 
93
+ @property
94
+ @pulumi.getter(name="connectionRateLimit")
95
+ def connection_rate_limit(self) -> int:
96
+ return pulumi.get(self, "connection_rate_limit")
97
+
90
98
  @property
91
99
  @pulumi.getter(name="enableHttp3")
92
100
  def enable_http3(self) -> bool:
@@ -141,6 +149,7 @@ class AwaitableGetLbFrontendResult(GetLbFrontendResult):
141
149
  backend_id=self.backend_id,
142
150
  certificate_id=self.certificate_id,
143
151
  certificate_ids=self.certificate_ids,
152
+ connection_rate_limit=self.connection_rate_limit,
144
153
  enable_http3=self.enable_http3,
145
154
  external_acls=self.external_acls,
146
155
  frontend_id=self.frontend_id,
@@ -206,6 +215,7 @@ def get_lb_frontend(frontend_id: Optional[str] = None,
206
215
  backend_id=pulumi.get(__ret__, 'backend_id'),
207
216
  certificate_id=pulumi.get(__ret__, 'certificate_id'),
208
217
  certificate_ids=pulumi.get(__ret__, 'certificate_ids'),
218
+ connection_rate_limit=pulumi.get(__ret__, 'connection_rate_limit'),
209
219
  enable_http3=pulumi.get(__ret__, 'enable_http3'),
210
220
  external_acls=pulumi.get(__ret__, 'external_acls'),
211
221
  frontend_id=pulumi.get(__ret__, 'frontend_id'),
@@ -268,6 +278,7 @@ def get_lb_frontend_output(frontend_id: Optional[pulumi.Input[Optional[str]]] =
268
278
  backend_id=pulumi.get(__response__, 'backend_id'),
269
279
  certificate_id=pulumi.get(__response__, 'certificate_id'),
270
280
  certificate_ids=pulumi.get(__response__, 'certificate_ids'),
281
+ connection_rate_limit=pulumi.get(__response__, 'connection_rate_limit'),
271
282
  enable_http3=pulumi.get(__response__, 'enable_http3'),
272
283
  external_acls=pulumi.get(__response__, 'external_acls'),
273
284
  frontend_id=pulumi.get(__response__, 'frontend_id'),
@@ -28,7 +28,7 @@ class GetLbRouteResult:
28
28
  """
29
29
  A collection of values returned by getLbRoute.
30
30
  """
31
- def __init__(__self__, backend_id=None, created_at=None, frontend_id=None, id=None, match_host_header=None, match_sni=None, route_id=None, updated_at=None):
31
+ def __init__(__self__, backend_id=None, created_at=None, frontend_id=None, id=None, match_host_header=None, match_sni=None, match_subdomains=None, route_id=None, updated_at=None):
32
32
  if backend_id and not isinstance(backend_id, str):
33
33
  raise TypeError("Expected argument 'backend_id' to be a str")
34
34
  pulumi.set(__self__, "backend_id", backend_id)
@@ -47,6 +47,9 @@ class GetLbRouteResult:
47
47
  if match_sni and not isinstance(match_sni, str):
48
48
  raise TypeError("Expected argument 'match_sni' to be a str")
49
49
  pulumi.set(__self__, "match_sni", match_sni)
50
+ if match_subdomains and not isinstance(match_subdomains, bool):
51
+ raise TypeError("Expected argument 'match_subdomains' to be a bool")
52
+ pulumi.set(__self__, "match_subdomains", match_subdomains)
50
53
  if route_id and not isinstance(route_id, str):
51
54
  raise TypeError("Expected argument 'route_id' to be a str")
52
55
  pulumi.set(__self__, "route_id", route_id)
@@ -87,6 +90,11 @@ class GetLbRouteResult:
87
90
  def match_sni(self) -> str:
88
91
  return pulumi.get(self, "match_sni")
89
92
 
93
+ @property
94
+ @pulumi.getter(name="matchSubdomains")
95
+ def match_subdomains(self) -> bool:
96
+ return pulumi.get(self, "match_subdomains")
97
+
90
98
  @property
91
99
  @pulumi.getter(name="routeId")
92
100
  def route_id(self) -> str:
@@ -110,6 +118,7 @@ class AwaitableGetLbRouteResult(GetLbRouteResult):
110
118
  id=self.id,
111
119
  match_host_header=self.match_host_header,
112
120
  match_sni=self.match_sni,
121
+ match_subdomains=self.match_subdomains,
113
122
  route_id=self.route_id,
114
123
  updated_at=self.updated_at)
115
124
 
@@ -165,6 +174,7 @@ def get_lb_route(route_id: Optional[str] = None,
165
174
  id=pulumi.get(__ret__, 'id'),
166
175
  match_host_header=pulumi.get(__ret__, 'match_host_header'),
167
176
  match_sni=pulumi.get(__ret__, 'match_sni'),
177
+ match_subdomains=pulumi.get(__ret__, 'match_subdomains'),
168
178
  route_id=pulumi.get(__ret__, 'route_id'),
169
179
  updated_at=pulumi.get(__ret__, 'updated_at'))
170
180
  def get_lb_route_output(route_id: Optional[pulumi.Input[str]] = None,
@@ -217,5 +227,6 @@ def get_lb_route_output(route_id: Optional[pulumi.Input[str]] = None,
217
227
  id=pulumi.get(__response__, 'id'),
218
228
  match_host_header=pulumi.get(__response__, 'match_host_header'),
219
229
  match_sni=pulumi.get(__response__, 'match_sni'),
230
+ match_subdomains=pulumi.get(__response__, 'match_subdomains'),
220
231
  route_id=pulumi.get(__response__, 'route_id'),
221
232
  updated_at=pulumi.get(__response__, 'updated_at')))
@@ -29,7 +29,7 @@ class GetSecretResult:
29
29
  """
30
30
  A collection of values returned by getSecret.
31
31
  """
32
- def __init__(__self__, created_at=None, description=None, ephemeral_policies=None, id=None, name=None, organization_id=None, path=None, project_id=None, protected=None, region=None, secret_id=None, status=None, tags=None, type=None, updated_at=None, version_count=None):
32
+ def __init__(__self__, created_at=None, description=None, ephemeral_policies=None, id=None, name=None, organization_id=None, path=None, project_id=None, protected=None, region=None, secret_id=None, status=None, tags=None, type=None, updated_at=None, version_count=None, versions=None):
33
33
  if created_at and not isinstance(created_at, str):
34
34
  raise TypeError("Expected argument 'created_at' to be a str")
35
35
  pulumi.set(__self__, "created_at", created_at)
@@ -78,6 +78,9 @@ class GetSecretResult:
78
78
  if version_count and not isinstance(version_count, int):
79
79
  raise TypeError("Expected argument 'version_count' to be a int")
80
80
  pulumi.set(__self__, "version_count", version_count)
81
+ if versions and not isinstance(versions, list):
82
+ raise TypeError("Expected argument 'versions' to be a list")
83
+ pulumi.set(__self__, "versions", versions)
81
84
 
82
85
  @property
83
86
  @pulumi.getter(name="createdAt")
@@ -162,6 +165,11 @@ class GetSecretResult:
162
165
  def version_count(self) -> int:
163
166
  return pulumi.get(self, "version_count")
164
167
 
168
+ @property
169
+ @pulumi.getter
170
+ def versions(self) -> Sequence['outputs.GetSecretVersionResult']:
171
+ return pulumi.get(self, "versions")
172
+
165
173
 
166
174
  class AwaitableGetSecretResult(GetSecretResult):
167
175
  # pylint: disable=using-constant-test
@@ -184,7 +192,8 @@ class AwaitableGetSecretResult(GetSecretResult):
184
192
  tags=self.tags,
185
193
  type=self.type,
186
194
  updated_at=self.updated_at,
187
- version_count=self.version_count)
195
+ version_count=self.version_count,
196
+ versions=self.versions)
188
197
 
189
198
 
190
199
  def get_secret(name: Optional[str] = None,
@@ -263,7 +272,8 @@ def get_secret(name: Optional[str] = None,
263
272
  tags=pulumi.get(__ret__, 'tags'),
264
273
  type=pulumi.get(__ret__, 'type'),
265
274
  updated_at=pulumi.get(__ret__, 'updated_at'),
266
- version_count=pulumi.get(__ret__, 'version_count'))
275
+ version_count=pulumi.get(__ret__, 'version_count'),
276
+ versions=pulumi.get(__ret__, 'versions'))
267
277
  def get_secret_output(name: Optional[pulumi.Input[Optional[str]]] = None,
268
278
  organization_id: Optional[pulumi.Input[Optional[str]]] = None,
269
279
  path: Optional[pulumi.Input[Optional[str]]] = None,
@@ -339,4 +349,5 @@ def get_secret_output(name: Optional[pulumi.Input[Optional[str]]] = None,
339
349
  tags=pulumi.get(__response__, 'tags'),
340
350
  type=pulumi.get(__response__, 'type'),
341
351
  updated_at=pulumi.get(__response__, 'updated_at'),
342
- version_count=pulumi.get(__response__, 'version_count')))
352
+ version_count=pulumi.get(__response__, 'version_count'),
353
+ versions=pulumi.get(__response__, 'versions')))
@@ -28,7 +28,13 @@ class GetVpcPublicGatewayResult:
28
28
  """
29
29
  A collection of values returned by getVpcPublicGateway.
30
30
  """
31
- def __init__(__self__, bastion_enabled=None, bastion_port=None, created_at=None, enable_smtp=None, id=None, ip_id=None, name=None, organization_id=None, project_id=None, public_gateway_id=None, refresh_ssh_keys=None, status=None, tags=None, type=None, updated_at=None, upstream_dns_servers=None, zone=None):
31
+ def __init__(__self__, allowed_ip_ranges=None, bandwidth=None, bastion_enabled=None, bastion_port=None, created_at=None, enable_smtp=None, id=None, ip_id=None, move_to_ipam=None, name=None, organization_id=None, project_id=None, public_gateway_id=None, refresh_ssh_keys=None, status=None, tags=None, type=None, updated_at=None, upstream_dns_servers=None, zone=None):
32
+ if allowed_ip_ranges and not isinstance(allowed_ip_ranges, list):
33
+ raise TypeError("Expected argument 'allowed_ip_ranges' to be a list")
34
+ pulumi.set(__self__, "allowed_ip_ranges", allowed_ip_ranges)
35
+ if bandwidth and not isinstance(bandwidth, int):
36
+ raise TypeError("Expected argument 'bandwidth' to be a int")
37
+ pulumi.set(__self__, "bandwidth", bandwidth)
32
38
  if bastion_enabled and not isinstance(bastion_enabled, bool):
33
39
  raise TypeError("Expected argument 'bastion_enabled' to be a bool")
34
40
  pulumi.set(__self__, "bastion_enabled", bastion_enabled)
@@ -47,6 +53,9 @@ class GetVpcPublicGatewayResult:
47
53
  if ip_id and not isinstance(ip_id, str):
48
54
  raise TypeError("Expected argument 'ip_id' to be a str")
49
55
  pulumi.set(__self__, "ip_id", ip_id)
56
+ if move_to_ipam and not isinstance(move_to_ipam, bool):
57
+ raise TypeError("Expected argument 'move_to_ipam' to be a bool")
58
+ pulumi.set(__self__, "move_to_ipam", move_to_ipam)
50
59
  if name and not isinstance(name, str):
51
60
  raise TypeError("Expected argument 'name' to be a str")
52
61
  pulumi.set(__self__, "name", name)
@@ -81,6 +90,16 @@ class GetVpcPublicGatewayResult:
81
90
  raise TypeError("Expected argument 'zone' to be a str")
82
91
  pulumi.set(__self__, "zone", zone)
83
92
 
93
+ @property
94
+ @pulumi.getter(name="allowedIpRanges")
95
+ def allowed_ip_ranges(self) -> Sequence[str]:
96
+ return pulumi.get(self, "allowed_ip_ranges")
97
+
98
+ @property
99
+ @pulumi.getter
100
+ def bandwidth(self) -> int:
101
+ return pulumi.get(self, "bandwidth")
102
+
84
103
  @property
85
104
  @pulumi.getter(name="bastionEnabled")
86
105
  def bastion_enabled(self) -> bool:
@@ -114,6 +133,11 @@ class GetVpcPublicGatewayResult:
114
133
  def ip_id(self) -> str:
115
134
  return pulumi.get(self, "ip_id")
116
135
 
136
+ @property
137
+ @pulumi.getter(name="moveToIpam")
138
+ def move_to_ipam(self) -> bool:
139
+ return pulumi.get(self, "move_to_ipam")
140
+
117
141
  @property
118
142
  @pulumi.getter
119
143
  def name(self) -> Optional[str]:
@@ -176,12 +200,15 @@ class AwaitableGetVpcPublicGatewayResult(GetVpcPublicGatewayResult):
176
200
  if False:
177
201
  yield self
178
202
  return GetVpcPublicGatewayResult(
203
+ allowed_ip_ranges=self.allowed_ip_ranges,
204
+ bandwidth=self.bandwidth,
179
205
  bastion_enabled=self.bastion_enabled,
180
206
  bastion_port=self.bastion_port,
181
207
  created_at=self.created_at,
182
208
  enable_smtp=self.enable_smtp,
183
209
  id=self.id,
184
210
  ip_id=self.ip_id,
211
+ move_to_ipam=self.move_to_ipam,
185
212
  name=self.name,
186
213
  organization_id=self.organization_id,
187
214
  project_id=self.project_id,
@@ -234,12 +261,15 @@ def get_vpc_public_gateway(name: Optional[str] = None,
234
261
  __ret__ = pulumi.runtime.invoke('scaleway:index/getVpcPublicGateway:getVpcPublicGateway', __args__, opts=opts, typ=GetVpcPublicGatewayResult).value
235
262
 
236
263
  return AwaitableGetVpcPublicGatewayResult(
264
+ allowed_ip_ranges=pulumi.get(__ret__, 'allowed_ip_ranges'),
265
+ bandwidth=pulumi.get(__ret__, 'bandwidth'),
237
266
  bastion_enabled=pulumi.get(__ret__, 'bastion_enabled'),
238
267
  bastion_port=pulumi.get(__ret__, 'bastion_port'),
239
268
  created_at=pulumi.get(__ret__, 'created_at'),
240
269
  enable_smtp=pulumi.get(__ret__, 'enable_smtp'),
241
270
  id=pulumi.get(__ret__, 'id'),
242
271
  ip_id=pulumi.get(__ret__, 'ip_id'),
272
+ move_to_ipam=pulumi.get(__ret__, 'move_to_ipam'),
243
273
  name=pulumi.get(__ret__, 'name'),
244
274
  organization_id=pulumi.get(__ret__, 'organization_id'),
245
275
  project_id=pulumi.get(__ret__, 'project_id'),
@@ -289,12 +319,15 @@ def get_vpc_public_gateway_output(name: Optional[pulumi.Input[Optional[str]]] =
289
319
  opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
290
320
  __ret__ = pulumi.runtime.invoke_output('scaleway:index/getVpcPublicGateway:getVpcPublicGateway', __args__, opts=opts, typ=GetVpcPublicGatewayResult)
291
321
  return __ret__.apply(lambda __response__: GetVpcPublicGatewayResult(
322
+ allowed_ip_ranges=pulumi.get(__response__, 'allowed_ip_ranges'),
323
+ bandwidth=pulumi.get(__response__, 'bandwidth'),
292
324
  bastion_enabled=pulumi.get(__response__, 'bastion_enabled'),
293
325
  bastion_port=pulumi.get(__response__, 'bastion_port'),
294
326
  created_at=pulumi.get(__response__, 'created_at'),
295
327
  enable_smtp=pulumi.get(__response__, 'enable_smtp'),
296
328
  id=pulumi.get(__response__, 'id'),
297
329
  ip_id=pulumi.get(__response__, 'ip_id'),
330
+ move_to_ipam=pulumi.get(__response__, 'move_to_ipam'),
298
331
  name=pulumi.get(__response__, 'name'),
299
332
  organization_id=pulumi.get(__response__, 'organization_id'),
300
333
  project_id=pulumi.get(__response__, 'project_id'),
@@ -225,6 +225,10 @@ class AwaitableGetVpcPublicGatewayDhcpResult(GetVpcPublicGatewayDhcpResult):
225
225
  def get_vpc_public_gateway_dhcp(dhcp_id: Optional[str] = None,
226
226
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetVpcPublicGatewayDhcpResult:
227
227
  """
228
+ > **Important:** The data source `network.PublicGatewayDhcp` has been deprecated and will no longer be supported.
229
+ In 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.
230
+ For more information, please refer to the dedicated guide.
231
+
228
232
  Gets information about a Public Gateway DHCP configuration.
229
233
 
230
234
  ## Example Usage
@@ -268,6 +272,10 @@ def get_vpc_public_gateway_dhcp(dhcp_id: Optional[str] = None,
268
272
  def get_vpc_public_gateway_dhcp_output(dhcp_id: Optional[pulumi.Input[str]] = None,
269
273
  opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetVpcPublicGatewayDhcpResult]:
270
274
  """
275
+ > **Important:** The data source `network.PublicGatewayDhcp` has been deprecated and will no longer be supported.
276
+ In 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.
277
+ For more information, please refer to the dedicated guide.
278
+
271
279
  Gets information about a Public Gateway DHCP configuration.
272
280
 
273
281
  ## Example Usage
@@ -148,6 +148,10 @@ def get_vpc_public_gateway_dhcp_reservation(gateway_network_id: Optional[str] =
148
148
  zone: Optional[str] = None,
149
149
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetVpcPublicGatewayDhcpReservationResult:
150
150
  """
151
+ > **Important:** The data source `network.PublicGatewayDhcpReservation` has been deprecated and will no longer be supported.
152
+ In 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.
153
+ You can use IPAM to manage your IPs. For more information, please refer to the dedicated guide.
154
+
151
155
  Gets information about a DHCP entry. For further information, please see the
152
156
  [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-dhcp-entries-list-dhcp-entries).
153
157
 
@@ -270,6 +274,10 @@ def get_vpc_public_gateway_dhcp_reservation_output(gateway_network_id: Optional[
270
274
  zone: Optional[pulumi.Input[Optional[str]]] = None,
271
275
  opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetVpcPublicGatewayDhcpReservationResult]:
272
276
  """
277
+ > **Important:** The data source `network.PublicGatewayDhcpReservation` has been deprecated and will no longer be supported.
278
+ In 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.
279
+ You can use IPAM to manage your IPs. For more information, please refer to the dedicated guide.
280
+
273
281
  Gets information about a DHCP entry. For further information, please see the
274
282
  [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-dhcp-entries-list-dhcp-entries).
275
283
 
@@ -482,7 +482,7 @@ class Hosting(pulumi.CustomResource):
482
482
  __props__=None):
483
483
  """
484
484
  Creates and manages Scaleway Web Hostings.
485
- For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/webhosting/).
485
+ For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/webhosting/hosting-api/).
486
486
 
487
487
  ## Example Usage
488
488
 
@@ -532,7 +532,7 @@ class Hosting(pulumi.CustomResource):
532
532
  opts: Optional[pulumi.ResourceOptions] = None):
533
533
  """
534
534
  Creates and manages Scaleway Web Hostings.
535
- For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/webhosting/).
535
+ For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/webhosting/hosting-api/).
536
536
 
537
537
  ## Example Usage
538
538