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