pulumiverse-scaleway 1.25.0a1742464679__py3-none-any.whl → 1.26.0a1742897201__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 (461) hide show
  1. pulumiverse_scaleway/__init__.py +929 -0
  2. pulumiverse_scaleway/account/__init__.py +12 -0
  3. pulumiverse_scaleway/account/get_availability_zones.py +139 -0
  4. pulumiverse_scaleway/account/get_project.py +170 -0
  5. pulumiverse_scaleway/account/get_ssh_key.py +205 -0
  6. pulumiverse_scaleway/account/project.py +318 -0
  7. pulumiverse_scaleway/account/ssh_key.py +456 -0
  8. pulumiverse_scaleway/account_project.py +6 -0
  9. pulumiverse_scaleway/account_ssh_key.py +12 -6
  10. pulumiverse_scaleway/apple_silicon_server.py +8 -2
  11. pulumiverse_scaleway/applesilicon/__init__.py +10 -0
  12. pulumiverse_scaleway/applesilicon/_inputs.py +154 -0
  13. pulumiverse_scaleway/applesilicon/outputs.py +119 -0
  14. pulumiverse_scaleway/applesilicon/server.py +690 -0
  15. pulumiverse_scaleway/baremetal_server.py +64 -58
  16. pulumiverse_scaleway/billing/__init__.py +10 -0
  17. pulumiverse_scaleway/billing/get_consumptions.py +134 -0
  18. pulumiverse_scaleway/billing/get_invoices.py +154 -0
  19. pulumiverse_scaleway/billing/outputs.py +288 -0
  20. pulumiverse_scaleway/block/__init__.py +11 -0
  21. pulumiverse_scaleway/block/get_snapshot.py +174 -0
  22. pulumiverse_scaleway/block/get_volume.py +199 -0
  23. pulumiverse_scaleway/block/snapshot.py +403 -0
  24. pulumiverse_scaleway/block/volume.py +576 -0
  25. pulumiverse_scaleway/block_snapshot.py +12 -6
  26. pulumiverse_scaleway/block_volume.py +16 -10
  27. pulumiverse_scaleway/cockpit.py +10 -4
  28. pulumiverse_scaleway/cockpit_alert_manager.py +12 -6
  29. pulumiverse_scaleway/cockpit_grafana_user.py +12 -6
  30. pulumiverse_scaleway/cockpit_source.py +12 -6
  31. pulumiverse_scaleway/cockpit_token.py +16 -10
  32. pulumiverse_scaleway/container.py +16 -10
  33. pulumiverse_scaleway/container_cron.py +14 -8
  34. pulumiverse_scaleway/container_domain.py +24 -18
  35. pulumiverse_scaleway/container_namespace.py +10 -4
  36. pulumiverse_scaleway/container_token.py +32 -26
  37. pulumiverse_scaleway/container_trigger.py +12 -6
  38. pulumiverse_scaleway/containers/__init__.py +17 -0
  39. pulumiverse_scaleway/containers/_inputs.py +389 -0
  40. pulumiverse_scaleway/containers/container.py +1635 -0
  41. pulumiverse_scaleway/containers/cron.py +460 -0
  42. pulumiverse_scaleway/containers/domain.py +408 -0
  43. pulumiverse_scaleway/containers/get_container.py +562 -0
  44. pulumiverse_scaleway/containers/get_namespace.py +283 -0
  45. pulumiverse_scaleway/containers/namespace.py +638 -0
  46. pulumiverse_scaleway/containers/outputs.py +412 -0
  47. pulumiverse_scaleway/containers/token.py +454 -0
  48. pulumiverse_scaleway/containers/trigger.py +482 -0
  49. pulumiverse_scaleway/database.py +10 -4
  50. pulumiverse_scaleway/database_acl.py +10 -4
  51. pulumiverse_scaleway/database_backup.py +14 -8
  52. pulumiverse_scaleway/database_instance.py +24 -18
  53. pulumiverse_scaleway/database_privilege.py +16 -10
  54. pulumiverse_scaleway/database_read_replica.py +22 -16
  55. pulumiverse_scaleway/database_user.py +10 -4
  56. pulumiverse_scaleway/databases/__init__.py +23 -0
  57. pulumiverse_scaleway/databases/_inputs.py +822 -0
  58. pulumiverse_scaleway/databases/acl.py +334 -0
  59. pulumiverse_scaleway/databases/database.py +409 -0
  60. pulumiverse_scaleway/databases/database_backup.py +576 -0
  61. pulumiverse_scaleway/databases/get_acl.py +143 -0
  62. pulumiverse_scaleway/databases/get_database.py +187 -0
  63. pulumiverse_scaleway/databases/get_database_backup.py +253 -0
  64. pulumiverse_scaleway/databases/get_instance.py +415 -0
  65. pulumiverse_scaleway/databases/get_privilege.py +181 -0
  66. pulumiverse_scaleway/databases/instance.py +1696 -0
  67. pulumiverse_scaleway/databases/outputs.py +866 -0
  68. pulumiverse_scaleway/databases/privilege.py +424 -0
  69. pulumiverse_scaleway/databases/read_replica.py +530 -0
  70. pulumiverse_scaleway/databases/serverless_database.py +434 -0
  71. pulumiverse_scaleway/databases/snapshot.py +610 -0
  72. pulumiverse_scaleway/databases/user.py +448 -0
  73. pulumiverse_scaleway/domain/__init__.py +13 -0
  74. pulumiverse_scaleway/domain/_inputs.py +341 -0
  75. pulumiverse_scaleway/domain/get_record.py +340 -0
  76. pulumiverse_scaleway/domain/get_zone.py +201 -0
  77. pulumiverse_scaleway/domain/outputs.py +408 -0
  78. pulumiverse_scaleway/domain/record.py +1118 -0
  79. pulumiverse_scaleway/domain/zone.py +432 -0
  80. pulumiverse_scaleway/domain_record.py +36 -30
  81. pulumiverse_scaleway/domain_zone.py +6 -0
  82. pulumiverse_scaleway/elasticmetal/__init__.py +18 -0
  83. pulumiverse_scaleway/elasticmetal/_inputs.py +509 -0
  84. pulumiverse_scaleway/elasticmetal/get_ip.py +247 -0
  85. pulumiverse_scaleway/elasticmetal/get_ips.py +240 -0
  86. pulumiverse_scaleway/elasticmetal/get_offer.py +245 -0
  87. pulumiverse_scaleway/elasticmetal/get_option.py +168 -0
  88. pulumiverse_scaleway/elasticmetal/get_os.py +174 -0
  89. pulumiverse_scaleway/elasticmetal/get_server.py +422 -0
  90. pulumiverse_scaleway/elasticmetal/ip.py +704 -0
  91. pulumiverse_scaleway/elasticmetal/ip_mac_address.py +512 -0
  92. pulumiverse_scaleway/elasticmetal/outputs.py +974 -0
  93. pulumiverse_scaleway/elasticmetal/server.py +1591 -0
  94. pulumiverse_scaleway/flexible_ip.py +22 -16
  95. pulumiverse_scaleway/flexible_ip_mac_address.py +22 -16
  96. pulumiverse_scaleway/function.py +6 -0
  97. pulumiverse_scaleway/function_cron.py +16 -10
  98. pulumiverse_scaleway/function_domain.py +16 -10
  99. pulumiverse_scaleway/function_namespace.py +10 -4
  100. pulumiverse_scaleway/function_token.py +32 -26
  101. pulumiverse_scaleway/function_trigger.py +12 -6
  102. pulumiverse_scaleway/functions/__init__.py +17 -0
  103. pulumiverse_scaleway/functions/_inputs.py +211 -0
  104. pulumiverse_scaleway/functions/cron.py +464 -0
  105. pulumiverse_scaleway/functions/domain.py +372 -0
  106. pulumiverse_scaleway/functions/function.py +1105 -0
  107. pulumiverse_scaleway/functions/get_function.py +365 -0
  108. pulumiverse_scaleway/functions/get_namespace.py +238 -0
  109. pulumiverse_scaleway/functions/namespace.py +582 -0
  110. pulumiverse_scaleway/functions/outputs.py +168 -0
  111. pulumiverse_scaleway/functions/token.py +462 -0
  112. pulumiverse_scaleway/functions/trigger.py +482 -0
  113. pulumiverse_scaleway/get_account_project.py +6 -2
  114. pulumiverse_scaleway/get_account_ssh_key.py +6 -2
  115. pulumiverse_scaleway/get_availability_zones.py +8 -4
  116. pulumiverse_scaleway/get_baremetal_offer.py +4 -0
  117. pulumiverse_scaleway/get_baremetal_option.py +8 -4
  118. pulumiverse_scaleway/get_baremetal_os.py +8 -4
  119. pulumiverse_scaleway/get_baremetal_server.py +8 -4
  120. pulumiverse_scaleway/get_billing_consumptions.py +4 -0
  121. pulumiverse_scaleway/get_billing_invoices.py +4 -0
  122. pulumiverse_scaleway/get_block_snapshot.py +6 -2
  123. pulumiverse_scaleway/get_block_volume.py +6 -2
  124. pulumiverse_scaleway/get_cockpit.py +12 -8
  125. pulumiverse_scaleway/get_cockpit_plan.py +10 -6
  126. pulumiverse_scaleway/get_cockpit_source.py +8 -4
  127. pulumiverse_scaleway/get_container.py +16 -12
  128. pulumiverse_scaleway/get_container_namespace.py +10 -6
  129. pulumiverse_scaleway/get_database.py +6 -2
  130. pulumiverse_scaleway/get_database_acl.py +6 -2
  131. pulumiverse_scaleway/get_database_backup.py +10 -6
  132. pulumiverse_scaleway/get_database_instance.py +4 -0
  133. pulumiverse_scaleway/get_database_privilege.py +6 -2
  134. pulumiverse_scaleway/get_domain_record.py +10 -6
  135. pulumiverse_scaleway/get_domain_zone.py +4 -0
  136. pulumiverse_scaleway/get_flexible_ip.py +4 -0
  137. pulumiverse_scaleway/get_flexible_ips.py +16 -12
  138. pulumiverse_scaleway/get_function.py +6 -2
  139. pulumiverse_scaleway/get_function_namespace.py +6 -2
  140. pulumiverse_scaleway/get_iam_api_key.py +6 -2
  141. pulumiverse_scaleway/get_iam_application.py +8 -4
  142. pulumiverse_scaleway/get_iam_group.py +8 -4
  143. pulumiverse_scaleway/get_iam_ssh_key.py +4 -0
  144. pulumiverse_scaleway/get_iam_user.py +8 -4
  145. pulumiverse_scaleway/get_instance_image.py +4 -0
  146. pulumiverse_scaleway/get_instance_ip.py +4 -0
  147. pulumiverse_scaleway/get_instance_placement_group.py +4 -0
  148. pulumiverse_scaleway/get_instance_private_nic.py +10 -6
  149. pulumiverse_scaleway/get_instance_security_group.py +4 -0
  150. pulumiverse_scaleway/get_instance_server.py +4 -0
  151. pulumiverse_scaleway/get_instance_servers.py +4 -0
  152. pulumiverse_scaleway/get_instance_snapshot.py +8 -4
  153. pulumiverse_scaleway/get_instance_volume.py +4 -0
  154. pulumiverse_scaleway/get_iot_device.py +4 -0
  155. pulumiverse_scaleway/get_iot_hub.py +4 -0
  156. pulumiverse_scaleway/get_ipam_ip.py +18 -14
  157. pulumiverse_scaleway/get_ipam_ips.py +14 -10
  158. pulumiverse_scaleway/get_k8s_version.py +8 -4
  159. pulumiverse_scaleway/get_kubernetes_cluster.py +4 -0
  160. pulumiverse_scaleway/get_kubernetes_node_pool.py +4 -0
  161. pulumiverse_scaleway/get_lb_acls.py +8 -4
  162. pulumiverse_scaleway/get_lb_backend.py +18 -14
  163. pulumiverse_scaleway/get_lb_backends.py +8 -4
  164. pulumiverse_scaleway/get_lb_frontend.py +16 -12
  165. pulumiverse_scaleway/get_lb_frontends.py +8 -4
  166. pulumiverse_scaleway/get_lb_ips.py +4 -0
  167. pulumiverse_scaleway/get_lb_route.py +16 -12
  168. pulumiverse_scaleway/get_lb_routes.py +8 -4
  169. pulumiverse_scaleway/get_lbs.py +4 -0
  170. pulumiverse_scaleway/get_loadbalancer.py +8 -4
  171. pulumiverse_scaleway/get_loadbalancer_certificate.py +4 -0
  172. pulumiverse_scaleway/get_loadbalancer_ip.py +4 -0
  173. pulumiverse_scaleway/get_mnq_sns.py +8 -4
  174. pulumiverse_scaleway/get_mnq_sqs.py +8 -4
  175. pulumiverse_scaleway/get_mongo_db_instance.py +4 -0
  176. pulumiverse_scaleway/get_object_bucket.py +12 -8
  177. pulumiverse_scaleway/get_object_bucket_policy.py +8 -4
  178. pulumiverse_scaleway/get_redis_cluster.py +4 -0
  179. pulumiverse_scaleway/get_registry_image.py +4 -0
  180. pulumiverse_scaleway/get_registry_image_tag.py +4 -0
  181. pulumiverse_scaleway/get_registry_namespace.py +4 -0
  182. pulumiverse_scaleway/get_secret.py +12 -8
  183. pulumiverse_scaleway/get_secret_version.py +14 -10
  184. pulumiverse_scaleway/get_tem_domain.py +4 -0
  185. pulumiverse_scaleway/get_vpc.py +10 -6
  186. pulumiverse_scaleway/get_vpc_gateway_network.py +10 -6
  187. pulumiverse_scaleway/get_vpc_private_network.py +10 -6
  188. pulumiverse_scaleway/get_vpc_public_gateway.py +10 -6
  189. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +8 -4
  190. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +70 -66
  191. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +8 -4
  192. pulumiverse_scaleway/get_vpc_public_pat_rule.py +26 -22
  193. pulumiverse_scaleway/get_vpc_routes.py +4 -0
  194. pulumiverse_scaleway/get_vpcs.py +4 -0
  195. pulumiverse_scaleway/get_web_host_offer.py +8 -4
  196. pulumiverse_scaleway/get_webhosting.py +8 -4
  197. pulumiverse_scaleway/hosting/__init__.py +12 -0
  198. pulumiverse_scaleway/hosting/_inputs.py +295 -0
  199. pulumiverse_scaleway/hosting/get_hosting.py +354 -0
  200. pulumiverse_scaleway/hosting/get_offer.py +229 -0
  201. pulumiverse_scaleway/hosting/hosting.py +870 -0
  202. pulumiverse_scaleway/hosting/outputs.py +626 -0
  203. pulumiverse_scaleway/iam/__init__.py +21 -0
  204. pulumiverse_scaleway/iam/_inputs.py +138 -0
  205. pulumiverse_scaleway/iam/api_key.py +622 -0
  206. pulumiverse_scaleway/iam/application.py +419 -0
  207. pulumiverse_scaleway/iam/get_api_key.py +210 -0
  208. pulumiverse_scaleway/iam/get_application.py +210 -0
  209. pulumiverse_scaleway/iam/get_group.py +236 -0
  210. pulumiverse_scaleway/iam/get_ssh_key.py +212 -0
  211. pulumiverse_scaleway/iam/get_user.py +177 -0
  212. pulumiverse_scaleway/iam/group.py +568 -0
  213. pulumiverse_scaleway/iam/group_membership.py +325 -0
  214. pulumiverse_scaleway/iam/outputs.py +111 -0
  215. pulumiverse_scaleway/iam/policy.py +775 -0
  216. pulumiverse_scaleway/iam/ssh_key.py +457 -0
  217. pulumiverse_scaleway/iam/user.py +515 -0
  218. pulumiverse_scaleway/iam_api_key.py +16 -10
  219. pulumiverse_scaleway/iam_application.py +8 -2
  220. pulumiverse_scaleway/iam_group.py +12 -6
  221. pulumiverse_scaleway/iam_group_membership.py +12 -6
  222. pulumiverse_scaleway/iam_policy.py +18 -12
  223. pulumiverse_scaleway/iam_ssh_key.py +8 -2
  224. pulumiverse_scaleway/iam_user.py +8 -2
  225. pulumiverse_scaleway/inference/__init__.py +10 -0
  226. pulumiverse_scaleway/inference/_inputs.py +209 -0
  227. pulumiverse_scaleway/inference/deployment.py +824 -0
  228. pulumiverse_scaleway/inference/outputs.py +169 -0
  229. pulumiverse_scaleway/inference_deployment.py +8 -2
  230. pulumiverse_scaleway/instance/__init__.py +29 -0
  231. pulumiverse_scaleway/instance/_inputs.py +1237 -0
  232. pulumiverse_scaleway/instance/get_image.py +305 -0
  233. pulumiverse_scaleway/instance/get_ip.py +204 -0
  234. pulumiverse_scaleway/instance/get_placement_group.py +212 -0
  235. pulumiverse_scaleway/instance/get_private_nic.py +226 -0
  236. pulumiverse_scaleway/instance/get_security_group.py +268 -0
  237. pulumiverse_scaleway/instance/get_server.py +488 -0
  238. pulumiverse_scaleway/instance/get_servers.py +187 -0
  239. pulumiverse_scaleway/instance/get_snapshot.py +248 -0
  240. pulumiverse_scaleway/instance/get_volume.py +226 -0
  241. pulumiverse_scaleway/instance/image.py +752 -0
  242. pulumiverse_scaleway/instance/ip.py +471 -0
  243. pulumiverse_scaleway/instance/ip_reverse_dns.py +310 -0
  244. pulumiverse_scaleway/instance/outputs.py +1533 -0
  245. pulumiverse_scaleway/instance/placement_group.py +481 -0
  246. pulumiverse_scaleway/instance/private_nic.py +557 -0
  247. pulumiverse_scaleway/instance/security_group.py +722 -0
  248. pulumiverse_scaleway/instance/security_group_rules.py +441 -0
  249. pulumiverse_scaleway/instance/server.py +1938 -0
  250. pulumiverse_scaleway/instance/snapshot.py +671 -0
  251. pulumiverse_scaleway/instance/user_data.py +437 -0
  252. pulumiverse_scaleway/instance/volume.py +584 -0
  253. pulumiverse_scaleway/instance_image.py +18 -12
  254. pulumiverse_scaleway/instance_ip.py +8 -2
  255. pulumiverse_scaleway/instance_ip_reverse_dns.py +12 -6
  256. pulumiverse_scaleway/instance_placement_group.py +8 -2
  257. pulumiverse_scaleway/instance_private_nic.py +24 -18
  258. pulumiverse_scaleway/instance_security_group.py +6 -0
  259. pulumiverse_scaleway/instance_security_group_rules.py +22 -16
  260. pulumiverse_scaleway/instance_server.py +74 -68
  261. pulumiverse_scaleway/instance_snapshot.py +22 -16
  262. pulumiverse_scaleway/instance_user_data.py +16 -10
  263. pulumiverse_scaleway/instance_volume.py +8 -2
  264. pulumiverse_scaleway/iot/__init__.py +15 -0
  265. pulumiverse_scaleway/iot/_inputs.py +539 -0
  266. pulumiverse_scaleway/iot/device.py +752 -0
  267. pulumiverse_scaleway/iot/get_device.py +257 -0
  268. pulumiverse_scaleway/iot/get_hub.py +322 -0
  269. pulumiverse_scaleway/iot/hub.py +898 -0
  270. pulumiverse_scaleway/iot/network.py +474 -0
  271. pulumiverse_scaleway/iot/outputs.py +465 -0
  272. pulumiverse_scaleway/iot/route.py +662 -0
  273. pulumiverse_scaleway/iot_device.py +14 -8
  274. pulumiverse_scaleway/iot_hub.py +8 -2
  275. pulumiverse_scaleway/iot_network.py +12 -6
  276. pulumiverse_scaleway/iot_route.py +32 -26
  277. pulumiverse_scaleway/ipam/__init__.py +13 -0
  278. pulumiverse_scaleway/ipam/_inputs.py +442 -0
  279. pulumiverse_scaleway/ipam/get_ip.py +419 -0
  280. pulumiverse_scaleway/ipam/get_ips.py +358 -0
  281. pulumiverse_scaleway/ipam/ip.py +759 -0
  282. pulumiverse_scaleway/ipam/ip_reverse_dns.py +320 -0
  283. pulumiverse_scaleway/ipam/outputs.py +481 -0
  284. pulumiverse_scaleway/ipam_ip.py +30 -24
  285. pulumiverse_scaleway/ipam_ip_reverse_dns.py +6 -0
  286. pulumiverse_scaleway/job/__init__.py +10 -0
  287. pulumiverse_scaleway/job/_inputs.py +73 -0
  288. pulumiverse_scaleway/job/definition.py +694 -0
  289. pulumiverse_scaleway/job/outputs.py +49 -0
  290. pulumiverse_scaleway/job_definition.py +8 -2
  291. pulumiverse_scaleway/kubernetes/__init__.py +14 -0
  292. pulumiverse_scaleway/kubernetes/_inputs.py +717 -0
  293. pulumiverse_scaleway/kubernetes/cluster.py +1540 -0
  294. pulumiverse_scaleway/kubernetes/get_cluster.py +417 -0
  295. pulumiverse_scaleway/kubernetes/get_pool.py +436 -0
  296. pulumiverse_scaleway/kubernetes/get_version.py +196 -0
  297. pulumiverse_scaleway/kubernetes/outputs.py +944 -0
  298. pulumiverse_scaleway/kubernetes/pool.py +1313 -0
  299. pulumiverse_scaleway/kubernetes_cluster.py +36 -30
  300. pulumiverse_scaleway/kubernetes_node_pool.py +6 -0
  301. pulumiverse_scaleway/loadbalancer.py +35 -29
  302. pulumiverse_scaleway/loadbalancer_acl.py +8 -2
  303. pulumiverse_scaleway/loadbalancer_backend.py +10 -4
  304. pulumiverse_scaleway/loadbalancer_certificate.py +6 -0
  305. pulumiverse_scaleway/loadbalancer_frontend.py +10 -4
  306. pulumiverse_scaleway/loadbalancer_ip.py +10 -4
  307. pulumiverse_scaleway/loadbalancer_route.py +26 -20
  308. pulumiverse_scaleway/loadbalancers/__init__.py +28 -0
  309. pulumiverse_scaleway/loadbalancers/_inputs.py +1103 -0
  310. pulumiverse_scaleway/loadbalancers/acl.py +522 -0
  311. pulumiverse_scaleway/loadbalancers/backend.py +1590 -0
  312. pulumiverse_scaleway/loadbalancers/certificate.py +462 -0
  313. pulumiverse_scaleway/loadbalancers/frontend.py +831 -0
  314. pulumiverse_scaleway/loadbalancers/get_acls.py +198 -0
  315. pulumiverse_scaleway/loadbalancers/get_backend.py +486 -0
  316. pulumiverse_scaleway/loadbalancers/get_backends.py +196 -0
  317. pulumiverse_scaleway/loadbalancers/get_certificate.py +230 -0
  318. pulumiverse_scaleway/loadbalancers/get_frontend.py +274 -0
  319. pulumiverse_scaleway/loadbalancers/get_frontends.py +196 -0
  320. pulumiverse_scaleway/loadbalancers/get_ip.py +228 -0
  321. pulumiverse_scaleway/loadbalancers/get_ips.py +198 -0
  322. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +339 -0
  323. pulumiverse_scaleway/loadbalancers/get_load_balancers.py +187 -0
  324. pulumiverse_scaleway/loadbalancers/get_route.py +217 -0
  325. pulumiverse_scaleway/loadbalancers/get_routes.py +179 -0
  326. pulumiverse_scaleway/loadbalancers/ip.py +516 -0
  327. pulumiverse_scaleway/loadbalancers/load_balancer.py +1063 -0
  328. pulumiverse_scaleway/loadbalancers/outputs.py +2491 -0
  329. pulumiverse_scaleway/loadbalancers/route.py +525 -0
  330. pulumiverse_scaleway/mnq/__init__.py +20 -0
  331. pulumiverse_scaleway/mnq/_inputs.py +169 -0
  332. pulumiverse_scaleway/mnq/get_sns.py +150 -0
  333. pulumiverse_scaleway/mnq/get_sqs.py +150 -0
  334. pulumiverse_scaleway/mnq/nats_account.py +336 -0
  335. pulumiverse_scaleway/mnq/nats_credentials.py +332 -0
  336. pulumiverse_scaleway/mnq/outputs.py +149 -0
  337. pulumiverse_scaleway/mnq/sns.py +308 -0
  338. pulumiverse_scaleway/mnq/sns_credentials.py +415 -0
  339. pulumiverse_scaleway/mnq/sns_topic.py +661 -0
  340. pulumiverse_scaleway/mnq/sns_topic_subscription.py +701 -0
  341. pulumiverse_scaleway/mnq/sqs.py +306 -0
  342. pulumiverse_scaleway/mnq/sqs_credentials.py +415 -0
  343. pulumiverse_scaleway/mnq/sqs_queue.py +802 -0
  344. pulumiverse_scaleway/mnq_nats_account.py +8 -2
  345. pulumiverse_scaleway/mnq_nats_credentials.py +10 -4
  346. pulumiverse_scaleway/mnq_sns.py +12 -6
  347. pulumiverse_scaleway/mnq_sns_credentials.py +10 -4
  348. pulumiverse_scaleway/mnq_sns_topic.py +16 -10
  349. pulumiverse_scaleway/mnq_sns_topic_subscription.py +22 -16
  350. pulumiverse_scaleway/mnq_sqs.py +12 -6
  351. pulumiverse_scaleway/mnq_sqs_credentials.py +10 -4
  352. pulumiverse_scaleway/mnq_sqs_queue.py +16 -10
  353. pulumiverse_scaleway/mongo_db_instance.py +14 -8
  354. pulumiverse_scaleway/mongo_db_snapshot.py +8 -2
  355. pulumiverse_scaleway/mongodb/__init__.py +12 -0
  356. pulumiverse_scaleway/mongodb/_inputs.py +208 -0
  357. pulumiverse_scaleway/mongodb/get_instance.py +335 -0
  358. pulumiverse_scaleway/mongodb/instance.py +1000 -0
  359. pulumiverse_scaleway/mongodb/outputs.py +270 -0
  360. pulumiverse_scaleway/mongodb/snapshot.py +523 -0
  361. pulumiverse_scaleway/network/__init__.py +29 -0
  362. pulumiverse_scaleway/network/_inputs.py +383 -0
  363. pulumiverse_scaleway/network/gateway_network.py +868 -0
  364. pulumiverse_scaleway/network/get_gateway_network.py +287 -0
  365. pulumiverse_scaleway/network/get_private_network.py +282 -0
  366. pulumiverse_scaleway/network/get_public_gateway.py +304 -0
  367. pulumiverse_scaleway/network/get_public_gateway_dhcp.py +305 -0
  368. pulumiverse_scaleway/network/get_public_gateway_dhcp_reservation.py +382 -0
  369. pulumiverse_scaleway/network/get_public_gateway_ip.py +199 -0
  370. pulumiverse_scaleway/network/get_public_gateway_pat_rule.py +313 -0
  371. pulumiverse_scaleway/network/get_routes.py +208 -0
  372. pulumiverse_scaleway/network/get_vpc.py +246 -0
  373. pulumiverse_scaleway/network/get_vpcs.py +174 -0
  374. pulumiverse_scaleway/network/outputs.py +747 -0
  375. pulumiverse_scaleway/network/private_network.py +736 -0
  376. pulumiverse_scaleway/network/public_gateway.py +791 -0
  377. pulumiverse_scaleway/network/public_gateway_dhcp.py +949 -0
  378. pulumiverse_scaleway/network/public_gateway_dhcp_reservation.py +516 -0
  379. pulumiverse_scaleway/network/public_gateway_ip.py +459 -0
  380. pulumiverse_scaleway/network/public_gateway_ip_reverse_dns.py +308 -0
  381. pulumiverse_scaleway/network/public_gateway_pat_rule.py +593 -0
  382. pulumiverse_scaleway/network/route.py +579 -0
  383. pulumiverse_scaleway/network/vpc.py +538 -0
  384. pulumiverse_scaleway/object/__init__.py +17 -0
  385. pulumiverse_scaleway/object/_inputs.py +831 -0
  386. pulumiverse_scaleway/object/bucket.py +876 -0
  387. pulumiverse_scaleway/object/bucket_acl.py +598 -0
  388. pulumiverse_scaleway/object/bucket_lock_configuration.py +397 -0
  389. pulumiverse_scaleway/object/bucket_policy.py +675 -0
  390. pulumiverse_scaleway/object/bucket_website_configuration.py +536 -0
  391. pulumiverse_scaleway/object/get_bucket.py +290 -0
  392. pulumiverse_scaleway/object/get_bucket_policy.py +163 -0
  393. pulumiverse_scaleway/object/item.py +778 -0
  394. pulumiverse_scaleway/object/outputs.py +802 -0
  395. pulumiverse_scaleway/object_bucket.py +28 -22
  396. pulumiverse_scaleway/object_bucket_acl.py +14 -8
  397. pulumiverse_scaleway/object_bucket_lock_configuration.py +12 -6
  398. pulumiverse_scaleway/object_bucket_policy.py +46 -40
  399. pulumiverse_scaleway/object_bucket_website_configuration.py +18 -12
  400. pulumiverse_scaleway/object_item.py +8 -2
  401. pulumiverse_scaleway/observability/__init__.py +17 -0
  402. pulumiverse_scaleway/observability/_inputs.py +417 -0
  403. pulumiverse_scaleway/observability/alert_manager.py +403 -0
  404. pulumiverse_scaleway/observability/cockpit.py +325 -0
  405. pulumiverse_scaleway/observability/get_instance.py +205 -0
  406. pulumiverse_scaleway/observability/get_plan.py +125 -0
  407. pulumiverse_scaleway/observability/get_source.py +262 -0
  408. pulumiverse_scaleway/observability/grafana_user.py +364 -0
  409. pulumiverse_scaleway/observability/outputs.py +425 -0
  410. pulumiverse_scaleway/observability/source.py +569 -0
  411. pulumiverse_scaleway/observability/token.py +481 -0
  412. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  413. pulumiverse_scaleway/rdb_snapshot.py +16 -10
  414. pulumiverse_scaleway/redis/__init__.py +11 -0
  415. pulumiverse_scaleway/redis/_inputs.py +330 -0
  416. pulumiverse_scaleway/redis/cluster.py +1203 -0
  417. pulumiverse_scaleway/redis/get_cluster.py +347 -0
  418. pulumiverse_scaleway/redis/outputs.py +356 -0
  419. pulumiverse_scaleway/redis_cluster.py +14 -8
  420. pulumiverse_scaleway/registry/__init__.py +11 -0
  421. pulumiverse_scaleway/registry/get_image.py +239 -0
  422. pulumiverse_scaleway/registry/get_image_tag.py +229 -0
  423. pulumiverse_scaleway/registry/get_namespace.py +199 -0
  424. pulumiverse_scaleway/registry/namespace.py +460 -0
  425. pulumiverse_scaleway/registry_namespace.py +8 -2
  426. pulumiverse_scaleway/sdb_database.py +10 -4
  427. pulumiverse_scaleway/secret.py +6 -0
  428. pulumiverse_scaleway/secret_version.py +12 -6
  429. pulumiverse_scaleway/secrets/__init__.py +13 -0
  430. pulumiverse_scaleway/secrets/_inputs.py +94 -0
  431. pulumiverse_scaleway/secrets/get_secret.py +338 -0
  432. pulumiverse_scaleway/secrets/get_version.py +340 -0
  433. pulumiverse_scaleway/secrets/outputs.py +120 -0
  434. pulumiverse_scaleway/secrets/secret.py +665 -0
  435. pulumiverse_scaleway/secrets/version.py +489 -0
  436. pulumiverse_scaleway/tem/__init__.py +13 -0
  437. pulumiverse_scaleway/tem/_inputs.py +135 -0
  438. pulumiverse_scaleway/tem/domain.py +1032 -0
  439. pulumiverse_scaleway/tem/domain_validation.py +305 -0
  440. pulumiverse_scaleway/tem/get_domain.py +378 -0
  441. pulumiverse_scaleway/tem/outputs.py +171 -0
  442. pulumiverse_scaleway/tem/webhook.py +642 -0
  443. pulumiverse_scaleway/tem_domain.py +20 -14
  444. pulumiverse_scaleway/tem_domain_validation.py +10 -4
  445. pulumiverse_scaleway/tem_webhook.py +28 -22
  446. pulumiverse_scaleway/vpc.py +10 -4
  447. pulumiverse_scaleway/vpc_gateway_network.py +40 -34
  448. pulumiverse_scaleway/vpc_private_network.py +10 -4
  449. pulumiverse_scaleway/vpc_public_gateway.py +8 -2
  450. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +15 -9
  451. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +32 -26
  452. pulumiverse_scaleway/vpc_public_gateway_ip.py +10 -4
  453. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +12 -6
  454. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +26 -20
  455. pulumiverse_scaleway/vpc_route.py +16 -10
  456. pulumiverse_scaleway/webhosting.py +10 -4
  457. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.26.0a1742897201.dist-info}/METADATA +1 -1
  458. pulumiverse_scaleway-1.26.0a1742897201.dist-info/RECORD +470 -0
  459. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.26.0a1742897201.dist-info}/WHEEL +1 -1
  460. pulumiverse_scaleway-1.25.0a1742464679.dist-info/RECORD +0 -206
  461. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.26.0a1742897201.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,642 @@
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__ = ['WebhookArgs', 'Webhook']
18
+
19
+ @pulumi.input_type
20
+ class WebhookArgs:
21
+ def __init__(__self__, *,
22
+ domain_id: pulumi.Input[str],
23
+ event_types: pulumi.Input[Sequence[pulumi.Input[str]]],
24
+ sns_arn: pulumi.Input[str],
25
+ name: Optional[pulumi.Input[str]] = None,
26
+ project_id: Optional[pulumi.Input[str]] = None,
27
+ region: Optional[pulumi.Input[str]] = None):
28
+ """
29
+ The set of arguments for constructing a Webhook resource.
30
+ :param pulumi.Input[str] domain_id: The ID of the domain the webhook is associated with.
31
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] event_types: A list of event types that trigger the webhook.
32
+ :param pulumi.Input[str] sns_arn: The Amazon Resource Name (ARN) of the SNS topic.
33
+ :param pulumi.Input[str] name: The name of the webhook. Defaults to an autogenerated name if not provided.
34
+ :param pulumi.Input[str] project_id: The ID of the project the webhook is associated with.
35
+ :param pulumi.Input[str] region: . The region in which the webhook should be created.
36
+ """
37
+ pulumi.set(__self__, "domain_id", domain_id)
38
+ pulumi.set(__self__, "event_types", event_types)
39
+ pulumi.set(__self__, "sns_arn", sns_arn)
40
+ if name is not None:
41
+ pulumi.set(__self__, "name", name)
42
+ if project_id is not None:
43
+ pulumi.set(__self__, "project_id", project_id)
44
+ if region is not None:
45
+ pulumi.set(__self__, "region", region)
46
+
47
+ @property
48
+ @pulumi.getter(name="domainId")
49
+ def domain_id(self) -> pulumi.Input[str]:
50
+ """
51
+ The ID of the domain the webhook is associated with.
52
+ """
53
+ return pulumi.get(self, "domain_id")
54
+
55
+ @domain_id.setter
56
+ def domain_id(self, value: pulumi.Input[str]):
57
+ pulumi.set(self, "domain_id", value)
58
+
59
+ @property
60
+ @pulumi.getter(name="eventTypes")
61
+ def event_types(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
62
+ """
63
+ A list of event types that trigger the webhook.
64
+ """
65
+ return pulumi.get(self, "event_types")
66
+
67
+ @event_types.setter
68
+ def event_types(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
69
+ pulumi.set(self, "event_types", value)
70
+
71
+ @property
72
+ @pulumi.getter(name="snsArn")
73
+ def sns_arn(self) -> pulumi.Input[str]:
74
+ """
75
+ The Amazon Resource Name (ARN) of the SNS topic.
76
+ """
77
+ return pulumi.get(self, "sns_arn")
78
+
79
+ @sns_arn.setter
80
+ def sns_arn(self, value: pulumi.Input[str]):
81
+ pulumi.set(self, "sns_arn", value)
82
+
83
+ @property
84
+ @pulumi.getter
85
+ def name(self) -> Optional[pulumi.Input[str]]:
86
+ """
87
+ The name of the webhook. Defaults to an autogenerated name if not provided.
88
+ """
89
+ return pulumi.get(self, "name")
90
+
91
+ @name.setter
92
+ def name(self, value: Optional[pulumi.Input[str]]):
93
+ pulumi.set(self, "name", value)
94
+
95
+ @property
96
+ @pulumi.getter(name="projectId")
97
+ def project_id(self) -> Optional[pulumi.Input[str]]:
98
+ """
99
+ The ID of the project the webhook is associated with.
100
+ """
101
+ return pulumi.get(self, "project_id")
102
+
103
+ @project_id.setter
104
+ def project_id(self, value: Optional[pulumi.Input[str]]):
105
+ pulumi.set(self, "project_id", value)
106
+
107
+ @property
108
+ @pulumi.getter
109
+ def region(self) -> Optional[pulumi.Input[str]]:
110
+ """
111
+ . The region in which the webhook should be created.
112
+ """
113
+ return pulumi.get(self, "region")
114
+
115
+ @region.setter
116
+ def region(self, value: Optional[pulumi.Input[str]]):
117
+ pulumi.set(self, "region", value)
118
+
119
+
120
+ @pulumi.input_type
121
+ class _WebhookState:
122
+ def __init__(__self__, *,
123
+ created_at: Optional[pulumi.Input[str]] = None,
124
+ domain_id: Optional[pulumi.Input[str]] = None,
125
+ event_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
126
+ name: Optional[pulumi.Input[str]] = None,
127
+ organization_id: Optional[pulumi.Input[str]] = None,
128
+ project_id: Optional[pulumi.Input[str]] = None,
129
+ region: Optional[pulumi.Input[str]] = None,
130
+ sns_arn: Optional[pulumi.Input[str]] = None,
131
+ updated_at: Optional[pulumi.Input[str]] = None):
132
+ """
133
+ Input properties used for looking up and filtering Webhook resources.
134
+ :param pulumi.Input[str] created_at: The date and time of the webhook's creation (RFC 3339 format).
135
+ :param pulumi.Input[str] domain_id: The ID of the domain the webhook is associated with.
136
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] event_types: A list of event types that trigger the webhook.
137
+ :param pulumi.Input[str] name: The name of the webhook. Defaults to an autogenerated name if not provided.
138
+ :param pulumi.Input[str] organization_id: The ID of the organization the webhook belongs to.
139
+ :param pulumi.Input[str] project_id: The ID of the project the webhook is associated with.
140
+ :param pulumi.Input[str] region: . The region in which the webhook should be created.
141
+ :param pulumi.Input[str] sns_arn: The Amazon Resource Name (ARN) of the SNS topic.
142
+ :param pulumi.Input[str] updated_at: The date and time of the webhook's last update (RFC 3339 format).
143
+ """
144
+ if created_at is not None:
145
+ pulumi.set(__self__, "created_at", created_at)
146
+ if domain_id is not None:
147
+ pulumi.set(__self__, "domain_id", domain_id)
148
+ if event_types is not None:
149
+ pulumi.set(__self__, "event_types", event_types)
150
+ if name is not None:
151
+ pulumi.set(__self__, "name", name)
152
+ if organization_id is not None:
153
+ pulumi.set(__self__, "organization_id", organization_id)
154
+ if project_id is not None:
155
+ pulumi.set(__self__, "project_id", project_id)
156
+ if region is not None:
157
+ pulumi.set(__self__, "region", region)
158
+ if sns_arn is not None:
159
+ pulumi.set(__self__, "sns_arn", sns_arn)
160
+ if updated_at is not None:
161
+ pulumi.set(__self__, "updated_at", updated_at)
162
+
163
+ @property
164
+ @pulumi.getter(name="createdAt")
165
+ def created_at(self) -> Optional[pulumi.Input[str]]:
166
+ """
167
+ The date and time of the webhook's creation (RFC 3339 format).
168
+ """
169
+ return pulumi.get(self, "created_at")
170
+
171
+ @created_at.setter
172
+ def created_at(self, value: Optional[pulumi.Input[str]]):
173
+ pulumi.set(self, "created_at", value)
174
+
175
+ @property
176
+ @pulumi.getter(name="domainId")
177
+ def domain_id(self) -> Optional[pulumi.Input[str]]:
178
+ """
179
+ The ID of the domain the webhook is associated with.
180
+ """
181
+ return pulumi.get(self, "domain_id")
182
+
183
+ @domain_id.setter
184
+ def domain_id(self, value: Optional[pulumi.Input[str]]):
185
+ pulumi.set(self, "domain_id", value)
186
+
187
+ @property
188
+ @pulumi.getter(name="eventTypes")
189
+ def event_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
190
+ """
191
+ A list of event types that trigger the webhook.
192
+ """
193
+ return pulumi.get(self, "event_types")
194
+
195
+ @event_types.setter
196
+ def event_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
197
+ pulumi.set(self, "event_types", value)
198
+
199
+ @property
200
+ @pulumi.getter
201
+ def name(self) -> Optional[pulumi.Input[str]]:
202
+ """
203
+ The name of the webhook. Defaults to an autogenerated name if not provided.
204
+ """
205
+ return pulumi.get(self, "name")
206
+
207
+ @name.setter
208
+ def name(self, value: Optional[pulumi.Input[str]]):
209
+ pulumi.set(self, "name", value)
210
+
211
+ @property
212
+ @pulumi.getter(name="organizationId")
213
+ def organization_id(self) -> Optional[pulumi.Input[str]]:
214
+ """
215
+ The ID of the organization the webhook belongs to.
216
+ """
217
+ return pulumi.get(self, "organization_id")
218
+
219
+ @organization_id.setter
220
+ def organization_id(self, value: Optional[pulumi.Input[str]]):
221
+ pulumi.set(self, "organization_id", value)
222
+
223
+ @property
224
+ @pulumi.getter(name="projectId")
225
+ def project_id(self) -> Optional[pulumi.Input[str]]:
226
+ """
227
+ The ID of the project the webhook is associated with.
228
+ """
229
+ return pulumi.get(self, "project_id")
230
+
231
+ @project_id.setter
232
+ def project_id(self, value: Optional[pulumi.Input[str]]):
233
+ pulumi.set(self, "project_id", value)
234
+
235
+ @property
236
+ @pulumi.getter
237
+ def region(self) -> Optional[pulumi.Input[str]]:
238
+ """
239
+ . The region in which the webhook should be created.
240
+ """
241
+ return pulumi.get(self, "region")
242
+
243
+ @region.setter
244
+ def region(self, value: Optional[pulumi.Input[str]]):
245
+ pulumi.set(self, "region", value)
246
+
247
+ @property
248
+ @pulumi.getter(name="snsArn")
249
+ def sns_arn(self) -> Optional[pulumi.Input[str]]:
250
+ """
251
+ The Amazon Resource Name (ARN) of the SNS topic.
252
+ """
253
+ return pulumi.get(self, "sns_arn")
254
+
255
+ @sns_arn.setter
256
+ def sns_arn(self, value: Optional[pulumi.Input[str]]):
257
+ pulumi.set(self, "sns_arn", value)
258
+
259
+ @property
260
+ @pulumi.getter(name="updatedAt")
261
+ def updated_at(self) -> Optional[pulumi.Input[str]]:
262
+ """
263
+ The date and time of the webhook's last update (RFC 3339 format).
264
+ """
265
+ return pulumi.get(self, "updated_at")
266
+
267
+ @updated_at.setter
268
+ def updated_at(self, value: Optional[pulumi.Input[str]]):
269
+ pulumi.set(self, "updated_at", value)
270
+
271
+
272
+ class Webhook(pulumi.CustomResource):
273
+ @overload
274
+ def __init__(__self__,
275
+ resource_name: str,
276
+ opts: Optional[pulumi.ResourceOptions] = None,
277
+ domain_id: Optional[pulumi.Input[str]] = None,
278
+ event_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
279
+ name: Optional[pulumi.Input[str]] = None,
280
+ project_id: Optional[pulumi.Input[str]] = None,
281
+ region: Optional[pulumi.Input[str]] = None,
282
+ sns_arn: Optional[pulumi.Input[str]] = None,
283
+ __props__=None):
284
+ """
285
+ Creates and manages Scaleway Transactional Email Webhooks.
286
+ For more information, refer to the [API documentation](https://www.scaleway.com/en/developers/api/transactional-email).
287
+
288
+ ## Example Usage
289
+
290
+ ### Basic
291
+
292
+ ```python
293
+ import pulumi
294
+ import pulumiverse_scaleway as scaleway
295
+
296
+ main = scaleway.tem.Webhook("main",
297
+ domain_id="your-domain-id",
298
+ event_types=[
299
+ "email_delivered",
300
+ "email_bounced",
301
+ ],
302
+ sns_arn="arn:scw:sns:fr-par:project-xxxx:your-sns-topic",
303
+ name="example-webhook")
304
+ ```
305
+
306
+ ### Complete Example with Dependencies
307
+
308
+ ```python
309
+ import pulumi
310
+ import pulumiverse_scaleway as scaleway
311
+
312
+ config = pulumi.Config()
313
+ domain_name = config.require("domainName")
314
+ sns = scaleway.mnq.Sns("sns")
315
+ sns_credentials = scaleway.mnq.SnsCredentials("sns_credentials", permissions={
316
+ "can_manage": True,
317
+ })
318
+ sns_topic = scaleway.mnq.SnsTopic("sns_topic",
319
+ name="test-mnq-sns-topic-basic",
320
+ access_key=sns_credentials.access_key,
321
+ secret_key=sns_credentials.secret_key)
322
+ cr01 = scaleway.tem.Domain("cr01",
323
+ name=domain_name,
324
+ accept_tos=True)
325
+ spf = scaleway.domain.Record("spf",
326
+ dns_zone=domain_name,
327
+ type="TXT",
328
+ data=cr01.spf_config.apply(lambda spf_config: f"v=spf1 {spf_config} -all"))
329
+ dkim = scaleway.domain.Record("dkim",
330
+ dns_zone=domain_name,
331
+ name=cr01.project_id.apply(lambda project_id: f"{project_id}._domainkey"),
332
+ type="TXT",
333
+ data=cr01.dkim_config)
334
+ mx = scaleway.domain.Record("mx",
335
+ dns_zone=domain_name,
336
+ type="MX",
337
+ data=".")
338
+ dmarc = scaleway.domain.Record("dmarc",
339
+ dns_zone=domain_name,
340
+ name=cr01.dmarc_name,
341
+ type="TXT",
342
+ data=cr01.dmarc_config)
343
+ valid = scaleway.tem.DomainValidation("valid",
344
+ domain_id=cr01.id,
345
+ region=cr01.region,
346
+ timeout=3600)
347
+ webhook = scaleway.tem.Webhook("webhook",
348
+ name="example-webhook",
349
+ domain_id=cr01.id,
350
+ event_types=[
351
+ "email_delivered",
352
+ "email_bounced",
353
+ ],
354
+ sns_arn=sns_topic.arn,
355
+ opts = pulumi.ResourceOptions(depends_on=[
356
+ valid,
357
+ sns_topic,
358
+ ]))
359
+ ```
360
+
361
+ ## Import
362
+
363
+ Webhooks can be imported using the {region}/{id}, e.g.
364
+
365
+ bash
366
+
367
+ ```sh
368
+ $ pulumi import scaleway:tem/webhook:Webhook main fr-par/11111111-1111-1111-1111-111111111111
369
+ ```
370
+
371
+ :param str resource_name: The name of the resource.
372
+ :param pulumi.ResourceOptions opts: Options for the resource.
373
+ :param pulumi.Input[str] domain_id: The ID of the domain the webhook is associated with.
374
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] event_types: A list of event types that trigger the webhook.
375
+ :param pulumi.Input[str] name: The name of the webhook. Defaults to an autogenerated name if not provided.
376
+ :param pulumi.Input[str] project_id: The ID of the project the webhook is associated with.
377
+ :param pulumi.Input[str] region: . The region in which the webhook should be created.
378
+ :param pulumi.Input[str] sns_arn: The Amazon Resource Name (ARN) of the SNS topic.
379
+ """
380
+ ...
381
+ @overload
382
+ def __init__(__self__,
383
+ resource_name: str,
384
+ args: WebhookArgs,
385
+ opts: Optional[pulumi.ResourceOptions] = None):
386
+ """
387
+ Creates and manages Scaleway Transactional Email Webhooks.
388
+ For more information, refer to the [API documentation](https://www.scaleway.com/en/developers/api/transactional-email).
389
+
390
+ ## Example Usage
391
+
392
+ ### Basic
393
+
394
+ ```python
395
+ import pulumi
396
+ import pulumiverse_scaleway as scaleway
397
+
398
+ main = scaleway.tem.Webhook("main",
399
+ domain_id="your-domain-id",
400
+ event_types=[
401
+ "email_delivered",
402
+ "email_bounced",
403
+ ],
404
+ sns_arn="arn:scw:sns:fr-par:project-xxxx:your-sns-topic",
405
+ name="example-webhook")
406
+ ```
407
+
408
+ ### Complete Example with Dependencies
409
+
410
+ ```python
411
+ import pulumi
412
+ import pulumiverse_scaleway as scaleway
413
+
414
+ config = pulumi.Config()
415
+ domain_name = config.require("domainName")
416
+ sns = scaleway.mnq.Sns("sns")
417
+ sns_credentials = scaleway.mnq.SnsCredentials("sns_credentials", permissions={
418
+ "can_manage": True,
419
+ })
420
+ sns_topic = scaleway.mnq.SnsTopic("sns_topic",
421
+ name="test-mnq-sns-topic-basic",
422
+ access_key=sns_credentials.access_key,
423
+ secret_key=sns_credentials.secret_key)
424
+ cr01 = scaleway.tem.Domain("cr01",
425
+ name=domain_name,
426
+ accept_tos=True)
427
+ spf = scaleway.domain.Record("spf",
428
+ dns_zone=domain_name,
429
+ type="TXT",
430
+ data=cr01.spf_config.apply(lambda spf_config: f"v=spf1 {spf_config} -all"))
431
+ dkim = scaleway.domain.Record("dkim",
432
+ dns_zone=domain_name,
433
+ name=cr01.project_id.apply(lambda project_id: f"{project_id}._domainkey"),
434
+ type="TXT",
435
+ data=cr01.dkim_config)
436
+ mx = scaleway.domain.Record("mx",
437
+ dns_zone=domain_name,
438
+ type="MX",
439
+ data=".")
440
+ dmarc = scaleway.domain.Record("dmarc",
441
+ dns_zone=domain_name,
442
+ name=cr01.dmarc_name,
443
+ type="TXT",
444
+ data=cr01.dmarc_config)
445
+ valid = scaleway.tem.DomainValidation("valid",
446
+ domain_id=cr01.id,
447
+ region=cr01.region,
448
+ timeout=3600)
449
+ webhook = scaleway.tem.Webhook("webhook",
450
+ name="example-webhook",
451
+ domain_id=cr01.id,
452
+ event_types=[
453
+ "email_delivered",
454
+ "email_bounced",
455
+ ],
456
+ sns_arn=sns_topic.arn,
457
+ opts = pulumi.ResourceOptions(depends_on=[
458
+ valid,
459
+ sns_topic,
460
+ ]))
461
+ ```
462
+
463
+ ## Import
464
+
465
+ Webhooks can be imported using the {region}/{id}, e.g.
466
+
467
+ bash
468
+
469
+ ```sh
470
+ $ pulumi import scaleway:tem/webhook:Webhook main fr-par/11111111-1111-1111-1111-111111111111
471
+ ```
472
+
473
+ :param str resource_name: The name of the resource.
474
+ :param WebhookArgs args: The arguments to use to populate this resource's properties.
475
+ :param pulumi.ResourceOptions opts: Options for the resource.
476
+ """
477
+ ...
478
+ def __init__(__self__, resource_name: str, *args, **kwargs):
479
+ resource_args, opts = _utilities.get_resource_args_opts(WebhookArgs, pulumi.ResourceOptions, *args, **kwargs)
480
+ if resource_args is not None:
481
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
482
+ else:
483
+ __self__._internal_init(resource_name, *args, **kwargs)
484
+
485
+ def _internal_init(__self__,
486
+ resource_name: str,
487
+ opts: Optional[pulumi.ResourceOptions] = None,
488
+ domain_id: Optional[pulumi.Input[str]] = None,
489
+ event_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
490
+ name: Optional[pulumi.Input[str]] = None,
491
+ project_id: Optional[pulumi.Input[str]] = None,
492
+ region: Optional[pulumi.Input[str]] = None,
493
+ sns_arn: Optional[pulumi.Input[str]] = None,
494
+ __props__=None):
495
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
496
+ if not isinstance(opts, pulumi.ResourceOptions):
497
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
498
+ if opts.id is None:
499
+ if __props__ is not None:
500
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
501
+ __props__ = WebhookArgs.__new__(WebhookArgs)
502
+
503
+ if domain_id is None and not opts.urn:
504
+ raise TypeError("Missing required property 'domain_id'")
505
+ __props__.__dict__["domain_id"] = domain_id
506
+ if event_types is None and not opts.urn:
507
+ raise TypeError("Missing required property 'event_types'")
508
+ __props__.__dict__["event_types"] = event_types
509
+ __props__.__dict__["name"] = name
510
+ __props__.__dict__["project_id"] = project_id
511
+ __props__.__dict__["region"] = region
512
+ if sns_arn is None and not opts.urn:
513
+ raise TypeError("Missing required property 'sns_arn'")
514
+ __props__.__dict__["sns_arn"] = sns_arn
515
+ __props__.__dict__["created_at"] = None
516
+ __props__.__dict__["organization_id"] = None
517
+ __props__.__dict__["updated_at"] = None
518
+ alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/temWebhook:TemWebhook")])
519
+ opts = pulumi.ResourceOptions.merge(opts, alias_opts)
520
+ super(Webhook, __self__).__init__(
521
+ 'scaleway:tem/webhook:Webhook',
522
+ resource_name,
523
+ __props__,
524
+ opts)
525
+
526
+ @staticmethod
527
+ def get(resource_name: str,
528
+ id: pulumi.Input[str],
529
+ opts: Optional[pulumi.ResourceOptions] = None,
530
+ created_at: Optional[pulumi.Input[str]] = None,
531
+ domain_id: Optional[pulumi.Input[str]] = None,
532
+ event_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
533
+ name: Optional[pulumi.Input[str]] = None,
534
+ organization_id: Optional[pulumi.Input[str]] = None,
535
+ project_id: Optional[pulumi.Input[str]] = None,
536
+ region: Optional[pulumi.Input[str]] = None,
537
+ sns_arn: Optional[pulumi.Input[str]] = None,
538
+ updated_at: Optional[pulumi.Input[str]] = None) -> 'Webhook':
539
+ """
540
+ Get an existing Webhook resource's state with the given name, id, and optional extra
541
+ properties used to qualify the lookup.
542
+
543
+ :param str resource_name: The unique name of the resulting resource.
544
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
545
+ :param pulumi.ResourceOptions opts: Options for the resource.
546
+ :param pulumi.Input[str] created_at: The date and time of the webhook's creation (RFC 3339 format).
547
+ :param pulumi.Input[str] domain_id: The ID of the domain the webhook is associated with.
548
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] event_types: A list of event types that trigger the webhook.
549
+ :param pulumi.Input[str] name: The name of the webhook. Defaults to an autogenerated name if not provided.
550
+ :param pulumi.Input[str] organization_id: The ID of the organization the webhook belongs to.
551
+ :param pulumi.Input[str] project_id: The ID of the project the webhook is associated with.
552
+ :param pulumi.Input[str] region: . The region in which the webhook should be created.
553
+ :param pulumi.Input[str] sns_arn: The Amazon Resource Name (ARN) of the SNS topic.
554
+ :param pulumi.Input[str] updated_at: The date and time of the webhook's last update (RFC 3339 format).
555
+ """
556
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
557
+
558
+ __props__ = _WebhookState.__new__(_WebhookState)
559
+
560
+ __props__.__dict__["created_at"] = created_at
561
+ __props__.__dict__["domain_id"] = domain_id
562
+ __props__.__dict__["event_types"] = event_types
563
+ __props__.__dict__["name"] = name
564
+ __props__.__dict__["organization_id"] = organization_id
565
+ __props__.__dict__["project_id"] = project_id
566
+ __props__.__dict__["region"] = region
567
+ __props__.__dict__["sns_arn"] = sns_arn
568
+ __props__.__dict__["updated_at"] = updated_at
569
+ return Webhook(resource_name, opts=opts, __props__=__props__)
570
+
571
+ @property
572
+ @pulumi.getter(name="createdAt")
573
+ def created_at(self) -> pulumi.Output[str]:
574
+ """
575
+ The date and time of the webhook's creation (RFC 3339 format).
576
+ """
577
+ return pulumi.get(self, "created_at")
578
+
579
+ @property
580
+ @pulumi.getter(name="domainId")
581
+ def domain_id(self) -> pulumi.Output[str]:
582
+ """
583
+ The ID of the domain the webhook is associated with.
584
+ """
585
+ return pulumi.get(self, "domain_id")
586
+
587
+ @property
588
+ @pulumi.getter(name="eventTypes")
589
+ def event_types(self) -> pulumi.Output[Sequence[str]]:
590
+ """
591
+ A list of event types that trigger the webhook.
592
+ """
593
+ return pulumi.get(self, "event_types")
594
+
595
+ @property
596
+ @pulumi.getter
597
+ def name(self) -> pulumi.Output[str]:
598
+ """
599
+ The name of the webhook. Defaults to an autogenerated name if not provided.
600
+ """
601
+ return pulumi.get(self, "name")
602
+
603
+ @property
604
+ @pulumi.getter(name="organizationId")
605
+ def organization_id(self) -> pulumi.Output[str]:
606
+ """
607
+ The ID of the organization the webhook belongs to.
608
+ """
609
+ return pulumi.get(self, "organization_id")
610
+
611
+ @property
612
+ @pulumi.getter(name="projectId")
613
+ def project_id(self) -> pulumi.Output[str]:
614
+ """
615
+ The ID of the project the webhook is associated with.
616
+ """
617
+ return pulumi.get(self, "project_id")
618
+
619
+ @property
620
+ @pulumi.getter
621
+ def region(self) -> pulumi.Output[str]:
622
+ """
623
+ . The region in which the webhook should be created.
624
+ """
625
+ return pulumi.get(self, "region")
626
+
627
+ @property
628
+ @pulumi.getter(name="snsArn")
629
+ def sns_arn(self) -> pulumi.Output[str]:
630
+ """
631
+ The Amazon Resource Name (ARN) of the SNS topic.
632
+ """
633
+ return pulumi.get(self, "sns_arn")
634
+
635
+ @property
636
+ @pulumi.getter(name="updatedAt")
637
+ def updated_at(self) -> pulumi.Output[str]:
638
+ """
639
+ The date and time of the webhook's last update (RFC 3339 format).
640
+ """
641
+ return pulumi.get(self, "updated_at")
642
+