pulumiverse-scaleway 1.23.0a1736837529__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.

Potentially problematic release.


This version of pulumiverse-scaleway might be problematic. Click here for more details.

Files changed (205) hide show
  1. pulumiverse_scaleway/__init__.py +1065 -0
  2. pulumiverse_scaleway/_inputs.py +8688 -0
  3. pulumiverse_scaleway/_utilities.py +327 -0
  4. pulumiverse_scaleway/account_project.py +316 -0
  5. pulumiverse_scaleway/account_ssh_key.py +454 -0
  6. pulumiverse_scaleway/apple_silicon_server.py +564 -0
  7. pulumiverse_scaleway/baremetal_server.py +1579 -0
  8. pulumiverse_scaleway/block_snapshot.py +401 -0
  9. pulumiverse_scaleway/block_volume.py +527 -0
  10. pulumiverse_scaleway/cockpit.py +314 -0
  11. pulumiverse_scaleway/cockpit_alert_manager.py +401 -0
  12. pulumiverse_scaleway/cockpit_grafana_user.py +362 -0
  13. pulumiverse_scaleway/cockpit_source.py +567 -0
  14. pulumiverse_scaleway/cockpit_token.py +479 -0
  15. pulumiverse_scaleway/config/__init__.py +8 -0
  16. pulumiverse_scaleway/config/__init__.pyi +56 -0
  17. pulumiverse_scaleway/config/vars.py +78 -0
  18. pulumiverse_scaleway/container.py +1373 -0
  19. pulumiverse_scaleway/container_cron.py +458 -0
  20. pulumiverse_scaleway/container_domain.py +406 -0
  21. pulumiverse_scaleway/container_namespace.py +636 -0
  22. pulumiverse_scaleway/container_token.py +452 -0
  23. pulumiverse_scaleway/container_trigger.py +480 -0
  24. pulumiverse_scaleway/database.py +407 -0
  25. pulumiverse_scaleway/database_acl.py +332 -0
  26. pulumiverse_scaleway/database_backup.py +574 -0
  27. pulumiverse_scaleway/database_instance.py +1641 -0
  28. pulumiverse_scaleway/database_privilege.py +422 -0
  29. pulumiverse_scaleway/database_read_replica.py +528 -0
  30. pulumiverse_scaleway/database_user.py +446 -0
  31. pulumiverse_scaleway/domain_record.py +1116 -0
  32. pulumiverse_scaleway/domain_zone.py +430 -0
  33. pulumiverse_scaleway/flexible_ip.py +702 -0
  34. pulumiverse_scaleway/flexible_ip_mac_address.py +510 -0
  35. pulumiverse_scaleway/function.py +1103 -0
  36. pulumiverse_scaleway/function_cron.py +462 -0
  37. pulumiverse_scaleway/function_domain.py +370 -0
  38. pulumiverse_scaleway/function_namespace.py +580 -0
  39. pulumiverse_scaleway/function_token.py +460 -0
  40. pulumiverse_scaleway/function_trigger.py +480 -0
  41. pulumiverse_scaleway/get_account_project.py +170 -0
  42. pulumiverse_scaleway/get_account_ssh_key.py +205 -0
  43. pulumiverse_scaleway/get_availability_zones.py +139 -0
  44. pulumiverse_scaleway/get_baremetal_offer.py +245 -0
  45. pulumiverse_scaleway/get_baremetal_option.py +168 -0
  46. pulumiverse_scaleway/get_baremetal_os.py +174 -0
  47. pulumiverse_scaleway/get_baremetal_server.py +422 -0
  48. pulumiverse_scaleway/get_billing_consumptions.py +134 -0
  49. pulumiverse_scaleway/get_billing_invoices.py +154 -0
  50. pulumiverse_scaleway/get_block_snapshot.py +174 -0
  51. pulumiverse_scaleway/get_block_volume.py +188 -0
  52. pulumiverse_scaleway/get_cockpit.py +204 -0
  53. pulumiverse_scaleway/get_cockpit_plan.py +125 -0
  54. pulumiverse_scaleway/get_cockpit_source.py +262 -0
  55. pulumiverse_scaleway/get_config.py +180 -0
  56. pulumiverse_scaleway/get_container.py +522 -0
  57. pulumiverse_scaleway/get_container_namespace.py +283 -0
  58. pulumiverse_scaleway/get_database.py +187 -0
  59. pulumiverse_scaleway/get_database_acl.py +143 -0
  60. pulumiverse_scaleway/get_database_backup.py +253 -0
  61. pulumiverse_scaleway/get_database_instance.py +404 -0
  62. pulumiverse_scaleway/get_database_privilege.py +181 -0
  63. pulumiverse_scaleway/get_domain_record.py +340 -0
  64. pulumiverse_scaleway/get_domain_zone.py +201 -0
  65. pulumiverse_scaleway/get_flexible_ip.py +247 -0
  66. pulumiverse_scaleway/get_flexible_ips.py +240 -0
  67. pulumiverse_scaleway/get_function.py +365 -0
  68. pulumiverse_scaleway/get_function_namespace.py +238 -0
  69. pulumiverse_scaleway/get_iam_api_key.py +210 -0
  70. pulumiverse_scaleway/get_iam_application.py +210 -0
  71. pulumiverse_scaleway/get_iam_group.py +236 -0
  72. pulumiverse_scaleway/get_iam_ssh_key.py +212 -0
  73. pulumiverse_scaleway/get_iam_user.py +177 -0
  74. pulumiverse_scaleway/get_instance_image.py +305 -0
  75. pulumiverse_scaleway/get_instance_ip.py +204 -0
  76. pulumiverse_scaleway/get_instance_placement_group.py +212 -0
  77. pulumiverse_scaleway/get_instance_private_nic.py +226 -0
  78. pulumiverse_scaleway/get_instance_security_group.py +268 -0
  79. pulumiverse_scaleway/get_instance_server.py +502 -0
  80. pulumiverse_scaleway/get_instance_servers.py +187 -0
  81. pulumiverse_scaleway/get_instance_snapshot.py +248 -0
  82. pulumiverse_scaleway/get_instance_volume.py +215 -0
  83. pulumiverse_scaleway/get_iot_device.py +257 -0
  84. pulumiverse_scaleway/get_iot_hub.py +322 -0
  85. pulumiverse_scaleway/get_ipam_ip.py +419 -0
  86. pulumiverse_scaleway/get_ipam_ips.py +358 -0
  87. pulumiverse_scaleway/get_k8s_version.py +196 -0
  88. pulumiverse_scaleway/get_kubernetes_cluster.py +417 -0
  89. pulumiverse_scaleway/get_kubernetes_node_pool.py +436 -0
  90. pulumiverse_scaleway/get_lb_acls.py +198 -0
  91. pulumiverse_scaleway/get_lb_backend.py +486 -0
  92. pulumiverse_scaleway/get_lb_backends.py +196 -0
  93. pulumiverse_scaleway/get_lb_frontend.py +274 -0
  94. pulumiverse_scaleway/get_lb_frontends.py +196 -0
  95. pulumiverse_scaleway/get_lb_ips.py +198 -0
  96. pulumiverse_scaleway/get_lb_route.py +217 -0
  97. pulumiverse_scaleway/get_lb_routes.py +179 -0
  98. pulumiverse_scaleway/get_lbs.py +187 -0
  99. pulumiverse_scaleway/get_loadbalancer.py +339 -0
  100. pulumiverse_scaleway/get_loadbalancer_certificate.py +230 -0
  101. pulumiverse_scaleway/get_loadbalancer_ip.py +228 -0
  102. pulumiverse_scaleway/get_marketplace_image.py +147 -0
  103. pulumiverse_scaleway/get_mnq_sns.py +150 -0
  104. pulumiverse_scaleway/get_mnq_sqs.py +150 -0
  105. pulumiverse_scaleway/get_mongo_db_instance.py +324 -0
  106. pulumiverse_scaleway/get_object_bucket.py +290 -0
  107. pulumiverse_scaleway/get_object_bucket_policy.py +163 -0
  108. pulumiverse_scaleway/get_redis_cluster.py +347 -0
  109. pulumiverse_scaleway/get_registry_image.py +239 -0
  110. pulumiverse_scaleway/get_registry_image_tag.py +229 -0
  111. pulumiverse_scaleway/get_registry_namespace.py +199 -0
  112. pulumiverse_scaleway/get_secret.py +338 -0
  113. pulumiverse_scaleway/get_secret_version.py +340 -0
  114. pulumiverse_scaleway/get_tem_domain.py +378 -0
  115. pulumiverse_scaleway/get_vpc.py +246 -0
  116. pulumiverse_scaleway/get_vpc_gateway_network.py +287 -0
  117. pulumiverse_scaleway/get_vpc_private_network.py +282 -0
  118. pulumiverse_scaleway/get_vpc_public_gateway.py +304 -0
  119. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +305 -0
  120. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +382 -0
  121. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +199 -0
  122. pulumiverse_scaleway/get_vpc_public_pat_rule.py +313 -0
  123. pulumiverse_scaleway/get_vpc_routes.py +208 -0
  124. pulumiverse_scaleway/get_vpcs.py +174 -0
  125. pulumiverse_scaleway/get_web_host_offer.py +192 -0
  126. pulumiverse_scaleway/get_webhosting.py +332 -0
  127. pulumiverse_scaleway/iam_api_key.py +620 -0
  128. pulumiverse_scaleway/iam_application.py +417 -0
  129. pulumiverse_scaleway/iam_group.py +566 -0
  130. pulumiverse_scaleway/iam_group_membership.py +323 -0
  131. pulumiverse_scaleway/iam_policy.py +773 -0
  132. pulumiverse_scaleway/iam_ssh_key.py +455 -0
  133. pulumiverse_scaleway/iam_user.py +513 -0
  134. pulumiverse_scaleway/inference_deployment.py +822 -0
  135. pulumiverse_scaleway/instance_image.py +750 -0
  136. pulumiverse_scaleway/instance_ip.py +483 -0
  137. pulumiverse_scaleway/instance_ip_reverse_dns.py +308 -0
  138. pulumiverse_scaleway/instance_placement_group.py +479 -0
  139. pulumiverse_scaleway/instance_private_nic.py +555 -0
  140. pulumiverse_scaleway/instance_security_group.py +720 -0
  141. pulumiverse_scaleway/instance_security_group_rules.py +439 -0
  142. pulumiverse_scaleway/instance_server.py +2006 -0
  143. pulumiverse_scaleway/instance_snapshot.py +669 -0
  144. pulumiverse_scaleway/instance_user_data.py +435 -0
  145. pulumiverse_scaleway/instance_volume.py +535 -0
  146. pulumiverse_scaleway/iot_device.py +750 -0
  147. pulumiverse_scaleway/iot_hub.py +896 -0
  148. pulumiverse_scaleway/iot_network.py +472 -0
  149. pulumiverse_scaleway/iot_route.py +660 -0
  150. pulumiverse_scaleway/ipam_ip.py +757 -0
  151. pulumiverse_scaleway/ipam_ip_reverse_dns.py +318 -0
  152. pulumiverse_scaleway/job_definition.py +692 -0
  153. pulumiverse_scaleway/kubernetes_cluster.py +1538 -0
  154. pulumiverse_scaleway/kubernetes_node_pool.py +1255 -0
  155. pulumiverse_scaleway/loadbalancer.py +1061 -0
  156. pulumiverse_scaleway/loadbalancer_acl.py +520 -0
  157. pulumiverse_scaleway/loadbalancer_backend.py +1588 -0
  158. pulumiverse_scaleway/loadbalancer_certificate.py +460 -0
  159. pulumiverse_scaleway/loadbalancer_frontend.py +829 -0
  160. pulumiverse_scaleway/loadbalancer_ip.py +514 -0
  161. pulumiverse_scaleway/loadbalancer_route.py +523 -0
  162. pulumiverse_scaleway/mnq_nats_account.py +334 -0
  163. pulumiverse_scaleway/mnq_nats_credentials.py +330 -0
  164. pulumiverse_scaleway/mnq_sns.py +306 -0
  165. pulumiverse_scaleway/mnq_sns_credentials.py +413 -0
  166. pulumiverse_scaleway/mnq_sns_topic.py +659 -0
  167. pulumiverse_scaleway/mnq_sns_topic_subscription.py +699 -0
  168. pulumiverse_scaleway/mnq_sqs.py +304 -0
  169. pulumiverse_scaleway/mnq_sqs_credentials.py +413 -0
  170. pulumiverse_scaleway/mnq_sqs_queue.py +800 -0
  171. pulumiverse_scaleway/mongo_db_instance.py +907 -0
  172. pulumiverse_scaleway/mongo_db_snapshot.py +521 -0
  173. pulumiverse_scaleway/object_bucket.py +874 -0
  174. pulumiverse_scaleway/object_bucket_acl.py +596 -0
  175. pulumiverse_scaleway/object_bucket_lock_configuration.py +395 -0
  176. pulumiverse_scaleway/object_bucket_policy.py +673 -0
  177. pulumiverse_scaleway/object_bucket_website_configuration.py +534 -0
  178. pulumiverse_scaleway/object_item.py +776 -0
  179. pulumiverse_scaleway/outputs.py +11808 -0
  180. pulumiverse_scaleway/provider.py +327 -0
  181. pulumiverse_scaleway/pulumi-plugin.json +6 -0
  182. pulumiverse_scaleway/py.typed +0 -0
  183. pulumiverse_scaleway/redis_cluster.py +1201 -0
  184. pulumiverse_scaleway/registry_namespace.py +458 -0
  185. pulumiverse_scaleway/sdb_database.py +432 -0
  186. pulumiverse_scaleway/secret.py +663 -0
  187. pulumiverse_scaleway/secret_version.py +487 -0
  188. pulumiverse_scaleway/tem_domain.py +1030 -0
  189. pulumiverse_scaleway/tem_domain_validation.py +303 -0
  190. pulumiverse_scaleway/tem_webhook.py +640 -0
  191. pulumiverse_scaleway/vpc.py +536 -0
  192. pulumiverse_scaleway/vpc_gateway_network.py +866 -0
  193. pulumiverse_scaleway/vpc_private_network.py +734 -0
  194. pulumiverse_scaleway/vpc_public_gateway.py +789 -0
  195. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +933 -0
  196. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +514 -0
  197. pulumiverse_scaleway/vpc_public_gateway_ip.py +457 -0
  198. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +306 -0
  199. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +591 -0
  200. pulumiverse_scaleway/vpc_route.py +577 -0
  201. pulumiverse_scaleway/webhosting.py +805 -0
  202. pulumiverse_scaleway-1.23.0a1736837529.dist-info/METADATA +77 -0
  203. pulumiverse_scaleway-1.23.0a1736837529.dist-info/RECORD +205 -0
  204. pulumiverse_scaleway-1.23.0a1736837529.dist-info/WHEEL +5 -0
  205. pulumiverse_scaleway-1.23.0a1736837529.dist-info/top_level.txt +1 -0
@@ -0,0 +1,591 @@
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__ = ['VpcPublicGatewayPatRuleArgs', 'VpcPublicGatewayPatRule']
18
+
19
+ @pulumi.input_type
20
+ class VpcPublicGatewayPatRuleArgs:
21
+ def __init__(__self__, *,
22
+ gateway_id: pulumi.Input[str],
23
+ private_ip: pulumi.Input[str],
24
+ private_port: pulumi.Input[int],
25
+ public_port: pulumi.Input[int],
26
+ protocol: Optional[pulumi.Input[str]] = None,
27
+ zone: Optional[pulumi.Input[str]] = None):
28
+ """
29
+ The set of arguments for constructing a VpcPublicGatewayPatRule resource.
30
+ :param pulumi.Input[str] gateway_id: The ID of the Public Gateway.
31
+ :param pulumi.Input[str] private_ip: The private IP address to forward data to.
32
+ :param pulumi.Input[int] private_port: The private port to translate to.
33
+ :param pulumi.Input[int] public_port: The public port to listen on.
34
+ :param pulumi.Input[str] protocol: The protocol the rule should apply to. Possible values are `both`, `tcp` and `udp`.
35
+ :param pulumi.Input[str] zone: `zone`) The zone in which the Public Gateway DHCP configuration should be created.
36
+ """
37
+ pulumi.set(__self__, "gateway_id", gateway_id)
38
+ pulumi.set(__self__, "private_ip", private_ip)
39
+ pulumi.set(__self__, "private_port", private_port)
40
+ pulumi.set(__self__, "public_port", public_port)
41
+ if protocol is not None:
42
+ pulumi.set(__self__, "protocol", protocol)
43
+ if zone is not None:
44
+ pulumi.set(__self__, "zone", zone)
45
+
46
+ @property
47
+ @pulumi.getter(name="gatewayId")
48
+ def gateway_id(self) -> pulumi.Input[str]:
49
+ """
50
+ The ID of the Public Gateway.
51
+ """
52
+ return pulumi.get(self, "gateway_id")
53
+
54
+ @gateway_id.setter
55
+ def gateway_id(self, value: pulumi.Input[str]):
56
+ pulumi.set(self, "gateway_id", value)
57
+
58
+ @property
59
+ @pulumi.getter(name="privateIp")
60
+ def private_ip(self) -> pulumi.Input[str]:
61
+ """
62
+ The private IP address to forward data to.
63
+ """
64
+ return pulumi.get(self, "private_ip")
65
+
66
+ @private_ip.setter
67
+ def private_ip(self, value: pulumi.Input[str]):
68
+ pulumi.set(self, "private_ip", value)
69
+
70
+ @property
71
+ @pulumi.getter(name="privatePort")
72
+ def private_port(self) -> pulumi.Input[int]:
73
+ """
74
+ The private port to translate to.
75
+ """
76
+ return pulumi.get(self, "private_port")
77
+
78
+ @private_port.setter
79
+ def private_port(self, value: pulumi.Input[int]):
80
+ pulumi.set(self, "private_port", value)
81
+
82
+ @property
83
+ @pulumi.getter(name="publicPort")
84
+ def public_port(self) -> pulumi.Input[int]:
85
+ """
86
+ The public port to listen on.
87
+ """
88
+ return pulumi.get(self, "public_port")
89
+
90
+ @public_port.setter
91
+ def public_port(self, value: pulumi.Input[int]):
92
+ pulumi.set(self, "public_port", value)
93
+
94
+ @property
95
+ @pulumi.getter
96
+ def protocol(self) -> Optional[pulumi.Input[str]]:
97
+ """
98
+ The protocol the rule should apply to. Possible values are `both`, `tcp` and `udp`.
99
+ """
100
+ return pulumi.get(self, "protocol")
101
+
102
+ @protocol.setter
103
+ def protocol(self, value: Optional[pulumi.Input[str]]):
104
+ pulumi.set(self, "protocol", value)
105
+
106
+ @property
107
+ @pulumi.getter
108
+ def zone(self) -> Optional[pulumi.Input[str]]:
109
+ """
110
+ `zone`) The zone in which the Public Gateway DHCP configuration should be created.
111
+ """
112
+ return pulumi.get(self, "zone")
113
+
114
+ @zone.setter
115
+ def zone(self, value: Optional[pulumi.Input[str]]):
116
+ pulumi.set(self, "zone", value)
117
+
118
+
119
+ @pulumi.input_type
120
+ class _VpcPublicGatewayPatRuleState:
121
+ def __init__(__self__, *,
122
+ created_at: Optional[pulumi.Input[str]] = None,
123
+ gateway_id: Optional[pulumi.Input[str]] = None,
124
+ organization_id: Optional[pulumi.Input[str]] = None,
125
+ private_ip: Optional[pulumi.Input[str]] = None,
126
+ private_port: Optional[pulumi.Input[int]] = None,
127
+ protocol: Optional[pulumi.Input[str]] = None,
128
+ public_port: Optional[pulumi.Input[int]] = None,
129
+ updated_at: Optional[pulumi.Input[str]] = None,
130
+ zone: Optional[pulumi.Input[str]] = None):
131
+ """
132
+ Input properties used for looking up and filtering VpcPublicGatewayPatRule resources.
133
+ :param pulumi.Input[str] created_at: The date and time of the creation of the PAT rule configuration.
134
+ :param pulumi.Input[str] gateway_id: The ID of the Public Gateway.
135
+ :param pulumi.Input[str] organization_id: The Organization ID the PAT rule configuration is associated with.
136
+ :param pulumi.Input[str] private_ip: The private IP address to forward data to.
137
+ :param pulumi.Input[int] private_port: The private port to translate to.
138
+ :param pulumi.Input[str] protocol: The protocol the rule should apply to. Possible values are `both`, `tcp` and `udp`.
139
+ :param pulumi.Input[int] public_port: The public port to listen on.
140
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the PAT rule configuration.
141
+ :param pulumi.Input[str] zone: `zone`) The zone in which the Public Gateway DHCP configuration should be created.
142
+ """
143
+ if created_at is not None:
144
+ pulumi.set(__self__, "created_at", created_at)
145
+ if gateway_id is not None:
146
+ pulumi.set(__self__, "gateway_id", gateway_id)
147
+ if organization_id is not None:
148
+ pulumi.set(__self__, "organization_id", organization_id)
149
+ if private_ip is not None:
150
+ pulumi.set(__self__, "private_ip", private_ip)
151
+ if private_port is not None:
152
+ pulumi.set(__self__, "private_port", private_port)
153
+ if protocol is not None:
154
+ pulumi.set(__self__, "protocol", protocol)
155
+ if public_port is not None:
156
+ pulumi.set(__self__, "public_port", public_port)
157
+ if updated_at is not None:
158
+ pulumi.set(__self__, "updated_at", updated_at)
159
+ if zone is not None:
160
+ pulumi.set(__self__, "zone", zone)
161
+
162
+ @property
163
+ @pulumi.getter(name="createdAt")
164
+ def created_at(self) -> Optional[pulumi.Input[str]]:
165
+ """
166
+ The date and time of the creation of the PAT rule configuration.
167
+ """
168
+ return pulumi.get(self, "created_at")
169
+
170
+ @created_at.setter
171
+ def created_at(self, value: Optional[pulumi.Input[str]]):
172
+ pulumi.set(self, "created_at", value)
173
+
174
+ @property
175
+ @pulumi.getter(name="gatewayId")
176
+ def gateway_id(self) -> Optional[pulumi.Input[str]]:
177
+ """
178
+ The ID of the Public Gateway.
179
+ """
180
+ return pulumi.get(self, "gateway_id")
181
+
182
+ @gateway_id.setter
183
+ def gateway_id(self, value: Optional[pulumi.Input[str]]):
184
+ pulumi.set(self, "gateway_id", value)
185
+
186
+ @property
187
+ @pulumi.getter(name="organizationId")
188
+ def organization_id(self) -> Optional[pulumi.Input[str]]:
189
+ """
190
+ The Organization ID the PAT rule configuration is associated with.
191
+ """
192
+ return pulumi.get(self, "organization_id")
193
+
194
+ @organization_id.setter
195
+ def organization_id(self, value: Optional[pulumi.Input[str]]):
196
+ pulumi.set(self, "organization_id", value)
197
+
198
+ @property
199
+ @pulumi.getter(name="privateIp")
200
+ def private_ip(self) -> Optional[pulumi.Input[str]]:
201
+ """
202
+ The private IP address to forward data to.
203
+ """
204
+ return pulumi.get(self, "private_ip")
205
+
206
+ @private_ip.setter
207
+ def private_ip(self, value: Optional[pulumi.Input[str]]):
208
+ pulumi.set(self, "private_ip", value)
209
+
210
+ @property
211
+ @pulumi.getter(name="privatePort")
212
+ def private_port(self) -> Optional[pulumi.Input[int]]:
213
+ """
214
+ The private port to translate to.
215
+ """
216
+ return pulumi.get(self, "private_port")
217
+
218
+ @private_port.setter
219
+ def private_port(self, value: Optional[pulumi.Input[int]]):
220
+ pulumi.set(self, "private_port", value)
221
+
222
+ @property
223
+ @pulumi.getter
224
+ def protocol(self) -> Optional[pulumi.Input[str]]:
225
+ """
226
+ The protocol the rule should apply to. Possible values are `both`, `tcp` and `udp`.
227
+ """
228
+ return pulumi.get(self, "protocol")
229
+
230
+ @protocol.setter
231
+ def protocol(self, value: Optional[pulumi.Input[str]]):
232
+ pulumi.set(self, "protocol", value)
233
+
234
+ @property
235
+ @pulumi.getter(name="publicPort")
236
+ def public_port(self) -> Optional[pulumi.Input[int]]:
237
+ """
238
+ The public port to listen on.
239
+ """
240
+ return pulumi.get(self, "public_port")
241
+
242
+ @public_port.setter
243
+ def public_port(self, value: Optional[pulumi.Input[int]]):
244
+ pulumi.set(self, "public_port", value)
245
+
246
+ @property
247
+ @pulumi.getter(name="updatedAt")
248
+ def updated_at(self) -> Optional[pulumi.Input[str]]:
249
+ """
250
+ The date and time of the last update of the PAT rule configuration.
251
+ """
252
+ return pulumi.get(self, "updated_at")
253
+
254
+ @updated_at.setter
255
+ def updated_at(self, value: Optional[pulumi.Input[str]]):
256
+ pulumi.set(self, "updated_at", value)
257
+
258
+ @property
259
+ @pulumi.getter
260
+ def zone(self) -> Optional[pulumi.Input[str]]:
261
+ """
262
+ `zone`) The zone in which the Public Gateway DHCP configuration should be created.
263
+ """
264
+ return pulumi.get(self, "zone")
265
+
266
+ @zone.setter
267
+ def zone(self, value: Optional[pulumi.Input[str]]):
268
+ pulumi.set(self, "zone", value)
269
+
270
+
271
+ class VpcPublicGatewayPatRule(pulumi.CustomResource):
272
+ @overload
273
+ def __init__(__self__,
274
+ resource_name: str,
275
+ opts: Optional[pulumi.ResourceOptions] = None,
276
+ gateway_id: Optional[pulumi.Input[str]] = None,
277
+ private_ip: Optional[pulumi.Input[str]] = None,
278
+ private_port: Optional[pulumi.Input[int]] = None,
279
+ protocol: Optional[pulumi.Input[str]] = None,
280
+ public_port: Optional[pulumi.Input[int]] = None,
281
+ zone: Optional[pulumi.Input[str]] = None,
282
+ __props__=None):
283
+ """
284
+ Creates and manages Scaleway Public Gateway PAT (Port Address Translation).
285
+ For more information, see [the API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#pat-rules-e75d10).
286
+
287
+ ## Example Usage
288
+
289
+ ```python
290
+ import pulumi
291
+ import pulumiverse_scaleway as scaleway
292
+
293
+ sg01 = scaleway.InstanceSecurityGroup("sg01",
294
+ inbound_default_policy="drop",
295
+ outbound_default_policy="accept",
296
+ inbound_rules=[{
297
+ "action": "accept",
298
+ "port": 22,
299
+ "protocol": "TCP",
300
+ }])
301
+ srv01 = scaleway.InstanceServer("srv01",
302
+ name="my-server",
303
+ type="PLAY2-NANO",
304
+ image="ubuntu_jammy",
305
+ security_group_id=sg01.id)
306
+ pn01 = scaleway.VpcPrivateNetwork("pn01", name="my-pn")
307
+ pnic01 = scaleway.InstancePrivateNic("pnic01",
308
+ server_id=srv01.id,
309
+ private_network_id=pn01.id)
310
+ dhcp01 = scaleway.VpcPublicGatewayDhcp("dhcp01", subnet="192.168.0.0/24")
311
+ ip01 = scaleway.VpcPublicGatewayIp("ip01")
312
+ pg01 = scaleway.VpcPublicGateway("pg01",
313
+ name="my-pg",
314
+ type="VPC-GW-S",
315
+ ip_id=ip01.id)
316
+ gn01 = scaleway.VpcGatewayNetwork("gn01",
317
+ gateway_id=pg01.id,
318
+ private_network_id=pn01.id,
319
+ dhcp_id=dhcp01.id,
320
+ cleanup_dhcp=True,
321
+ enable_masquerade=True)
322
+ rsv01 = scaleway.VpcPublicGatewayDhcpReservation("rsv01",
323
+ gateway_network_id=gn01.id,
324
+ mac_address=pnic01.mac_address,
325
+ ip_address="192.168.0.7")
326
+ # PAT rule for SSH traffic
327
+ pat01 = scaleway.VpcPublicGatewayPatRule("pat01",
328
+ gateway_id=pg01.id,
329
+ private_ip=rsv01.ip_address,
330
+ private_port=22,
331
+ public_port=2202,
332
+ protocol="tcp")
333
+ ```
334
+
335
+ ## Import
336
+
337
+ Public Gateway PAT rule configurations can be imported using `{zone}/{id}`, e.g.
338
+
339
+ bash
340
+
341
+ ```sh
342
+ $ pulumi import scaleway:index/vpcPublicGatewayPatRule:VpcPublicGatewayPatRule main fr-par-1/11111111-1111-1111-1111-111111111111
343
+ ```
344
+
345
+ :param str resource_name: The name of the resource.
346
+ :param pulumi.ResourceOptions opts: Options for the resource.
347
+ :param pulumi.Input[str] gateway_id: The ID of the Public Gateway.
348
+ :param pulumi.Input[str] private_ip: The private IP address to forward data to.
349
+ :param pulumi.Input[int] private_port: The private port to translate to.
350
+ :param pulumi.Input[str] protocol: The protocol the rule should apply to. Possible values are `both`, `tcp` and `udp`.
351
+ :param pulumi.Input[int] public_port: The public port to listen on.
352
+ :param pulumi.Input[str] zone: `zone`) The zone in which the Public Gateway DHCP configuration should be created.
353
+ """
354
+ ...
355
+ @overload
356
+ def __init__(__self__,
357
+ resource_name: str,
358
+ args: VpcPublicGatewayPatRuleArgs,
359
+ opts: Optional[pulumi.ResourceOptions] = None):
360
+ """
361
+ Creates and manages Scaleway Public Gateway PAT (Port Address Translation).
362
+ For more information, see [the API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#pat-rules-e75d10).
363
+
364
+ ## Example Usage
365
+
366
+ ```python
367
+ import pulumi
368
+ import pulumiverse_scaleway as scaleway
369
+
370
+ sg01 = scaleway.InstanceSecurityGroup("sg01",
371
+ inbound_default_policy="drop",
372
+ outbound_default_policy="accept",
373
+ inbound_rules=[{
374
+ "action": "accept",
375
+ "port": 22,
376
+ "protocol": "TCP",
377
+ }])
378
+ srv01 = scaleway.InstanceServer("srv01",
379
+ name="my-server",
380
+ type="PLAY2-NANO",
381
+ image="ubuntu_jammy",
382
+ security_group_id=sg01.id)
383
+ pn01 = scaleway.VpcPrivateNetwork("pn01", name="my-pn")
384
+ pnic01 = scaleway.InstancePrivateNic("pnic01",
385
+ server_id=srv01.id,
386
+ private_network_id=pn01.id)
387
+ dhcp01 = scaleway.VpcPublicGatewayDhcp("dhcp01", subnet="192.168.0.0/24")
388
+ ip01 = scaleway.VpcPublicGatewayIp("ip01")
389
+ pg01 = scaleway.VpcPublicGateway("pg01",
390
+ name="my-pg",
391
+ type="VPC-GW-S",
392
+ ip_id=ip01.id)
393
+ gn01 = scaleway.VpcGatewayNetwork("gn01",
394
+ gateway_id=pg01.id,
395
+ private_network_id=pn01.id,
396
+ dhcp_id=dhcp01.id,
397
+ cleanup_dhcp=True,
398
+ enable_masquerade=True)
399
+ rsv01 = scaleway.VpcPublicGatewayDhcpReservation("rsv01",
400
+ gateway_network_id=gn01.id,
401
+ mac_address=pnic01.mac_address,
402
+ ip_address="192.168.0.7")
403
+ # PAT rule for SSH traffic
404
+ pat01 = scaleway.VpcPublicGatewayPatRule("pat01",
405
+ gateway_id=pg01.id,
406
+ private_ip=rsv01.ip_address,
407
+ private_port=22,
408
+ public_port=2202,
409
+ protocol="tcp")
410
+ ```
411
+
412
+ ## Import
413
+
414
+ Public Gateway PAT rule configurations can be imported using `{zone}/{id}`, e.g.
415
+
416
+ bash
417
+
418
+ ```sh
419
+ $ pulumi import scaleway:index/vpcPublicGatewayPatRule:VpcPublicGatewayPatRule main fr-par-1/11111111-1111-1111-1111-111111111111
420
+ ```
421
+
422
+ :param str resource_name: The name of the resource.
423
+ :param VpcPublicGatewayPatRuleArgs args: The arguments to use to populate this resource's properties.
424
+ :param pulumi.ResourceOptions opts: Options for the resource.
425
+ """
426
+ ...
427
+ def __init__(__self__, resource_name: str, *args, **kwargs):
428
+ resource_args, opts = _utilities.get_resource_args_opts(VpcPublicGatewayPatRuleArgs, pulumi.ResourceOptions, *args, **kwargs)
429
+ if resource_args is not None:
430
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
431
+ else:
432
+ __self__._internal_init(resource_name, *args, **kwargs)
433
+
434
+ def _internal_init(__self__,
435
+ resource_name: str,
436
+ opts: Optional[pulumi.ResourceOptions] = None,
437
+ gateway_id: Optional[pulumi.Input[str]] = None,
438
+ private_ip: Optional[pulumi.Input[str]] = None,
439
+ private_port: Optional[pulumi.Input[int]] = None,
440
+ protocol: Optional[pulumi.Input[str]] = None,
441
+ public_port: Optional[pulumi.Input[int]] = None,
442
+ zone: Optional[pulumi.Input[str]] = None,
443
+ __props__=None):
444
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
445
+ if not isinstance(opts, pulumi.ResourceOptions):
446
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
447
+ if opts.id is None:
448
+ if __props__ is not None:
449
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
450
+ __props__ = VpcPublicGatewayPatRuleArgs.__new__(VpcPublicGatewayPatRuleArgs)
451
+
452
+ if gateway_id is None and not opts.urn:
453
+ raise TypeError("Missing required property 'gateway_id'")
454
+ __props__.__dict__["gateway_id"] = gateway_id
455
+ if private_ip is None and not opts.urn:
456
+ raise TypeError("Missing required property 'private_ip'")
457
+ __props__.__dict__["private_ip"] = private_ip
458
+ if private_port is None and not opts.urn:
459
+ raise TypeError("Missing required property 'private_port'")
460
+ __props__.__dict__["private_port"] = private_port
461
+ __props__.__dict__["protocol"] = protocol
462
+ if public_port is None and not opts.urn:
463
+ raise TypeError("Missing required property 'public_port'")
464
+ __props__.__dict__["public_port"] = public_port
465
+ __props__.__dict__["zone"] = zone
466
+ __props__.__dict__["created_at"] = None
467
+ __props__.__dict__["organization_id"] = None
468
+ __props__.__dict__["updated_at"] = None
469
+ super(VpcPublicGatewayPatRule, __self__).__init__(
470
+ 'scaleway:index/vpcPublicGatewayPatRule:VpcPublicGatewayPatRule',
471
+ resource_name,
472
+ __props__,
473
+ opts)
474
+
475
+ @staticmethod
476
+ def get(resource_name: str,
477
+ id: pulumi.Input[str],
478
+ opts: Optional[pulumi.ResourceOptions] = None,
479
+ created_at: Optional[pulumi.Input[str]] = None,
480
+ gateway_id: Optional[pulumi.Input[str]] = None,
481
+ organization_id: Optional[pulumi.Input[str]] = None,
482
+ private_ip: Optional[pulumi.Input[str]] = None,
483
+ private_port: Optional[pulumi.Input[int]] = None,
484
+ protocol: Optional[pulumi.Input[str]] = None,
485
+ public_port: Optional[pulumi.Input[int]] = None,
486
+ updated_at: Optional[pulumi.Input[str]] = None,
487
+ zone: Optional[pulumi.Input[str]] = None) -> 'VpcPublicGatewayPatRule':
488
+ """
489
+ Get an existing VpcPublicGatewayPatRule resource's state with the given name, id, and optional extra
490
+ properties used to qualify the lookup.
491
+
492
+ :param str resource_name: The unique name of the resulting resource.
493
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
494
+ :param pulumi.ResourceOptions opts: Options for the resource.
495
+ :param pulumi.Input[str] created_at: The date and time of the creation of the PAT rule configuration.
496
+ :param pulumi.Input[str] gateway_id: The ID of the Public Gateway.
497
+ :param pulumi.Input[str] organization_id: The Organization ID the PAT rule configuration is associated with.
498
+ :param pulumi.Input[str] private_ip: The private IP address to forward data to.
499
+ :param pulumi.Input[int] private_port: The private port to translate to.
500
+ :param pulumi.Input[str] protocol: The protocol the rule should apply to. Possible values are `both`, `tcp` and `udp`.
501
+ :param pulumi.Input[int] public_port: The public port to listen on.
502
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the PAT rule configuration.
503
+ :param pulumi.Input[str] zone: `zone`) The zone in which the Public Gateway DHCP configuration should be created.
504
+ """
505
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
506
+
507
+ __props__ = _VpcPublicGatewayPatRuleState.__new__(_VpcPublicGatewayPatRuleState)
508
+
509
+ __props__.__dict__["created_at"] = created_at
510
+ __props__.__dict__["gateway_id"] = gateway_id
511
+ __props__.__dict__["organization_id"] = organization_id
512
+ __props__.__dict__["private_ip"] = private_ip
513
+ __props__.__dict__["private_port"] = private_port
514
+ __props__.__dict__["protocol"] = protocol
515
+ __props__.__dict__["public_port"] = public_port
516
+ __props__.__dict__["updated_at"] = updated_at
517
+ __props__.__dict__["zone"] = zone
518
+ return VpcPublicGatewayPatRule(resource_name, opts=opts, __props__=__props__)
519
+
520
+ @property
521
+ @pulumi.getter(name="createdAt")
522
+ def created_at(self) -> pulumi.Output[str]:
523
+ """
524
+ The date and time of the creation of the PAT rule configuration.
525
+ """
526
+ return pulumi.get(self, "created_at")
527
+
528
+ @property
529
+ @pulumi.getter(name="gatewayId")
530
+ def gateway_id(self) -> pulumi.Output[str]:
531
+ """
532
+ The ID of the Public Gateway.
533
+ """
534
+ return pulumi.get(self, "gateway_id")
535
+
536
+ @property
537
+ @pulumi.getter(name="organizationId")
538
+ def organization_id(self) -> pulumi.Output[str]:
539
+ """
540
+ The Organization ID the PAT rule configuration is associated with.
541
+ """
542
+ return pulumi.get(self, "organization_id")
543
+
544
+ @property
545
+ @pulumi.getter(name="privateIp")
546
+ def private_ip(self) -> pulumi.Output[str]:
547
+ """
548
+ The private IP address to forward data to.
549
+ """
550
+ return pulumi.get(self, "private_ip")
551
+
552
+ @property
553
+ @pulumi.getter(name="privatePort")
554
+ def private_port(self) -> pulumi.Output[int]:
555
+ """
556
+ The private port to translate to.
557
+ """
558
+ return pulumi.get(self, "private_port")
559
+
560
+ @property
561
+ @pulumi.getter
562
+ def protocol(self) -> pulumi.Output[Optional[str]]:
563
+ """
564
+ The protocol the rule should apply to. Possible values are `both`, `tcp` and `udp`.
565
+ """
566
+ return pulumi.get(self, "protocol")
567
+
568
+ @property
569
+ @pulumi.getter(name="publicPort")
570
+ def public_port(self) -> pulumi.Output[int]:
571
+ """
572
+ The public port to listen on.
573
+ """
574
+ return pulumi.get(self, "public_port")
575
+
576
+ @property
577
+ @pulumi.getter(name="updatedAt")
578
+ def updated_at(self) -> pulumi.Output[str]:
579
+ """
580
+ The date and time of the last update of the PAT rule configuration.
581
+ """
582
+ return pulumi.get(self, "updated_at")
583
+
584
+ @property
585
+ @pulumi.getter
586
+ def zone(self) -> pulumi.Output[str]:
587
+ """
588
+ `zone`) The zone in which the Public Gateway DHCP configuration should be created.
589
+ """
590
+ return pulumi.get(self, "zone")
591
+