pulumiverse-scaleway 1.25.0a1742464679__py3-none-any.whl → 1.26.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. pulumiverse_scaleway/__init__.py +1034 -0
  2. pulumiverse_scaleway/_inputs.py +663 -0
  3. pulumiverse_scaleway/account/__init__.py +12 -0
  4. pulumiverse_scaleway/account/get_availability_zones.py +139 -0
  5. pulumiverse_scaleway/account/get_project.py +170 -0
  6. pulumiverse_scaleway/account/get_ssh_key.py +205 -0
  7. pulumiverse_scaleway/account/project.py +318 -0
  8. pulumiverse_scaleway/account/ssh_key.py +456 -0
  9. pulumiverse_scaleway/account_project.py +6 -0
  10. pulumiverse_scaleway/account_ssh_key.py +12 -6
  11. pulumiverse_scaleway/apple_silicon_server.py +113 -2
  12. pulumiverse_scaleway/applesilicon/__init__.py +10 -0
  13. pulumiverse_scaleway/applesilicon/_inputs.py +154 -0
  14. pulumiverse_scaleway/applesilicon/outputs.py +119 -0
  15. pulumiverse_scaleway/applesilicon/server.py +795 -0
  16. pulumiverse_scaleway/baremetal_server.py +64 -58
  17. pulumiverse_scaleway/billing/__init__.py +10 -0
  18. pulumiverse_scaleway/billing/get_consumptions.py +134 -0
  19. pulumiverse_scaleway/billing/get_invoices.py +154 -0
  20. pulumiverse_scaleway/billing/outputs.py +288 -0
  21. pulumiverse_scaleway/block/__init__.py +11 -0
  22. pulumiverse_scaleway/block/get_snapshot.py +174 -0
  23. pulumiverse_scaleway/block/get_volume.py +199 -0
  24. pulumiverse_scaleway/block/snapshot.py +403 -0
  25. pulumiverse_scaleway/block/volume.py +576 -0
  26. pulumiverse_scaleway/block_snapshot.py +12 -6
  27. pulumiverse_scaleway/block_volume.py +16 -10
  28. pulumiverse_scaleway/cockpit.py +10 -4
  29. pulumiverse_scaleway/cockpit_alert_manager.py +12 -6
  30. pulumiverse_scaleway/cockpit_grafana_user.py +12 -6
  31. pulumiverse_scaleway/cockpit_source.py +12 -6
  32. pulumiverse_scaleway/cockpit_token.py +16 -10
  33. pulumiverse_scaleway/container.py +16 -10
  34. pulumiverse_scaleway/container_cron.py +14 -8
  35. pulumiverse_scaleway/container_domain.py +24 -18
  36. pulumiverse_scaleway/container_namespace.py +10 -4
  37. pulumiverse_scaleway/container_token.py +32 -26
  38. pulumiverse_scaleway/container_trigger.py +12 -6
  39. pulumiverse_scaleway/containers/__init__.py +17 -0
  40. pulumiverse_scaleway/containers/_inputs.py +389 -0
  41. pulumiverse_scaleway/containers/container.py +1635 -0
  42. pulumiverse_scaleway/containers/cron.py +460 -0
  43. pulumiverse_scaleway/containers/domain.py +408 -0
  44. pulumiverse_scaleway/containers/get_container.py +562 -0
  45. pulumiverse_scaleway/containers/get_namespace.py +283 -0
  46. pulumiverse_scaleway/containers/namespace.py +638 -0
  47. pulumiverse_scaleway/containers/outputs.py +412 -0
  48. pulumiverse_scaleway/containers/token.py +454 -0
  49. pulumiverse_scaleway/containers/trigger.py +482 -0
  50. pulumiverse_scaleway/database.py +10 -4
  51. pulumiverse_scaleway/database_acl.py +10 -4
  52. pulumiverse_scaleway/database_backup.py +14 -8
  53. pulumiverse_scaleway/database_instance.py +24 -18
  54. pulumiverse_scaleway/database_privilege.py +16 -10
  55. pulumiverse_scaleway/database_read_replica.py +22 -16
  56. pulumiverse_scaleway/database_user.py +10 -4
  57. pulumiverse_scaleway/databases/__init__.py +23 -0
  58. pulumiverse_scaleway/databases/_inputs.py +822 -0
  59. pulumiverse_scaleway/databases/acl.py +334 -0
  60. pulumiverse_scaleway/databases/database.py +409 -0
  61. pulumiverse_scaleway/databases/database_backup.py +576 -0
  62. pulumiverse_scaleway/databases/get_acl.py +143 -0
  63. pulumiverse_scaleway/databases/get_database.py +187 -0
  64. pulumiverse_scaleway/databases/get_database_backup.py +253 -0
  65. pulumiverse_scaleway/databases/get_instance.py +415 -0
  66. pulumiverse_scaleway/databases/get_privilege.py +181 -0
  67. pulumiverse_scaleway/databases/instance.py +1696 -0
  68. pulumiverse_scaleway/databases/outputs.py +866 -0
  69. pulumiverse_scaleway/databases/privilege.py +424 -0
  70. pulumiverse_scaleway/databases/read_replica.py +530 -0
  71. pulumiverse_scaleway/databases/serverless_database.py +434 -0
  72. pulumiverse_scaleway/databases/snapshot.py +610 -0
  73. pulumiverse_scaleway/databases/user.py +448 -0
  74. pulumiverse_scaleway/domain/__init__.py +14 -0
  75. pulumiverse_scaleway/domain/_inputs.py +3038 -0
  76. pulumiverse_scaleway/domain/get_record.py +340 -0
  77. pulumiverse_scaleway/domain/get_zone.py +201 -0
  78. pulumiverse_scaleway/domain/outputs.py +2553 -0
  79. pulumiverse_scaleway/domain/record.py +1118 -0
  80. pulumiverse_scaleway/domain/registration.py +777 -0
  81. pulumiverse_scaleway/domain/zone.py +432 -0
  82. pulumiverse_scaleway/domain_record.py +36 -30
  83. pulumiverse_scaleway/domain_zone.py +6 -0
  84. pulumiverse_scaleway/edge_services_backend_stage.py +472 -0
  85. pulumiverse_scaleway/edge_services_cache_stage.py +490 -0
  86. pulumiverse_scaleway/edge_services_dns_stage.py +516 -0
  87. pulumiverse_scaleway/edge_services_head_stage.py +258 -0
  88. pulumiverse_scaleway/edge_services_pipeline.py +436 -0
  89. pulumiverse_scaleway/edge_services_plan.py +239 -0
  90. pulumiverse_scaleway/edge_services_route_stage.py +422 -0
  91. pulumiverse_scaleway/edge_services_tls_stage.py +546 -0
  92. pulumiverse_scaleway/edge_services_waf_stage.py +444 -0
  93. pulumiverse_scaleway/elasticmetal/__init__.py +18 -0
  94. pulumiverse_scaleway/elasticmetal/_inputs.py +509 -0
  95. pulumiverse_scaleway/elasticmetal/get_ip.py +247 -0
  96. pulumiverse_scaleway/elasticmetal/get_ips.py +240 -0
  97. pulumiverse_scaleway/elasticmetal/get_offer.py +245 -0
  98. pulumiverse_scaleway/elasticmetal/get_option.py +168 -0
  99. pulumiverse_scaleway/elasticmetal/get_os.py +174 -0
  100. pulumiverse_scaleway/elasticmetal/get_server.py +422 -0
  101. pulumiverse_scaleway/elasticmetal/ip.py +710 -0
  102. pulumiverse_scaleway/elasticmetal/ip_mac_address.py +512 -0
  103. pulumiverse_scaleway/elasticmetal/outputs.py +974 -0
  104. pulumiverse_scaleway/elasticmetal/server.py +1591 -0
  105. pulumiverse_scaleway/flexible_ip.py +35 -23
  106. pulumiverse_scaleway/flexible_ip_mac_address.py +22 -16
  107. pulumiverse_scaleway/function.py +6 -0
  108. pulumiverse_scaleway/function_cron.py +16 -10
  109. pulumiverse_scaleway/function_domain.py +16 -10
  110. pulumiverse_scaleway/function_namespace.py +10 -4
  111. pulumiverse_scaleway/function_token.py +32 -26
  112. pulumiverse_scaleway/function_trigger.py +12 -6
  113. pulumiverse_scaleway/functions/__init__.py +17 -0
  114. pulumiverse_scaleway/functions/_inputs.py +211 -0
  115. pulumiverse_scaleway/functions/cron.py +464 -0
  116. pulumiverse_scaleway/functions/domain.py +372 -0
  117. pulumiverse_scaleway/functions/function.py +1105 -0
  118. pulumiverse_scaleway/functions/get_function.py +365 -0
  119. pulumiverse_scaleway/functions/get_namespace.py +238 -0
  120. pulumiverse_scaleway/functions/namespace.py +582 -0
  121. pulumiverse_scaleway/functions/outputs.py +168 -0
  122. pulumiverse_scaleway/functions/token.py +462 -0
  123. pulumiverse_scaleway/functions/trigger.py +482 -0
  124. pulumiverse_scaleway/get_account_project.py +6 -2
  125. pulumiverse_scaleway/get_account_ssh_key.py +6 -2
  126. pulumiverse_scaleway/get_availability_zones.py +8 -4
  127. pulumiverse_scaleway/get_baremetal_offer.py +4 -0
  128. pulumiverse_scaleway/get_baremetal_option.py +8 -4
  129. pulumiverse_scaleway/get_baremetal_os.py +8 -4
  130. pulumiverse_scaleway/get_baremetal_server.py +8 -4
  131. pulumiverse_scaleway/get_billing_consumptions.py +4 -0
  132. pulumiverse_scaleway/get_billing_invoices.py +4 -0
  133. pulumiverse_scaleway/get_block_snapshot.py +6 -2
  134. pulumiverse_scaleway/get_block_volume.py +6 -2
  135. pulumiverse_scaleway/get_cockpit.py +12 -8
  136. pulumiverse_scaleway/get_cockpit_plan.py +10 -6
  137. pulumiverse_scaleway/get_cockpit_source.py +8 -4
  138. pulumiverse_scaleway/get_container.py +16 -12
  139. pulumiverse_scaleway/get_container_namespace.py +10 -6
  140. pulumiverse_scaleway/get_database.py +6 -2
  141. pulumiverse_scaleway/get_database_acl.py +6 -2
  142. pulumiverse_scaleway/get_database_backup.py +10 -6
  143. pulumiverse_scaleway/get_database_instance.py +4 -0
  144. pulumiverse_scaleway/get_database_privilege.py +6 -2
  145. pulumiverse_scaleway/get_domain_record.py +10 -6
  146. pulumiverse_scaleway/get_domain_zone.py +4 -0
  147. pulumiverse_scaleway/get_flexible_ip.py +4 -0
  148. pulumiverse_scaleway/get_flexible_ips.py +16 -12
  149. pulumiverse_scaleway/get_function.py +6 -2
  150. pulumiverse_scaleway/get_function_namespace.py +6 -2
  151. pulumiverse_scaleway/get_iam_api_key.py +6 -2
  152. pulumiverse_scaleway/get_iam_application.py +8 -4
  153. pulumiverse_scaleway/get_iam_group.py +8 -4
  154. pulumiverse_scaleway/get_iam_ssh_key.py +4 -0
  155. pulumiverse_scaleway/get_iam_user.py +8 -4
  156. pulumiverse_scaleway/get_instance_image.py +4 -0
  157. pulumiverse_scaleway/get_instance_ip.py +4 -0
  158. pulumiverse_scaleway/get_instance_placement_group.py +4 -0
  159. pulumiverse_scaleway/get_instance_private_nic.py +10 -6
  160. pulumiverse_scaleway/get_instance_security_group.py +4 -0
  161. pulumiverse_scaleway/get_instance_server.py +4 -0
  162. pulumiverse_scaleway/get_instance_servers.py +4 -0
  163. pulumiverse_scaleway/get_instance_snapshot.py +8 -4
  164. pulumiverse_scaleway/get_instance_volume.py +4 -0
  165. pulumiverse_scaleway/get_iot_device.py +4 -0
  166. pulumiverse_scaleway/get_iot_hub.py +4 -0
  167. pulumiverse_scaleway/get_ipam_ip.py +18 -14
  168. pulumiverse_scaleway/get_ipam_ips.py +14 -10
  169. pulumiverse_scaleway/get_k8s_version.py +8 -4
  170. pulumiverse_scaleway/get_kubernetes_cluster.py +4 -0
  171. pulumiverse_scaleway/get_kubernetes_node_pool.py +4 -0
  172. pulumiverse_scaleway/get_lb_acls.py +8 -4
  173. pulumiverse_scaleway/get_lb_backend.py +18 -14
  174. pulumiverse_scaleway/get_lb_backends.py +8 -4
  175. pulumiverse_scaleway/get_lb_frontend.py +28 -13
  176. pulumiverse_scaleway/get_lb_frontends.py +8 -4
  177. pulumiverse_scaleway/get_lb_ips.py +4 -0
  178. pulumiverse_scaleway/get_lb_route.py +28 -13
  179. pulumiverse_scaleway/get_lb_routes.py +8 -4
  180. pulumiverse_scaleway/get_lbs.py +4 -0
  181. pulumiverse_scaleway/get_loadbalancer.py +8 -4
  182. pulumiverse_scaleway/get_loadbalancer_certificate.py +4 -0
  183. pulumiverse_scaleway/get_loadbalancer_ip.py +4 -0
  184. pulumiverse_scaleway/get_mnq_sns.py +8 -4
  185. pulumiverse_scaleway/get_mnq_sqs.py +8 -4
  186. pulumiverse_scaleway/get_mongo_db_instance.py +4 -0
  187. pulumiverse_scaleway/get_object_bucket.py +12 -8
  188. pulumiverse_scaleway/get_object_bucket_policy.py +8 -4
  189. pulumiverse_scaleway/get_redis_cluster.py +4 -0
  190. pulumiverse_scaleway/get_registry_image.py +4 -0
  191. pulumiverse_scaleway/get_registry_image_tag.py +4 -0
  192. pulumiverse_scaleway/get_registry_namespace.py +4 -0
  193. pulumiverse_scaleway/get_secret.py +27 -12
  194. pulumiverse_scaleway/get_secret_version.py +14 -10
  195. pulumiverse_scaleway/get_tem_domain.py +4 -0
  196. pulumiverse_scaleway/get_vpc.py +10 -6
  197. pulumiverse_scaleway/get_vpc_gateway_network.py +10 -6
  198. pulumiverse_scaleway/get_vpc_private_network.py +10 -6
  199. pulumiverse_scaleway/get_vpc_public_gateway.py +44 -7
  200. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +16 -4
  201. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +78 -66
  202. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +8 -4
  203. pulumiverse_scaleway/get_vpc_public_pat_rule.py +26 -22
  204. pulumiverse_scaleway/get_vpc_routes.py +4 -0
  205. pulumiverse_scaleway/get_vpcs.py +4 -0
  206. pulumiverse_scaleway/get_web_host_offer.py +8 -4
  207. pulumiverse_scaleway/get_webhosting.py +8 -4
  208. pulumiverse_scaleway/hosting/__init__.py +12 -0
  209. pulumiverse_scaleway/hosting/_inputs.py +295 -0
  210. pulumiverse_scaleway/hosting/get_hosting.py +354 -0
  211. pulumiverse_scaleway/hosting/get_offer.py +229 -0
  212. pulumiverse_scaleway/hosting/hosting.py +870 -0
  213. pulumiverse_scaleway/hosting/outputs.py +626 -0
  214. pulumiverse_scaleway/iam/__init__.py +21 -0
  215. pulumiverse_scaleway/iam/_inputs.py +138 -0
  216. pulumiverse_scaleway/iam/api_key.py +622 -0
  217. pulumiverse_scaleway/iam/application.py +419 -0
  218. pulumiverse_scaleway/iam/get_api_key.py +210 -0
  219. pulumiverse_scaleway/iam/get_application.py +210 -0
  220. pulumiverse_scaleway/iam/get_group.py +236 -0
  221. pulumiverse_scaleway/iam/get_ssh_key.py +212 -0
  222. pulumiverse_scaleway/iam/get_user.py +177 -0
  223. pulumiverse_scaleway/iam/group.py +568 -0
  224. pulumiverse_scaleway/iam/group_membership.py +325 -0
  225. pulumiverse_scaleway/iam/outputs.py +111 -0
  226. pulumiverse_scaleway/iam/policy.py +775 -0
  227. pulumiverse_scaleway/iam/ssh_key.py +457 -0
  228. pulumiverse_scaleway/iam/user.py +515 -0
  229. pulumiverse_scaleway/iam_api_key.py +16 -10
  230. pulumiverse_scaleway/iam_application.py +8 -2
  231. pulumiverse_scaleway/iam_group.py +12 -6
  232. pulumiverse_scaleway/iam_group_membership.py +12 -6
  233. pulumiverse_scaleway/iam_policy.py +18 -12
  234. pulumiverse_scaleway/iam_ssh_key.py +8 -2
  235. pulumiverse_scaleway/iam_user.py +8 -2
  236. pulumiverse_scaleway/inference/__init__.py +10 -0
  237. pulumiverse_scaleway/inference/_inputs.py +209 -0
  238. pulumiverse_scaleway/inference/deployment.py +824 -0
  239. pulumiverse_scaleway/inference/outputs.py +169 -0
  240. pulumiverse_scaleway/inference_deployment.py +8 -2
  241. pulumiverse_scaleway/instance/__init__.py +29 -0
  242. pulumiverse_scaleway/instance/_inputs.py +1237 -0
  243. pulumiverse_scaleway/instance/get_image.py +305 -0
  244. pulumiverse_scaleway/instance/get_ip.py +204 -0
  245. pulumiverse_scaleway/instance/get_placement_group.py +212 -0
  246. pulumiverse_scaleway/instance/get_private_nic.py +226 -0
  247. pulumiverse_scaleway/instance/get_security_group.py +268 -0
  248. pulumiverse_scaleway/instance/get_server.py +488 -0
  249. pulumiverse_scaleway/instance/get_servers.py +187 -0
  250. pulumiverse_scaleway/instance/get_snapshot.py +248 -0
  251. pulumiverse_scaleway/instance/get_volume.py +226 -0
  252. pulumiverse_scaleway/instance/image.py +752 -0
  253. pulumiverse_scaleway/instance/ip.py +471 -0
  254. pulumiverse_scaleway/instance/ip_reverse_dns.py +310 -0
  255. pulumiverse_scaleway/instance/outputs.py +1533 -0
  256. pulumiverse_scaleway/instance/placement_group.py +481 -0
  257. pulumiverse_scaleway/instance/private_nic.py +557 -0
  258. pulumiverse_scaleway/instance/security_group.py +722 -0
  259. pulumiverse_scaleway/instance/security_group_rules.py +441 -0
  260. pulumiverse_scaleway/instance/server.py +1938 -0
  261. pulumiverse_scaleway/instance/snapshot.py +671 -0
  262. pulumiverse_scaleway/instance/user_data.py +437 -0
  263. pulumiverse_scaleway/instance/volume.py +584 -0
  264. pulumiverse_scaleway/instance_image.py +18 -12
  265. pulumiverse_scaleway/instance_ip.py +8 -2
  266. pulumiverse_scaleway/instance_ip_reverse_dns.py +12 -6
  267. pulumiverse_scaleway/instance_placement_group.py +8 -2
  268. pulumiverse_scaleway/instance_private_nic.py +24 -18
  269. pulumiverse_scaleway/instance_security_group.py +6 -0
  270. pulumiverse_scaleway/instance_security_group_rules.py +22 -16
  271. pulumiverse_scaleway/instance_server.py +74 -68
  272. pulumiverse_scaleway/instance_snapshot.py +22 -16
  273. pulumiverse_scaleway/instance_user_data.py +16 -10
  274. pulumiverse_scaleway/instance_volume.py +8 -2
  275. pulumiverse_scaleway/iot/__init__.py +15 -0
  276. pulumiverse_scaleway/iot/_inputs.py +539 -0
  277. pulumiverse_scaleway/iot/device.py +752 -0
  278. pulumiverse_scaleway/iot/get_device.py +257 -0
  279. pulumiverse_scaleway/iot/get_hub.py +322 -0
  280. pulumiverse_scaleway/iot/hub.py +898 -0
  281. pulumiverse_scaleway/iot/network.py +474 -0
  282. pulumiverse_scaleway/iot/outputs.py +465 -0
  283. pulumiverse_scaleway/iot/route.py +662 -0
  284. pulumiverse_scaleway/iot_device.py +14 -8
  285. pulumiverse_scaleway/iot_hub.py +8 -2
  286. pulumiverse_scaleway/iot_network.py +12 -6
  287. pulumiverse_scaleway/iot_route.py +32 -26
  288. pulumiverse_scaleway/ipam/__init__.py +13 -0
  289. pulumiverse_scaleway/ipam/_inputs.py +442 -0
  290. pulumiverse_scaleway/ipam/get_ip.py +419 -0
  291. pulumiverse_scaleway/ipam/get_ips.py +358 -0
  292. pulumiverse_scaleway/ipam/ip.py +759 -0
  293. pulumiverse_scaleway/ipam/ip_reverse_dns.py +320 -0
  294. pulumiverse_scaleway/ipam/outputs.py +481 -0
  295. pulumiverse_scaleway/ipam_ip.py +30 -24
  296. pulumiverse_scaleway/ipam_ip_reverse_dns.py +6 -0
  297. pulumiverse_scaleway/job/__init__.py +10 -0
  298. pulumiverse_scaleway/job/_inputs.py +73 -0
  299. pulumiverse_scaleway/job/definition.py +694 -0
  300. pulumiverse_scaleway/job/outputs.py +49 -0
  301. pulumiverse_scaleway/job_definition.py +8 -2
  302. pulumiverse_scaleway/kubernetes/__init__.py +14 -0
  303. pulumiverse_scaleway/kubernetes/_inputs.py +717 -0
  304. pulumiverse_scaleway/kubernetes/cluster.py +1540 -0
  305. pulumiverse_scaleway/kubernetes/get_cluster.py +417 -0
  306. pulumiverse_scaleway/kubernetes/get_pool.py +436 -0
  307. pulumiverse_scaleway/kubernetes/get_version.py +196 -0
  308. pulumiverse_scaleway/kubernetes/outputs.py +944 -0
  309. pulumiverse_scaleway/kubernetes/pool.py +1313 -0
  310. pulumiverse_scaleway/kubernetes_cluster.py +36 -30
  311. pulumiverse_scaleway/kubernetes_node_pool.py +6 -0
  312. pulumiverse_scaleway/loadbalancer.py +35 -29
  313. pulumiverse_scaleway/loadbalancer_acl.py +8 -2
  314. pulumiverse_scaleway/loadbalancer_backend.py +12 -6
  315. pulumiverse_scaleway/loadbalancer_certificate.py +6 -0
  316. pulumiverse_scaleway/loadbalancer_frontend.py +57 -4
  317. pulumiverse_scaleway/loadbalancer_ip.py +10 -4
  318. pulumiverse_scaleway/loadbalancer_route.py +74 -21
  319. pulumiverse_scaleway/loadbalancers/__init__.py +28 -0
  320. pulumiverse_scaleway/loadbalancers/_inputs.py +1103 -0
  321. pulumiverse_scaleway/loadbalancers/acl.py +522 -0
  322. pulumiverse_scaleway/loadbalancers/backend.py +1590 -0
  323. pulumiverse_scaleway/loadbalancers/certificate.py +462 -0
  324. pulumiverse_scaleway/loadbalancers/frontend.py +878 -0
  325. pulumiverse_scaleway/loadbalancers/get_acls.py +198 -0
  326. pulumiverse_scaleway/loadbalancers/get_backend.py +486 -0
  327. pulumiverse_scaleway/loadbalancers/get_backends.py +196 -0
  328. pulumiverse_scaleway/loadbalancers/get_certificate.py +230 -0
  329. pulumiverse_scaleway/loadbalancers/get_frontend.py +285 -0
  330. pulumiverse_scaleway/loadbalancers/get_frontends.py +196 -0
  331. pulumiverse_scaleway/loadbalancers/get_ip.py +228 -0
  332. pulumiverse_scaleway/loadbalancers/get_ips.py +198 -0
  333. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +339 -0
  334. pulumiverse_scaleway/loadbalancers/get_load_balancers.py +187 -0
  335. pulumiverse_scaleway/loadbalancers/get_route.py +228 -0
  336. pulumiverse_scaleway/loadbalancers/get_routes.py +179 -0
  337. pulumiverse_scaleway/loadbalancers/ip.py +516 -0
  338. pulumiverse_scaleway/loadbalancers/load_balancer.py +1063 -0
  339. pulumiverse_scaleway/loadbalancers/outputs.py +2502 -0
  340. pulumiverse_scaleway/loadbalancers/route.py +572 -0
  341. pulumiverse_scaleway/mnq/__init__.py +20 -0
  342. pulumiverse_scaleway/mnq/_inputs.py +169 -0
  343. pulumiverse_scaleway/mnq/get_sns.py +150 -0
  344. pulumiverse_scaleway/mnq/get_sqs.py +150 -0
  345. pulumiverse_scaleway/mnq/nats_account.py +336 -0
  346. pulumiverse_scaleway/mnq/nats_credentials.py +332 -0
  347. pulumiverse_scaleway/mnq/outputs.py +149 -0
  348. pulumiverse_scaleway/mnq/sns.py +308 -0
  349. pulumiverse_scaleway/mnq/sns_credentials.py +415 -0
  350. pulumiverse_scaleway/mnq/sns_topic.py +661 -0
  351. pulumiverse_scaleway/mnq/sns_topic_subscription.py +701 -0
  352. pulumiverse_scaleway/mnq/sqs.py +306 -0
  353. pulumiverse_scaleway/mnq/sqs_credentials.py +415 -0
  354. pulumiverse_scaleway/mnq/sqs_queue.py +802 -0
  355. pulumiverse_scaleway/mnq_nats_account.py +8 -2
  356. pulumiverse_scaleway/mnq_nats_credentials.py +10 -4
  357. pulumiverse_scaleway/mnq_sns.py +12 -6
  358. pulumiverse_scaleway/mnq_sns_credentials.py +10 -4
  359. pulumiverse_scaleway/mnq_sns_topic.py +16 -10
  360. pulumiverse_scaleway/mnq_sns_topic_subscription.py +22 -16
  361. pulumiverse_scaleway/mnq_sqs.py +12 -6
  362. pulumiverse_scaleway/mnq_sqs_credentials.py +10 -4
  363. pulumiverse_scaleway/mnq_sqs_queue.py +16 -10
  364. pulumiverse_scaleway/mongo_db_instance.py +14 -8
  365. pulumiverse_scaleway/mongo_db_snapshot.py +8 -2
  366. pulumiverse_scaleway/mongodb/__init__.py +12 -0
  367. pulumiverse_scaleway/mongodb/_inputs.py +208 -0
  368. pulumiverse_scaleway/mongodb/get_instance.py +335 -0
  369. pulumiverse_scaleway/mongodb/instance.py +1000 -0
  370. pulumiverse_scaleway/mongodb/outputs.py +270 -0
  371. pulumiverse_scaleway/mongodb/snapshot.py +523 -0
  372. pulumiverse_scaleway/network/__init__.py +30 -0
  373. pulumiverse_scaleway/network/_inputs.py +577 -0
  374. pulumiverse_scaleway/network/acl.py +415 -0
  375. pulumiverse_scaleway/network/gateway_network.py +850 -0
  376. pulumiverse_scaleway/network/get_gateway_network.py +287 -0
  377. pulumiverse_scaleway/network/get_private_network.py +282 -0
  378. pulumiverse_scaleway/network/get_public_gateway.py +337 -0
  379. pulumiverse_scaleway/network/get_public_gateway_dhcp.py +313 -0
  380. pulumiverse_scaleway/network/get_public_gateway_dhcp_reservation.py +390 -0
  381. pulumiverse_scaleway/network/get_public_gateway_ip.py +199 -0
  382. pulumiverse_scaleway/network/get_public_gateway_pat_rule.py +313 -0
  383. pulumiverse_scaleway/network/get_routes.py +208 -0
  384. pulumiverse_scaleway/network/get_vpc.py +246 -0
  385. pulumiverse_scaleway/network/get_vpcs.py +174 -0
  386. pulumiverse_scaleway/network/outputs.py +886 -0
  387. pulumiverse_scaleway/network/private_network.py +736 -0
  388. pulumiverse_scaleway/network/public_gateway.py +894 -0
  389. pulumiverse_scaleway/network/public_gateway_dhcp.py +957 -0
  390. pulumiverse_scaleway/network/public_gateway_dhcp_reservation.py +524 -0
  391. pulumiverse_scaleway/network/public_gateway_ip.py +459 -0
  392. pulumiverse_scaleway/network/public_gateway_ip_reverse_dns.py +308 -0
  393. pulumiverse_scaleway/network/public_gateway_pat_rule.py +593 -0
  394. pulumiverse_scaleway/network/route.py +579 -0
  395. pulumiverse_scaleway/network/vpc.py +538 -0
  396. pulumiverse_scaleway/object/__init__.py +17 -0
  397. pulumiverse_scaleway/object/_inputs.py +831 -0
  398. pulumiverse_scaleway/object/bucket.py +876 -0
  399. pulumiverse_scaleway/object/bucket_acl.py +598 -0
  400. pulumiverse_scaleway/object/bucket_lock_configuration.py +397 -0
  401. pulumiverse_scaleway/object/bucket_policy.py +675 -0
  402. pulumiverse_scaleway/object/bucket_website_configuration.py +536 -0
  403. pulumiverse_scaleway/object/get_bucket.py +290 -0
  404. pulumiverse_scaleway/object/get_bucket_policy.py +163 -0
  405. pulumiverse_scaleway/object/item.py +778 -0
  406. pulumiverse_scaleway/object/outputs.py +802 -0
  407. pulumiverse_scaleway/object_bucket.py +28 -22
  408. pulumiverse_scaleway/object_bucket_acl.py +14 -8
  409. pulumiverse_scaleway/object_bucket_lock_configuration.py +12 -6
  410. pulumiverse_scaleway/object_bucket_policy.py +46 -40
  411. pulumiverse_scaleway/object_bucket_website_configuration.py +18 -12
  412. pulumiverse_scaleway/object_item.py +8 -2
  413. pulumiverse_scaleway/observability/__init__.py +17 -0
  414. pulumiverse_scaleway/observability/_inputs.py +417 -0
  415. pulumiverse_scaleway/observability/alert_manager.py +403 -0
  416. pulumiverse_scaleway/observability/cockpit.py +325 -0
  417. pulumiverse_scaleway/observability/get_instance.py +205 -0
  418. pulumiverse_scaleway/observability/get_plan.py +125 -0
  419. pulumiverse_scaleway/observability/get_source.py +262 -0
  420. pulumiverse_scaleway/observability/grafana_user.py +364 -0
  421. pulumiverse_scaleway/observability/outputs.py +425 -0
  422. pulumiverse_scaleway/observability/source.py +569 -0
  423. pulumiverse_scaleway/observability/token.py +481 -0
  424. pulumiverse_scaleway/outputs.py +662 -2
  425. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  426. pulumiverse_scaleway/rdb_snapshot.py +16 -10
  427. pulumiverse_scaleway/redis/__init__.py +11 -0
  428. pulumiverse_scaleway/redis/_inputs.py +330 -0
  429. pulumiverse_scaleway/redis/cluster.py +1203 -0
  430. pulumiverse_scaleway/redis/get_cluster.py +347 -0
  431. pulumiverse_scaleway/redis/outputs.py +356 -0
  432. pulumiverse_scaleway/redis_cluster.py +14 -8
  433. pulumiverse_scaleway/registry/__init__.py +11 -0
  434. pulumiverse_scaleway/registry/get_image.py +239 -0
  435. pulumiverse_scaleway/registry/get_image_tag.py +229 -0
  436. pulumiverse_scaleway/registry/get_namespace.py +199 -0
  437. pulumiverse_scaleway/registry/namespace.py +460 -0
  438. pulumiverse_scaleway/registry_namespace.py +8 -2
  439. pulumiverse_scaleway/sdb_database.py +10 -4
  440. pulumiverse_scaleway/secret.py +28 -2
  441. pulumiverse_scaleway/secret_version.py +18 -12
  442. pulumiverse_scaleway/secrets/__init__.py +13 -0
  443. pulumiverse_scaleway/secrets/_inputs.py +248 -0
  444. pulumiverse_scaleway/secrets/get_secret.py +349 -0
  445. pulumiverse_scaleway/secrets/get_version.py +340 -0
  446. pulumiverse_scaleway/secrets/outputs.py +320 -0
  447. pulumiverse_scaleway/secrets/secret.py +685 -0
  448. pulumiverse_scaleway/secrets/version.py +489 -0
  449. pulumiverse_scaleway/tem/__init__.py +15 -0
  450. pulumiverse_scaleway/tem/_inputs.py +135 -0
  451. pulumiverse_scaleway/tem/blocked_list.py +442 -0
  452. pulumiverse_scaleway/tem/domain.py +1039 -0
  453. pulumiverse_scaleway/tem/domain_validation.py +305 -0
  454. pulumiverse_scaleway/tem/get_domain.py +378 -0
  455. pulumiverse_scaleway/tem/get_offer_subscription.py +254 -0
  456. pulumiverse_scaleway/tem/outputs.py +171 -0
  457. pulumiverse_scaleway/tem/webhook.py +642 -0
  458. pulumiverse_scaleway/tem_domain.py +27 -14
  459. pulumiverse_scaleway/tem_domain_validation.py +10 -4
  460. pulumiverse_scaleway/tem_webhook.py +28 -22
  461. pulumiverse_scaleway/vpc.py +10 -4
  462. pulumiverse_scaleway/vpc_gateway_network.py +128 -140
  463. pulumiverse_scaleway/vpc_private_network.py +10 -4
  464. pulumiverse_scaleway/vpc_public_gateway.py +132 -23
  465. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +23 -9
  466. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +40 -26
  467. pulumiverse_scaleway/vpc_public_gateway_ip.py +10 -4
  468. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +12 -6
  469. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +26 -20
  470. pulumiverse_scaleway/vpc_route.py +16 -10
  471. pulumiverse_scaleway/webhosting.py +10 -4
  472. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.26.0.dist-info}/METADATA +1 -1
  473. pulumiverse_scaleway-1.26.0.dist-info/RECORD +483 -0
  474. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.26.0.dist-info}/WHEEL +1 -1
  475. pulumiverse_scaleway-1.25.0a1742464679.dist-info/RECORD +0 -206
  476. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.26.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,593 @@
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__ = ['PublicGatewayPatRuleArgs', 'PublicGatewayPatRule']
18
+
19
+ @pulumi.input_type
20
+ class PublicGatewayPatRuleArgs:
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 PublicGatewayPatRule 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 _PublicGatewayPatRuleState:
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 PublicGatewayPatRule 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 PublicGatewayPatRule(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.instance.SecurityGroup("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.instance.Server("srv01",
302
+ name="my-server",
303
+ type="PLAY2-NANO",
304
+ image="ubuntu_jammy",
305
+ security_group_id=sg01.id)
306
+ pn01 = scaleway.network.PrivateNetwork("pn01", name="my-pn")
307
+ pnic01 = scaleway.instance.PrivateNic("pnic01",
308
+ server_id=srv01.id,
309
+ private_network_id=pn01.id)
310
+ dhcp01 = scaleway.network.PublicGatewayDhcp("dhcp01", subnet="192.168.0.0/24")
311
+ ip01 = scaleway.network.PublicGatewayIp("ip01")
312
+ pg01 = scaleway.network.PublicGateway("pg01",
313
+ name="my-pg",
314
+ type="VPC-GW-S",
315
+ ip_id=ip01.id)
316
+ gn01 = scaleway.network.GatewayNetwork("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.network.PublicGatewayDhcpReservation("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.network.PublicGatewayPatRule("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:network/publicGatewayPatRule:PublicGatewayPatRule 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: PublicGatewayPatRuleArgs,
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.instance.SecurityGroup("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.instance.Server("srv01",
379
+ name="my-server",
380
+ type="PLAY2-NANO",
381
+ image="ubuntu_jammy",
382
+ security_group_id=sg01.id)
383
+ pn01 = scaleway.network.PrivateNetwork("pn01", name="my-pn")
384
+ pnic01 = scaleway.instance.PrivateNic("pnic01",
385
+ server_id=srv01.id,
386
+ private_network_id=pn01.id)
387
+ dhcp01 = scaleway.network.PublicGatewayDhcp("dhcp01", subnet="192.168.0.0/24")
388
+ ip01 = scaleway.network.PublicGatewayIp("ip01")
389
+ pg01 = scaleway.network.PublicGateway("pg01",
390
+ name="my-pg",
391
+ type="VPC-GW-S",
392
+ ip_id=ip01.id)
393
+ gn01 = scaleway.network.GatewayNetwork("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.network.PublicGatewayDhcpReservation("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.network.PublicGatewayPatRule("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:network/publicGatewayPatRule:PublicGatewayPatRule main fr-par-1/11111111-1111-1111-1111-111111111111
420
+ ```
421
+
422
+ :param str resource_name: The name of the resource.
423
+ :param PublicGatewayPatRuleArgs 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(PublicGatewayPatRuleArgs, 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__ = PublicGatewayPatRuleArgs.__new__(PublicGatewayPatRuleArgs)
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
+ alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/vpcPublicGatewayPatRule:VpcPublicGatewayPatRule")])
470
+ opts = pulumi.ResourceOptions.merge(opts, alias_opts)
471
+ super(PublicGatewayPatRule, __self__).__init__(
472
+ 'scaleway:network/publicGatewayPatRule:PublicGatewayPatRule',
473
+ resource_name,
474
+ __props__,
475
+ opts)
476
+
477
+ @staticmethod
478
+ def get(resource_name: str,
479
+ id: pulumi.Input[str],
480
+ opts: Optional[pulumi.ResourceOptions] = None,
481
+ created_at: Optional[pulumi.Input[str]] = None,
482
+ gateway_id: Optional[pulumi.Input[str]] = None,
483
+ organization_id: Optional[pulumi.Input[str]] = None,
484
+ private_ip: Optional[pulumi.Input[str]] = None,
485
+ private_port: Optional[pulumi.Input[int]] = None,
486
+ protocol: Optional[pulumi.Input[str]] = None,
487
+ public_port: Optional[pulumi.Input[int]] = None,
488
+ updated_at: Optional[pulumi.Input[str]] = None,
489
+ zone: Optional[pulumi.Input[str]] = None) -> 'PublicGatewayPatRule':
490
+ """
491
+ Get an existing PublicGatewayPatRule resource's state with the given name, id, and optional extra
492
+ properties used to qualify the lookup.
493
+
494
+ :param str resource_name: The unique name of the resulting resource.
495
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
496
+ :param pulumi.ResourceOptions opts: Options for the resource.
497
+ :param pulumi.Input[str] created_at: The date and time of the creation of the PAT rule configuration.
498
+ :param pulumi.Input[str] gateway_id: The ID of the Public Gateway.
499
+ :param pulumi.Input[str] organization_id: The Organization ID the PAT rule configuration is associated with.
500
+ :param pulumi.Input[str] private_ip: The private IP address to forward data to.
501
+ :param pulumi.Input[int] private_port: The private port to translate to.
502
+ :param pulumi.Input[str] protocol: The protocol the rule should apply to. Possible values are `both`, `tcp` and `udp`.
503
+ :param pulumi.Input[int] public_port: The public port to listen on.
504
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the PAT rule configuration.
505
+ :param pulumi.Input[str] zone: `zone`) The zone in which the Public Gateway DHCP configuration should be created.
506
+ """
507
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
508
+
509
+ __props__ = _PublicGatewayPatRuleState.__new__(_PublicGatewayPatRuleState)
510
+
511
+ __props__.__dict__["created_at"] = created_at
512
+ __props__.__dict__["gateway_id"] = gateway_id
513
+ __props__.__dict__["organization_id"] = organization_id
514
+ __props__.__dict__["private_ip"] = private_ip
515
+ __props__.__dict__["private_port"] = private_port
516
+ __props__.__dict__["protocol"] = protocol
517
+ __props__.__dict__["public_port"] = public_port
518
+ __props__.__dict__["updated_at"] = updated_at
519
+ __props__.__dict__["zone"] = zone
520
+ return PublicGatewayPatRule(resource_name, opts=opts, __props__=__props__)
521
+
522
+ @property
523
+ @pulumi.getter(name="createdAt")
524
+ def created_at(self) -> pulumi.Output[str]:
525
+ """
526
+ The date and time of the creation of the PAT rule configuration.
527
+ """
528
+ return pulumi.get(self, "created_at")
529
+
530
+ @property
531
+ @pulumi.getter(name="gatewayId")
532
+ def gateway_id(self) -> pulumi.Output[str]:
533
+ """
534
+ The ID of the Public Gateway.
535
+ """
536
+ return pulumi.get(self, "gateway_id")
537
+
538
+ @property
539
+ @pulumi.getter(name="organizationId")
540
+ def organization_id(self) -> pulumi.Output[str]:
541
+ """
542
+ The Organization ID the PAT rule configuration is associated with.
543
+ """
544
+ return pulumi.get(self, "organization_id")
545
+
546
+ @property
547
+ @pulumi.getter(name="privateIp")
548
+ def private_ip(self) -> pulumi.Output[str]:
549
+ """
550
+ The private IP address to forward data to.
551
+ """
552
+ return pulumi.get(self, "private_ip")
553
+
554
+ @property
555
+ @pulumi.getter(name="privatePort")
556
+ def private_port(self) -> pulumi.Output[int]:
557
+ """
558
+ The private port to translate to.
559
+ """
560
+ return pulumi.get(self, "private_port")
561
+
562
+ @property
563
+ @pulumi.getter
564
+ def protocol(self) -> pulumi.Output[Optional[str]]:
565
+ """
566
+ The protocol the rule should apply to. Possible values are `both`, `tcp` and `udp`.
567
+ """
568
+ return pulumi.get(self, "protocol")
569
+
570
+ @property
571
+ @pulumi.getter(name="publicPort")
572
+ def public_port(self) -> pulumi.Output[int]:
573
+ """
574
+ The public port to listen on.
575
+ """
576
+ return pulumi.get(self, "public_port")
577
+
578
+ @property
579
+ @pulumi.getter(name="updatedAt")
580
+ def updated_at(self) -> pulumi.Output[str]:
581
+ """
582
+ The date and time of the last update of the PAT rule configuration.
583
+ """
584
+ return pulumi.get(self, "updated_at")
585
+
586
+ @property
587
+ @pulumi.getter
588
+ def zone(self) -> pulumi.Output[str]:
589
+ """
590
+ `zone`) The zone in which the Public Gateway DHCP configuration should be created.
591
+ """
592
+ return pulumi.get(self, "zone")
593
+