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,675 @@
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__ = ['BucketPolicyArgs', 'BucketPolicy']
18
+
19
+ @pulumi.input_type
20
+ class BucketPolicyArgs:
21
+ def __init__(__self__, *,
22
+ bucket: pulumi.Input[str],
23
+ policy: pulumi.Input[str],
24
+ project_id: Optional[pulumi.Input[str]] = None,
25
+ region: Optional[pulumi.Input[str]] = None):
26
+ """
27
+ The set of arguments for constructing a BucketPolicy resource.
28
+ :param pulumi.Input[str] bucket: The bucket's name or regional ID.
29
+ :param pulumi.Input[str] policy: The text of the policy.
30
+ :param pulumi.Input[str] project_id: The project_id you want to attach the resource to
31
+ :param pulumi.Input[str] region: The Scaleway region this bucket resides in.
32
+ """
33
+ pulumi.set(__self__, "bucket", bucket)
34
+ pulumi.set(__self__, "policy", policy)
35
+ if project_id is not None:
36
+ pulumi.set(__self__, "project_id", project_id)
37
+ if region is not None:
38
+ pulumi.set(__self__, "region", region)
39
+
40
+ @property
41
+ @pulumi.getter
42
+ def bucket(self) -> pulumi.Input[str]:
43
+ """
44
+ The bucket's name or regional ID.
45
+ """
46
+ return pulumi.get(self, "bucket")
47
+
48
+ @bucket.setter
49
+ def bucket(self, value: pulumi.Input[str]):
50
+ pulumi.set(self, "bucket", value)
51
+
52
+ @property
53
+ @pulumi.getter
54
+ def policy(self) -> pulumi.Input[str]:
55
+ """
56
+ The text of the policy.
57
+ """
58
+ return pulumi.get(self, "policy")
59
+
60
+ @policy.setter
61
+ def policy(self, value: pulumi.Input[str]):
62
+ pulumi.set(self, "policy", value)
63
+
64
+ @property
65
+ @pulumi.getter(name="projectId")
66
+ def project_id(self) -> Optional[pulumi.Input[str]]:
67
+ """
68
+ The project_id you want to attach the resource to
69
+ """
70
+ return pulumi.get(self, "project_id")
71
+
72
+ @project_id.setter
73
+ def project_id(self, value: Optional[pulumi.Input[str]]):
74
+ pulumi.set(self, "project_id", value)
75
+
76
+ @property
77
+ @pulumi.getter
78
+ def region(self) -> Optional[pulumi.Input[str]]:
79
+ """
80
+ The Scaleway region this bucket resides in.
81
+ """
82
+ return pulumi.get(self, "region")
83
+
84
+ @region.setter
85
+ def region(self, value: Optional[pulumi.Input[str]]):
86
+ pulumi.set(self, "region", value)
87
+
88
+
89
+ @pulumi.input_type
90
+ class _BucketPolicyState:
91
+ def __init__(__self__, *,
92
+ bucket: Optional[pulumi.Input[str]] = None,
93
+ policy: Optional[pulumi.Input[str]] = None,
94
+ project_id: Optional[pulumi.Input[str]] = None,
95
+ region: Optional[pulumi.Input[str]] = None):
96
+ """
97
+ Input properties used for looking up and filtering BucketPolicy resources.
98
+ :param pulumi.Input[str] bucket: The bucket's name or regional ID.
99
+ :param pulumi.Input[str] policy: The text of the policy.
100
+ :param pulumi.Input[str] project_id: The project_id you want to attach the resource to
101
+ :param pulumi.Input[str] region: The Scaleway region this bucket resides in.
102
+ """
103
+ if bucket is not None:
104
+ pulumi.set(__self__, "bucket", bucket)
105
+ if policy is not None:
106
+ pulumi.set(__self__, "policy", policy)
107
+ if project_id is not None:
108
+ pulumi.set(__self__, "project_id", project_id)
109
+ if region is not None:
110
+ pulumi.set(__self__, "region", region)
111
+
112
+ @property
113
+ @pulumi.getter
114
+ def bucket(self) -> Optional[pulumi.Input[str]]:
115
+ """
116
+ The bucket's name or regional ID.
117
+ """
118
+ return pulumi.get(self, "bucket")
119
+
120
+ @bucket.setter
121
+ def bucket(self, value: Optional[pulumi.Input[str]]):
122
+ pulumi.set(self, "bucket", value)
123
+
124
+ @property
125
+ @pulumi.getter
126
+ def policy(self) -> Optional[pulumi.Input[str]]:
127
+ """
128
+ The text of the policy.
129
+ """
130
+ return pulumi.get(self, "policy")
131
+
132
+ @policy.setter
133
+ def policy(self, value: Optional[pulumi.Input[str]]):
134
+ pulumi.set(self, "policy", value)
135
+
136
+ @property
137
+ @pulumi.getter(name="projectId")
138
+ def project_id(self) -> Optional[pulumi.Input[str]]:
139
+ """
140
+ The project_id you want to attach the resource to
141
+ """
142
+ return pulumi.get(self, "project_id")
143
+
144
+ @project_id.setter
145
+ def project_id(self, value: Optional[pulumi.Input[str]]):
146
+ pulumi.set(self, "project_id", value)
147
+
148
+ @property
149
+ @pulumi.getter
150
+ def region(self) -> Optional[pulumi.Input[str]]:
151
+ """
152
+ The Scaleway region this bucket resides in.
153
+ """
154
+ return pulumi.get(self, "region")
155
+
156
+ @region.setter
157
+ def region(self, value: Optional[pulumi.Input[str]]):
158
+ pulumi.set(self, "region", value)
159
+
160
+
161
+ class BucketPolicy(pulumi.CustomResource):
162
+ @overload
163
+ def __init__(__self__,
164
+ resource_name: str,
165
+ opts: Optional[pulumi.ResourceOptions] = None,
166
+ bucket: Optional[pulumi.Input[str]] = None,
167
+ policy: Optional[pulumi.Input[str]] = None,
168
+ project_id: Optional[pulumi.Input[str]] = None,
169
+ region: Optional[pulumi.Input[str]] = None,
170
+ __props__=None):
171
+ """
172
+ The `object.BucketPolicy` resource allows you to create and manage bucket policies for [Scaleway Object storage](https://www.scaleway.com/en/docs/object-storage/).
173
+
174
+ Refer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/bucket-policy/) for more information on Object Storage bucket policies.
175
+
176
+ ## Example Usage
177
+
178
+ ### Example Usage with an IAM user
179
+
180
+ ```python
181
+ import pulumi
182
+ import json
183
+ import pulumi_scaleway as scaleway
184
+ import pulumiverse_scaleway as scaleway
185
+
186
+ # Project ID
187
+ default = scaleway.account.get_project(name="default")
188
+ # IAM configuration
189
+ user = scaleway.iam.get_user(email="user@scaleway.com")
190
+ policy = scaleway.iam.Policy("policy",
191
+ name="object-storage-policy",
192
+ user_id=user.id,
193
+ rules=[{
194
+ "project_ids": [default.id],
195
+ "permission_set_names": ["ObjectStorageFullAccess"],
196
+ }])
197
+ # Object storage configuration
198
+ bucket = scaleway.object.Bucket("bucket", name="some-unique-name")
199
+ policy_bucket_policy = scaleway.object.BucketPolicy("policy",
200
+ bucket=bucket.name,
201
+ policy=pulumi.Output.json_dumps({
202
+ "Version": "2023-04-17",
203
+ "Id": "MyBucketPolicy",
204
+ "Statement": [{
205
+ "Effect": "Allow",
206
+ "Action": ["s3:*"],
207
+ "Principal": {
208
+ "SCW": f"user_id:{user.id}",
209
+ },
210
+ "Resource": [
211
+ bucket.name,
212
+ bucket.name.apply(lambda name: f"{name}/*"),
213
+ ],
214
+ }],
215
+ }))
216
+ ```
217
+
218
+ ### Example with an IAM application
219
+
220
+ ### Creating a bucket and delegating read access to an application
221
+
222
+ ```python
223
+ import pulumi
224
+ import json
225
+ import pulumi_scaleway as scaleway
226
+ import pulumiverse_scaleway as scaleway
227
+
228
+ # Project ID
229
+ default = scaleway.account.get_project(name="default")
230
+ # IAM configuration
231
+ reading_app = scaleway.iam.Application("reading-app", name="reading-app")
232
+ policy = scaleway.iam.Policy("policy",
233
+ name="object-storage-policy",
234
+ application_id=reading_app.id,
235
+ rules=[{
236
+ "project_ids": [default.id],
237
+ "permission_set_names": ["ObjectStorageBucketsRead"],
238
+ }])
239
+ # Object storage configuration
240
+ bucket = scaleway.object.Bucket("bucket", name="some-unique-name")
241
+ policy_bucket_policy = scaleway.object.BucketPolicy("policy",
242
+ bucket=bucket.id,
243
+ policy=pulumi.Output.json_dumps({
244
+ "Version": "2023-04-17",
245
+ "Statement": [{
246
+ "Sid": "Delegate read access",
247
+ "Effect": "Allow",
248
+ "Principal": {
249
+ "SCW": reading_app.id.apply(lambda id: f"application_id:{id}"),
250
+ },
251
+ "Action": [
252
+ "s3:ListBucket",
253
+ "s3:GetObject",
254
+ ],
255
+ "Resource": [
256
+ bucket.name,
257
+ bucket.name.apply(lambda name: f"{name}/*"),
258
+ ],
259
+ }],
260
+ }))
261
+ ```
262
+
263
+ ### Reading the bucket with the application
264
+
265
+ ```python
266
+ import pulumi
267
+ import pulumi_scaleway as scaleway
268
+ import pulumiverse_scaleway as scaleway
269
+
270
+ reading_app = scaleway.iam.get_application(name="reading-app")
271
+ reading_api_key = scaleway.iam.ApiKey("reading-api-key", application_id=reading_app.id)
272
+ bucket = scaleway.object.get_bucket(name="some-unique-name")
273
+ ```
274
+
275
+ ### Example with AWS provider
276
+
277
+ ```python
278
+ import pulumi
279
+ import pulumi_aws as aws
280
+ import pulumi_scaleway as scaleway
281
+ import pulumiverse_scaleway as scaleway
282
+
283
+ # Scaleway project ID
284
+ default = scaleway.account.get_project(name="default")
285
+ # Object storage configuration
286
+ bucket = scaleway.object.Bucket("bucket", name="some-unique-name")
287
+ # AWS data source
288
+ policy = aws.iam.get_policy_document_output(version="2012-10-17",
289
+ statements=[{
290
+ "sid": "Delegate access",
291
+ "effect": "Allow",
292
+ "principals": [{
293
+ "type": "SCW",
294
+ "identifiers": [f"project_id:{default.id}"],
295
+ }],
296
+ "actions": ["s3:ListBucket"],
297
+ "resources": [
298
+ bucket.name,
299
+ bucket.name.apply(lambda name: f"{name}/*"),
300
+ ],
301
+ }])
302
+ main = scaleway.object.BucketPolicy("main",
303
+ bucket=bucket.id,
304
+ policy=policy.json)
305
+ ```
306
+
307
+ ### Example with deprecated version 2012-10-17
308
+
309
+ ```python
310
+ import pulumi
311
+ import json
312
+ import pulumi_scaleway as scaleway
313
+ import pulumiverse_scaleway as scaleway
314
+
315
+ # Project ID
316
+ default = scaleway.account.get_project(name="default")
317
+ # Object storage configuration
318
+ bucket = scaleway.object.Bucket("bucket",
319
+ name="mia-cross-crash-tests",
320
+ region="fr-par")
321
+ policy = scaleway.object.BucketPolicy("policy",
322
+ bucket=bucket.name,
323
+ policy=pulumi.Output.json_dumps({
324
+ "Version": "2012-10-17",
325
+ "Statement": [{
326
+ "Effect": "Allow",
327
+ "Action": [
328
+ "s3:ListBucket",
329
+ "s3:GetObjectTagging",
330
+ ],
331
+ "Principal": {
332
+ "SCW": f"project_id:{default.id}",
333
+ },
334
+ "Resource": [
335
+ bucket.name,
336
+ bucket.name.apply(lambda name: f"{name}/*"),
337
+ ],
338
+ }],
339
+ }))
340
+ ```
341
+
342
+ **NB:** To configure the AWS provider with Scaleway credentials, refer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/object-storage-aws-cli/).
343
+
344
+ ## Import
345
+
346
+ Bucket policies can be imported using the `{region}/{bucketName}` identifier, as shown below:
347
+
348
+ bash
349
+
350
+ ```sh
351
+ $ pulumi import scaleway:object/bucketPolicy:BucketPolicy some_bucket fr-par/some-bucket
352
+ ```
353
+
354
+ ~> **Important:** The `project_id` attribute has a particular behavior with s3 products because the s3 API is scoped by project.
355
+
356
+ If you are using a project different from the default one, you have to specify the project ID at the end of the import command.
357
+
358
+ bash
359
+
360
+ ```sh
361
+ $ pulumi import scaleway:object/bucketPolicy:BucketPolicy some_bucket fr-par/some-bucket@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
362
+ ```
363
+
364
+ :param str resource_name: The name of the resource.
365
+ :param pulumi.ResourceOptions opts: Options for the resource.
366
+ :param pulumi.Input[str] bucket: The bucket's name or regional ID.
367
+ :param pulumi.Input[str] policy: The text of the policy.
368
+ :param pulumi.Input[str] project_id: The project_id you want to attach the resource to
369
+ :param pulumi.Input[str] region: The Scaleway region this bucket resides in.
370
+ """
371
+ ...
372
+ @overload
373
+ def __init__(__self__,
374
+ resource_name: str,
375
+ args: BucketPolicyArgs,
376
+ opts: Optional[pulumi.ResourceOptions] = None):
377
+ """
378
+ The `object.BucketPolicy` resource allows you to create and manage bucket policies for [Scaleway Object storage](https://www.scaleway.com/en/docs/object-storage/).
379
+
380
+ Refer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/bucket-policy/) for more information on Object Storage bucket policies.
381
+
382
+ ## Example Usage
383
+
384
+ ### Example Usage with an IAM user
385
+
386
+ ```python
387
+ import pulumi
388
+ import json
389
+ import pulumi_scaleway as scaleway
390
+ import pulumiverse_scaleway as scaleway
391
+
392
+ # Project ID
393
+ default = scaleway.account.get_project(name="default")
394
+ # IAM configuration
395
+ user = scaleway.iam.get_user(email="user@scaleway.com")
396
+ policy = scaleway.iam.Policy("policy",
397
+ name="object-storage-policy",
398
+ user_id=user.id,
399
+ rules=[{
400
+ "project_ids": [default.id],
401
+ "permission_set_names": ["ObjectStorageFullAccess"],
402
+ }])
403
+ # Object storage configuration
404
+ bucket = scaleway.object.Bucket("bucket", name="some-unique-name")
405
+ policy_bucket_policy = scaleway.object.BucketPolicy("policy",
406
+ bucket=bucket.name,
407
+ policy=pulumi.Output.json_dumps({
408
+ "Version": "2023-04-17",
409
+ "Id": "MyBucketPolicy",
410
+ "Statement": [{
411
+ "Effect": "Allow",
412
+ "Action": ["s3:*"],
413
+ "Principal": {
414
+ "SCW": f"user_id:{user.id}",
415
+ },
416
+ "Resource": [
417
+ bucket.name,
418
+ bucket.name.apply(lambda name: f"{name}/*"),
419
+ ],
420
+ }],
421
+ }))
422
+ ```
423
+
424
+ ### Example with an IAM application
425
+
426
+ ### Creating a bucket and delegating read access to an application
427
+
428
+ ```python
429
+ import pulumi
430
+ import json
431
+ import pulumi_scaleway as scaleway
432
+ import pulumiverse_scaleway as scaleway
433
+
434
+ # Project ID
435
+ default = scaleway.account.get_project(name="default")
436
+ # IAM configuration
437
+ reading_app = scaleway.iam.Application("reading-app", name="reading-app")
438
+ policy = scaleway.iam.Policy("policy",
439
+ name="object-storage-policy",
440
+ application_id=reading_app.id,
441
+ rules=[{
442
+ "project_ids": [default.id],
443
+ "permission_set_names": ["ObjectStorageBucketsRead"],
444
+ }])
445
+ # Object storage configuration
446
+ bucket = scaleway.object.Bucket("bucket", name="some-unique-name")
447
+ policy_bucket_policy = scaleway.object.BucketPolicy("policy",
448
+ bucket=bucket.id,
449
+ policy=pulumi.Output.json_dumps({
450
+ "Version": "2023-04-17",
451
+ "Statement": [{
452
+ "Sid": "Delegate read access",
453
+ "Effect": "Allow",
454
+ "Principal": {
455
+ "SCW": reading_app.id.apply(lambda id: f"application_id:{id}"),
456
+ },
457
+ "Action": [
458
+ "s3:ListBucket",
459
+ "s3:GetObject",
460
+ ],
461
+ "Resource": [
462
+ bucket.name,
463
+ bucket.name.apply(lambda name: f"{name}/*"),
464
+ ],
465
+ }],
466
+ }))
467
+ ```
468
+
469
+ ### Reading the bucket with the application
470
+
471
+ ```python
472
+ import pulumi
473
+ import pulumi_scaleway as scaleway
474
+ import pulumiverse_scaleway as scaleway
475
+
476
+ reading_app = scaleway.iam.get_application(name="reading-app")
477
+ reading_api_key = scaleway.iam.ApiKey("reading-api-key", application_id=reading_app.id)
478
+ bucket = scaleway.object.get_bucket(name="some-unique-name")
479
+ ```
480
+
481
+ ### Example with AWS provider
482
+
483
+ ```python
484
+ import pulumi
485
+ import pulumi_aws as aws
486
+ import pulumi_scaleway as scaleway
487
+ import pulumiverse_scaleway as scaleway
488
+
489
+ # Scaleway project ID
490
+ default = scaleway.account.get_project(name="default")
491
+ # Object storage configuration
492
+ bucket = scaleway.object.Bucket("bucket", name="some-unique-name")
493
+ # AWS data source
494
+ policy = aws.iam.get_policy_document_output(version="2012-10-17",
495
+ statements=[{
496
+ "sid": "Delegate access",
497
+ "effect": "Allow",
498
+ "principals": [{
499
+ "type": "SCW",
500
+ "identifiers": [f"project_id:{default.id}"],
501
+ }],
502
+ "actions": ["s3:ListBucket"],
503
+ "resources": [
504
+ bucket.name,
505
+ bucket.name.apply(lambda name: f"{name}/*"),
506
+ ],
507
+ }])
508
+ main = scaleway.object.BucketPolicy("main",
509
+ bucket=bucket.id,
510
+ policy=policy.json)
511
+ ```
512
+
513
+ ### Example with deprecated version 2012-10-17
514
+
515
+ ```python
516
+ import pulumi
517
+ import json
518
+ import pulumi_scaleway as scaleway
519
+ import pulumiverse_scaleway as scaleway
520
+
521
+ # Project ID
522
+ default = scaleway.account.get_project(name="default")
523
+ # Object storage configuration
524
+ bucket = scaleway.object.Bucket("bucket",
525
+ name="mia-cross-crash-tests",
526
+ region="fr-par")
527
+ policy = scaleway.object.BucketPolicy("policy",
528
+ bucket=bucket.name,
529
+ policy=pulumi.Output.json_dumps({
530
+ "Version": "2012-10-17",
531
+ "Statement": [{
532
+ "Effect": "Allow",
533
+ "Action": [
534
+ "s3:ListBucket",
535
+ "s3:GetObjectTagging",
536
+ ],
537
+ "Principal": {
538
+ "SCW": f"project_id:{default.id}",
539
+ },
540
+ "Resource": [
541
+ bucket.name,
542
+ bucket.name.apply(lambda name: f"{name}/*"),
543
+ ],
544
+ }],
545
+ }))
546
+ ```
547
+
548
+ **NB:** To configure the AWS provider with Scaleway credentials, refer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/object-storage-aws-cli/).
549
+
550
+ ## Import
551
+
552
+ Bucket policies can be imported using the `{region}/{bucketName}` identifier, as shown below:
553
+
554
+ bash
555
+
556
+ ```sh
557
+ $ pulumi import scaleway:object/bucketPolicy:BucketPolicy some_bucket fr-par/some-bucket
558
+ ```
559
+
560
+ ~> **Important:** The `project_id` attribute has a particular behavior with s3 products because the s3 API is scoped by project.
561
+
562
+ If you are using a project different from the default one, you have to specify the project ID at the end of the import command.
563
+
564
+ bash
565
+
566
+ ```sh
567
+ $ pulumi import scaleway:object/bucketPolicy:BucketPolicy some_bucket fr-par/some-bucket@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
568
+ ```
569
+
570
+ :param str resource_name: The name of the resource.
571
+ :param BucketPolicyArgs args: The arguments to use to populate this resource's properties.
572
+ :param pulumi.ResourceOptions opts: Options for the resource.
573
+ """
574
+ ...
575
+ def __init__(__self__, resource_name: str, *args, **kwargs):
576
+ resource_args, opts = _utilities.get_resource_args_opts(BucketPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
577
+ if resource_args is not None:
578
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
579
+ else:
580
+ __self__._internal_init(resource_name, *args, **kwargs)
581
+
582
+ def _internal_init(__self__,
583
+ resource_name: str,
584
+ opts: Optional[pulumi.ResourceOptions] = None,
585
+ bucket: Optional[pulumi.Input[str]] = None,
586
+ policy: Optional[pulumi.Input[str]] = None,
587
+ project_id: Optional[pulumi.Input[str]] = None,
588
+ region: Optional[pulumi.Input[str]] = None,
589
+ __props__=None):
590
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
591
+ if not isinstance(opts, pulumi.ResourceOptions):
592
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
593
+ if opts.id is None:
594
+ if __props__ is not None:
595
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
596
+ __props__ = BucketPolicyArgs.__new__(BucketPolicyArgs)
597
+
598
+ if bucket is None and not opts.urn:
599
+ raise TypeError("Missing required property 'bucket'")
600
+ __props__.__dict__["bucket"] = bucket
601
+ if policy is None and not opts.urn:
602
+ raise TypeError("Missing required property 'policy'")
603
+ __props__.__dict__["policy"] = policy
604
+ __props__.__dict__["project_id"] = project_id
605
+ __props__.__dict__["region"] = region
606
+ alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/objectBucketPolicy:ObjectBucketPolicy")])
607
+ opts = pulumi.ResourceOptions.merge(opts, alias_opts)
608
+ super(BucketPolicy, __self__).__init__(
609
+ 'scaleway:object/bucketPolicy:BucketPolicy',
610
+ resource_name,
611
+ __props__,
612
+ opts)
613
+
614
+ @staticmethod
615
+ def get(resource_name: str,
616
+ id: pulumi.Input[str],
617
+ opts: Optional[pulumi.ResourceOptions] = None,
618
+ bucket: Optional[pulumi.Input[str]] = None,
619
+ policy: Optional[pulumi.Input[str]] = None,
620
+ project_id: Optional[pulumi.Input[str]] = None,
621
+ region: Optional[pulumi.Input[str]] = None) -> 'BucketPolicy':
622
+ """
623
+ Get an existing BucketPolicy resource's state with the given name, id, and optional extra
624
+ properties used to qualify the lookup.
625
+
626
+ :param str resource_name: The unique name of the resulting resource.
627
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
628
+ :param pulumi.ResourceOptions opts: Options for the resource.
629
+ :param pulumi.Input[str] bucket: The bucket's name or regional ID.
630
+ :param pulumi.Input[str] policy: The text of the policy.
631
+ :param pulumi.Input[str] project_id: The project_id you want to attach the resource to
632
+ :param pulumi.Input[str] region: The Scaleway region this bucket resides in.
633
+ """
634
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
635
+
636
+ __props__ = _BucketPolicyState.__new__(_BucketPolicyState)
637
+
638
+ __props__.__dict__["bucket"] = bucket
639
+ __props__.__dict__["policy"] = policy
640
+ __props__.__dict__["project_id"] = project_id
641
+ __props__.__dict__["region"] = region
642
+ return BucketPolicy(resource_name, opts=opts, __props__=__props__)
643
+
644
+ @property
645
+ @pulumi.getter
646
+ def bucket(self) -> pulumi.Output[str]:
647
+ """
648
+ The bucket's name or regional ID.
649
+ """
650
+ return pulumi.get(self, "bucket")
651
+
652
+ @property
653
+ @pulumi.getter
654
+ def policy(self) -> pulumi.Output[str]:
655
+ """
656
+ The text of the policy.
657
+ """
658
+ return pulumi.get(self, "policy")
659
+
660
+ @property
661
+ @pulumi.getter(name="projectId")
662
+ def project_id(self) -> pulumi.Output[str]:
663
+ """
664
+ The project_id you want to attach the resource to
665
+ """
666
+ return pulumi.get(self, "project_id")
667
+
668
+ @property
669
+ @pulumi.getter
670
+ def region(self) -> pulumi.Output[str]:
671
+ """
672
+ The Scaleway region this bucket resides in.
673
+ """
674
+ return pulumi.get(self, "region")
675
+