pulumiverse-scaleway 1.24.0a1741679978__py3-none-any.whl → 1.25.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 (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.24.0a1741679978.dist-info → pulumiverse_scaleway-1.25.0.dist-info}/METADATA +2 -2
  458. pulumiverse_scaleway-1.25.0.dist-info/RECORD +470 -0
  459. {pulumiverse_scaleway-1.24.0a1741679978.dist-info → pulumiverse_scaleway-1.25.0.dist-info}/WHEEL +1 -1
  460. pulumiverse_scaleway-1.24.0a1741679978.dist-info/RECORD +0 -206
  461. {pulumiverse_scaleway-1.24.0a1741679978.dist-info → pulumiverse_scaleway-1.25.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,775 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['PolicyArgs', 'Policy']
20
+
21
+ @pulumi.input_type
22
+ class PolicyArgs:
23
+ def __init__(__self__, *,
24
+ rules: pulumi.Input[Sequence[pulumi.Input['PolicyRuleArgs']]],
25
+ application_id: Optional[pulumi.Input[str]] = None,
26
+ description: Optional[pulumi.Input[str]] = None,
27
+ group_id: Optional[pulumi.Input[str]] = None,
28
+ name: Optional[pulumi.Input[str]] = None,
29
+ no_principal: Optional[pulumi.Input[bool]] = None,
30
+ organization_id: Optional[pulumi.Input[str]] = None,
31
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
32
+ user_id: Optional[pulumi.Input[str]] = None):
33
+ """
34
+ The set of arguments for constructing a Policy resource.
35
+ :param pulumi.Input[Sequence[pulumi.Input['PolicyRuleArgs']]] rules: List of rules in the policy.
36
+ :param pulumi.Input[str] application_id: ID of the application the policy will be linked to
37
+ :param pulumi.Input[str] description: The description of the IAM policy.
38
+ :param pulumi.Input[str] group_id: ID of the group the policy will be linked to
39
+ :param pulumi.Input[str] name: The name of the IAM policy.
40
+ :param pulumi.Input[bool] no_principal: If the policy doesn't apply to a principal.
41
+
42
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
43
+ :param pulumi.Input[str] organization_id: `organization_id`) The ID of the organization the policy is associated with.
44
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the IAM policy.
45
+ :param pulumi.Input[str] user_id: ID of the user the policy will be linked to
46
+ """
47
+ pulumi.set(__self__, "rules", rules)
48
+ if application_id is not None:
49
+ pulumi.set(__self__, "application_id", application_id)
50
+ if description is not None:
51
+ pulumi.set(__self__, "description", description)
52
+ if group_id is not None:
53
+ pulumi.set(__self__, "group_id", group_id)
54
+ if name is not None:
55
+ pulumi.set(__self__, "name", name)
56
+ if no_principal is not None:
57
+ pulumi.set(__self__, "no_principal", no_principal)
58
+ if organization_id is not None:
59
+ pulumi.set(__self__, "organization_id", organization_id)
60
+ if tags is not None:
61
+ pulumi.set(__self__, "tags", tags)
62
+ if user_id is not None:
63
+ pulumi.set(__self__, "user_id", user_id)
64
+
65
+ @property
66
+ @pulumi.getter
67
+ def rules(self) -> pulumi.Input[Sequence[pulumi.Input['PolicyRuleArgs']]]:
68
+ """
69
+ List of rules in the policy.
70
+ """
71
+ return pulumi.get(self, "rules")
72
+
73
+ @rules.setter
74
+ def rules(self, value: pulumi.Input[Sequence[pulumi.Input['PolicyRuleArgs']]]):
75
+ pulumi.set(self, "rules", value)
76
+
77
+ @property
78
+ @pulumi.getter(name="applicationId")
79
+ def application_id(self) -> Optional[pulumi.Input[str]]:
80
+ """
81
+ ID of the application the policy will be linked to
82
+ """
83
+ return pulumi.get(self, "application_id")
84
+
85
+ @application_id.setter
86
+ def application_id(self, value: Optional[pulumi.Input[str]]):
87
+ pulumi.set(self, "application_id", value)
88
+
89
+ @property
90
+ @pulumi.getter
91
+ def description(self) -> Optional[pulumi.Input[str]]:
92
+ """
93
+ The description of the IAM policy.
94
+ """
95
+ return pulumi.get(self, "description")
96
+
97
+ @description.setter
98
+ def description(self, value: Optional[pulumi.Input[str]]):
99
+ pulumi.set(self, "description", value)
100
+
101
+ @property
102
+ @pulumi.getter(name="groupId")
103
+ def group_id(self) -> Optional[pulumi.Input[str]]:
104
+ """
105
+ ID of the group the policy will be linked to
106
+ """
107
+ return pulumi.get(self, "group_id")
108
+
109
+ @group_id.setter
110
+ def group_id(self, value: Optional[pulumi.Input[str]]):
111
+ pulumi.set(self, "group_id", value)
112
+
113
+ @property
114
+ @pulumi.getter
115
+ def name(self) -> Optional[pulumi.Input[str]]:
116
+ """
117
+ The name of the IAM policy.
118
+ """
119
+ return pulumi.get(self, "name")
120
+
121
+ @name.setter
122
+ def name(self, value: Optional[pulumi.Input[str]]):
123
+ pulumi.set(self, "name", value)
124
+
125
+ @property
126
+ @pulumi.getter(name="noPrincipal")
127
+ def no_principal(self) -> Optional[pulumi.Input[bool]]:
128
+ """
129
+ If the policy doesn't apply to a principal.
130
+
131
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
132
+ """
133
+ return pulumi.get(self, "no_principal")
134
+
135
+ @no_principal.setter
136
+ def no_principal(self, value: Optional[pulumi.Input[bool]]):
137
+ pulumi.set(self, "no_principal", value)
138
+
139
+ @property
140
+ @pulumi.getter(name="organizationId")
141
+ def organization_id(self) -> Optional[pulumi.Input[str]]:
142
+ """
143
+ `organization_id`) The ID of the organization the policy is associated with.
144
+ """
145
+ return pulumi.get(self, "organization_id")
146
+
147
+ @organization_id.setter
148
+ def organization_id(self, value: Optional[pulumi.Input[str]]):
149
+ pulumi.set(self, "organization_id", value)
150
+
151
+ @property
152
+ @pulumi.getter
153
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
154
+ """
155
+ The tags associated with the IAM policy.
156
+ """
157
+ return pulumi.get(self, "tags")
158
+
159
+ @tags.setter
160
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
161
+ pulumi.set(self, "tags", value)
162
+
163
+ @property
164
+ @pulumi.getter(name="userId")
165
+ def user_id(self) -> Optional[pulumi.Input[str]]:
166
+ """
167
+ ID of the user the policy will be linked to
168
+ """
169
+ return pulumi.get(self, "user_id")
170
+
171
+ @user_id.setter
172
+ def user_id(self, value: Optional[pulumi.Input[str]]):
173
+ pulumi.set(self, "user_id", value)
174
+
175
+
176
+ @pulumi.input_type
177
+ class _PolicyState:
178
+ def __init__(__self__, *,
179
+ application_id: Optional[pulumi.Input[str]] = None,
180
+ created_at: Optional[pulumi.Input[str]] = None,
181
+ description: Optional[pulumi.Input[str]] = None,
182
+ editable: Optional[pulumi.Input[bool]] = None,
183
+ group_id: Optional[pulumi.Input[str]] = None,
184
+ name: Optional[pulumi.Input[str]] = None,
185
+ no_principal: Optional[pulumi.Input[bool]] = None,
186
+ organization_id: Optional[pulumi.Input[str]] = None,
187
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyRuleArgs']]]] = None,
188
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
189
+ updated_at: Optional[pulumi.Input[str]] = None,
190
+ user_id: Optional[pulumi.Input[str]] = None):
191
+ """
192
+ Input properties used for looking up and filtering Policy resources.
193
+ :param pulumi.Input[str] application_id: ID of the application the policy will be linked to
194
+ :param pulumi.Input[str] created_at: The date and time of the creation of the policy.
195
+ :param pulumi.Input[str] description: The description of the IAM policy.
196
+ :param pulumi.Input[bool] editable: Whether the policy is editable.
197
+ :param pulumi.Input[str] group_id: ID of the group the policy will be linked to
198
+ :param pulumi.Input[str] name: The name of the IAM policy.
199
+ :param pulumi.Input[bool] no_principal: If the policy doesn't apply to a principal.
200
+
201
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
202
+ :param pulumi.Input[str] organization_id: `organization_id`) The ID of the organization the policy is associated with.
203
+ :param pulumi.Input[Sequence[pulumi.Input['PolicyRuleArgs']]] rules: List of rules in the policy.
204
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the IAM policy.
205
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the policy.
206
+ :param pulumi.Input[str] user_id: ID of the user the policy will be linked to
207
+ """
208
+ if application_id is not None:
209
+ pulumi.set(__self__, "application_id", application_id)
210
+ if created_at is not None:
211
+ pulumi.set(__self__, "created_at", created_at)
212
+ if description is not None:
213
+ pulumi.set(__self__, "description", description)
214
+ if editable is not None:
215
+ pulumi.set(__self__, "editable", editable)
216
+ if group_id is not None:
217
+ pulumi.set(__self__, "group_id", group_id)
218
+ if name is not None:
219
+ pulumi.set(__self__, "name", name)
220
+ if no_principal is not None:
221
+ pulumi.set(__self__, "no_principal", no_principal)
222
+ if organization_id is not None:
223
+ pulumi.set(__self__, "organization_id", organization_id)
224
+ if rules is not None:
225
+ pulumi.set(__self__, "rules", rules)
226
+ if tags is not None:
227
+ pulumi.set(__self__, "tags", tags)
228
+ if updated_at is not None:
229
+ pulumi.set(__self__, "updated_at", updated_at)
230
+ if user_id is not None:
231
+ pulumi.set(__self__, "user_id", user_id)
232
+
233
+ @property
234
+ @pulumi.getter(name="applicationId")
235
+ def application_id(self) -> Optional[pulumi.Input[str]]:
236
+ """
237
+ ID of the application the policy will be linked to
238
+ """
239
+ return pulumi.get(self, "application_id")
240
+
241
+ @application_id.setter
242
+ def application_id(self, value: Optional[pulumi.Input[str]]):
243
+ pulumi.set(self, "application_id", value)
244
+
245
+ @property
246
+ @pulumi.getter(name="createdAt")
247
+ def created_at(self) -> Optional[pulumi.Input[str]]:
248
+ """
249
+ The date and time of the creation of the policy.
250
+ """
251
+ return pulumi.get(self, "created_at")
252
+
253
+ @created_at.setter
254
+ def created_at(self, value: Optional[pulumi.Input[str]]):
255
+ pulumi.set(self, "created_at", value)
256
+
257
+ @property
258
+ @pulumi.getter
259
+ def description(self) -> Optional[pulumi.Input[str]]:
260
+ """
261
+ The description of the IAM policy.
262
+ """
263
+ return pulumi.get(self, "description")
264
+
265
+ @description.setter
266
+ def description(self, value: Optional[pulumi.Input[str]]):
267
+ pulumi.set(self, "description", value)
268
+
269
+ @property
270
+ @pulumi.getter
271
+ def editable(self) -> Optional[pulumi.Input[bool]]:
272
+ """
273
+ Whether the policy is editable.
274
+ """
275
+ return pulumi.get(self, "editable")
276
+
277
+ @editable.setter
278
+ def editable(self, value: Optional[pulumi.Input[bool]]):
279
+ pulumi.set(self, "editable", value)
280
+
281
+ @property
282
+ @pulumi.getter(name="groupId")
283
+ def group_id(self) -> Optional[pulumi.Input[str]]:
284
+ """
285
+ ID of the group the policy will be linked to
286
+ """
287
+ return pulumi.get(self, "group_id")
288
+
289
+ @group_id.setter
290
+ def group_id(self, value: Optional[pulumi.Input[str]]):
291
+ pulumi.set(self, "group_id", value)
292
+
293
+ @property
294
+ @pulumi.getter
295
+ def name(self) -> Optional[pulumi.Input[str]]:
296
+ """
297
+ The name of the IAM policy.
298
+ """
299
+ return pulumi.get(self, "name")
300
+
301
+ @name.setter
302
+ def name(self, value: Optional[pulumi.Input[str]]):
303
+ pulumi.set(self, "name", value)
304
+
305
+ @property
306
+ @pulumi.getter(name="noPrincipal")
307
+ def no_principal(self) -> Optional[pulumi.Input[bool]]:
308
+ """
309
+ If the policy doesn't apply to a principal.
310
+
311
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
312
+ """
313
+ return pulumi.get(self, "no_principal")
314
+
315
+ @no_principal.setter
316
+ def no_principal(self, value: Optional[pulumi.Input[bool]]):
317
+ pulumi.set(self, "no_principal", value)
318
+
319
+ @property
320
+ @pulumi.getter(name="organizationId")
321
+ def organization_id(self) -> Optional[pulumi.Input[str]]:
322
+ """
323
+ `organization_id`) The ID of the organization the policy is associated with.
324
+ """
325
+ return pulumi.get(self, "organization_id")
326
+
327
+ @organization_id.setter
328
+ def organization_id(self, value: Optional[pulumi.Input[str]]):
329
+ pulumi.set(self, "organization_id", value)
330
+
331
+ @property
332
+ @pulumi.getter
333
+ def rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PolicyRuleArgs']]]]:
334
+ """
335
+ List of rules in the policy.
336
+ """
337
+ return pulumi.get(self, "rules")
338
+
339
+ @rules.setter
340
+ def rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyRuleArgs']]]]):
341
+ pulumi.set(self, "rules", value)
342
+
343
+ @property
344
+ @pulumi.getter
345
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
346
+ """
347
+ The tags associated with the IAM policy.
348
+ """
349
+ return pulumi.get(self, "tags")
350
+
351
+ @tags.setter
352
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
353
+ pulumi.set(self, "tags", value)
354
+
355
+ @property
356
+ @pulumi.getter(name="updatedAt")
357
+ def updated_at(self) -> Optional[pulumi.Input[str]]:
358
+ """
359
+ The date and time of the last update of the policy.
360
+ """
361
+ return pulumi.get(self, "updated_at")
362
+
363
+ @updated_at.setter
364
+ def updated_at(self, value: Optional[pulumi.Input[str]]):
365
+ pulumi.set(self, "updated_at", value)
366
+
367
+ @property
368
+ @pulumi.getter(name="userId")
369
+ def user_id(self) -> Optional[pulumi.Input[str]]:
370
+ """
371
+ ID of the user the policy will be linked to
372
+ """
373
+ return pulumi.get(self, "user_id")
374
+
375
+ @user_id.setter
376
+ def user_id(self, value: Optional[pulumi.Input[str]]):
377
+ pulumi.set(self, "user_id", value)
378
+
379
+
380
+ class Policy(pulumi.CustomResource):
381
+ @overload
382
+ def __init__(__self__,
383
+ resource_name: str,
384
+ opts: Optional[pulumi.ResourceOptions] = None,
385
+ application_id: Optional[pulumi.Input[str]] = None,
386
+ description: Optional[pulumi.Input[str]] = None,
387
+ group_id: Optional[pulumi.Input[str]] = None,
388
+ name: Optional[pulumi.Input[str]] = None,
389
+ no_principal: Optional[pulumi.Input[bool]] = None,
390
+ organization_id: Optional[pulumi.Input[str]] = None,
391
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PolicyRuleArgs', 'PolicyRuleArgsDict']]]]] = None,
392
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
393
+ user_id: Optional[pulumi.Input[str]] = None,
394
+ __props__=None):
395
+ """
396
+ Creates and manages Scaleway IAM Policies. For more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#path-policies-create-a-new-policy).
397
+
398
+ > You can find a detailed list of all permission sets available at Scaleway in the permission sets [reference page](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/).
399
+
400
+ ## Example Usage
401
+
402
+ ### Create a policy for an organization's project
403
+
404
+ ```python
405
+ import pulumi
406
+ import pulumi_scaleway as scaleway
407
+ import pulumiverse_scaleway as scaleway
408
+
409
+ default = scaleway.account.get_project(name="default")
410
+ app = scaleway.iam.Application("app", name="my app")
411
+ object_read_only = scaleway.iam.Policy("object_read_only",
412
+ name="my policy",
413
+ description="gives app readonly access to object storage in project",
414
+ application_id=app.id,
415
+ rules=[{
416
+ "project_ids": [default.id],
417
+ "permission_set_names": ["ObjectStorageReadOnly"],
418
+ }])
419
+ ```
420
+
421
+ ### Create a policy for all current and future projects in an organization
422
+
423
+ ```python
424
+ import pulumi
425
+ import pulumiverse_scaleway as scaleway
426
+
427
+ app = scaleway.iam.Application("app", name="my app")
428
+ object_read_only = scaleway.iam.Policy("object_read_only",
429
+ name="my policy",
430
+ description="gives app readonly access to object storage in project",
431
+ application_id=app.id,
432
+ rules=[{
433
+ "organization_id": app.organization_id,
434
+ "permission_set_names": ["ObjectStorageReadOnly"],
435
+ }])
436
+ ```
437
+
438
+ ### Create a policy with a particular condition
439
+
440
+ IAM policy rule can use a condition to be applied.
441
+ The following variables are available:
442
+
443
+ - `request.ip`
444
+ - `request.user_agent`
445
+ - `request.time`
446
+
447
+ ```python
448
+ import pulumi
449
+ import pulumiverse_scaleway as scaleway
450
+
451
+ main = scaleway.iam.Policy("main",
452
+ name="tf_tests_policy_condition",
453
+ no_principal=True,
454
+ rules=[{
455
+ "organization_id": "%s",
456
+ "permission_set_names": ["AllProductsFullAccess"],
457
+ "condition": "request.user_agent == 'My User Agent'",
458
+ }])
459
+ ```
460
+
461
+ ## Import
462
+
463
+ Policies can be imported using the `{id}`, e.g.
464
+
465
+ bash
466
+
467
+ ```sh
468
+ $ pulumi import scaleway:iam/policy:Policy main 11111111-1111-1111-1111-111111111111
469
+ ```
470
+
471
+ :param str resource_name: The name of the resource.
472
+ :param pulumi.ResourceOptions opts: Options for the resource.
473
+ :param pulumi.Input[str] application_id: ID of the application the policy will be linked to
474
+ :param pulumi.Input[str] description: The description of the IAM policy.
475
+ :param pulumi.Input[str] group_id: ID of the group the policy will be linked to
476
+ :param pulumi.Input[str] name: The name of the IAM policy.
477
+ :param pulumi.Input[bool] no_principal: If the policy doesn't apply to a principal.
478
+
479
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
480
+ :param pulumi.Input[str] organization_id: `organization_id`) The ID of the organization the policy is associated with.
481
+ :param pulumi.Input[Sequence[pulumi.Input[Union['PolicyRuleArgs', 'PolicyRuleArgsDict']]]] rules: List of rules in the policy.
482
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the IAM policy.
483
+ :param pulumi.Input[str] user_id: ID of the user the policy will be linked to
484
+ """
485
+ ...
486
+ @overload
487
+ def __init__(__self__,
488
+ resource_name: str,
489
+ args: PolicyArgs,
490
+ opts: Optional[pulumi.ResourceOptions] = None):
491
+ """
492
+ Creates and manages Scaleway IAM Policies. For more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#path-policies-create-a-new-policy).
493
+
494
+ > You can find a detailed list of all permission sets available at Scaleway in the permission sets [reference page](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/).
495
+
496
+ ## Example Usage
497
+
498
+ ### Create a policy for an organization's project
499
+
500
+ ```python
501
+ import pulumi
502
+ import pulumi_scaleway as scaleway
503
+ import pulumiverse_scaleway as scaleway
504
+
505
+ default = scaleway.account.get_project(name="default")
506
+ app = scaleway.iam.Application("app", name="my app")
507
+ object_read_only = scaleway.iam.Policy("object_read_only",
508
+ name="my policy",
509
+ description="gives app readonly access to object storage in project",
510
+ application_id=app.id,
511
+ rules=[{
512
+ "project_ids": [default.id],
513
+ "permission_set_names": ["ObjectStorageReadOnly"],
514
+ }])
515
+ ```
516
+
517
+ ### Create a policy for all current and future projects in an organization
518
+
519
+ ```python
520
+ import pulumi
521
+ import pulumiverse_scaleway as scaleway
522
+
523
+ app = scaleway.iam.Application("app", name="my app")
524
+ object_read_only = scaleway.iam.Policy("object_read_only",
525
+ name="my policy",
526
+ description="gives app readonly access to object storage in project",
527
+ application_id=app.id,
528
+ rules=[{
529
+ "organization_id": app.organization_id,
530
+ "permission_set_names": ["ObjectStorageReadOnly"],
531
+ }])
532
+ ```
533
+
534
+ ### Create a policy with a particular condition
535
+
536
+ IAM policy rule can use a condition to be applied.
537
+ The following variables are available:
538
+
539
+ - `request.ip`
540
+ - `request.user_agent`
541
+ - `request.time`
542
+
543
+ ```python
544
+ import pulumi
545
+ import pulumiverse_scaleway as scaleway
546
+
547
+ main = scaleway.iam.Policy("main",
548
+ name="tf_tests_policy_condition",
549
+ no_principal=True,
550
+ rules=[{
551
+ "organization_id": "%s",
552
+ "permission_set_names": ["AllProductsFullAccess"],
553
+ "condition": "request.user_agent == 'My User Agent'",
554
+ }])
555
+ ```
556
+
557
+ ## Import
558
+
559
+ Policies can be imported using the `{id}`, e.g.
560
+
561
+ bash
562
+
563
+ ```sh
564
+ $ pulumi import scaleway:iam/policy:Policy main 11111111-1111-1111-1111-111111111111
565
+ ```
566
+
567
+ :param str resource_name: The name of the resource.
568
+ :param PolicyArgs args: The arguments to use to populate this resource's properties.
569
+ :param pulumi.ResourceOptions opts: Options for the resource.
570
+ """
571
+ ...
572
+ def __init__(__self__, resource_name: str, *args, **kwargs):
573
+ resource_args, opts = _utilities.get_resource_args_opts(PolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
574
+ if resource_args is not None:
575
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
576
+ else:
577
+ __self__._internal_init(resource_name, *args, **kwargs)
578
+
579
+ def _internal_init(__self__,
580
+ resource_name: str,
581
+ opts: Optional[pulumi.ResourceOptions] = None,
582
+ application_id: Optional[pulumi.Input[str]] = None,
583
+ description: Optional[pulumi.Input[str]] = None,
584
+ group_id: Optional[pulumi.Input[str]] = None,
585
+ name: Optional[pulumi.Input[str]] = None,
586
+ no_principal: Optional[pulumi.Input[bool]] = None,
587
+ organization_id: Optional[pulumi.Input[str]] = None,
588
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PolicyRuleArgs', 'PolicyRuleArgsDict']]]]] = None,
589
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
590
+ user_id: Optional[pulumi.Input[str]] = None,
591
+ __props__=None):
592
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
593
+ if not isinstance(opts, pulumi.ResourceOptions):
594
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
595
+ if opts.id is None:
596
+ if __props__ is not None:
597
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
598
+ __props__ = PolicyArgs.__new__(PolicyArgs)
599
+
600
+ __props__.__dict__["application_id"] = application_id
601
+ __props__.__dict__["description"] = description
602
+ __props__.__dict__["group_id"] = group_id
603
+ __props__.__dict__["name"] = name
604
+ __props__.__dict__["no_principal"] = no_principal
605
+ __props__.__dict__["organization_id"] = organization_id
606
+ if rules is None and not opts.urn:
607
+ raise TypeError("Missing required property 'rules'")
608
+ __props__.__dict__["rules"] = rules
609
+ __props__.__dict__["tags"] = tags
610
+ __props__.__dict__["user_id"] = user_id
611
+ __props__.__dict__["created_at"] = None
612
+ __props__.__dict__["editable"] = None
613
+ __props__.__dict__["updated_at"] = None
614
+ alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/iamPolicy:IamPolicy")])
615
+ opts = pulumi.ResourceOptions.merge(opts, alias_opts)
616
+ super(Policy, __self__).__init__(
617
+ 'scaleway:iam/policy:Policy',
618
+ resource_name,
619
+ __props__,
620
+ opts)
621
+
622
+ @staticmethod
623
+ def get(resource_name: str,
624
+ id: pulumi.Input[str],
625
+ opts: Optional[pulumi.ResourceOptions] = None,
626
+ application_id: Optional[pulumi.Input[str]] = None,
627
+ created_at: Optional[pulumi.Input[str]] = None,
628
+ description: Optional[pulumi.Input[str]] = None,
629
+ editable: Optional[pulumi.Input[bool]] = None,
630
+ group_id: Optional[pulumi.Input[str]] = None,
631
+ name: Optional[pulumi.Input[str]] = None,
632
+ no_principal: Optional[pulumi.Input[bool]] = None,
633
+ organization_id: Optional[pulumi.Input[str]] = None,
634
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PolicyRuleArgs', 'PolicyRuleArgsDict']]]]] = None,
635
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
636
+ updated_at: Optional[pulumi.Input[str]] = None,
637
+ user_id: Optional[pulumi.Input[str]] = None) -> 'Policy':
638
+ """
639
+ Get an existing Policy resource's state with the given name, id, and optional extra
640
+ properties used to qualify the lookup.
641
+
642
+ :param str resource_name: The unique name of the resulting resource.
643
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
644
+ :param pulumi.ResourceOptions opts: Options for the resource.
645
+ :param pulumi.Input[str] application_id: ID of the application the policy will be linked to
646
+ :param pulumi.Input[str] created_at: The date and time of the creation of the policy.
647
+ :param pulumi.Input[str] description: The description of the IAM policy.
648
+ :param pulumi.Input[bool] editable: Whether the policy is editable.
649
+ :param pulumi.Input[str] group_id: ID of the group the policy will be linked to
650
+ :param pulumi.Input[str] name: The name of the IAM policy.
651
+ :param pulumi.Input[bool] no_principal: If the policy doesn't apply to a principal.
652
+
653
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
654
+ :param pulumi.Input[str] organization_id: `organization_id`) The ID of the organization the policy is associated with.
655
+ :param pulumi.Input[Sequence[pulumi.Input[Union['PolicyRuleArgs', 'PolicyRuleArgsDict']]]] rules: List of rules in the policy.
656
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the IAM policy.
657
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the policy.
658
+ :param pulumi.Input[str] user_id: ID of the user the policy will be linked to
659
+ """
660
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
661
+
662
+ __props__ = _PolicyState.__new__(_PolicyState)
663
+
664
+ __props__.__dict__["application_id"] = application_id
665
+ __props__.__dict__["created_at"] = created_at
666
+ __props__.__dict__["description"] = description
667
+ __props__.__dict__["editable"] = editable
668
+ __props__.__dict__["group_id"] = group_id
669
+ __props__.__dict__["name"] = name
670
+ __props__.__dict__["no_principal"] = no_principal
671
+ __props__.__dict__["organization_id"] = organization_id
672
+ __props__.__dict__["rules"] = rules
673
+ __props__.__dict__["tags"] = tags
674
+ __props__.__dict__["updated_at"] = updated_at
675
+ __props__.__dict__["user_id"] = user_id
676
+ return Policy(resource_name, opts=opts, __props__=__props__)
677
+
678
+ @property
679
+ @pulumi.getter(name="applicationId")
680
+ def application_id(self) -> pulumi.Output[Optional[str]]:
681
+ """
682
+ ID of the application the policy will be linked to
683
+ """
684
+ return pulumi.get(self, "application_id")
685
+
686
+ @property
687
+ @pulumi.getter(name="createdAt")
688
+ def created_at(self) -> pulumi.Output[str]:
689
+ """
690
+ The date and time of the creation of the policy.
691
+ """
692
+ return pulumi.get(self, "created_at")
693
+
694
+ @property
695
+ @pulumi.getter
696
+ def description(self) -> pulumi.Output[Optional[str]]:
697
+ """
698
+ The description of the IAM policy.
699
+ """
700
+ return pulumi.get(self, "description")
701
+
702
+ @property
703
+ @pulumi.getter
704
+ def editable(self) -> pulumi.Output[bool]:
705
+ """
706
+ Whether the policy is editable.
707
+ """
708
+ return pulumi.get(self, "editable")
709
+
710
+ @property
711
+ @pulumi.getter(name="groupId")
712
+ def group_id(self) -> pulumi.Output[Optional[str]]:
713
+ """
714
+ ID of the group the policy will be linked to
715
+ """
716
+ return pulumi.get(self, "group_id")
717
+
718
+ @property
719
+ @pulumi.getter
720
+ def name(self) -> pulumi.Output[str]:
721
+ """
722
+ The name of the IAM policy.
723
+ """
724
+ return pulumi.get(self, "name")
725
+
726
+ @property
727
+ @pulumi.getter(name="noPrincipal")
728
+ def no_principal(self) -> pulumi.Output[Optional[bool]]:
729
+ """
730
+ If the policy doesn't apply to a principal.
731
+
732
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
733
+ """
734
+ return pulumi.get(self, "no_principal")
735
+
736
+ @property
737
+ @pulumi.getter(name="organizationId")
738
+ def organization_id(self) -> pulumi.Output[str]:
739
+ """
740
+ `organization_id`) The ID of the organization the policy is associated with.
741
+ """
742
+ return pulumi.get(self, "organization_id")
743
+
744
+ @property
745
+ @pulumi.getter
746
+ def rules(self) -> pulumi.Output[Sequence['outputs.PolicyRule']]:
747
+ """
748
+ List of rules in the policy.
749
+ """
750
+ return pulumi.get(self, "rules")
751
+
752
+ @property
753
+ @pulumi.getter
754
+ def tags(self) -> pulumi.Output[Optional[Sequence[str]]]:
755
+ """
756
+ The tags associated with the IAM policy.
757
+ """
758
+ return pulumi.get(self, "tags")
759
+
760
+ @property
761
+ @pulumi.getter(name="updatedAt")
762
+ def updated_at(self) -> pulumi.Output[str]:
763
+ """
764
+ The date and time of the last update of the policy.
765
+ """
766
+ return pulumi.get(self, "updated_at")
767
+
768
+ @property
769
+ @pulumi.getter(name="userId")
770
+ def user_id(self) -> pulumi.Output[Optional[str]]:
771
+ """
772
+ ID of the user the policy will be linked to
773
+ """
774
+ return pulumi.get(self, "user_id")
775
+