pulumiverse-scaleway 1.26.0a1742897201__py3-none-any.whl → 1.26.0a1743166124__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 (66) hide show
  1. pulumiverse_scaleway/__init__.py +105 -0
  2. pulumiverse_scaleway/_inputs.py +663 -0
  3. pulumiverse_scaleway/apple_silicon_server.py +105 -0
  4. pulumiverse_scaleway/applesilicon/server.py +105 -0
  5. pulumiverse_scaleway/domain/__init__.py +1 -0
  6. pulumiverse_scaleway/domain/_inputs.py +2697 -0
  7. pulumiverse_scaleway/domain/outputs.py +2145 -0
  8. pulumiverse_scaleway/domain/registration.py +777 -0
  9. pulumiverse_scaleway/edge_services_backend_stage.py +472 -0
  10. pulumiverse_scaleway/edge_services_cache_stage.py +490 -0
  11. pulumiverse_scaleway/edge_services_dns_stage.py +516 -0
  12. pulumiverse_scaleway/edge_services_head_stage.py +258 -0
  13. pulumiverse_scaleway/edge_services_pipeline.py +436 -0
  14. pulumiverse_scaleway/edge_services_plan.py +239 -0
  15. pulumiverse_scaleway/edge_services_route_stage.py +422 -0
  16. pulumiverse_scaleway/edge_services_tls_stage.py +546 -0
  17. pulumiverse_scaleway/edge_services_waf_stage.py +444 -0
  18. pulumiverse_scaleway/elasticmetal/ip.py +13 -7
  19. pulumiverse_scaleway/flexible_ip.py +13 -7
  20. pulumiverse_scaleway/get_lb_frontend.py +12 -1
  21. pulumiverse_scaleway/get_lb_route.py +12 -1
  22. pulumiverse_scaleway/get_secret.py +15 -4
  23. pulumiverse_scaleway/get_vpc_public_gateway.py +34 -1
  24. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +8 -0
  25. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +8 -0
  26. pulumiverse_scaleway/loadbalancer_backend.py +2 -2
  27. pulumiverse_scaleway/loadbalancer_frontend.py +47 -0
  28. pulumiverse_scaleway/loadbalancer_route.py +48 -1
  29. pulumiverse_scaleway/loadbalancers/backend.py +2 -2
  30. pulumiverse_scaleway/loadbalancers/frontend.py +47 -0
  31. pulumiverse_scaleway/loadbalancers/get_frontend.py +12 -1
  32. pulumiverse_scaleway/loadbalancers/get_route.py +12 -1
  33. pulumiverse_scaleway/loadbalancers/outputs.py +13 -2
  34. pulumiverse_scaleway/loadbalancers/route.py +48 -1
  35. pulumiverse_scaleway/network/__init__.py +1 -0
  36. pulumiverse_scaleway/network/_inputs.py +194 -0
  37. pulumiverse_scaleway/network/acl.py +415 -0
  38. pulumiverse_scaleway/network/gateway_network.py +104 -122
  39. pulumiverse_scaleway/network/get_public_gateway.py +34 -1
  40. pulumiverse_scaleway/network/get_public_gateway_dhcp.py +8 -0
  41. pulumiverse_scaleway/network/get_public_gateway_dhcp_reservation.py +8 -0
  42. pulumiverse_scaleway/network/outputs.py +139 -0
  43. pulumiverse_scaleway/network/public_gateway.py +124 -21
  44. pulumiverse_scaleway/network/public_gateway_dhcp.py +8 -0
  45. pulumiverse_scaleway/network/public_gateway_dhcp_reservation.py +8 -0
  46. pulumiverse_scaleway/outputs.py +662 -2
  47. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  48. pulumiverse_scaleway/secret.py +22 -2
  49. pulumiverse_scaleway/secret_version.py +6 -6
  50. pulumiverse_scaleway/secrets/_inputs.py +154 -0
  51. pulumiverse_scaleway/secrets/get_secret.py +15 -4
  52. pulumiverse_scaleway/secrets/outputs.py +200 -0
  53. pulumiverse_scaleway/secrets/secret.py +22 -2
  54. pulumiverse_scaleway/tem/__init__.py +2 -0
  55. pulumiverse_scaleway/tem/blocked_list.py +442 -0
  56. pulumiverse_scaleway/tem/domain.py +7 -0
  57. pulumiverse_scaleway/tem/get_offer_subscription.py +254 -0
  58. pulumiverse_scaleway/tem_domain.py +7 -0
  59. pulumiverse_scaleway/vpc_gateway_network.py +104 -122
  60. pulumiverse_scaleway/vpc_public_gateway.py +124 -21
  61. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +8 -0
  62. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +8 -0
  63. {pulumiverse_scaleway-1.26.0a1742897201.dist-info → pulumiverse_scaleway-1.26.0a1743166124.dist-info}/METADATA +1 -1
  64. {pulumiverse_scaleway-1.26.0a1742897201.dist-info → pulumiverse_scaleway-1.26.0a1743166124.dist-info}/RECORD +66 -53
  65. {pulumiverse_scaleway-1.26.0a1742897201.dist-info → pulumiverse_scaleway-1.26.0a1743166124.dist-info}/WHEEL +1 -1
  66. {pulumiverse_scaleway-1.26.0a1742897201.dist-info → pulumiverse_scaleway-1.26.0a1743166124.dist-info}/top_level.txt +0 -0
@@ -15,6 +15,7 @@ else:
15
15
  from .. import _utilities
16
16
 
17
17
  __all__ = [
18
+ 'AclRule',
18
19
  'GatewayNetworkIpamConfig',
19
20
  'PrivateNetworkIpv4Subnet',
20
21
  'PrivateNetworkIpv6Subnet',
@@ -25,6 +26,144 @@ __all__ = [
25
26
  'GetVpcsVpcResult',
26
27
  ]
27
28
 
29
+ @pulumi.output_type
30
+ class AclRule(dict):
31
+ @staticmethod
32
+ def __key_warning(key: str):
33
+ suggest = None
34
+ if key == "dstPortHigh":
35
+ suggest = "dst_port_high"
36
+ elif key == "dstPortLow":
37
+ suggest = "dst_port_low"
38
+ elif key == "srcPortHigh":
39
+ suggest = "src_port_high"
40
+ elif key == "srcPortLow":
41
+ suggest = "src_port_low"
42
+
43
+ if suggest:
44
+ pulumi.log.warn(f"Key '{key}' not found in AclRule. Access the value via the '{suggest}' property getter instead.")
45
+
46
+ def __getitem__(self, key: str) -> Any:
47
+ AclRule.__key_warning(key)
48
+ return super().__getitem__(key)
49
+
50
+ def get(self, key: str, default = None) -> Any:
51
+ AclRule.__key_warning(key)
52
+ return super().get(key, default)
53
+
54
+ def __init__(__self__, *,
55
+ action: Optional[str] = None,
56
+ description: Optional[str] = None,
57
+ destination: Optional[str] = None,
58
+ dst_port_high: Optional[int] = None,
59
+ dst_port_low: Optional[int] = None,
60
+ protocol: Optional[str] = None,
61
+ source: Optional[str] = None,
62
+ src_port_high: Optional[int] = None,
63
+ src_port_low: Optional[int] = None):
64
+ """
65
+ :param str action: The policy to apply to the packet.
66
+ :param str description: The rule description.
67
+ :param str destination: The destination IP range to which this rule applies (CIDR notation with subnet mask).
68
+ :param int dst_port_high: The ending port of the destination port range to which this rule applies (inclusive).
69
+ :param int dst_port_low: The starting port of the destination port range to which this rule applies (inclusive).
70
+ :param str protocol: The protocol to which this rule applies. Default value: ANY.
71
+ :param str source: The Source IP range to which this rule applies (CIDR notation with subnet mask).
72
+ :param int src_port_high: The ending port of the source port range to which this rule applies (inclusive).
73
+ :param int src_port_low: The starting port of the source port range to which this rule applies (inclusive).
74
+ """
75
+ if action is not None:
76
+ pulumi.set(__self__, "action", action)
77
+ if description is not None:
78
+ pulumi.set(__self__, "description", description)
79
+ if destination is not None:
80
+ pulumi.set(__self__, "destination", destination)
81
+ if dst_port_high is not None:
82
+ pulumi.set(__self__, "dst_port_high", dst_port_high)
83
+ if dst_port_low is not None:
84
+ pulumi.set(__self__, "dst_port_low", dst_port_low)
85
+ if protocol is not None:
86
+ pulumi.set(__self__, "protocol", protocol)
87
+ if source is not None:
88
+ pulumi.set(__self__, "source", source)
89
+ if src_port_high is not None:
90
+ pulumi.set(__self__, "src_port_high", src_port_high)
91
+ if src_port_low is not None:
92
+ pulumi.set(__self__, "src_port_low", src_port_low)
93
+
94
+ @property
95
+ @pulumi.getter
96
+ def action(self) -> Optional[str]:
97
+ """
98
+ The policy to apply to the packet.
99
+ """
100
+ return pulumi.get(self, "action")
101
+
102
+ @property
103
+ @pulumi.getter
104
+ def description(self) -> Optional[str]:
105
+ """
106
+ The rule description.
107
+ """
108
+ return pulumi.get(self, "description")
109
+
110
+ @property
111
+ @pulumi.getter
112
+ def destination(self) -> Optional[str]:
113
+ """
114
+ The destination IP range to which this rule applies (CIDR notation with subnet mask).
115
+ """
116
+ return pulumi.get(self, "destination")
117
+
118
+ @property
119
+ @pulumi.getter(name="dstPortHigh")
120
+ def dst_port_high(self) -> Optional[int]:
121
+ """
122
+ The ending port of the destination port range to which this rule applies (inclusive).
123
+ """
124
+ return pulumi.get(self, "dst_port_high")
125
+
126
+ @property
127
+ @pulumi.getter(name="dstPortLow")
128
+ def dst_port_low(self) -> Optional[int]:
129
+ """
130
+ The starting port of the destination port range to which this rule applies (inclusive).
131
+ """
132
+ return pulumi.get(self, "dst_port_low")
133
+
134
+ @property
135
+ @pulumi.getter
136
+ def protocol(self) -> Optional[str]:
137
+ """
138
+ The protocol to which this rule applies. Default value: ANY.
139
+ """
140
+ return pulumi.get(self, "protocol")
141
+
142
+ @property
143
+ @pulumi.getter
144
+ def source(self) -> Optional[str]:
145
+ """
146
+ The Source IP range to which this rule applies (CIDR notation with subnet mask).
147
+ """
148
+ return pulumi.get(self, "source")
149
+
150
+ @property
151
+ @pulumi.getter(name="srcPortHigh")
152
+ def src_port_high(self) -> Optional[int]:
153
+ """
154
+ The ending port of the source port range to which this rule applies (inclusive).
155
+ """
156
+ return pulumi.get(self, "src_port_high")
157
+
158
+ @property
159
+ @pulumi.getter(name="srcPortLow")
160
+ def src_port_low(self) -> Optional[int]:
161
+ """
162
+ The starting port of the source port range to which this rule applies (inclusive).
163
+ """
164
+ return pulumi.get(self, "src_port_low")
165
+
166
+
28
167
  @pulumi.output_type
29
168
  class GatewayNetworkIpamConfig(dict):
30
169
  @staticmethod
@@ -20,31 +20,35 @@ __all__ = ['PublicGatewayArgs', 'PublicGateway']
20
20
  class PublicGatewayArgs:
21
21
  def __init__(__self__, *,
22
22
  type: pulumi.Input[str],
23
+ allowed_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
23
24
  bastion_enabled: Optional[pulumi.Input[bool]] = None,
24
25
  bastion_port: Optional[pulumi.Input[int]] = None,
25
26
  enable_smtp: Optional[pulumi.Input[bool]] = None,
26
27
  ip_id: Optional[pulumi.Input[str]] = None,
28
+ move_to_ipam: Optional[pulumi.Input[bool]] = None,
27
29
  name: Optional[pulumi.Input[str]] = None,
28
30
  project_id: Optional[pulumi.Input[str]] = None,
29
31
  refresh_ssh_keys: Optional[pulumi.Input[str]] = None,
30
32
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
31
- upstream_dns_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
32
33
  zone: Optional[pulumi.Input[str]] = None):
33
34
  """
34
35
  The set of arguments for constructing a PublicGateway resource.
35
36
  :param pulumi.Input[str] type: The gateway type.
37
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_ip_ranges: Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.
36
38
  :param pulumi.Input[bool] bastion_enabled: Enable SSH bastion on the gateway.
37
39
  :param pulumi.Input[int] bastion_port: The port on which the SSH bastion will listen.
38
40
  :param pulumi.Input[bool] enable_smtp: Enable SMTP on the gateway.
39
41
  :param pulumi.Input[str] ip_id: Attach an existing flexible IP to the gateway.
42
+ :param pulumi.Input[bool] move_to_ipam: Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2
40
43
  :param pulumi.Input[str] name: The name for the Public Gateway. If not provided it will be randomly generated.
41
44
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the public gateway is associated with.
42
45
  :param pulumi.Input[str] refresh_ssh_keys: Trigger a refresh of the SSH keys on the Public Gateway by changing this field's value.
43
46
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags to associate with the Public Gateway.
44
- :param pulumi.Input[Sequence[pulumi.Input[str]]] upstream_dns_servers: Override the gateway's default recursive DNS servers, if DNS features are enabled.
45
47
  :param pulumi.Input[str] zone: `zone`) The zone in which the Public Gateway should be created.
46
48
  """
47
49
  pulumi.set(__self__, "type", type)
50
+ if allowed_ip_ranges is not None:
51
+ pulumi.set(__self__, "allowed_ip_ranges", allowed_ip_ranges)
48
52
  if bastion_enabled is not None:
49
53
  pulumi.set(__self__, "bastion_enabled", bastion_enabled)
50
54
  if bastion_port is not None:
@@ -53,6 +57,8 @@ class PublicGatewayArgs:
53
57
  pulumi.set(__self__, "enable_smtp", enable_smtp)
54
58
  if ip_id is not None:
55
59
  pulumi.set(__self__, "ip_id", ip_id)
60
+ if move_to_ipam is not None:
61
+ pulumi.set(__self__, "move_to_ipam", move_to_ipam)
56
62
  if name is not None:
57
63
  pulumi.set(__self__, "name", name)
58
64
  if project_id is not None:
@@ -61,8 +67,6 @@ class PublicGatewayArgs:
61
67
  pulumi.set(__self__, "refresh_ssh_keys", refresh_ssh_keys)
62
68
  if tags is not None:
63
69
  pulumi.set(__self__, "tags", tags)
64
- if upstream_dns_servers is not None:
65
- pulumi.set(__self__, "upstream_dns_servers", upstream_dns_servers)
66
70
  if zone is not None:
67
71
  pulumi.set(__self__, "zone", zone)
68
72
 
@@ -78,6 +82,18 @@ class PublicGatewayArgs:
78
82
  def type(self, value: pulumi.Input[str]):
79
83
  pulumi.set(self, "type", value)
80
84
 
85
+ @property
86
+ @pulumi.getter(name="allowedIpRanges")
87
+ def allowed_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
88
+ """
89
+ Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.
90
+ """
91
+ return pulumi.get(self, "allowed_ip_ranges")
92
+
93
+ @allowed_ip_ranges.setter
94
+ def allowed_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
95
+ pulumi.set(self, "allowed_ip_ranges", value)
96
+
81
97
  @property
82
98
  @pulumi.getter(name="bastionEnabled")
83
99
  def bastion_enabled(self) -> Optional[pulumi.Input[bool]]:
@@ -126,6 +142,18 @@ class PublicGatewayArgs:
126
142
  def ip_id(self, value: Optional[pulumi.Input[str]]):
127
143
  pulumi.set(self, "ip_id", value)
128
144
 
145
+ @property
146
+ @pulumi.getter(name="moveToIpam")
147
+ def move_to_ipam(self) -> Optional[pulumi.Input[bool]]:
148
+ """
149
+ Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2
150
+ """
151
+ return pulumi.get(self, "move_to_ipam")
152
+
153
+ @move_to_ipam.setter
154
+ def move_to_ipam(self, value: Optional[pulumi.Input[bool]]):
155
+ pulumi.set(self, "move_to_ipam", value)
156
+
129
157
  @property
130
158
  @pulumi.getter
131
159
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -174,18 +202,6 @@ class PublicGatewayArgs:
174
202
  def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
175
203
  pulumi.set(self, "tags", value)
176
204
 
177
- @property
178
- @pulumi.getter(name="upstreamDnsServers")
179
- def upstream_dns_servers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
180
- """
181
- Override the gateway's default recursive DNS servers, if DNS features are enabled.
182
- """
183
- return pulumi.get(self, "upstream_dns_servers")
184
-
185
- @upstream_dns_servers.setter
186
- def upstream_dns_servers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
187
- pulumi.set(self, "upstream_dns_servers", value)
188
-
189
205
  @property
190
206
  @pulumi.getter
191
207
  def zone(self) -> Optional[pulumi.Input[str]]:
@@ -202,11 +218,14 @@ class PublicGatewayArgs:
202
218
  @pulumi.input_type
203
219
  class _PublicGatewayState:
204
220
  def __init__(__self__, *,
221
+ allowed_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
222
+ bandwidth: Optional[pulumi.Input[int]] = None,
205
223
  bastion_enabled: Optional[pulumi.Input[bool]] = None,
206
224
  bastion_port: Optional[pulumi.Input[int]] = None,
207
225
  created_at: Optional[pulumi.Input[str]] = None,
208
226
  enable_smtp: Optional[pulumi.Input[bool]] = None,
209
227
  ip_id: Optional[pulumi.Input[str]] = None,
228
+ move_to_ipam: Optional[pulumi.Input[bool]] = None,
210
229
  name: Optional[pulumi.Input[str]] = None,
211
230
  organization_id: Optional[pulumi.Input[str]] = None,
212
231
  project_id: Optional[pulumi.Input[str]] = None,
@@ -219,11 +238,14 @@ class _PublicGatewayState:
219
238
  zone: Optional[pulumi.Input[str]] = None):
220
239
  """
221
240
  Input properties used for looking up and filtering PublicGateway resources.
241
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_ip_ranges: Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.
242
+ :param pulumi.Input[int] bandwidth: The bandwidth available of the gateway
222
243
  :param pulumi.Input[bool] bastion_enabled: Enable SSH bastion on the gateway.
223
244
  :param pulumi.Input[int] bastion_port: The port on which the SSH bastion will listen.
224
245
  :param pulumi.Input[str] created_at: The date and time of the creation of the Public Gateway.
225
246
  :param pulumi.Input[bool] enable_smtp: Enable SMTP on the gateway.
226
247
  :param pulumi.Input[str] ip_id: Attach an existing flexible IP to the gateway.
248
+ :param pulumi.Input[bool] move_to_ipam: Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2
227
249
  :param pulumi.Input[str] name: The name for the Public Gateway. If not provided it will be randomly generated.
228
250
  :param pulumi.Input[str] organization_id: The Organization ID the Public Gateway is associated with.
229
251
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the public gateway is associated with.
@@ -235,6 +257,10 @@ class _PublicGatewayState:
235
257
  :param pulumi.Input[Sequence[pulumi.Input[str]]] upstream_dns_servers: Override the gateway's default recursive DNS servers, if DNS features are enabled.
236
258
  :param pulumi.Input[str] zone: `zone`) The zone in which the Public Gateway should be created.
237
259
  """
260
+ if allowed_ip_ranges is not None:
261
+ pulumi.set(__self__, "allowed_ip_ranges", allowed_ip_ranges)
262
+ if bandwidth is not None:
263
+ pulumi.set(__self__, "bandwidth", bandwidth)
238
264
  if bastion_enabled is not None:
239
265
  pulumi.set(__self__, "bastion_enabled", bastion_enabled)
240
266
  if bastion_port is not None:
@@ -245,6 +271,8 @@ class _PublicGatewayState:
245
271
  pulumi.set(__self__, "enable_smtp", enable_smtp)
246
272
  if ip_id is not None:
247
273
  pulumi.set(__self__, "ip_id", ip_id)
274
+ if move_to_ipam is not None:
275
+ pulumi.set(__self__, "move_to_ipam", move_to_ipam)
248
276
  if name is not None:
249
277
  pulumi.set(__self__, "name", name)
250
278
  if organization_id is not None:
@@ -266,6 +294,30 @@ class _PublicGatewayState:
266
294
  if zone is not None:
267
295
  pulumi.set(__self__, "zone", zone)
268
296
 
297
+ @property
298
+ @pulumi.getter(name="allowedIpRanges")
299
+ def allowed_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
300
+ """
301
+ Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.
302
+ """
303
+ return pulumi.get(self, "allowed_ip_ranges")
304
+
305
+ @allowed_ip_ranges.setter
306
+ def allowed_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
307
+ pulumi.set(self, "allowed_ip_ranges", value)
308
+
309
+ @property
310
+ @pulumi.getter
311
+ def bandwidth(self) -> Optional[pulumi.Input[int]]:
312
+ """
313
+ The bandwidth available of the gateway
314
+ """
315
+ return pulumi.get(self, "bandwidth")
316
+
317
+ @bandwidth.setter
318
+ def bandwidth(self, value: Optional[pulumi.Input[int]]):
319
+ pulumi.set(self, "bandwidth", value)
320
+
269
321
  @property
270
322
  @pulumi.getter(name="bastionEnabled")
271
323
  def bastion_enabled(self) -> Optional[pulumi.Input[bool]]:
@@ -326,6 +378,18 @@ class _PublicGatewayState:
326
378
  def ip_id(self, value: Optional[pulumi.Input[str]]):
327
379
  pulumi.set(self, "ip_id", value)
328
380
 
381
+ @property
382
+ @pulumi.getter(name="moveToIpam")
383
+ def move_to_ipam(self) -> Optional[pulumi.Input[bool]]:
384
+ """
385
+ Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2
386
+ """
387
+ return pulumi.get(self, "move_to_ipam")
388
+
389
+ @move_to_ipam.setter
390
+ def move_to_ipam(self, value: Optional[pulumi.Input[bool]]):
391
+ pulumi.set(self, "move_to_ipam", value)
392
+
329
393
  @property
330
394
  @pulumi.getter
331
395
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -452,16 +516,17 @@ class PublicGateway(pulumi.CustomResource):
452
516
  def __init__(__self__,
453
517
  resource_name: str,
454
518
  opts: Optional[pulumi.ResourceOptions] = None,
519
+ allowed_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
455
520
  bastion_enabled: Optional[pulumi.Input[bool]] = None,
456
521
  bastion_port: Optional[pulumi.Input[int]] = None,
457
522
  enable_smtp: Optional[pulumi.Input[bool]] = None,
458
523
  ip_id: Optional[pulumi.Input[str]] = None,
524
+ move_to_ipam: Optional[pulumi.Input[bool]] = None,
459
525
  name: Optional[pulumi.Input[str]] = None,
460
526
  project_id: Optional[pulumi.Input[str]] = None,
461
527
  refresh_ssh_keys: Optional[pulumi.Input[str]] = None,
462
528
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
463
529
  type: Optional[pulumi.Input[str]] = None,
464
- upstream_dns_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
465
530
  zone: Optional[pulumi.Input[str]] = None,
466
531
  __props__=None):
467
532
  """
@@ -497,16 +562,17 @@ class PublicGateway(pulumi.CustomResource):
497
562
 
498
563
  :param str resource_name: The name of the resource.
499
564
  :param pulumi.ResourceOptions opts: Options for the resource.
565
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_ip_ranges: Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.
500
566
  :param pulumi.Input[bool] bastion_enabled: Enable SSH bastion on the gateway.
501
567
  :param pulumi.Input[int] bastion_port: The port on which the SSH bastion will listen.
502
568
  :param pulumi.Input[bool] enable_smtp: Enable SMTP on the gateway.
503
569
  :param pulumi.Input[str] ip_id: Attach an existing flexible IP to the gateway.
570
+ :param pulumi.Input[bool] move_to_ipam: Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2
504
571
  :param pulumi.Input[str] name: The name for the Public Gateway. If not provided it will be randomly generated.
505
572
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the public gateway is associated with.
506
573
  :param pulumi.Input[str] refresh_ssh_keys: Trigger a refresh of the SSH keys on the Public Gateway by changing this field's value.
507
574
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags to associate with the Public Gateway.
508
575
  :param pulumi.Input[str] type: The gateway type.
509
- :param pulumi.Input[Sequence[pulumi.Input[str]]] upstream_dns_servers: Override the gateway's default recursive DNS servers, if DNS features are enabled.
510
576
  :param pulumi.Input[str] zone: `zone`) The zone in which the Public Gateway should be created.
511
577
  """
512
578
  ...
@@ -561,16 +627,17 @@ class PublicGateway(pulumi.CustomResource):
561
627
  def _internal_init(__self__,
562
628
  resource_name: str,
563
629
  opts: Optional[pulumi.ResourceOptions] = None,
630
+ allowed_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
564
631
  bastion_enabled: Optional[pulumi.Input[bool]] = None,
565
632
  bastion_port: Optional[pulumi.Input[int]] = None,
566
633
  enable_smtp: Optional[pulumi.Input[bool]] = None,
567
634
  ip_id: Optional[pulumi.Input[str]] = None,
635
+ move_to_ipam: Optional[pulumi.Input[bool]] = None,
568
636
  name: Optional[pulumi.Input[str]] = None,
569
637
  project_id: Optional[pulumi.Input[str]] = None,
570
638
  refresh_ssh_keys: Optional[pulumi.Input[str]] = None,
571
639
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
572
640
  type: Optional[pulumi.Input[str]] = None,
573
- upstream_dns_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
574
641
  zone: Optional[pulumi.Input[str]] = None,
575
642
  __props__=None):
576
643
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -581,10 +648,12 @@ class PublicGateway(pulumi.CustomResource):
581
648
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
582
649
  __props__ = PublicGatewayArgs.__new__(PublicGatewayArgs)
583
650
 
651
+ __props__.__dict__["allowed_ip_ranges"] = allowed_ip_ranges
584
652
  __props__.__dict__["bastion_enabled"] = bastion_enabled
585
653
  __props__.__dict__["bastion_port"] = bastion_port
586
654
  __props__.__dict__["enable_smtp"] = enable_smtp
587
655
  __props__.__dict__["ip_id"] = ip_id
656
+ __props__.__dict__["move_to_ipam"] = move_to_ipam
588
657
  __props__.__dict__["name"] = name
589
658
  __props__.__dict__["project_id"] = project_id
590
659
  __props__.__dict__["refresh_ssh_keys"] = refresh_ssh_keys
@@ -592,12 +661,13 @@ class PublicGateway(pulumi.CustomResource):
592
661
  if type is None and not opts.urn:
593
662
  raise TypeError("Missing required property 'type'")
594
663
  __props__.__dict__["type"] = type
595
- __props__.__dict__["upstream_dns_servers"] = upstream_dns_servers
596
664
  __props__.__dict__["zone"] = zone
665
+ __props__.__dict__["bandwidth"] = None
597
666
  __props__.__dict__["created_at"] = None
598
667
  __props__.__dict__["organization_id"] = None
599
668
  __props__.__dict__["status"] = None
600
669
  __props__.__dict__["updated_at"] = None
670
+ __props__.__dict__["upstream_dns_servers"] = None
601
671
  alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/vpcPublicGateway:VpcPublicGateway")])
602
672
  opts = pulumi.ResourceOptions.merge(opts, alias_opts)
603
673
  super(PublicGateway, __self__).__init__(
@@ -610,11 +680,14 @@ class PublicGateway(pulumi.CustomResource):
610
680
  def get(resource_name: str,
611
681
  id: pulumi.Input[str],
612
682
  opts: Optional[pulumi.ResourceOptions] = None,
683
+ allowed_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
684
+ bandwidth: Optional[pulumi.Input[int]] = None,
613
685
  bastion_enabled: Optional[pulumi.Input[bool]] = None,
614
686
  bastion_port: Optional[pulumi.Input[int]] = None,
615
687
  created_at: Optional[pulumi.Input[str]] = None,
616
688
  enable_smtp: Optional[pulumi.Input[bool]] = None,
617
689
  ip_id: Optional[pulumi.Input[str]] = None,
690
+ move_to_ipam: Optional[pulumi.Input[bool]] = None,
618
691
  name: Optional[pulumi.Input[str]] = None,
619
692
  organization_id: Optional[pulumi.Input[str]] = None,
620
693
  project_id: Optional[pulumi.Input[str]] = None,
@@ -632,11 +705,14 @@ class PublicGateway(pulumi.CustomResource):
632
705
  :param str resource_name: The unique name of the resulting resource.
633
706
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
634
707
  :param pulumi.ResourceOptions opts: Options for the resource.
708
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_ip_ranges: Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.
709
+ :param pulumi.Input[int] bandwidth: The bandwidth available of the gateway
635
710
  :param pulumi.Input[bool] bastion_enabled: Enable SSH bastion on the gateway.
636
711
  :param pulumi.Input[int] bastion_port: The port on which the SSH bastion will listen.
637
712
  :param pulumi.Input[str] created_at: The date and time of the creation of the Public Gateway.
638
713
  :param pulumi.Input[bool] enable_smtp: Enable SMTP on the gateway.
639
714
  :param pulumi.Input[str] ip_id: Attach an existing flexible IP to the gateway.
715
+ :param pulumi.Input[bool] move_to_ipam: Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2
640
716
  :param pulumi.Input[str] name: The name for the Public Gateway. If not provided it will be randomly generated.
641
717
  :param pulumi.Input[str] organization_id: The Organization ID the Public Gateway is associated with.
642
718
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the public gateway is associated with.
@@ -652,11 +728,14 @@ class PublicGateway(pulumi.CustomResource):
652
728
 
653
729
  __props__ = _PublicGatewayState.__new__(_PublicGatewayState)
654
730
 
731
+ __props__.__dict__["allowed_ip_ranges"] = allowed_ip_ranges
732
+ __props__.__dict__["bandwidth"] = bandwidth
655
733
  __props__.__dict__["bastion_enabled"] = bastion_enabled
656
734
  __props__.__dict__["bastion_port"] = bastion_port
657
735
  __props__.__dict__["created_at"] = created_at
658
736
  __props__.__dict__["enable_smtp"] = enable_smtp
659
737
  __props__.__dict__["ip_id"] = ip_id
738
+ __props__.__dict__["move_to_ipam"] = move_to_ipam
660
739
  __props__.__dict__["name"] = name
661
740
  __props__.__dict__["organization_id"] = organization_id
662
741
  __props__.__dict__["project_id"] = project_id
@@ -669,6 +748,22 @@ class PublicGateway(pulumi.CustomResource):
669
748
  __props__.__dict__["zone"] = zone
670
749
  return PublicGateway(resource_name, opts=opts, __props__=__props__)
671
750
 
751
+ @property
752
+ @pulumi.getter(name="allowedIpRanges")
753
+ def allowed_ip_ranges(self) -> pulumi.Output[Sequence[str]]:
754
+ """
755
+ Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.
756
+ """
757
+ return pulumi.get(self, "allowed_ip_ranges")
758
+
759
+ @property
760
+ @pulumi.getter
761
+ def bandwidth(self) -> pulumi.Output[int]:
762
+ """
763
+ The bandwidth available of the gateway
764
+ """
765
+ return pulumi.get(self, "bandwidth")
766
+
672
767
  @property
673
768
  @pulumi.getter(name="bastionEnabled")
674
769
  def bastion_enabled(self) -> pulumi.Output[Optional[bool]]:
@@ -709,6 +804,14 @@ class PublicGateway(pulumi.CustomResource):
709
804
  """
710
805
  return pulumi.get(self, "ip_id")
711
806
 
807
+ @property
808
+ @pulumi.getter(name="moveToIpam")
809
+ def move_to_ipam(self) -> pulumi.Output[Optional[bool]]:
810
+ """
811
+ Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2
812
+ """
813
+ return pulumi.get(self, "move_to_ipam")
814
+
712
815
  @property
713
816
  @pulumi.getter
714
817
  def name(self) -> pulumi.Output[str]:
@@ -775,7 +878,7 @@ class PublicGateway(pulumi.CustomResource):
775
878
 
776
879
  @property
777
880
  @pulumi.getter(name="upstreamDnsServers")
778
- def upstream_dns_servers(self) -> pulumi.Output[Optional[Sequence[str]]]:
881
+ def upstream_dns_servers(self) -> pulumi.Output[Sequence[str]]:
779
882
  """
780
883
  Override the gateway's default recursive DNS servers, if DNS features are enabled.
781
884
  """
@@ -589,6 +589,10 @@ class PublicGatewayDhcp(pulumi.CustomResource):
589
589
  zone: Optional[pulumi.Input[str]] = None,
590
590
  __props__=None):
591
591
  """
592
+ > **Important:** The resource `network.PublicGatewayDhcp` has been deprecated and will no longer be supported.
593
+ In 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.
594
+ For more information, please refer to the dedicated guide.
595
+
592
596
  Creates and manages Scaleway VPC Public Gateway DHCP configurations.
593
597
  For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#dhcp-c05544).
594
598
 
@@ -638,6 +642,10 @@ class PublicGatewayDhcp(pulumi.CustomResource):
638
642
  args: PublicGatewayDhcpArgs,
639
643
  opts: Optional[pulumi.ResourceOptions] = None):
640
644
  """
645
+ > **Important:** The resource `network.PublicGatewayDhcp` has been deprecated and will no longer be supported.
646
+ In 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.
647
+ For more information, please refer to the dedicated guide.
648
+
641
649
  Creates and manages Scaleway VPC Public Gateway DHCP configurations.
642
650
  For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#dhcp-c05544).
643
651
 
@@ -232,6 +232,10 @@ class PublicGatewayDhcpReservation(pulumi.CustomResource):
232
232
  zone: Optional[pulumi.Input[str]] = None,
233
233
  __props__=None):
234
234
  """
235
+ > **Important:** The resource `network.PublicGatewayDhcpReservation` has been deprecated and will no longer be supported.
236
+ In 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.
237
+ You can use IPAM to manage your IPs. For more information, please refer to the dedicated guide.
238
+
235
239
  Creates and manages [Scaleway DHCP Reservations](https://www.scaleway.com/en/docs/vpc/concepts/#dhcp).
236
240
 
237
241
  These static associations are used to assign IP addresses based on the MAC addresses of the resource.
@@ -302,6 +306,10 @@ class PublicGatewayDhcpReservation(pulumi.CustomResource):
302
306
  args: PublicGatewayDhcpReservationArgs,
303
307
  opts: Optional[pulumi.ResourceOptions] = None):
304
308
  """
309
+ > **Important:** The resource `network.PublicGatewayDhcpReservation` has been deprecated and will no longer be supported.
310
+ In 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.
311
+ You can use IPAM to manage your IPs. For more information, please refer to the dedicated guide.
312
+
305
313
  Creates and manages [Scaleway DHCP Reservations](https://www.scaleway.com/en/docs/vpc/concepts/#dhcp).
306
314
 
307
315
  These static associations are used to assign IP addresses based on the MAC addresses of the resource.