pulumiverse-scaleway 1.34.2a1759388651__py3-none-any.whl → 1.35.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.

Potentially problematic release.


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

Files changed (499) hide show
  1. pulumiverse_scaleway/__init__.py +1 -1
  2. pulumiverse_scaleway/_inputs.py +2769 -2816
  3. pulumiverse_scaleway/account/__init__.py +1 -1
  4. pulumiverse_scaleway/account/get_availability_zones.py +11 -12
  5. pulumiverse_scaleway/account/get_project.py +27 -28
  6. pulumiverse_scaleway/account/get_projects.py +18 -19
  7. pulumiverse_scaleway/account/get_ssh_key.py +33 -34
  8. pulumiverse_scaleway/account/outputs.py +25 -26
  9. pulumiverse_scaleway/account/project.py +70 -71
  10. pulumiverse_scaleway/account/ssh_key.py +105 -106
  11. pulumiverse_scaleway/account_project.py +70 -71
  12. pulumiverse_scaleway/account_ssh_key.py +105 -106
  13. pulumiverse_scaleway/apple_silicon_server.py +216 -217
  14. pulumiverse_scaleway/applesilicon/__init__.py +1 -1
  15. pulumiverse_scaleway/applesilicon/_inputs.py +50 -51
  16. pulumiverse_scaleway/applesilicon/outputs.py +34 -35
  17. pulumiverse_scaleway/applesilicon/server.py +216 -217
  18. pulumiverse_scaleway/autoscaling/__init__.py +1 -1
  19. pulumiverse_scaleway/autoscaling/_inputs.py +130 -131
  20. pulumiverse_scaleway/autoscaling/instance_group.py +127 -128
  21. pulumiverse_scaleway/autoscaling/instance_policy.py +140 -141
  22. pulumiverse_scaleway/autoscaling/instance_template.py +235 -236
  23. pulumiverse_scaleway/autoscaling/outputs.py +88 -89
  24. pulumiverse_scaleway/baremetal_server.py +366 -351
  25. pulumiverse_scaleway/billing/__init__.py +1 -1
  26. pulumiverse_scaleway/billing/get_consumptions.py +18 -15
  27. pulumiverse_scaleway/billing/get_invoices.py +24 -25
  28. pulumiverse_scaleway/billing/outputs.py +95 -96
  29. pulumiverse_scaleway/block/__init__.py +1 -1
  30. pulumiverse_scaleway/block/_inputs.py +25 -26
  31. pulumiverse_scaleway/block/get_snapshot.py +37 -38
  32. pulumiverse_scaleway/block/get_volume.py +37 -38
  33. pulumiverse_scaleway/block/outputs.py +33 -34
  34. pulumiverse_scaleway/block/snapshot.py +100 -93
  35. pulumiverse_scaleway/block/volume.py +137 -138
  36. pulumiverse_scaleway/block_snapshot.py +100 -93
  37. pulumiverse_scaleway/block_volume.py +137 -138
  38. pulumiverse_scaleway/cockpit.py +48 -49
  39. pulumiverse_scaleway/cockpit_alert_manager.py +64 -65
  40. pulumiverse_scaleway/cockpit_grafana_user.py +70 -71
  41. pulumiverse_scaleway/cockpit_source.py +140 -141
  42. pulumiverse_scaleway/cockpit_token.py +82 -83
  43. pulumiverse_scaleway/config/__init__.py +1 -1
  44. pulumiverse_scaleway/config/__init__.pyi +1 -2
  45. pulumiverse_scaleway/config/vars.py +9 -10
  46. pulumiverse_scaleway/container.py +476 -477
  47. pulumiverse_scaleway/container_cron.py +95 -96
  48. pulumiverse_scaleway/container_domain.py +61 -62
  49. pulumiverse_scaleway/container_namespace.py +181 -182
  50. pulumiverse_scaleway/container_token.py +95 -96
  51. pulumiverse_scaleway/container_trigger.py +75 -76
  52. pulumiverse_scaleway/containers/__init__.py +1 -1
  53. pulumiverse_scaleway/containers/_inputs.py +86 -87
  54. pulumiverse_scaleway/containers/container.py +476 -477
  55. pulumiverse_scaleway/containers/cron.py +95 -96
  56. pulumiverse_scaleway/containers/domain.py +61 -62
  57. pulumiverse_scaleway/containers/get_container.py +79 -80
  58. pulumiverse_scaleway/containers/get_namespace.py +45 -46
  59. pulumiverse_scaleway/containers/namespace.py +181 -182
  60. pulumiverse_scaleway/containers/outputs.py +83 -84
  61. pulumiverse_scaleway/containers/token.py +95 -96
  62. pulumiverse_scaleway/containers/trigger.py +75 -76
  63. pulumiverse_scaleway/database.py +79 -80
  64. pulumiverse_scaleway/database_acl.py +38 -39
  65. pulumiverse_scaleway/database_backup.py +122 -123
  66. pulumiverse_scaleway/database_instance.py +408 -409
  67. pulumiverse_scaleway/database_privilege.py +86 -87
  68. pulumiverse_scaleway/database_read_replica.py +58 -59
  69. pulumiverse_scaleway/database_user.py +86 -87
  70. pulumiverse_scaleway/databases/__init__.py +1 -1
  71. pulumiverse_scaleway/databases/_inputs.py +227 -228
  72. pulumiverse_scaleway/databases/acl.py +38 -39
  73. pulumiverse_scaleway/databases/database.py +79 -80
  74. pulumiverse_scaleway/databases/database_backup.py +122 -123
  75. pulumiverse_scaleway/databases/get_acl.py +16 -17
  76. pulumiverse_scaleway/databases/get_database.py +25 -26
  77. pulumiverse_scaleway/databases/get_database_backup.py +45 -46
  78. pulumiverse_scaleway/databases/get_instance.py +72 -73
  79. pulumiverse_scaleway/databases/get_privilege.py +29 -30
  80. pulumiverse_scaleway/databases/instance.py +408 -409
  81. pulumiverse_scaleway/databases/outputs.py +247 -248
  82. pulumiverse_scaleway/databases/privilege.py +86 -87
  83. pulumiverse_scaleway/databases/read_replica.py +58 -59
  84. pulumiverse_scaleway/databases/serverless_database.py +95 -96
  85. pulumiverse_scaleway/databases/snapshot.py +123 -124
  86. pulumiverse_scaleway/databases/user.py +86 -87
  87. pulumiverse_scaleway/domain/__init__.py +1 -1
  88. pulumiverse_scaleway/domain/_inputs.py +660 -661
  89. pulumiverse_scaleway/domain/get_record.py +51 -52
  90. pulumiverse_scaleway/domain/get_zone.py +33 -34
  91. pulumiverse_scaleway/domain/outputs.py +500 -501
  92. pulumiverse_scaleway/domain/record.py +150 -151
  93. pulumiverse_scaleway/domain/registration.py +121 -122
  94. pulumiverse_scaleway/domain/zone.py +106 -107
  95. pulumiverse_scaleway/domain_record.py +150 -151
  96. pulumiverse_scaleway/domain_zone.py +106 -107
  97. pulumiverse_scaleway/edge_services_backend_stage.py +59 -60
  98. pulumiverse_scaleway/edge_services_cache_stage.py +162 -159
  99. pulumiverse_scaleway/edge_services_dns_stage.py +130 -131
  100. pulumiverse_scaleway/edge_services_head_stage.py +35 -36
  101. pulumiverse_scaleway/edge_services_pipeline.py +79 -80
  102. pulumiverse_scaleway/edge_services_plan.py +35 -36
  103. pulumiverse_scaleway/edge_services_route_stage.py +73 -74
  104. pulumiverse_scaleway/edge_services_tls_stage.py +150 -151
  105. pulumiverse_scaleway/edge_services_waf_stage.py +104 -105
  106. pulumiverse_scaleway/elasticmetal/__init__.py +1 -1
  107. pulumiverse_scaleway/elasticmetal/_inputs.py +146 -147
  108. pulumiverse_scaleway/elasticmetal/get_ip.py +41 -42
  109. pulumiverse_scaleway/elasticmetal/get_ips.py +30 -31
  110. pulumiverse_scaleway/elasticmetal/get_offer.py +40 -41
  111. pulumiverse_scaleway/elasticmetal/get_option.py +23 -24
  112. pulumiverse_scaleway/elasticmetal/get_os.py +27 -28
  113. pulumiverse_scaleway/elasticmetal/get_partition_schema.py +35 -36
  114. pulumiverse_scaleway/elasticmetal/get_server.py +69 -70
  115. pulumiverse_scaleway/elasticmetal/ip.py +165 -166
  116. pulumiverse_scaleway/elasticmetal/ip_mac_address.py +105 -106
  117. pulumiverse_scaleway/elasticmetal/outputs.py +312 -312
  118. pulumiverse_scaleway/elasticmetal/server.py +366 -351
  119. pulumiverse_scaleway/file_filesystem.py +137 -134
  120. pulumiverse_scaleway/flexible_ip.py +165 -166
  121. pulumiverse_scaleway/flexible_ip_mac_address.py +105 -106
  122. pulumiverse_scaleway/function.py +381 -382
  123. pulumiverse_scaleway/function_cron.py +95 -96
  124. pulumiverse_scaleway/function_domain.py +61 -62
  125. pulumiverse_scaleway/function_namespace.py +164 -165
  126. pulumiverse_scaleway/function_token.py +95 -96
  127. pulumiverse_scaleway/function_trigger.py +75 -76
  128. pulumiverse_scaleway/functions/__init__.py +1 -1
  129. pulumiverse_scaleway/functions/_inputs.py +49 -50
  130. pulumiverse_scaleway/functions/cron.py +95 -96
  131. pulumiverse_scaleway/functions/domain.py +61 -62
  132. pulumiverse_scaleway/functions/function.py +381 -382
  133. pulumiverse_scaleway/functions/get_function.py +73 -74
  134. pulumiverse_scaleway/functions/get_namespace.py +43 -44
  135. pulumiverse_scaleway/functions/namespace.py +164 -165
  136. pulumiverse_scaleway/functions/outputs.py +33 -34
  137. pulumiverse_scaleway/functions/token.py +95 -96
  138. pulumiverse_scaleway/functions/trigger.py +75 -76
  139. pulumiverse_scaleway/get_account_project.py +27 -28
  140. pulumiverse_scaleway/get_account_ssh_key.py +33 -34
  141. pulumiverse_scaleway/get_availability_zones.py +11 -12
  142. pulumiverse_scaleway/get_baremetal_offer.py +40 -41
  143. pulumiverse_scaleway/get_baremetal_option.py +23 -24
  144. pulumiverse_scaleway/get_baremetal_os.py +27 -28
  145. pulumiverse_scaleway/get_baremetal_server.py +69 -70
  146. pulumiverse_scaleway/get_billing_consumptions.py +18 -15
  147. pulumiverse_scaleway/get_billing_invoices.py +24 -25
  148. pulumiverse_scaleway/get_block_snapshot.py +37 -38
  149. pulumiverse_scaleway/get_block_volume.py +37 -38
  150. pulumiverse_scaleway/get_cockpit.py +15 -16
  151. pulumiverse_scaleway/get_cockpit_source.py +49 -50
  152. pulumiverse_scaleway/get_config.py +23 -24
  153. pulumiverse_scaleway/get_container.py +79 -80
  154. pulumiverse_scaleway/get_container_namespace.py +45 -46
  155. pulumiverse_scaleway/get_database.py +25 -26
  156. pulumiverse_scaleway/get_database_acl.py +16 -17
  157. pulumiverse_scaleway/get_database_backup.py +45 -46
  158. pulumiverse_scaleway/get_database_instance.py +72 -73
  159. pulumiverse_scaleway/get_database_privilege.py +29 -30
  160. pulumiverse_scaleway/get_domain_record.py +51 -52
  161. pulumiverse_scaleway/get_domain_zone.py +33 -34
  162. pulumiverse_scaleway/get_flexible_ip.py +41 -42
  163. pulumiverse_scaleway/get_flexible_ips.py +30 -31
  164. pulumiverse_scaleway/get_function.py +73 -74
  165. pulumiverse_scaleway/get_function_namespace.py +43 -44
  166. pulumiverse_scaleway/get_iam_api_key.py +27 -28
  167. pulumiverse_scaleway/get_iam_application.py +31 -32
  168. pulumiverse_scaleway/get_iam_group.py +35 -36
  169. pulumiverse_scaleway/get_iam_ssh_key.py +33 -34
  170. pulumiverse_scaleway/get_iam_user.py +27 -28
  171. pulumiverse_scaleway/get_instance_image.py +57 -58
  172. pulumiverse_scaleway/get_instance_ip.py +29 -30
  173. pulumiverse_scaleway/get_instance_placement_group.py +37 -38
  174. pulumiverse_scaleway/get_instance_private_nic.py +40 -41
  175. pulumiverse_scaleway/get_instance_security_group.py +45 -46
  176. pulumiverse_scaleway/get_instance_server.py +81 -82
  177. pulumiverse_scaleway/get_instance_servers.py +30 -31
  178. pulumiverse_scaleway/get_instance_snapshot.py +40 -41
  179. pulumiverse_scaleway/get_instance_volume.py +41 -42
  180. pulumiverse_scaleway/get_iot_device.py +45 -46
  181. pulumiverse_scaleway/get_iot_hub.py +59 -60
  182. pulumiverse_scaleway/get_ipam_ip.py +64 -65
  183. pulumiverse_scaleway/get_ipam_ips.py +55 -56
  184. pulumiverse_scaleway/get_k8s_version.py +21 -22
  185. pulumiverse_scaleway/get_kubernetes_cluster.py +63 -64
  186. pulumiverse_scaleway/get_kubernetes_node_pool.py +75 -76
  187. pulumiverse_scaleway/get_lb_acls.py +28 -29
  188. pulumiverse_scaleway/get_lb_backend.py +74 -75
  189. pulumiverse_scaleway/get_lb_backends.py +28 -29
  190. pulumiverse_scaleway/get_lb_frontend.py +44 -45
  191. pulumiverse_scaleway/get_lb_frontends.py +28 -29
  192. pulumiverse_scaleway/get_lb_ips.py +36 -37
  193. pulumiverse_scaleway/get_lb_route.py +25 -26
  194. pulumiverse_scaleway/get_lb_routes.py +22 -23
  195. pulumiverse_scaleway/get_lbs.py +30 -31
  196. pulumiverse_scaleway/get_loadbalancer.py +55 -56
  197. pulumiverse_scaleway/get_loadbalancer_certificate.py +35 -36
  198. pulumiverse_scaleway/get_loadbalancer_ip.py +39 -40
  199. pulumiverse_scaleway/get_marketplace_image.py +27 -28
  200. pulumiverse_scaleway/get_mnq_sns.py +17 -18
  201. pulumiverse_scaleway/get_mnq_sqs.py +17 -18
  202. pulumiverse_scaleway/get_mongo_db_instance.py +62 -63
  203. pulumiverse_scaleway/get_object_bucket.py +34 -35
  204. pulumiverse_scaleway/get_object_bucket_policy.py +21 -22
  205. pulumiverse_scaleway/get_redis_cluster.py +53 -54
  206. pulumiverse_scaleway/get_registry_image.py +47 -48
  207. pulumiverse_scaleway/get_registry_image_tag.py +43 -44
  208. pulumiverse_scaleway/get_registry_namespace.py +35 -36
  209. pulumiverse_scaleway/get_secret.py +57 -58
  210. pulumiverse_scaleway/get_secret_version.py +45 -46
  211. pulumiverse_scaleway/get_tem_domain.py +102 -70
  212. pulumiverse_scaleway/get_vpc.py +47 -48
  213. pulumiverse_scaleway/get_vpc_gateway_network.py +43 -44
  214. pulumiverse_scaleway/get_vpc_private_network.py +47 -48
  215. pulumiverse_scaleway/get_vpc_public_gateway.py +55 -56
  216. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +43 -44
  217. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +43 -44
  218. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +23 -24
  219. pulumiverse_scaleway/get_vpc_public_pat_rule.py +31 -32
  220. pulumiverse_scaleway/get_vpc_routes.py +46 -47
  221. pulumiverse_scaleway/get_vpcs.py +30 -31
  222. pulumiverse_scaleway/get_web_host_offer.py +33 -34
  223. pulumiverse_scaleway/get_webhosting.py +57 -58
  224. pulumiverse_scaleway/hosting/__init__.py +1 -1
  225. pulumiverse_scaleway/hosting/_inputs.py +80 -81
  226. pulumiverse_scaleway/hosting/get_hosting.py +57 -58
  227. pulumiverse_scaleway/hosting/get_offer.py +33 -34
  228. pulumiverse_scaleway/hosting/hosting.py +209 -210
  229. pulumiverse_scaleway/hosting/outputs.py +211 -212
  230. pulumiverse_scaleway/iam/__init__.py +1 -1
  231. pulumiverse_scaleway/iam/_inputs.py +25 -26
  232. pulumiverse_scaleway/iam/api_key.py +140 -141
  233. pulumiverse_scaleway/iam/application.py +96 -97
  234. pulumiverse_scaleway/iam/get_api_key.py +27 -28
  235. pulumiverse_scaleway/iam/get_application.py +31 -32
  236. pulumiverse_scaleway/iam/get_group.py +35 -36
  237. pulumiverse_scaleway/iam/get_ssh_key.py +33 -34
  238. pulumiverse_scaleway/iam/get_user.py +27 -28
  239. pulumiverse_scaleway/iam/group.py +138 -139
  240. pulumiverse_scaleway/iam/group_membership.py +52 -53
  241. pulumiverse_scaleway/iam/outputs.py +17 -18
  242. pulumiverse_scaleway/iam/policy.py +167 -168
  243. pulumiverse_scaleway/iam/ssh_key.py +105 -106
  244. pulumiverse_scaleway/iam/user.py +269 -270
  245. pulumiverse_scaleway/iam_api_key.py +140 -141
  246. pulumiverse_scaleway/iam_application.py +96 -97
  247. pulumiverse_scaleway/iam_group.py +138 -139
  248. pulumiverse_scaleway/iam_group_membership.py +52 -53
  249. pulumiverse_scaleway/iam_policy.py +167 -168
  250. pulumiverse_scaleway/iam_ssh_key.py +105 -106
  251. pulumiverse_scaleway/iam_user.py +269 -270
  252. pulumiverse_scaleway/inference/__init__.py +1 -1
  253. pulumiverse_scaleway/inference/_inputs.py +86 -87
  254. pulumiverse_scaleway/inference/deployment.py +229 -226
  255. pulumiverse_scaleway/inference/get_model.py +42 -43
  256. pulumiverse_scaleway/inference/model.py +160 -161
  257. pulumiverse_scaleway/inference/outputs.py +75 -76
  258. pulumiverse_scaleway/inference_deployment.py +229 -226
  259. pulumiverse_scaleway/instance/__init__.py +2 -1
  260. pulumiverse_scaleway/instance/_inputs.py +431 -478
  261. pulumiverse_scaleway/instance/get_image.py +57 -58
  262. pulumiverse_scaleway/instance/get_ip.py +29 -30
  263. pulumiverse_scaleway/instance/get_placement_group.py +37 -38
  264. pulumiverse_scaleway/instance/get_private_nic.py +40 -41
  265. pulumiverse_scaleway/instance/get_security_group.py +45 -46
  266. pulumiverse_scaleway/instance/get_server.py +81 -82
  267. pulumiverse_scaleway/instance/get_server_type.py +271 -0
  268. pulumiverse_scaleway/instance/get_servers.py +30 -31
  269. pulumiverse_scaleway/instance/get_snapshot.py +40 -41
  270. pulumiverse_scaleway/instance/get_volume.py +41 -42
  271. pulumiverse_scaleway/instance/image.py +258 -205
  272. pulumiverse_scaleway/instance/ip.py +114 -115
  273. pulumiverse_scaleway/instance/ip_reverse_dns.py +52 -53
  274. pulumiverse_scaleway/instance/outputs.py +702 -574
  275. pulumiverse_scaleway/instance/placement_group.py +121 -122
  276. pulumiverse_scaleway/instance/private_nic.py +115 -116
  277. pulumiverse_scaleway/instance/security_group.py +186 -187
  278. pulumiverse_scaleway/instance/security_group_rules.py +24 -25
  279. pulumiverse_scaleway/instance/server.py +433 -434
  280. pulumiverse_scaleway/instance/snapshot.py +133 -162
  281. pulumiverse_scaleway/instance/user_data.py +69 -70
  282. pulumiverse_scaleway/instance/volume.py +155 -177
  283. pulumiverse_scaleway/instance_image.py +258 -205
  284. pulumiverse_scaleway/instance_ip.py +114 -115
  285. pulumiverse_scaleway/instance_ip_reverse_dns.py +52 -53
  286. pulumiverse_scaleway/instance_placement_group.py +121 -122
  287. pulumiverse_scaleway/instance_private_nic.py +115 -116
  288. pulumiverse_scaleway/instance_security_group.py +186 -187
  289. pulumiverse_scaleway/instance_security_group_rules.py +24 -25
  290. pulumiverse_scaleway/instance_server.py +433 -434
  291. pulumiverse_scaleway/instance_snapshot.py +133 -162
  292. pulumiverse_scaleway/instance_user_data.py +69 -70
  293. pulumiverse_scaleway/instance_volume.py +155 -177
  294. pulumiverse_scaleway/iot/__init__.py +1 -1
  295. pulumiverse_scaleway/iot/_inputs.py +118 -119
  296. pulumiverse_scaleway/iot/device.py +154 -155
  297. pulumiverse_scaleway/iot/get_device.py +45 -46
  298. pulumiverse_scaleway/iot/get_hub.py +59 -60
  299. pulumiverse_scaleway/iot/hub.py +252 -253
  300. pulumiverse_scaleway/iot/network.py +113 -114
  301. pulumiverse_scaleway/iot/outputs.py +106 -107
  302. pulumiverse_scaleway/iot/route.py +87 -88
  303. pulumiverse_scaleway/iot_device.py +154 -155
  304. pulumiverse_scaleway/iot_hub.py +252 -253
  305. pulumiverse_scaleway/iot_network.py +113 -114
  306. pulumiverse_scaleway/iot_route.py +87 -88
  307. pulumiverse_scaleway/ipam/__init__.py +1 -1
  308. pulumiverse_scaleway/ipam/_inputs.py +103 -104
  309. pulumiverse_scaleway/ipam/get_ip.py +64 -65
  310. pulumiverse_scaleway/ipam/get_ips.py +55 -56
  311. pulumiverse_scaleway/ipam/ip.py +123 -124
  312. pulumiverse_scaleway/ipam/ip_reverse_dns.py +69 -70
  313. pulumiverse_scaleway/ipam/outputs.py +119 -120
  314. pulumiverse_scaleway/ipam_ip.py +123 -124
  315. pulumiverse_scaleway/ipam_ip_reverse_dns.py +69 -70
  316. pulumiverse_scaleway/job/__init__.py +1 -1
  317. pulumiverse_scaleway/job/_inputs.py +44 -45
  318. pulumiverse_scaleway/job/definition.py +177 -178
  319. pulumiverse_scaleway/job/outputs.py +30 -31
  320. pulumiverse_scaleway/job_definition.py +177 -178
  321. pulumiverse_scaleway/key_manager_key.py +334 -226
  322. pulumiverse_scaleway/kubernetes/__init__.py +1 -1
  323. pulumiverse_scaleway/kubernetes/_inputs.py +227 -228
  324. pulumiverse_scaleway/kubernetes/acl.py +55 -56
  325. pulumiverse_scaleway/kubernetes/cluster.py +350 -297
  326. pulumiverse_scaleway/kubernetes/get_cluster.py +63 -64
  327. pulumiverse_scaleway/kubernetes/get_pool.py +75 -76
  328. pulumiverse_scaleway/kubernetes/get_version.py +21 -22
  329. pulumiverse_scaleway/kubernetes/outputs.py +288 -289
  330. pulumiverse_scaleway/kubernetes/pool.py +374 -375
  331. pulumiverse_scaleway/kubernetes_cluster.py +350 -297
  332. pulumiverse_scaleway/kubernetes_node_pool.py +374 -375
  333. pulumiverse_scaleway/loadbalancer.py +246 -247
  334. pulumiverse_scaleway/loadbalancer_acl.py +93 -94
  335. pulumiverse_scaleway/loadbalancer_backend.py +493 -487
  336. pulumiverse_scaleway/loadbalancer_certificate.py +95 -96
  337. pulumiverse_scaleway/loadbalancer_frontend.py +201 -202
  338. pulumiverse_scaleway/loadbalancer_ip.py +122 -123
  339. pulumiverse_scaleway/loadbalancer_route.py +121 -122
  340. pulumiverse_scaleway/loadbalancers/__init__.py +1 -1
  341. pulumiverse_scaleway/loadbalancers/_inputs.py +281 -282
  342. pulumiverse_scaleway/loadbalancers/acl.py +93 -94
  343. pulumiverse_scaleway/loadbalancers/backend.py +493 -487
  344. pulumiverse_scaleway/loadbalancers/certificate.py +95 -96
  345. pulumiverse_scaleway/loadbalancers/frontend.py +201 -202
  346. pulumiverse_scaleway/loadbalancers/get_acls.py +28 -29
  347. pulumiverse_scaleway/loadbalancers/get_backend.py +74 -75
  348. pulumiverse_scaleway/loadbalancers/get_backends.py +28 -29
  349. pulumiverse_scaleway/loadbalancers/get_certificate.py +35 -36
  350. pulumiverse_scaleway/loadbalancers/get_frontend.py +44 -45
  351. pulumiverse_scaleway/loadbalancers/get_frontends.py +28 -29
  352. pulumiverse_scaleway/loadbalancers/get_ip.py +39 -40
  353. pulumiverse_scaleway/loadbalancers/get_ips.py +36 -37
  354. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +55 -56
  355. pulumiverse_scaleway/loadbalancers/get_load_balancers.py +30 -31
  356. pulumiverse_scaleway/loadbalancers/get_route.py +25 -26
  357. pulumiverse_scaleway/loadbalancers/get_routes.py +22 -23
  358. pulumiverse_scaleway/loadbalancers/ip.py +122 -123
  359. pulumiverse_scaleway/loadbalancers/load_balancer.py +246 -247
  360. pulumiverse_scaleway/loadbalancers/outputs.py +754 -751
  361. pulumiverse_scaleway/loadbalancers/route.py +121 -122
  362. pulumiverse_scaleway/mnq/__init__.py +1 -1
  363. pulumiverse_scaleway/mnq/_inputs.py +49 -50
  364. pulumiverse_scaleway/mnq/get_sns.py +17 -18
  365. pulumiverse_scaleway/mnq/get_sqs.py +17 -18
  366. pulumiverse_scaleway/mnq/nats_account.py +61 -62
  367. pulumiverse_scaleway/mnq/nats_credentials.py +61 -62
  368. pulumiverse_scaleway/mnq/outputs.py +33 -34
  369. pulumiverse_scaleway/mnq/sns.py +44 -45
  370. pulumiverse_scaleway/mnq/sns_credentials.py +73 -74
  371. pulumiverse_scaleway/mnq/sns_topic.py +172 -173
  372. pulumiverse_scaleway/mnq/sns_topic_subscription.py +180 -181
  373. pulumiverse_scaleway/mnq/sqs.py +44 -45
  374. pulumiverse_scaleway/mnq/sqs_credentials.py +73 -74
  375. pulumiverse_scaleway/mnq/sqs_queue.py +243 -244
  376. pulumiverse_scaleway/mnq_nats_account.py +61 -62
  377. pulumiverse_scaleway/mnq_nats_credentials.py +61 -62
  378. pulumiverse_scaleway/mnq_sns.py +44 -45
  379. pulumiverse_scaleway/mnq_sns_credentials.py +73 -74
  380. pulumiverse_scaleway/mnq_sns_topic.py +172 -173
  381. pulumiverse_scaleway/mnq_sns_topic_subscription.py +180 -181
  382. pulumiverse_scaleway/mnq_sqs.py +44 -45
  383. pulumiverse_scaleway/mnq_sqs_credentials.py +73 -74
  384. pulumiverse_scaleway/mnq_sqs_queue.py +243 -244
  385. pulumiverse_scaleway/mongo_db_instance.py +309 -310
  386. pulumiverse_scaleway/mongo_db_snapshot.py +123 -124
  387. pulumiverse_scaleway/mongodb/__init__.py +1 -1
  388. pulumiverse_scaleway/mongodb/_inputs.py +80 -81
  389. pulumiverse_scaleway/mongodb/get_instance.py +62 -63
  390. pulumiverse_scaleway/mongodb/instance.py +309 -310
  391. pulumiverse_scaleway/mongodb/outputs.py +95 -96
  392. pulumiverse_scaleway/mongodb/snapshot.py +123 -124
  393. pulumiverse_scaleway/mongodb/user.py +72 -73
  394. pulumiverse_scaleway/network/__init__.py +1 -1
  395. pulumiverse_scaleway/network/_inputs.py +166 -167
  396. pulumiverse_scaleway/network/acl.py +72 -73
  397. pulumiverse_scaleway/network/gateway_network.py +179 -180
  398. pulumiverse_scaleway/network/get_gateway_network.py +43 -44
  399. pulumiverse_scaleway/network/get_private_network.py +47 -48
  400. pulumiverse_scaleway/network/get_public_gateway.py +55 -56
  401. pulumiverse_scaleway/network/get_public_gateway_dhcp.py +43 -44
  402. pulumiverse_scaleway/network/get_public_gateway_dhcp_reservation.py +43 -44
  403. pulumiverse_scaleway/network/get_public_gateway_ip.py +23 -24
  404. pulumiverse_scaleway/network/get_public_gateway_pat_rule.py +31 -32
  405. pulumiverse_scaleway/network/get_routes.py +46 -47
  406. pulumiverse_scaleway/network/get_vpc.py +47 -48
  407. pulumiverse_scaleway/network/get_vpcs.py +30 -31
  408. pulumiverse_scaleway/network/outputs.py +288 -287
  409. pulumiverse_scaleway/network/private_network.py +170 -171
  410. pulumiverse_scaleway/network/public_gateway.py +259 -260
  411. pulumiverse_scaleway/network/public_gateway_dhcp.py +283 -284
  412. pulumiverse_scaleway/network/public_gateway_dhcp_reservation.py +105 -106
  413. pulumiverse_scaleway/network/public_gateway_ip.py +105 -106
  414. pulumiverse_scaleway/network/public_gateway_ip_reverse_dns.py +52 -53
  415. pulumiverse_scaleway/network/public_gateway_pat_rule.py +130 -131
  416. pulumiverse_scaleway/network/route.py +138 -139
  417. pulumiverse_scaleway/network/vpc.py +139 -140
  418. pulumiverse_scaleway/object/__init__.py +1 -1
  419. pulumiverse_scaleway/object/_inputs.py +164 -165
  420. pulumiverse_scaleway/object/bucket.py +147 -148
  421. pulumiverse_scaleway/object/bucket_acl.py +89 -90
  422. pulumiverse_scaleway/object/bucket_lock_configuration.py +55 -56
  423. pulumiverse_scaleway/object/bucket_policy.py +69 -70
  424. pulumiverse_scaleway/object/bucket_website_configuration.py +76 -77
  425. pulumiverse_scaleway/object/get_bucket.py +34 -35
  426. pulumiverse_scaleway/object/get_bucket_policy.py +21 -22
  427. pulumiverse_scaleway/object/item.py +239 -240
  428. pulumiverse_scaleway/object/outputs.py +171 -172
  429. pulumiverse_scaleway/object_bucket.py +147 -148
  430. pulumiverse_scaleway/object_bucket_acl.py +89 -90
  431. pulumiverse_scaleway/object_bucket_lock_configuration.py +55 -56
  432. pulumiverse_scaleway/object_bucket_policy.py +69 -70
  433. pulumiverse_scaleway/object_bucket_website_configuration.py +76 -77
  434. pulumiverse_scaleway/object_item.py +239 -240
  435. pulumiverse_scaleway/observability/__init__.py +1 -1
  436. pulumiverse_scaleway/observability/_inputs.py +105 -106
  437. pulumiverse_scaleway/observability/alert_manager.py +64 -65
  438. pulumiverse_scaleway/observability/cockpit.py +48 -49
  439. pulumiverse_scaleway/observability/get_instance.py +15 -16
  440. pulumiverse_scaleway/observability/get_source.py +49 -50
  441. pulumiverse_scaleway/observability/get_sources.py +46 -47
  442. pulumiverse_scaleway/observability/grafana_user.py +70 -71
  443. pulumiverse_scaleway/observability/outputs.py +149 -150
  444. pulumiverse_scaleway/observability/source.py +140 -141
  445. pulumiverse_scaleway/observability/token.py +82 -83
  446. pulumiverse_scaleway/outputs.py +3934 -3944
  447. pulumiverse_scaleway/provider.py +82 -83
  448. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  449. pulumiverse_scaleway/rdb_snapshot.py +123 -124
  450. pulumiverse_scaleway/redis/__init__.py +1 -1
  451. pulumiverse_scaleway/redis/_inputs.py +86 -87
  452. pulumiverse_scaleway/redis/cluster.py +227 -228
  453. pulumiverse_scaleway/redis/get_cluster.py +53 -54
  454. pulumiverse_scaleway/redis/outputs.py +115 -116
  455. pulumiverse_scaleway/redis_cluster.py +227 -228
  456. pulumiverse_scaleway/registry/__init__.py +1 -1
  457. pulumiverse_scaleway/registry/get_image.py +47 -48
  458. pulumiverse_scaleway/registry/get_image_tag.py +43 -44
  459. pulumiverse_scaleway/registry/get_namespace.py +35 -36
  460. pulumiverse_scaleway/registry/namespace.py +104 -105
  461. pulumiverse_scaleway/registry_namespace.py +104 -105
  462. pulumiverse_scaleway/sdb_database.py +95 -96
  463. pulumiverse_scaleway/secret.py +178 -179
  464. pulumiverse_scaleway/secret_version.py +105 -106
  465. pulumiverse_scaleway/secrets/__init__.py +1 -1
  466. pulumiverse_scaleway/secrets/_inputs.py +62 -63
  467. pulumiverse_scaleway/secrets/get_secret.py +57 -58
  468. pulumiverse_scaleway/secrets/get_version.py +45 -46
  469. pulumiverse_scaleway/secrets/outputs.py +83 -84
  470. pulumiverse_scaleway/secrets/secret.py +178 -179
  471. pulumiverse_scaleway/secrets/version.py +105 -106
  472. pulumiverse_scaleway/tem/__init__.py +1 -1
  473. pulumiverse_scaleway/tem/_inputs.py +32 -33
  474. pulumiverse_scaleway/tem/blocked_list.py +103 -104
  475. pulumiverse_scaleway/tem/domain.py +340 -257
  476. pulumiverse_scaleway/tem/domain_validation.py +61 -62
  477. pulumiverse_scaleway/tem/get_domain.py +102 -70
  478. pulumiverse_scaleway/tem/get_offer_subscription.py +33 -34
  479. pulumiverse_scaleway/tem/outputs.py +43 -44
  480. pulumiverse_scaleway/tem/webhook.py +130 -131
  481. pulumiverse_scaleway/tem_domain.py +340 -257
  482. pulumiverse_scaleway/tem_domain_validation.py +61 -62
  483. pulumiverse_scaleway/tem_webhook.py +130 -131
  484. pulumiverse_scaleway/vpc.py +139 -140
  485. pulumiverse_scaleway/vpc_gateway_network.py +179 -180
  486. pulumiverse_scaleway/vpc_private_network.py +170 -171
  487. pulumiverse_scaleway/vpc_public_gateway.py +259 -260
  488. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +283 -284
  489. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +105 -106
  490. pulumiverse_scaleway/vpc_public_gateway_ip.py +105 -106
  491. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +52 -53
  492. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +130 -131
  493. pulumiverse_scaleway/vpc_route.py +138 -139
  494. pulumiverse_scaleway/webhosting.py +209 -210
  495. {pulumiverse_scaleway-1.34.2a1759388651.dist-info → pulumiverse_scaleway-1.35.0.dist-info}/METADATA +1 -1
  496. pulumiverse_scaleway-1.35.0.dist-info/RECORD +500 -0
  497. pulumiverse_scaleway-1.34.2a1759388651.dist-info/RECORD +0 -499
  498. {pulumiverse_scaleway-1.34.2a1759388651.dist-info → pulumiverse_scaleway-1.35.0.dist-info}/WHEEL +0 -0
  499. {pulumiverse_scaleway-1.34.2a1759388651.dist-info → pulumiverse_scaleway-1.35.0.dist-info}/top_level.txt +0 -0
@@ -2,8 +2,7 @@
2
2
  # *** WARNING: this file was generated by pulumi-language-python. ***
3
3
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
 
5
- import builtins
6
- import copy
5
+ import builtins as _builtins
7
6
  import warnings
8
7
  import sys
9
8
  import pulumi
@@ -22,27 +21,33 @@ __all__ = ['KeyManagerKeyArgs', 'KeyManagerKey']
22
21
  @pulumi.input_type
23
22
  class KeyManagerKeyArgs:
24
23
  def __init__(__self__, *,
25
- usage: pulumi.Input[builtins.str],
26
- description: Optional[pulumi.Input[builtins.str]] = None,
27
- name: Optional[pulumi.Input[builtins.str]] = None,
28
- origin: Optional[pulumi.Input[builtins.str]] = None,
29
- project_id: Optional[pulumi.Input[builtins.str]] = None,
30
- region: Optional[pulumi.Input[builtins.str]] = None,
24
+ algorithm: pulumi.Input[_builtins.str],
25
+ usage: pulumi.Input[_builtins.str],
26
+ description: Optional[pulumi.Input[_builtins.str]] = None,
27
+ name: Optional[pulumi.Input[_builtins.str]] = None,
28
+ origin: Optional[pulumi.Input[_builtins.str]] = None,
29
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
30
+ region: Optional[pulumi.Input[_builtins.str]] = None,
31
31
  rotation_policy: Optional[pulumi.Input['KeyManagerKeyRotationPolicyArgs']] = None,
32
- tags: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
33
- unprotected: Optional[pulumi.Input[builtins.bool]] = None):
32
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
33
+ unprotected: Optional[pulumi.Input[_builtins.bool]] = None):
34
34
  """
35
35
  The set of arguments for constructing a KeyManagerKey resource.
36
- :param pulumi.Input[builtins.str] usage: – The usage of the key. Valid values are:
37
- :param pulumi.Input[builtins.str] description: – A description for the key.
38
- :param pulumi.Input[builtins.str] name: The name of the key.
39
- :param pulumi.Input[builtins.str] origin: – The origin of the key. Valid values are:
40
- :param pulumi.Input[builtins.str] project_id: The ID of the project the key belongs to.
41
- :param pulumi.Input[builtins.str] region: The region in which to create the key (e.g., `fr-par`).
36
+ :param pulumi.Input[_builtins.str] algorithm: – The cryptographic algorithm to use. Valid values depend on the `usage`:
37
+ - For `symmetric_encryption`:
38
+ :param pulumi.Input[_builtins.str] usage: The usage type of the key. Valid values:
39
+ :param pulumi.Input[_builtins.str] description: – A description for the key.
40
+ :param pulumi.Input[_builtins.str] name: The name of the key.
41
+ :param pulumi.Input[_builtins.str] origin: The origin of the key. Valid values are:
42
+ :param pulumi.Input[_builtins.str] project_id: – The ID of the project the key belongs to.
43
+
44
+ **Key Usage and Algorithm (both required):**
45
+ :param pulumi.Input[_builtins.str] region: The region in which to create the key (e.g., `fr-par`).
42
46
  :param pulumi.Input['KeyManagerKeyRotationPolicyArgs'] rotation_policy: – Rotation policy for the key:
43
- :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] tags: – A list of tags to assign to the key.
44
- :param pulumi.Input[builtins.bool] unprotected: – If `true`, the key can be deleted. Defaults to `false` (protected).
47
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: – A list of tags to assign to the key.
48
+ :param pulumi.Input[_builtins.bool] unprotected: – If `true`, the key can be deleted. Defaults to `false` (protected).
45
49
  """
50
+ pulumi.set(__self__, "algorithm", algorithm)
46
51
  pulumi.set(__self__, "usage", usage)
47
52
  if description is not None:
48
53
  pulumi.set(__self__, "description", description)
@@ -61,79 +66,94 @@ class KeyManagerKeyArgs:
61
66
  if unprotected is not None:
62
67
  pulumi.set(__self__, "unprotected", unprotected)
63
68
 
64
- @property
69
+ @_builtins.property
65
70
  @pulumi.getter
66
- def usage(self) -> pulumi.Input[builtins.str]:
71
+ def algorithm(self) -> pulumi.Input[_builtins.str]:
67
72
  """
68
- – The usage of the key. Valid values are:
73
+ – The cryptographic algorithm to use. Valid values depend on the `usage`:
74
+ - For `symmetric_encryption`:
75
+ """
76
+ return pulumi.get(self, "algorithm")
77
+
78
+ @algorithm.setter
79
+ def algorithm(self, value: pulumi.Input[_builtins.str]):
80
+ pulumi.set(self, "algorithm", value)
81
+
82
+ @_builtins.property
83
+ @pulumi.getter
84
+ def usage(self) -> pulumi.Input[_builtins.str]:
85
+ """
86
+ – The usage type of the key. Valid values:
69
87
  """
70
88
  return pulumi.get(self, "usage")
71
89
 
72
90
  @usage.setter
73
- def usage(self, value: pulumi.Input[builtins.str]):
91
+ def usage(self, value: pulumi.Input[_builtins.str]):
74
92
  pulumi.set(self, "usage", value)
75
93
 
76
- @property
94
+ @_builtins.property
77
95
  @pulumi.getter
78
- def description(self) -> Optional[pulumi.Input[builtins.str]]:
96
+ def description(self) -> Optional[pulumi.Input[_builtins.str]]:
79
97
  """
80
98
  – A description for the key.
81
99
  """
82
100
  return pulumi.get(self, "description")
83
101
 
84
102
  @description.setter
85
- def description(self, value: Optional[pulumi.Input[builtins.str]]):
103
+ def description(self, value: Optional[pulumi.Input[_builtins.str]]):
86
104
  pulumi.set(self, "description", value)
87
105
 
88
- @property
106
+ @_builtins.property
89
107
  @pulumi.getter
90
- def name(self) -> Optional[pulumi.Input[builtins.str]]:
108
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
91
109
  """
92
110
  The name of the key.
93
111
  """
94
112
  return pulumi.get(self, "name")
95
113
 
96
114
  @name.setter
97
- def name(self, value: Optional[pulumi.Input[builtins.str]]):
115
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
98
116
  pulumi.set(self, "name", value)
99
117
 
100
- @property
118
+ @_builtins.property
101
119
  @pulumi.getter
102
- def origin(self) -> Optional[pulumi.Input[builtins.str]]:
120
+ def origin(self) -> Optional[pulumi.Input[_builtins.str]]:
103
121
  """
104
122
  – The origin of the key. Valid values are:
105
123
  """
106
124
  return pulumi.get(self, "origin")
107
125
 
108
126
  @origin.setter
109
- def origin(self, value: Optional[pulumi.Input[builtins.str]]):
127
+ def origin(self, value: Optional[pulumi.Input[_builtins.str]]):
110
128
  pulumi.set(self, "origin", value)
111
129
 
112
- @property
130
+ @_builtins.property
113
131
  @pulumi.getter(name="projectId")
114
- def project_id(self) -> Optional[pulumi.Input[builtins.str]]:
132
+ def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
115
133
  """
116
134
  – The ID of the project the key belongs to.
135
+
136
+ **Key Usage and Algorithm (both required):**
117
137
  """
118
138
  return pulumi.get(self, "project_id")
119
139
 
120
140
  @project_id.setter
121
- def project_id(self, value: Optional[pulumi.Input[builtins.str]]):
141
+ def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
122
142
  pulumi.set(self, "project_id", value)
123
143
 
124
- @property
144
+ @_builtins.property
125
145
  @pulumi.getter
126
- def region(self) -> Optional[pulumi.Input[builtins.str]]:
146
+ def region(self) -> Optional[pulumi.Input[_builtins.str]]:
127
147
  """
128
148
  The region in which to create the key (e.g., `fr-par`).
129
149
  """
130
150
  return pulumi.get(self, "region")
131
151
 
132
152
  @region.setter
133
- def region(self, value: Optional[pulumi.Input[builtins.str]]):
153
+ def region(self, value: Optional[pulumi.Input[_builtins.str]]):
134
154
  pulumi.set(self, "region", value)
135
155
 
136
- @property
156
+ @_builtins.property
137
157
  @pulumi.getter(name="rotationPolicy")
138
158
  def rotation_policy(self) -> Optional[pulumi.Input['KeyManagerKeyRotationPolicyArgs']]:
139
159
  """
@@ -145,69 +165,76 @@ class KeyManagerKeyArgs:
145
165
  def rotation_policy(self, value: Optional[pulumi.Input['KeyManagerKeyRotationPolicyArgs']]):
146
166
  pulumi.set(self, "rotation_policy", value)
147
167
 
148
- @property
168
+ @_builtins.property
149
169
  @pulumi.getter
150
- def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
170
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
151
171
  """
152
172
  – A list of tags to assign to the key.
153
173
  """
154
174
  return pulumi.get(self, "tags")
155
175
 
156
176
  @tags.setter
157
- def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
177
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
158
178
  pulumi.set(self, "tags", value)
159
179
 
160
- @property
180
+ @_builtins.property
161
181
  @pulumi.getter
162
- def unprotected(self) -> Optional[pulumi.Input[builtins.bool]]:
182
+ def unprotected(self) -> Optional[pulumi.Input[_builtins.bool]]:
163
183
  """
164
184
  – If `true`, the key can be deleted. Defaults to `false` (protected).
165
185
  """
166
186
  return pulumi.get(self, "unprotected")
167
187
 
168
188
  @unprotected.setter
169
- def unprotected(self, value: Optional[pulumi.Input[builtins.bool]]):
189
+ def unprotected(self, value: Optional[pulumi.Input[_builtins.bool]]):
170
190
  pulumi.set(self, "unprotected", value)
171
191
 
172
192
 
173
193
  @pulumi.input_type
174
194
  class _KeyManagerKeyState:
175
195
  def __init__(__self__, *,
176
- created_at: Optional[pulumi.Input[builtins.str]] = None,
177
- description: Optional[pulumi.Input[builtins.str]] = None,
178
- locked: Optional[pulumi.Input[builtins.bool]] = None,
179
- name: Optional[pulumi.Input[builtins.str]] = None,
180
- origin: Optional[pulumi.Input[builtins.str]] = None,
181
- project_id: Optional[pulumi.Input[builtins.str]] = None,
182
- protected: Optional[pulumi.Input[builtins.bool]] = None,
183
- region: Optional[pulumi.Input[builtins.str]] = None,
184
- rotated_at: Optional[pulumi.Input[builtins.str]] = None,
185
- rotation_count: Optional[pulumi.Input[builtins.int]] = None,
196
+ algorithm: Optional[pulumi.Input[_builtins.str]] = None,
197
+ created_at: Optional[pulumi.Input[_builtins.str]] = None,
198
+ description: Optional[pulumi.Input[_builtins.str]] = None,
199
+ locked: Optional[pulumi.Input[_builtins.bool]] = None,
200
+ name: Optional[pulumi.Input[_builtins.str]] = None,
201
+ origin: Optional[pulumi.Input[_builtins.str]] = None,
202
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
203
+ protected: Optional[pulumi.Input[_builtins.bool]] = None,
204
+ region: Optional[pulumi.Input[_builtins.str]] = None,
205
+ rotated_at: Optional[pulumi.Input[_builtins.str]] = None,
206
+ rotation_count: Optional[pulumi.Input[_builtins.int]] = None,
186
207
  rotation_policy: Optional[pulumi.Input['KeyManagerKeyRotationPolicyArgs']] = None,
187
- state: Optional[pulumi.Input[builtins.str]] = None,
188
- tags: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
189
- unprotected: Optional[pulumi.Input[builtins.bool]] = None,
190
- updated_at: Optional[pulumi.Input[builtins.str]] = None,
191
- usage: Optional[pulumi.Input[builtins.str]] = None):
208
+ state: Optional[pulumi.Input[_builtins.str]] = None,
209
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
210
+ unprotected: Optional[pulumi.Input[_builtins.bool]] = None,
211
+ updated_at: Optional[pulumi.Input[_builtins.str]] = None,
212
+ usage: Optional[pulumi.Input[_builtins.str]] = None):
192
213
  """
193
214
  Input properties used for looking up and filtering KeyManagerKey resources.
194
- :param pulumi.Input[builtins.str] created_at: The date and time when the key was created.
195
- :param pulumi.Input[builtins.str] description: – A description for the key.
196
- :param pulumi.Input[builtins.bool] locked: Whether the key is locked.
197
- :param pulumi.Input[builtins.str] name: The name of the key.
198
- :param pulumi.Input[builtins.str] origin: The origin of the key. Valid values are:
199
- :param pulumi.Input[builtins.str] project_id: The ID of the project the key belongs to.
200
- :param pulumi.Input[builtins.bool] protected: Whether the key is protected from deletion.
201
- :param pulumi.Input[builtins.str] region: The region in which to create the key (e.g., `fr-par`).
202
- :param pulumi.Input[builtins.str] rotated_at: The date and time when the key was last rotated.
203
- :param pulumi.Input[builtins.int] rotation_count: The number of times the key has been rotated.
215
+ :param pulumi.Input[_builtins.str] algorithm: The cryptographic algorithm to use. Valid values depend on the `usage`:
216
+ - For `symmetric_encryption`:
217
+ :param pulumi.Input[_builtins.str] created_at: The date and time when the key was created.
218
+ :param pulumi.Input[_builtins.str] description: A description for the key.
219
+ :param pulumi.Input[_builtins.bool] locked: Whether the key is locked.
220
+ :param pulumi.Input[_builtins.str] name: The name of the key.
221
+ :param pulumi.Input[_builtins.str] origin: The origin of the key. Valid values are:
222
+ :param pulumi.Input[_builtins.str] project_id: The ID of the project the key belongs to.
223
+
224
+ **Key Usage and Algorithm (both required):**
225
+ :param pulumi.Input[_builtins.bool] protected: Whether the key is protected from deletion.
226
+ :param pulumi.Input[_builtins.str] region: The region in which to create the key (e.g., `fr-par`).
227
+ :param pulumi.Input[_builtins.str] rotated_at: The date and time when the key was last rotated.
228
+ :param pulumi.Input[_builtins.int] rotation_count: The number of times the key has been rotated.
204
229
  :param pulumi.Input['KeyManagerKeyRotationPolicyArgs'] rotation_policy: – Rotation policy for the key:
205
- :param pulumi.Input[builtins.str] state: The state of the key (e.g., `enabled`).
206
- :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] tags: – A list of tags to assign to the key.
207
- :param pulumi.Input[builtins.bool] unprotected: – If `true`, the key can be deleted. Defaults to `false` (protected).
208
- :param pulumi.Input[builtins.str] updated_at: The date and time when the key was last updated.
209
- :param pulumi.Input[builtins.str] usage: – The usage of the key. Valid values are:
210
- """
230
+ :param pulumi.Input[_builtins.str] state: The state of the key (e.g., `enabled`).
231
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: – A list of tags to assign to the key.
232
+ :param pulumi.Input[_builtins.bool] unprotected: – If `true`, the key can be deleted. Defaults to `false` (protected).
233
+ :param pulumi.Input[_builtins.str] updated_at: The date and time when the key was last updated.
234
+ :param pulumi.Input[_builtins.str] usage: – The usage type of the key. Valid values:
235
+ """
236
+ if algorithm is not None:
237
+ pulumi.set(__self__, "algorithm", algorithm)
211
238
  if created_at is not None:
212
239
  pulumi.set(__self__, "created_at", created_at)
213
240
  if description is not None:
@@ -241,127 +268,142 @@ class _KeyManagerKeyState:
241
268
  if usage is not None:
242
269
  pulumi.set(__self__, "usage", usage)
243
270
 
244
- @property
271
+ @_builtins.property
272
+ @pulumi.getter
273
+ def algorithm(self) -> Optional[pulumi.Input[_builtins.str]]:
274
+ """
275
+ – The cryptographic algorithm to use. Valid values depend on the `usage`:
276
+ - For `symmetric_encryption`:
277
+ """
278
+ return pulumi.get(self, "algorithm")
279
+
280
+ @algorithm.setter
281
+ def algorithm(self, value: Optional[pulumi.Input[_builtins.str]]):
282
+ pulumi.set(self, "algorithm", value)
283
+
284
+ @_builtins.property
245
285
  @pulumi.getter(name="createdAt")
246
- def created_at(self) -> Optional[pulumi.Input[builtins.str]]:
286
+ def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
247
287
  """
248
288
  The date and time when the key was created.
249
289
  """
250
290
  return pulumi.get(self, "created_at")
251
291
 
252
292
  @created_at.setter
253
- def created_at(self, value: Optional[pulumi.Input[builtins.str]]):
293
+ def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
254
294
  pulumi.set(self, "created_at", value)
255
295
 
256
- @property
296
+ @_builtins.property
257
297
  @pulumi.getter
258
- def description(self) -> Optional[pulumi.Input[builtins.str]]:
298
+ def description(self) -> Optional[pulumi.Input[_builtins.str]]:
259
299
  """
260
300
  – A description for the key.
261
301
  """
262
302
  return pulumi.get(self, "description")
263
303
 
264
304
  @description.setter
265
- def description(self, value: Optional[pulumi.Input[builtins.str]]):
305
+ def description(self, value: Optional[pulumi.Input[_builtins.str]]):
266
306
  pulumi.set(self, "description", value)
267
307
 
268
- @property
308
+ @_builtins.property
269
309
  @pulumi.getter
270
- def locked(self) -> Optional[pulumi.Input[builtins.bool]]:
310
+ def locked(self) -> Optional[pulumi.Input[_builtins.bool]]:
271
311
  """
272
312
  Whether the key is locked.
273
313
  """
274
314
  return pulumi.get(self, "locked")
275
315
 
276
316
  @locked.setter
277
- def locked(self, value: Optional[pulumi.Input[builtins.bool]]):
317
+ def locked(self, value: Optional[pulumi.Input[_builtins.bool]]):
278
318
  pulumi.set(self, "locked", value)
279
319
 
280
- @property
320
+ @_builtins.property
281
321
  @pulumi.getter
282
- def name(self) -> Optional[pulumi.Input[builtins.str]]:
322
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
283
323
  """
284
324
  The name of the key.
285
325
  """
286
326
  return pulumi.get(self, "name")
287
327
 
288
328
  @name.setter
289
- def name(self, value: Optional[pulumi.Input[builtins.str]]):
329
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
290
330
  pulumi.set(self, "name", value)
291
331
 
292
- @property
332
+ @_builtins.property
293
333
  @pulumi.getter
294
- def origin(self) -> Optional[pulumi.Input[builtins.str]]:
334
+ def origin(self) -> Optional[pulumi.Input[_builtins.str]]:
295
335
  """
296
336
  – The origin of the key. Valid values are:
297
337
  """
298
338
  return pulumi.get(self, "origin")
299
339
 
300
340
  @origin.setter
301
- def origin(self, value: Optional[pulumi.Input[builtins.str]]):
341
+ def origin(self, value: Optional[pulumi.Input[_builtins.str]]):
302
342
  pulumi.set(self, "origin", value)
303
343
 
304
- @property
344
+ @_builtins.property
305
345
  @pulumi.getter(name="projectId")
306
- def project_id(self) -> Optional[pulumi.Input[builtins.str]]:
346
+ def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
307
347
  """
308
348
  – The ID of the project the key belongs to.
349
+
350
+ **Key Usage and Algorithm (both required):**
309
351
  """
310
352
  return pulumi.get(self, "project_id")
311
353
 
312
354
  @project_id.setter
313
- def project_id(self, value: Optional[pulumi.Input[builtins.str]]):
355
+ def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
314
356
  pulumi.set(self, "project_id", value)
315
357
 
316
- @property
358
+ @_builtins.property
317
359
  @pulumi.getter
318
- def protected(self) -> Optional[pulumi.Input[builtins.bool]]:
360
+ def protected(self) -> Optional[pulumi.Input[_builtins.bool]]:
319
361
  """
320
362
  Whether the key is protected from deletion.
321
363
  """
322
364
  return pulumi.get(self, "protected")
323
365
 
324
366
  @protected.setter
325
- def protected(self, value: Optional[pulumi.Input[builtins.bool]]):
367
+ def protected(self, value: Optional[pulumi.Input[_builtins.bool]]):
326
368
  pulumi.set(self, "protected", value)
327
369
 
328
- @property
370
+ @_builtins.property
329
371
  @pulumi.getter
330
- def region(self) -> Optional[pulumi.Input[builtins.str]]:
372
+ def region(self) -> Optional[pulumi.Input[_builtins.str]]:
331
373
  """
332
374
  The region in which to create the key (e.g., `fr-par`).
333
375
  """
334
376
  return pulumi.get(self, "region")
335
377
 
336
378
  @region.setter
337
- def region(self, value: Optional[pulumi.Input[builtins.str]]):
379
+ def region(self, value: Optional[pulumi.Input[_builtins.str]]):
338
380
  pulumi.set(self, "region", value)
339
381
 
340
- @property
382
+ @_builtins.property
341
383
  @pulumi.getter(name="rotatedAt")
342
- def rotated_at(self) -> Optional[pulumi.Input[builtins.str]]:
384
+ def rotated_at(self) -> Optional[pulumi.Input[_builtins.str]]:
343
385
  """
344
386
  The date and time when the key was last rotated.
345
387
  """
346
388
  return pulumi.get(self, "rotated_at")
347
389
 
348
390
  @rotated_at.setter
349
- def rotated_at(self, value: Optional[pulumi.Input[builtins.str]]):
391
+ def rotated_at(self, value: Optional[pulumi.Input[_builtins.str]]):
350
392
  pulumi.set(self, "rotated_at", value)
351
393
 
352
- @property
394
+ @_builtins.property
353
395
  @pulumi.getter(name="rotationCount")
354
- def rotation_count(self) -> Optional[pulumi.Input[builtins.int]]:
396
+ def rotation_count(self) -> Optional[pulumi.Input[_builtins.int]]:
355
397
  """
356
398
  The number of times the key has been rotated.
357
399
  """
358
400
  return pulumi.get(self, "rotation_count")
359
401
 
360
402
  @rotation_count.setter
361
- def rotation_count(self, value: Optional[pulumi.Input[builtins.int]]):
403
+ def rotation_count(self, value: Optional[pulumi.Input[_builtins.int]]):
362
404
  pulumi.set(self, "rotation_count", value)
363
405
 
364
- @property
406
+ @_builtins.property
365
407
  @pulumi.getter(name="rotationPolicy")
366
408
  def rotation_policy(self) -> Optional[pulumi.Input['KeyManagerKeyRotationPolicyArgs']]:
367
409
  """
@@ -373,64 +415,64 @@ class _KeyManagerKeyState:
373
415
  def rotation_policy(self, value: Optional[pulumi.Input['KeyManagerKeyRotationPolicyArgs']]):
374
416
  pulumi.set(self, "rotation_policy", value)
375
417
 
376
- @property
418
+ @_builtins.property
377
419
  @pulumi.getter
378
- def state(self) -> Optional[pulumi.Input[builtins.str]]:
420
+ def state(self) -> Optional[pulumi.Input[_builtins.str]]:
379
421
  """
380
422
  The state of the key (e.g., `enabled`).
381
423
  """
382
424
  return pulumi.get(self, "state")
383
425
 
384
426
  @state.setter
385
- def state(self, value: Optional[pulumi.Input[builtins.str]]):
427
+ def state(self, value: Optional[pulumi.Input[_builtins.str]]):
386
428
  pulumi.set(self, "state", value)
387
429
 
388
- @property
430
+ @_builtins.property
389
431
  @pulumi.getter
390
- def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
432
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
391
433
  """
392
434
  – A list of tags to assign to the key.
393
435
  """
394
436
  return pulumi.get(self, "tags")
395
437
 
396
438
  @tags.setter
397
- def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
439
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
398
440
  pulumi.set(self, "tags", value)
399
441
 
400
- @property
442
+ @_builtins.property
401
443
  @pulumi.getter
402
- def unprotected(self) -> Optional[pulumi.Input[builtins.bool]]:
444
+ def unprotected(self) -> Optional[pulumi.Input[_builtins.bool]]:
403
445
  """
404
446
  – If `true`, the key can be deleted. Defaults to `false` (protected).
405
447
  """
406
448
  return pulumi.get(self, "unprotected")
407
449
 
408
450
  @unprotected.setter
409
- def unprotected(self, value: Optional[pulumi.Input[builtins.bool]]):
451
+ def unprotected(self, value: Optional[pulumi.Input[_builtins.bool]]):
410
452
  pulumi.set(self, "unprotected", value)
411
453
 
412
- @property
454
+ @_builtins.property
413
455
  @pulumi.getter(name="updatedAt")
414
- def updated_at(self) -> Optional[pulumi.Input[builtins.str]]:
456
+ def updated_at(self) -> Optional[pulumi.Input[_builtins.str]]:
415
457
  """
416
458
  The date and time when the key was last updated.
417
459
  """
418
460
  return pulumi.get(self, "updated_at")
419
461
 
420
462
  @updated_at.setter
421
- def updated_at(self, value: Optional[pulumi.Input[builtins.str]]):
463
+ def updated_at(self, value: Optional[pulumi.Input[_builtins.str]]):
422
464
  pulumi.set(self, "updated_at", value)
423
465
 
424
- @property
466
+ @_builtins.property
425
467
  @pulumi.getter
426
- def usage(self) -> Optional[pulumi.Input[builtins.str]]:
468
+ def usage(self) -> Optional[pulumi.Input[_builtins.str]]:
427
469
  """
428
- – The usage of the key. Valid values are:
470
+ – The usage type of the key. Valid values:
429
471
  """
430
472
  return pulumi.get(self, "usage")
431
473
 
432
474
  @usage.setter
433
- def usage(self, value: Optional[pulumi.Input[builtins.str]]):
475
+ def usage(self, value: Optional[pulumi.Input[_builtins.str]]):
434
476
  pulumi.set(self, "usage", value)
435
477
 
436
478
 
@@ -440,15 +482,16 @@ class KeyManagerKey(pulumi.CustomResource):
440
482
  def __init__(__self__,
441
483
  resource_name: str,
442
484
  opts: Optional[pulumi.ResourceOptions] = None,
443
- description: Optional[pulumi.Input[builtins.str]] = None,
444
- name: Optional[pulumi.Input[builtins.str]] = None,
445
- origin: Optional[pulumi.Input[builtins.str]] = None,
446
- project_id: Optional[pulumi.Input[builtins.str]] = None,
447
- region: Optional[pulumi.Input[builtins.str]] = None,
485
+ algorithm: Optional[pulumi.Input[_builtins.str]] = None,
486
+ description: Optional[pulumi.Input[_builtins.str]] = None,
487
+ name: Optional[pulumi.Input[_builtins.str]] = None,
488
+ origin: Optional[pulumi.Input[_builtins.str]] = None,
489
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
490
+ region: Optional[pulumi.Input[_builtins.str]] = None,
448
491
  rotation_policy: Optional[pulumi.Input[Union['KeyManagerKeyRotationPolicyArgs', 'KeyManagerKeyRotationPolicyArgsDict']]] = None,
449
- tags: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
450
- unprotected: Optional[pulumi.Input[builtins.bool]] = None,
451
- usage: Optional[pulumi.Input[builtins.str]] = None,
492
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
493
+ unprotected: Optional[pulumi.Input[_builtins.bool]] = None,
494
+ usage: Optional[pulumi.Input[_builtins.str]] = None,
452
495
  __props__=None):
453
496
  """
454
497
  Provides a Scaleway Key Manager Key resource.\\
@@ -456,15 +499,18 @@ class KeyManagerKey(pulumi.CustomResource):
456
499
 
457
500
  ## Example Usage
458
501
 
502
+ ### Symmetric Encryption Key
503
+
459
504
  ```python
460
505
  import pulumi
461
506
  import pulumiverse_scaleway as scaleway
462
507
 
463
- main = scaleway.KeyManagerKey("main",
508
+ symmetric = scaleway.KeyManagerKey("symmetric",
464
509
  name="my-kms-key",
465
510
  region="fr-par",
466
511
  project_id="your-project-id",
467
512
  usage="symmetric_encryption",
513
+ algorithm="aes_256_gcm",
468
514
  description="Key for encrypting secrets",
469
515
  tags=[
470
516
  "env:prod",
@@ -476,27 +522,44 @@ class KeyManagerKey(pulumi.CustomResource):
476
522
  })
477
523
  ```
478
524
 
479
- ## Notes
525
+ ### Asymmetric Encryption Key with RSA-4096
480
526
 
481
- - **Protection**: By default, keys are protected and cannot be deleted. To allow deletion, set `unprotected = true` when creating the key.
482
- - **Rotation Policy**: The `rotation_policy` block allows you to set automatic rotation for your key.
483
- - **Origin**: The `origin` argument is optional and defaults to `scaleway_kms`. Use `external` if you want to import an external key (see Scaleway documentation for details).
484
- - **Project and Region**: If not specified, `project_id` and `region` will default to the provider configuration.
527
+ ```python
528
+ import pulumi
529
+ import pulumiverse_scaleway as scaleway
485
530
 
486
- ## Example: Asymmetric Key
531
+ rsa4096 = scaleway.KeyManagerKey("rsa_4096",
532
+ name="rsa-4096-key",
533
+ region="fr-par",
534
+ usage="asymmetric_encryption",
535
+ algorithm="rsa_oaep_4096_sha256",
536
+ description="Key for encrypting large files with RSA-4096",
537
+ unprotected=True)
538
+ ```
539
+
540
+ ### Asymmetric Signing Key
487
541
 
488
542
  ```python
489
543
  import pulumi
490
544
  import pulumiverse_scaleway as scaleway
491
545
 
492
- asym = scaleway.KeyManagerKey("asym",
493
- name="asymmetric-key",
546
+ signing = scaleway.KeyManagerKey("signing",
547
+ name="signing-key",
494
548
  region="fr-par",
495
549
  usage="asymmetric_signing",
550
+ algorithm="rsa_pss_2048_sha256",
496
551
  description="Key for signing documents",
497
552
  unprotected=True)
498
553
  ```
499
554
 
555
+ ## Notes
556
+
557
+ - **Protection**: By default, keys are protected and cannot be deleted. To allow deletion, set `unprotected = true` when creating the key.
558
+ - **Rotation Policy**: The `rotation_policy` block allows you to set automatic rotation for your key.
559
+ - **Origin**: The `origin` argument is optional and defaults to `scaleway_kms`. Use `external` if you want to import an external key (see Scaleway documentation for details).
560
+ - **Project and Region**: If not specified, `project_id` and `region` will default to the provider configuration.
561
+ - **Algorithm Validation**: The provider validates that the specified `algorithm` is compatible with the `usage` type at plan time, providing early feedback on configuration errors.
562
+
500
563
  ## Import
501
564
 
502
565
  You can import a key using its ID and region:
@@ -507,15 +570,19 @@ class KeyManagerKey(pulumi.CustomResource):
507
570
 
508
571
  :param str resource_name: The name of the resource.
509
572
  :param pulumi.ResourceOptions opts: Options for the resource.
510
- :param pulumi.Input[builtins.str] description: – A description for the key.
511
- :param pulumi.Input[builtins.str] name: The name of the key.
512
- :param pulumi.Input[builtins.str] origin: – The origin of the key. Valid values are:
513
- :param pulumi.Input[builtins.str] project_id: The ID of the project the key belongs to.
514
- :param pulumi.Input[builtins.str] region: The region in which to create the key (e.g., `fr-par`).
573
+ :param pulumi.Input[_builtins.str] algorithm: – The cryptographic algorithm to use. Valid values depend on the `usage`:
574
+ - For `symmetric_encryption`:
575
+ :param pulumi.Input[_builtins.str] description: – A description for the key.
576
+ :param pulumi.Input[_builtins.str] name: The name of the key.
577
+ :param pulumi.Input[_builtins.str] origin: The origin of the key. Valid values are:
578
+ :param pulumi.Input[_builtins.str] project_id: – The ID of the project the key belongs to.
579
+
580
+ **Key Usage and Algorithm (both required):**
581
+ :param pulumi.Input[_builtins.str] region: The region in which to create the key (e.g., `fr-par`).
515
582
  :param pulumi.Input[Union['KeyManagerKeyRotationPolicyArgs', 'KeyManagerKeyRotationPolicyArgsDict']] rotation_policy: – Rotation policy for the key:
516
- :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] tags: – A list of tags to assign to the key.
517
- :param pulumi.Input[builtins.bool] unprotected: – If `true`, the key can be deleted. Defaults to `false` (protected).
518
- :param pulumi.Input[builtins.str] usage: – The usage of the key. Valid values are:
583
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: – A list of tags to assign to the key.
584
+ :param pulumi.Input[_builtins.bool] unprotected: – If `true`, the key can be deleted. Defaults to `false` (protected).
585
+ :param pulumi.Input[_builtins.str] usage: – The usage type of the key. Valid values:
519
586
  """
520
587
  ...
521
588
  @overload
@@ -529,15 +596,18 @@ class KeyManagerKey(pulumi.CustomResource):
529
596
 
530
597
  ## Example Usage
531
598
 
599
+ ### Symmetric Encryption Key
600
+
532
601
  ```python
533
602
  import pulumi
534
603
  import pulumiverse_scaleway as scaleway
535
604
 
536
- main = scaleway.KeyManagerKey("main",
605
+ symmetric = scaleway.KeyManagerKey("symmetric",
537
606
  name="my-kms-key",
538
607
  region="fr-par",
539
608
  project_id="your-project-id",
540
609
  usage="symmetric_encryption",
610
+ algorithm="aes_256_gcm",
541
611
  description="Key for encrypting secrets",
542
612
  tags=[
543
613
  "env:prod",
@@ -549,27 +619,44 @@ class KeyManagerKey(pulumi.CustomResource):
549
619
  })
550
620
  ```
551
621
 
552
- ## Notes
622
+ ### Asymmetric Encryption Key with RSA-4096
553
623
 
554
- - **Protection**: By default, keys are protected and cannot be deleted. To allow deletion, set `unprotected = true` when creating the key.
555
- - **Rotation Policy**: The `rotation_policy` block allows you to set automatic rotation for your key.
556
- - **Origin**: The `origin` argument is optional and defaults to `scaleway_kms`. Use `external` if you want to import an external key (see Scaleway documentation for details).
557
- - **Project and Region**: If not specified, `project_id` and `region` will default to the provider configuration.
624
+ ```python
625
+ import pulumi
626
+ import pulumiverse_scaleway as scaleway
558
627
 
559
- ## Example: Asymmetric Key
628
+ rsa4096 = scaleway.KeyManagerKey("rsa_4096",
629
+ name="rsa-4096-key",
630
+ region="fr-par",
631
+ usage="asymmetric_encryption",
632
+ algorithm="rsa_oaep_4096_sha256",
633
+ description="Key for encrypting large files with RSA-4096",
634
+ unprotected=True)
635
+ ```
636
+
637
+ ### Asymmetric Signing Key
560
638
 
561
639
  ```python
562
640
  import pulumi
563
641
  import pulumiverse_scaleway as scaleway
564
642
 
565
- asym = scaleway.KeyManagerKey("asym",
566
- name="asymmetric-key",
643
+ signing = scaleway.KeyManagerKey("signing",
644
+ name="signing-key",
567
645
  region="fr-par",
568
646
  usage="asymmetric_signing",
647
+ algorithm="rsa_pss_2048_sha256",
569
648
  description="Key for signing documents",
570
649
  unprotected=True)
571
650
  ```
572
651
 
652
+ ## Notes
653
+
654
+ - **Protection**: By default, keys are protected and cannot be deleted. To allow deletion, set `unprotected = true` when creating the key.
655
+ - **Rotation Policy**: The `rotation_policy` block allows you to set automatic rotation for your key.
656
+ - **Origin**: The `origin` argument is optional and defaults to `scaleway_kms`. Use `external` if you want to import an external key (see Scaleway documentation for details).
657
+ - **Project and Region**: If not specified, `project_id` and `region` will default to the provider configuration.
658
+ - **Algorithm Validation**: The provider validates that the specified `algorithm` is compatible with the `usage` type at plan time, providing early feedback on configuration errors.
659
+
573
660
  ## Import
574
661
 
575
662
  You can import a key using its ID and region:
@@ -593,15 +680,16 @@ class KeyManagerKey(pulumi.CustomResource):
593
680
  def _internal_init(__self__,
594
681
  resource_name: str,
595
682
  opts: Optional[pulumi.ResourceOptions] = None,
596
- description: Optional[pulumi.Input[builtins.str]] = None,
597
- name: Optional[pulumi.Input[builtins.str]] = None,
598
- origin: Optional[pulumi.Input[builtins.str]] = None,
599
- project_id: Optional[pulumi.Input[builtins.str]] = None,
600
- region: Optional[pulumi.Input[builtins.str]] = None,
683
+ algorithm: Optional[pulumi.Input[_builtins.str]] = None,
684
+ description: Optional[pulumi.Input[_builtins.str]] = None,
685
+ name: Optional[pulumi.Input[_builtins.str]] = None,
686
+ origin: Optional[pulumi.Input[_builtins.str]] = None,
687
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
688
+ region: Optional[pulumi.Input[_builtins.str]] = None,
601
689
  rotation_policy: Optional[pulumi.Input[Union['KeyManagerKeyRotationPolicyArgs', 'KeyManagerKeyRotationPolicyArgsDict']]] = None,
602
- tags: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
603
- unprotected: Optional[pulumi.Input[builtins.bool]] = None,
604
- usage: Optional[pulumi.Input[builtins.str]] = None,
690
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
691
+ unprotected: Optional[pulumi.Input[_builtins.bool]] = None,
692
+ usage: Optional[pulumi.Input[_builtins.str]] = None,
605
693
  __props__=None):
606
694
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
607
695
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -611,6 +699,9 @@ class KeyManagerKey(pulumi.CustomResource):
611
699
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
612
700
  __props__ = KeyManagerKeyArgs.__new__(KeyManagerKeyArgs)
613
701
 
702
+ if algorithm is None and not opts.urn:
703
+ raise TypeError("Missing required property 'algorithm'")
704
+ __props__.__dict__["algorithm"] = algorithm
614
705
  __props__.__dict__["description"] = description
615
706
  __props__.__dict__["name"] = name
616
707
  __props__.__dict__["origin"] = origin
@@ -639,22 +730,23 @@ class KeyManagerKey(pulumi.CustomResource):
639
730
  def get(resource_name: str,
640
731
  id: pulumi.Input[str],
641
732
  opts: Optional[pulumi.ResourceOptions] = None,
642
- created_at: Optional[pulumi.Input[builtins.str]] = None,
643
- description: Optional[pulumi.Input[builtins.str]] = None,
644
- locked: Optional[pulumi.Input[builtins.bool]] = None,
645
- name: Optional[pulumi.Input[builtins.str]] = None,
646
- origin: Optional[pulumi.Input[builtins.str]] = None,
647
- project_id: Optional[pulumi.Input[builtins.str]] = None,
648
- protected: Optional[pulumi.Input[builtins.bool]] = None,
649
- region: Optional[pulumi.Input[builtins.str]] = None,
650
- rotated_at: Optional[pulumi.Input[builtins.str]] = None,
651
- rotation_count: Optional[pulumi.Input[builtins.int]] = None,
733
+ algorithm: Optional[pulumi.Input[_builtins.str]] = None,
734
+ created_at: Optional[pulumi.Input[_builtins.str]] = None,
735
+ description: Optional[pulumi.Input[_builtins.str]] = None,
736
+ locked: Optional[pulumi.Input[_builtins.bool]] = None,
737
+ name: Optional[pulumi.Input[_builtins.str]] = None,
738
+ origin: Optional[pulumi.Input[_builtins.str]] = None,
739
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
740
+ protected: Optional[pulumi.Input[_builtins.bool]] = None,
741
+ region: Optional[pulumi.Input[_builtins.str]] = None,
742
+ rotated_at: Optional[pulumi.Input[_builtins.str]] = None,
743
+ rotation_count: Optional[pulumi.Input[_builtins.int]] = None,
652
744
  rotation_policy: Optional[pulumi.Input[Union['KeyManagerKeyRotationPolicyArgs', 'KeyManagerKeyRotationPolicyArgsDict']]] = None,
653
- state: Optional[pulumi.Input[builtins.str]] = None,
654
- tags: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
655
- unprotected: Optional[pulumi.Input[builtins.bool]] = None,
656
- updated_at: Optional[pulumi.Input[builtins.str]] = None,
657
- usage: Optional[pulumi.Input[builtins.str]] = None) -> 'KeyManagerKey':
745
+ state: Optional[pulumi.Input[_builtins.str]] = None,
746
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
747
+ unprotected: Optional[pulumi.Input[_builtins.bool]] = None,
748
+ updated_at: Optional[pulumi.Input[_builtins.str]] = None,
749
+ usage: Optional[pulumi.Input[_builtins.str]] = None) -> 'KeyManagerKey':
658
750
  """
659
751
  Get an existing KeyManagerKey resource's state with the given name, id, and optional extra
660
752
  properties used to qualify the lookup.
@@ -662,27 +754,32 @@ class KeyManagerKey(pulumi.CustomResource):
662
754
  :param str resource_name: The unique name of the resulting resource.
663
755
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
664
756
  :param pulumi.ResourceOptions opts: Options for the resource.
665
- :param pulumi.Input[builtins.str] created_at: The date and time when the key was created.
666
- :param pulumi.Input[builtins.str] description: – A description for the key.
667
- :param pulumi.Input[builtins.bool] locked: Whether the key is locked.
668
- :param pulumi.Input[builtins.str] name: The name of the key.
669
- :param pulumi.Input[builtins.str] origin: The origin of the key. Valid values are:
670
- :param pulumi.Input[builtins.str] project_id: The ID of the project the key belongs to.
671
- :param pulumi.Input[builtins.bool] protected: Whether the key is protected from deletion.
672
- :param pulumi.Input[builtins.str] region: The region in which to create the key (e.g., `fr-par`).
673
- :param pulumi.Input[builtins.str] rotated_at: The date and time when the key was last rotated.
674
- :param pulumi.Input[builtins.int] rotation_count: The number of times the key has been rotated.
757
+ :param pulumi.Input[_builtins.str] algorithm: The cryptographic algorithm to use. Valid values depend on the `usage`:
758
+ - For `symmetric_encryption`:
759
+ :param pulumi.Input[_builtins.str] created_at: The date and time when the key was created.
760
+ :param pulumi.Input[_builtins.str] description: A description for the key.
761
+ :param pulumi.Input[_builtins.bool] locked: Whether the key is locked.
762
+ :param pulumi.Input[_builtins.str] name: The name of the key.
763
+ :param pulumi.Input[_builtins.str] origin: The origin of the key. Valid values are:
764
+ :param pulumi.Input[_builtins.str] project_id: The ID of the project the key belongs to.
765
+
766
+ **Key Usage and Algorithm (both required):**
767
+ :param pulumi.Input[_builtins.bool] protected: Whether the key is protected from deletion.
768
+ :param pulumi.Input[_builtins.str] region: The region in which to create the key (e.g., `fr-par`).
769
+ :param pulumi.Input[_builtins.str] rotated_at: The date and time when the key was last rotated.
770
+ :param pulumi.Input[_builtins.int] rotation_count: The number of times the key has been rotated.
675
771
  :param pulumi.Input[Union['KeyManagerKeyRotationPolicyArgs', 'KeyManagerKeyRotationPolicyArgsDict']] rotation_policy: – Rotation policy for the key:
676
- :param pulumi.Input[builtins.str] state: The state of the key (e.g., `enabled`).
677
- :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] tags: – A list of tags to assign to the key.
678
- :param pulumi.Input[builtins.bool] unprotected: – If `true`, the key can be deleted. Defaults to `false` (protected).
679
- :param pulumi.Input[builtins.str] updated_at: The date and time when the key was last updated.
680
- :param pulumi.Input[builtins.str] usage: – The usage of the key. Valid values are:
772
+ :param pulumi.Input[_builtins.str] state: The state of the key (e.g., `enabled`).
773
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: – A list of tags to assign to the key.
774
+ :param pulumi.Input[_builtins.bool] unprotected: – If `true`, the key can be deleted. Defaults to `false` (protected).
775
+ :param pulumi.Input[_builtins.str] updated_at: The date and time when the key was last updated.
776
+ :param pulumi.Input[_builtins.str] usage: – The usage type of the key. Valid values:
681
777
  """
682
778
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
683
779
 
684
780
  __props__ = _KeyManagerKeyState.__new__(_KeyManagerKeyState)
685
781
 
782
+ __props__.__dict__["algorithm"] = algorithm
686
783
  __props__.__dict__["created_at"] = created_at
687
784
  __props__.__dict__["description"] = description
688
785
  __props__.__dict__["locked"] = locked
@@ -701,87 +798,98 @@ class KeyManagerKey(pulumi.CustomResource):
701
798
  __props__.__dict__["usage"] = usage
702
799
  return KeyManagerKey(resource_name, opts=opts, __props__=__props__)
703
800
 
704
- @property
801
+ @_builtins.property
802
+ @pulumi.getter
803
+ def algorithm(self) -> pulumi.Output[_builtins.str]:
804
+ """
805
+ – The cryptographic algorithm to use. Valid values depend on the `usage`:
806
+ - For `symmetric_encryption`:
807
+ """
808
+ return pulumi.get(self, "algorithm")
809
+
810
+ @_builtins.property
705
811
  @pulumi.getter(name="createdAt")
706
- def created_at(self) -> pulumi.Output[builtins.str]:
812
+ def created_at(self) -> pulumi.Output[_builtins.str]:
707
813
  """
708
814
  The date and time when the key was created.
709
815
  """
710
816
  return pulumi.get(self, "created_at")
711
817
 
712
- @property
818
+ @_builtins.property
713
819
  @pulumi.getter
714
- def description(self) -> pulumi.Output[Optional[builtins.str]]:
820
+ def description(self) -> pulumi.Output[Optional[_builtins.str]]:
715
821
  """
716
822
  – A description for the key.
717
823
  """
718
824
  return pulumi.get(self, "description")
719
825
 
720
- @property
826
+ @_builtins.property
721
827
  @pulumi.getter
722
- def locked(self) -> pulumi.Output[builtins.bool]:
828
+ def locked(self) -> pulumi.Output[_builtins.bool]:
723
829
  """
724
830
  Whether the key is locked.
725
831
  """
726
832
  return pulumi.get(self, "locked")
727
833
 
728
- @property
834
+ @_builtins.property
729
835
  @pulumi.getter
730
- def name(self) -> pulumi.Output[builtins.str]:
836
+ def name(self) -> pulumi.Output[_builtins.str]:
731
837
  """
732
838
  The name of the key.
733
839
  """
734
840
  return pulumi.get(self, "name")
735
841
 
736
- @property
842
+ @_builtins.property
737
843
  @pulumi.getter
738
- def origin(self) -> pulumi.Output[Optional[builtins.str]]:
844
+ def origin(self) -> pulumi.Output[Optional[_builtins.str]]:
739
845
  """
740
846
  – The origin of the key. Valid values are:
741
847
  """
742
848
  return pulumi.get(self, "origin")
743
849
 
744
- @property
850
+ @_builtins.property
745
851
  @pulumi.getter(name="projectId")
746
- def project_id(self) -> pulumi.Output[builtins.str]:
852
+ def project_id(self) -> pulumi.Output[_builtins.str]:
747
853
  """
748
854
  – The ID of the project the key belongs to.
855
+
856
+ **Key Usage and Algorithm (both required):**
749
857
  """
750
858
  return pulumi.get(self, "project_id")
751
859
 
752
- @property
860
+ @_builtins.property
753
861
  @pulumi.getter
754
- def protected(self) -> pulumi.Output[builtins.bool]:
862
+ def protected(self) -> pulumi.Output[_builtins.bool]:
755
863
  """
756
864
  Whether the key is protected from deletion.
757
865
  """
758
866
  return pulumi.get(self, "protected")
759
867
 
760
- @property
868
+ @_builtins.property
761
869
  @pulumi.getter
762
- def region(self) -> pulumi.Output[builtins.str]:
870
+ def region(self) -> pulumi.Output[Optional[_builtins.str]]:
763
871
  """
764
872
  The region in which to create the key (e.g., `fr-par`).
765
873
  """
766
874
  return pulumi.get(self, "region")
767
875
 
768
- @property
876
+ @_builtins.property
769
877
  @pulumi.getter(name="rotatedAt")
770
- def rotated_at(self) -> pulumi.Output[builtins.str]:
878
+ def rotated_at(self) -> pulumi.Output[_builtins.str]:
771
879
  """
772
880
  The date and time when the key was last rotated.
773
881
  """
774
882
  return pulumi.get(self, "rotated_at")
775
883
 
776
- @property
884
+ @_builtins.property
777
885
  @pulumi.getter(name="rotationCount")
778
- def rotation_count(self) -> pulumi.Output[builtins.int]:
886
+ def rotation_count(self) -> pulumi.Output[_builtins.int]:
779
887
  """
780
888
  The number of times the key has been rotated.
781
889
  """
782
890
  return pulumi.get(self, "rotation_count")
783
891
 
784
- @property
892
+ @_builtins.property
785
893
  @pulumi.getter(name="rotationPolicy")
786
894
  def rotation_policy(self) -> pulumi.Output[Optional['outputs.KeyManagerKeyRotationPolicy']]:
787
895
  """
@@ -789,43 +897,43 @@ class KeyManagerKey(pulumi.CustomResource):
789
897
  """
790
898
  return pulumi.get(self, "rotation_policy")
791
899
 
792
- @property
900
+ @_builtins.property
793
901
  @pulumi.getter
794
- def state(self) -> pulumi.Output[builtins.str]:
902
+ def state(self) -> pulumi.Output[_builtins.str]:
795
903
  """
796
904
  The state of the key (e.g., `enabled`).
797
905
  """
798
906
  return pulumi.get(self, "state")
799
907
 
800
- @property
908
+ @_builtins.property
801
909
  @pulumi.getter
802
- def tags(self) -> pulumi.Output[Optional[Sequence[builtins.str]]]:
910
+ def tags(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
803
911
  """
804
912
  – A list of tags to assign to the key.
805
913
  """
806
914
  return pulumi.get(self, "tags")
807
915
 
808
- @property
916
+ @_builtins.property
809
917
  @pulumi.getter
810
- def unprotected(self) -> pulumi.Output[Optional[builtins.bool]]:
918
+ def unprotected(self) -> pulumi.Output[Optional[_builtins.bool]]:
811
919
  """
812
920
  – If `true`, the key can be deleted. Defaults to `false` (protected).
813
921
  """
814
922
  return pulumi.get(self, "unprotected")
815
923
 
816
- @property
924
+ @_builtins.property
817
925
  @pulumi.getter(name="updatedAt")
818
- def updated_at(self) -> pulumi.Output[builtins.str]:
926
+ def updated_at(self) -> pulumi.Output[_builtins.str]:
819
927
  """
820
928
  The date and time when the key was last updated.
821
929
  """
822
930
  return pulumi.get(self, "updated_at")
823
931
 
824
- @property
932
+ @_builtins.property
825
933
  @pulumi.getter
826
- def usage(self) -> pulumi.Output[builtins.str]:
934
+ def usage(self) -> pulumi.Output[_builtins.str]:
827
935
  """
828
- – The usage of the key. Valid values are:
936
+ – The usage type of the key. Valid values:
829
937
  """
830
938
  return pulumi.get(self, "usage")
831
939