pulumiverse-scaleway 1.26.0a1742897201__py3-none-any.whl → 1.27.0a1743490704__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.27.0a1743490704.dist-info}/METADATA +1 -1
  64. {pulumiverse_scaleway-1.26.0a1742897201.dist-info → pulumiverse_scaleway-1.27.0a1743490704.dist-info}/RECORD +66 -53
  65. {pulumiverse_scaleway-1.26.0a1742897201.dist-info → pulumiverse_scaleway-1.27.0a1743490704.dist-info}/WHEEL +1 -1
  66. {pulumiverse_scaleway-1.26.0a1742897201.dist-info → pulumiverse_scaleway-1.27.0a1743490704.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,444 @@
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__ = ['EdgeServicesWafStageArgs', 'EdgeServicesWafStage']
18
+
19
+ @pulumi.input_type
20
+ class EdgeServicesWafStageArgs:
21
+ def __init__(__self__, *,
22
+ paranoia_level: pulumi.Input[int],
23
+ pipeline_id: pulumi.Input[str],
24
+ backend_stage_id: Optional[pulumi.Input[str]] = None,
25
+ mode: Optional[pulumi.Input[str]] = None,
26
+ project_id: Optional[pulumi.Input[str]] = None):
27
+ """
28
+ The set of arguments for constructing a EdgeServicesWafStage resource.
29
+ :param pulumi.Input[int] paranoia_level: The sensitivity level (`1`,`2`,`3`,`4`) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.
30
+ :param pulumi.Input[str] pipeline_id: The ID of the pipeline.
31
+ :param pulumi.Input[str] backend_stage_id: The ID of the backend stage to forward requests to after the WAF stage.
32
+ :param pulumi.Input[str] mode: The mode defining WAF behavior (`disable`/`log_only`/`enable`).
33
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the WAF stage is associated with.
34
+ """
35
+ pulumi.set(__self__, "paranoia_level", paranoia_level)
36
+ pulumi.set(__self__, "pipeline_id", pipeline_id)
37
+ if backend_stage_id is not None:
38
+ pulumi.set(__self__, "backend_stage_id", backend_stage_id)
39
+ if mode is not None:
40
+ pulumi.set(__self__, "mode", mode)
41
+ if project_id is not None:
42
+ pulumi.set(__self__, "project_id", project_id)
43
+
44
+ @property
45
+ @pulumi.getter(name="paranoiaLevel")
46
+ def paranoia_level(self) -> pulumi.Input[int]:
47
+ """
48
+ The sensitivity level (`1`,`2`,`3`,`4`) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.
49
+ """
50
+ return pulumi.get(self, "paranoia_level")
51
+
52
+ @paranoia_level.setter
53
+ def paranoia_level(self, value: pulumi.Input[int]):
54
+ pulumi.set(self, "paranoia_level", value)
55
+
56
+ @property
57
+ @pulumi.getter(name="pipelineId")
58
+ def pipeline_id(self) -> pulumi.Input[str]:
59
+ """
60
+ The ID of the pipeline.
61
+ """
62
+ return pulumi.get(self, "pipeline_id")
63
+
64
+ @pipeline_id.setter
65
+ def pipeline_id(self, value: pulumi.Input[str]):
66
+ pulumi.set(self, "pipeline_id", value)
67
+
68
+ @property
69
+ @pulumi.getter(name="backendStageId")
70
+ def backend_stage_id(self) -> Optional[pulumi.Input[str]]:
71
+ """
72
+ The ID of the backend stage to forward requests to after the WAF stage.
73
+ """
74
+ return pulumi.get(self, "backend_stage_id")
75
+
76
+ @backend_stage_id.setter
77
+ def backend_stage_id(self, value: Optional[pulumi.Input[str]]):
78
+ pulumi.set(self, "backend_stage_id", value)
79
+
80
+ @property
81
+ @pulumi.getter
82
+ def mode(self) -> Optional[pulumi.Input[str]]:
83
+ """
84
+ The mode defining WAF behavior (`disable`/`log_only`/`enable`).
85
+ """
86
+ return pulumi.get(self, "mode")
87
+
88
+ @mode.setter
89
+ def mode(self, value: Optional[pulumi.Input[str]]):
90
+ pulumi.set(self, "mode", value)
91
+
92
+ @property
93
+ @pulumi.getter(name="projectId")
94
+ def project_id(self) -> Optional[pulumi.Input[str]]:
95
+ """
96
+ `project_id`) The ID of the project the WAF stage is associated with.
97
+ """
98
+ return pulumi.get(self, "project_id")
99
+
100
+ @project_id.setter
101
+ def project_id(self, value: Optional[pulumi.Input[str]]):
102
+ pulumi.set(self, "project_id", value)
103
+
104
+
105
+ @pulumi.input_type
106
+ class _EdgeServicesWafStageState:
107
+ def __init__(__self__, *,
108
+ backend_stage_id: Optional[pulumi.Input[str]] = None,
109
+ created_at: Optional[pulumi.Input[str]] = None,
110
+ mode: Optional[pulumi.Input[str]] = None,
111
+ paranoia_level: Optional[pulumi.Input[int]] = None,
112
+ pipeline_id: Optional[pulumi.Input[str]] = None,
113
+ project_id: Optional[pulumi.Input[str]] = None,
114
+ updated_at: Optional[pulumi.Input[str]] = None):
115
+ """
116
+ Input properties used for looking up and filtering EdgeServicesWafStage resources.
117
+ :param pulumi.Input[str] backend_stage_id: The ID of the backend stage to forward requests to after the WAF stage.
118
+ :param pulumi.Input[str] created_at: The date and time of the creation of the WAF stage.
119
+ :param pulumi.Input[str] mode: The mode defining WAF behavior (`disable`/`log_only`/`enable`).
120
+ :param pulumi.Input[int] paranoia_level: The sensitivity level (`1`,`2`,`3`,`4`) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.
121
+ :param pulumi.Input[str] pipeline_id: The ID of the pipeline.
122
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the WAF stage is associated with.
123
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the WAF stage.
124
+ """
125
+ if backend_stage_id is not None:
126
+ pulumi.set(__self__, "backend_stage_id", backend_stage_id)
127
+ if created_at is not None:
128
+ pulumi.set(__self__, "created_at", created_at)
129
+ if mode is not None:
130
+ pulumi.set(__self__, "mode", mode)
131
+ if paranoia_level is not None:
132
+ pulumi.set(__self__, "paranoia_level", paranoia_level)
133
+ if pipeline_id is not None:
134
+ pulumi.set(__self__, "pipeline_id", pipeline_id)
135
+ if project_id is not None:
136
+ pulumi.set(__self__, "project_id", project_id)
137
+ if updated_at is not None:
138
+ pulumi.set(__self__, "updated_at", updated_at)
139
+
140
+ @property
141
+ @pulumi.getter(name="backendStageId")
142
+ def backend_stage_id(self) -> Optional[pulumi.Input[str]]:
143
+ """
144
+ The ID of the backend stage to forward requests to after the WAF stage.
145
+ """
146
+ return pulumi.get(self, "backend_stage_id")
147
+
148
+ @backend_stage_id.setter
149
+ def backend_stage_id(self, value: Optional[pulumi.Input[str]]):
150
+ pulumi.set(self, "backend_stage_id", value)
151
+
152
+ @property
153
+ @pulumi.getter(name="createdAt")
154
+ def created_at(self) -> Optional[pulumi.Input[str]]:
155
+ """
156
+ The date and time of the creation of the WAF stage.
157
+ """
158
+ return pulumi.get(self, "created_at")
159
+
160
+ @created_at.setter
161
+ def created_at(self, value: Optional[pulumi.Input[str]]):
162
+ pulumi.set(self, "created_at", value)
163
+
164
+ @property
165
+ @pulumi.getter
166
+ def mode(self) -> Optional[pulumi.Input[str]]:
167
+ """
168
+ The mode defining WAF behavior (`disable`/`log_only`/`enable`).
169
+ """
170
+ return pulumi.get(self, "mode")
171
+
172
+ @mode.setter
173
+ def mode(self, value: Optional[pulumi.Input[str]]):
174
+ pulumi.set(self, "mode", value)
175
+
176
+ @property
177
+ @pulumi.getter(name="paranoiaLevel")
178
+ def paranoia_level(self) -> Optional[pulumi.Input[int]]:
179
+ """
180
+ The sensitivity level (`1`,`2`,`3`,`4`) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.
181
+ """
182
+ return pulumi.get(self, "paranoia_level")
183
+
184
+ @paranoia_level.setter
185
+ def paranoia_level(self, value: Optional[pulumi.Input[int]]):
186
+ pulumi.set(self, "paranoia_level", value)
187
+
188
+ @property
189
+ @pulumi.getter(name="pipelineId")
190
+ def pipeline_id(self) -> Optional[pulumi.Input[str]]:
191
+ """
192
+ The ID of the pipeline.
193
+ """
194
+ return pulumi.get(self, "pipeline_id")
195
+
196
+ @pipeline_id.setter
197
+ def pipeline_id(self, value: Optional[pulumi.Input[str]]):
198
+ pulumi.set(self, "pipeline_id", value)
199
+
200
+ @property
201
+ @pulumi.getter(name="projectId")
202
+ def project_id(self) -> Optional[pulumi.Input[str]]:
203
+ """
204
+ `project_id`) The ID of the project the WAF stage is associated with.
205
+ """
206
+ return pulumi.get(self, "project_id")
207
+
208
+ @project_id.setter
209
+ def project_id(self, value: Optional[pulumi.Input[str]]):
210
+ pulumi.set(self, "project_id", value)
211
+
212
+ @property
213
+ @pulumi.getter(name="updatedAt")
214
+ def updated_at(self) -> Optional[pulumi.Input[str]]:
215
+ """
216
+ The date and time of the last update of the WAF stage.
217
+ """
218
+ return pulumi.get(self, "updated_at")
219
+
220
+ @updated_at.setter
221
+ def updated_at(self, value: Optional[pulumi.Input[str]]):
222
+ pulumi.set(self, "updated_at", value)
223
+
224
+
225
+ class EdgeServicesWafStage(pulumi.CustomResource):
226
+ @overload
227
+ def __init__(__self__,
228
+ resource_name: str,
229
+ opts: Optional[pulumi.ResourceOptions] = None,
230
+ backend_stage_id: Optional[pulumi.Input[str]] = None,
231
+ mode: Optional[pulumi.Input[str]] = None,
232
+ paranoia_level: Optional[pulumi.Input[int]] = None,
233
+ pipeline_id: Optional[pulumi.Input[str]] = None,
234
+ project_id: Optional[pulumi.Input[str]] = None,
235
+ __props__=None):
236
+ """
237
+ Creates and manages Scaleway Edge Services WAF Stages.
238
+
239
+ ## Example Usage
240
+
241
+ ### Basic
242
+
243
+ ```python
244
+ import pulumi
245
+ import pulumiverse_scaleway as scaleway
246
+
247
+ main = scaleway.EdgeServicesWafStage("main",
248
+ pipeline_id=main_scaleway_edge_services_pipeline["id"],
249
+ mode="enable",
250
+ paranoia_level=3)
251
+ ```
252
+
253
+ ## Import
254
+
255
+ WAF stages can be imported using the `{id}`, e.g.
256
+
257
+ bash
258
+
259
+ ```sh
260
+ $ pulumi import scaleway:index/edgeServicesWafStage:EdgeServicesWafStage basic 11111111-1111-1111-1111-111111111111
261
+ ```
262
+
263
+ :param str resource_name: The name of the resource.
264
+ :param pulumi.ResourceOptions opts: Options for the resource.
265
+ :param pulumi.Input[str] backend_stage_id: The ID of the backend stage to forward requests to after the WAF stage.
266
+ :param pulumi.Input[str] mode: The mode defining WAF behavior (`disable`/`log_only`/`enable`).
267
+ :param pulumi.Input[int] paranoia_level: The sensitivity level (`1`,`2`,`3`,`4`) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.
268
+ :param pulumi.Input[str] pipeline_id: The ID of the pipeline.
269
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the WAF stage is associated with.
270
+ """
271
+ ...
272
+ @overload
273
+ def __init__(__self__,
274
+ resource_name: str,
275
+ args: EdgeServicesWafStageArgs,
276
+ opts: Optional[pulumi.ResourceOptions] = None):
277
+ """
278
+ Creates and manages Scaleway Edge Services WAF Stages.
279
+
280
+ ## Example Usage
281
+
282
+ ### Basic
283
+
284
+ ```python
285
+ import pulumi
286
+ import pulumiverse_scaleway as scaleway
287
+
288
+ main = scaleway.EdgeServicesWafStage("main",
289
+ pipeline_id=main_scaleway_edge_services_pipeline["id"],
290
+ mode="enable",
291
+ paranoia_level=3)
292
+ ```
293
+
294
+ ## Import
295
+
296
+ WAF stages can be imported using the `{id}`, e.g.
297
+
298
+ bash
299
+
300
+ ```sh
301
+ $ pulumi import scaleway:index/edgeServicesWafStage:EdgeServicesWafStage basic 11111111-1111-1111-1111-111111111111
302
+ ```
303
+
304
+ :param str resource_name: The name of the resource.
305
+ :param EdgeServicesWafStageArgs args: The arguments to use to populate this resource's properties.
306
+ :param pulumi.ResourceOptions opts: Options for the resource.
307
+ """
308
+ ...
309
+ def __init__(__self__, resource_name: str, *args, **kwargs):
310
+ resource_args, opts = _utilities.get_resource_args_opts(EdgeServicesWafStageArgs, pulumi.ResourceOptions, *args, **kwargs)
311
+ if resource_args is not None:
312
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
313
+ else:
314
+ __self__._internal_init(resource_name, *args, **kwargs)
315
+
316
+ def _internal_init(__self__,
317
+ resource_name: str,
318
+ opts: Optional[pulumi.ResourceOptions] = None,
319
+ backend_stage_id: Optional[pulumi.Input[str]] = None,
320
+ mode: Optional[pulumi.Input[str]] = None,
321
+ paranoia_level: Optional[pulumi.Input[int]] = None,
322
+ pipeline_id: Optional[pulumi.Input[str]] = None,
323
+ project_id: Optional[pulumi.Input[str]] = None,
324
+ __props__=None):
325
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
326
+ if not isinstance(opts, pulumi.ResourceOptions):
327
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
328
+ if opts.id is None:
329
+ if __props__ is not None:
330
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
331
+ __props__ = EdgeServicesWafStageArgs.__new__(EdgeServicesWafStageArgs)
332
+
333
+ __props__.__dict__["backend_stage_id"] = backend_stage_id
334
+ __props__.__dict__["mode"] = mode
335
+ if paranoia_level is None and not opts.urn:
336
+ raise TypeError("Missing required property 'paranoia_level'")
337
+ __props__.__dict__["paranoia_level"] = paranoia_level
338
+ if pipeline_id is None and not opts.urn:
339
+ raise TypeError("Missing required property 'pipeline_id'")
340
+ __props__.__dict__["pipeline_id"] = pipeline_id
341
+ __props__.__dict__["project_id"] = project_id
342
+ __props__.__dict__["created_at"] = None
343
+ __props__.__dict__["updated_at"] = None
344
+ super(EdgeServicesWafStage, __self__).__init__(
345
+ 'scaleway:index/edgeServicesWafStage:EdgeServicesWafStage',
346
+ resource_name,
347
+ __props__,
348
+ opts)
349
+
350
+ @staticmethod
351
+ def get(resource_name: str,
352
+ id: pulumi.Input[str],
353
+ opts: Optional[pulumi.ResourceOptions] = None,
354
+ backend_stage_id: Optional[pulumi.Input[str]] = None,
355
+ created_at: Optional[pulumi.Input[str]] = None,
356
+ mode: Optional[pulumi.Input[str]] = None,
357
+ paranoia_level: Optional[pulumi.Input[int]] = None,
358
+ pipeline_id: Optional[pulumi.Input[str]] = None,
359
+ project_id: Optional[pulumi.Input[str]] = None,
360
+ updated_at: Optional[pulumi.Input[str]] = None) -> 'EdgeServicesWafStage':
361
+ """
362
+ Get an existing EdgeServicesWafStage resource's state with the given name, id, and optional extra
363
+ properties used to qualify the lookup.
364
+
365
+ :param str resource_name: The unique name of the resulting resource.
366
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
367
+ :param pulumi.ResourceOptions opts: Options for the resource.
368
+ :param pulumi.Input[str] backend_stage_id: The ID of the backend stage to forward requests to after the WAF stage.
369
+ :param pulumi.Input[str] created_at: The date and time of the creation of the WAF stage.
370
+ :param pulumi.Input[str] mode: The mode defining WAF behavior (`disable`/`log_only`/`enable`).
371
+ :param pulumi.Input[int] paranoia_level: The sensitivity level (`1`,`2`,`3`,`4`) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.
372
+ :param pulumi.Input[str] pipeline_id: The ID of the pipeline.
373
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the WAF stage is associated with.
374
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the WAF stage.
375
+ """
376
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
377
+
378
+ __props__ = _EdgeServicesWafStageState.__new__(_EdgeServicesWafStageState)
379
+
380
+ __props__.__dict__["backend_stage_id"] = backend_stage_id
381
+ __props__.__dict__["created_at"] = created_at
382
+ __props__.__dict__["mode"] = mode
383
+ __props__.__dict__["paranoia_level"] = paranoia_level
384
+ __props__.__dict__["pipeline_id"] = pipeline_id
385
+ __props__.__dict__["project_id"] = project_id
386
+ __props__.__dict__["updated_at"] = updated_at
387
+ return EdgeServicesWafStage(resource_name, opts=opts, __props__=__props__)
388
+
389
+ @property
390
+ @pulumi.getter(name="backendStageId")
391
+ def backend_stage_id(self) -> pulumi.Output[str]:
392
+ """
393
+ The ID of the backend stage to forward requests to after the WAF stage.
394
+ """
395
+ return pulumi.get(self, "backend_stage_id")
396
+
397
+ @property
398
+ @pulumi.getter(name="createdAt")
399
+ def created_at(self) -> pulumi.Output[str]:
400
+ """
401
+ The date and time of the creation of the WAF stage.
402
+ """
403
+ return pulumi.get(self, "created_at")
404
+
405
+ @property
406
+ @pulumi.getter
407
+ def mode(self) -> pulumi.Output[str]:
408
+ """
409
+ The mode defining WAF behavior (`disable`/`log_only`/`enable`).
410
+ """
411
+ return pulumi.get(self, "mode")
412
+
413
+ @property
414
+ @pulumi.getter(name="paranoiaLevel")
415
+ def paranoia_level(self) -> pulumi.Output[int]:
416
+ """
417
+ The sensitivity level (`1`,`2`,`3`,`4`) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.
418
+ """
419
+ return pulumi.get(self, "paranoia_level")
420
+
421
+ @property
422
+ @pulumi.getter(name="pipelineId")
423
+ def pipeline_id(self) -> pulumi.Output[str]:
424
+ """
425
+ The ID of the pipeline.
426
+ """
427
+ return pulumi.get(self, "pipeline_id")
428
+
429
+ @property
430
+ @pulumi.getter(name="projectId")
431
+ def project_id(self) -> pulumi.Output[str]:
432
+ """
433
+ `project_id`) The ID of the project the WAF stage is associated with.
434
+ """
435
+ return pulumi.get(self, "project_id")
436
+
437
+ @property
438
+ @pulumi.getter(name="updatedAt")
439
+ def updated_at(self) -> pulumi.Output[str]:
440
+ """
441
+ The date and time of the last update of the WAF stage.
442
+ """
443
+ return pulumi.get(self, "updated_at")
444
+
@@ -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
 
@@ -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
 
@@ -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'),