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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. pulumiverse_scaleway/__init__.py +1034 -0
  2. pulumiverse_scaleway/_inputs.py +663 -0
  3. pulumiverse_scaleway/account/__init__.py +12 -0
  4. pulumiverse_scaleway/account/get_availability_zones.py +139 -0
  5. pulumiverse_scaleway/account/get_project.py +170 -0
  6. pulumiverse_scaleway/account/get_ssh_key.py +205 -0
  7. pulumiverse_scaleway/account/project.py +318 -0
  8. pulumiverse_scaleway/account/ssh_key.py +456 -0
  9. pulumiverse_scaleway/account_project.py +6 -0
  10. pulumiverse_scaleway/account_ssh_key.py +12 -6
  11. pulumiverse_scaleway/apple_silicon_server.py +113 -2
  12. pulumiverse_scaleway/applesilicon/__init__.py +10 -0
  13. pulumiverse_scaleway/applesilicon/_inputs.py +154 -0
  14. pulumiverse_scaleway/applesilicon/outputs.py +119 -0
  15. pulumiverse_scaleway/applesilicon/server.py +795 -0
  16. pulumiverse_scaleway/baremetal_server.py +64 -58
  17. pulumiverse_scaleway/billing/__init__.py +10 -0
  18. pulumiverse_scaleway/billing/get_consumptions.py +134 -0
  19. pulumiverse_scaleway/billing/get_invoices.py +154 -0
  20. pulumiverse_scaleway/billing/outputs.py +288 -0
  21. pulumiverse_scaleway/block/__init__.py +11 -0
  22. pulumiverse_scaleway/block/get_snapshot.py +174 -0
  23. pulumiverse_scaleway/block/get_volume.py +199 -0
  24. pulumiverse_scaleway/block/snapshot.py +403 -0
  25. pulumiverse_scaleway/block/volume.py +576 -0
  26. pulumiverse_scaleway/block_snapshot.py +12 -6
  27. pulumiverse_scaleway/block_volume.py +16 -10
  28. pulumiverse_scaleway/cockpit.py +10 -4
  29. pulumiverse_scaleway/cockpit_alert_manager.py +12 -6
  30. pulumiverse_scaleway/cockpit_grafana_user.py +12 -6
  31. pulumiverse_scaleway/cockpit_source.py +12 -6
  32. pulumiverse_scaleway/cockpit_token.py +16 -10
  33. pulumiverse_scaleway/container.py +16 -10
  34. pulumiverse_scaleway/container_cron.py +14 -8
  35. pulumiverse_scaleway/container_domain.py +24 -18
  36. pulumiverse_scaleway/container_namespace.py +10 -4
  37. pulumiverse_scaleway/container_token.py +32 -26
  38. pulumiverse_scaleway/container_trigger.py +12 -6
  39. pulumiverse_scaleway/containers/__init__.py +17 -0
  40. pulumiverse_scaleway/containers/_inputs.py +389 -0
  41. pulumiverse_scaleway/containers/container.py +1635 -0
  42. pulumiverse_scaleway/containers/cron.py +460 -0
  43. pulumiverse_scaleway/containers/domain.py +408 -0
  44. pulumiverse_scaleway/containers/get_container.py +562 -0
  45. pulumiverse_scaleway/containers/get_namespace.py +283 -0
  46. pulumiverse_scaleway/containers/namespace.py +638 -0
  47. pulumiverse_scaleway/containers/outputs.py +412 -0
  48. pulumiverse_scaleway/containers/token.py +454 -0
  49. pulumiverse_scaleway/containers/trigger.py +482 -0
  50. pulumiverse_scaleway/database.py +10 -4
  51. pulumiverse_scaleway/database_acl.py +10 -4
  52. pulumiverse_scaleway/database_backup.py +14 -8
  53. pulumiverse_scaleway/database_instance.py +24 -18
  54. pulumiverse_scaleway/database_privilege.py +16 -10
  55. pulumiverse_scaleway/database_read_replica.py +22 -16
  56. pulumiverse_scaleway/database_user.py +10 -4
  57. pulumiverse_scaleway/databases/__init__.py +23 -0
  58. pulumiverse_scaleway/databases/_inputs.py +822 -0
  59. pulumiverse_scaleway/databases/acl.py +334 -0
  60. pulumiverse_scaleway/databases/database.py +409 -0
  61. pulumiverse_scaleway/databases/database_backup.py +576 -0
  62. pulumiverse_scaleway/databases/get_acl.py +143 -0
  63. pulumiverse_scaleway/databases/get_database.py +187 -0
  64. pulumiverse_scaleway/databases/get_database_backup.py +253 -0
  65. pulumiverse_scaleway/databases/get_instance.py +415 -0
  66. pulumiverse_scaleway/databases/get_privilege.py +181 -0
  67. pulumiverse_scaleway/databases/instance.py +1696 -0
  68. pulumiverse_scaleway/databases/outputs.py +866 -0
  69. pulumiverse_scaleway/databases/privilege.py +424 -0
  70. pulumiverse_scaleway/databases/read_replica.py +530 -0
  71. pulumiverse_scaleway/databases/serverless_database.py +434 -0
  72. pulumiverse_scaleway/databases/snapshot.py +610 -0
  73. pulumiverse_scaleway/databases/user.py +448 -0
  74. pulumiverse_scaleway/domain/__init__.py +14 -0
  75. pulumiverse_scaleway/domain/_inputs.py +3038 -0
  76. pulumiverse_scaleway/domain/get_record.py +340 -0
  77. pulumiverse_scaleway/domain/get_zone.py +201 -0
  78. pulumiverse_scaleway/domain/outputs.py +2553 -0
  79. pulumiverse_scaleway/domain/record.py +1118 -0
  80. pulumiverse_scaleway/domain/registration.py +777 -0
  81. pulumiverse_scaleway/domain/zone.py +432 -0
  82. pulumiverse_scaleway/domain_record.py +36 -30
  83. pulumiverse_scaleway/domain_zone.py +6 -0
  84. pulumiverse_scaleway/edge_services_backend_stage.py +472 -0
  85. pulumiverse_scaleway/edge_services_cache_stage.py +490 -0
  86. pulumiverse_scaleway/edge_services_dns_stage.py +516 -0
  87. pulumiverse_scaleway/edge_services_head_stage.py +258 -0
  88. pulumiverse_scaleway/edge_services_pipeline.py +436 -0
  89. pulumiverse_scaleway/edge_services_plan.py +239 -0
  90. pulumiverse_scaleway/edge_services_route_stage.py +422 -0
  91. pulumiverse_scaleway/edge_services_tls_stage.py +546 -0
  92. pulumiverse_scaleway/edge_services_waf_stage.py +444 -0
  93. pulumiverse_scaleway/elasticmetal/__init__.py +18 -0
  94. pulumiverse_scaleway/elasticmetal/_inputs.py +509 -0
  95. pulumiverse_scaleway/elasticmetal/get_ip.py +247 -0
  96. pulumiverse_scaleway/elasticmetal/get_ips.py +240 -0
  97. pulumiverse_scaleway/elasticmetal/get_offer.py +245 -0
  98. pulumiverse_scaleway/elasticmetal/get_option.py +168 -0
  99. pulumiverse_scaleway/elasticmetal/get_os.py +174 -0
  100. pulumiverse_scaleway/elasticmetal/get_server.py +422 -0
  101. pulumiverse_scaleway/elasticmetal/ip.py +710 -0
  102. pulumiverse_scaleway/elasticmetal/ip_mac_address.py +512 -0
  103. pulumiverse_scaleway/elasticmetal/outputs.py +974 -0
  104. pulumiverse_scaleway/elasticmetal/server.py +1591 -0
  105. pulumiverse_scaleway/flexible_ip.py +35 -23
  106. pulumiverse_scaleway/flexible_ip_mac_address.py +22 -16
  107. pulumiverse_scaleway/function.py +6 -0
  108. pulumiverse_scaleway/function_cron.py +16 -10
  109. pulumiverse_scaleway/function_domain.py +16 -10
  110. pulumiverse_scaleway/function_namespace.py +10 -4
  111. pulumiverse_scaleway/function_token.py +32 -26
  112. pulumiverse_scaleway/function_trigger.py +12 -6
  113. pulumiverse_scaleway/functions/__init__.py +17 -0
  114. pulumiverse_scaleway/functions/_inputs.py +211 -0
  115. pulumiverse_scaleway/functions/cron.py +464 -0
  116. pulumiverse_scaleway/functions/domain.py +372 -0
  117. pulumiverse_scaleway/functions/function.py +1105 -0
  118. pulumiverse_scaleway/functions/get_function.py +365 -0
  119. pulumiverse_scaleway/functions/get_namespace.py +238 -0
  120. pulumiverse_scaleway/functions/namespace.py +582 -0
  121. pulumiverse_scaleway/functions/outputs.py +168 -0
  122. pulumiverse_scaleway/functions/token.py +462 -0
  123. pulumiverse_scaleway/functions/trigger.py +482 -0
  124. pulumiverse_scaleway/get_account_project.py +6 -2
  125. pulumiverse_scaleway/get_account_ssh_key.py +6 -2
  126. pulumiverse_scaleway/get_availability_zones.py +8 -4
  127. pulumiverse_scaleway/get_baremetal_offer.py +4 -0
  128. pulumiverse_scaleway/get_baremetal_option.py +8 -4
  129. pulumiverse_scaleway/get_baremetal_os.py +8 -4
  130. pulumiverse_scaleway/get_baremetal_server.py +8 -4
  131. pulumiverse_scaleway/get_billing_consumptions.py +4 -0
  132. pulumiverse_scaleway/get_billing_invoices.py +4 -0
  133. pulumiverse_scaleway/get_block_snapshot.py +6 -2
  134. pulumiverse_scaleway/get_block_volume.py +6 -2
  135. pulumiverse_scaleway/get_cockpit.py +12 -8
  136. pulumiverse_scaleway/get_cockpit_plan.py +10 -6
  137. pulumiverse_scaleway/get_cockpit_source.py +8 -4
  138. pulumiverse_scaleway/get_container.py +16 -12
  139. pulumiverse_scaleway/get_container_namespace.py +10 -6
  140. pulumiverse_scaleway/get_database.py +6 -2
  141. pulumiverse_scaleway/get_database_acl.py +6 -2
  142. pulumiverse_scaleway/get_database_backup.py +10 -6
  143. pulumiverse_scaleway/get_database_instance.py +4 -0
  144. pulumiverse_scaleway/get_database_privilege.py +6 -2
  145. pulumiverse_scaleway/get_domain_record.py +10 -6
  146. pulumiverse_scaleway/get_domain_zone.py +4 -0
  147. pulumiverse_scaleway/get_flexible_ip.py +4 -0
  148. pulumiverse_scaleway/get_flexible_ips.py +16 -12
  149. pulumiverse_scaleway/get_function.py +6 -2
  150. pulumiverse_scaleway/get_function_namespace.py +6 -2
  151. pulumiverse_scaleway/get_iam_api_key.py +6 -2
  152. pulumiverse_scaleway/get_iam_application.py +8 -4
  153. pulumiverse_scaleway/get_iam_group.py +8 -4
  154. pulumiverse_scaleway/get_iam_ssh_key.py +4 -0
  155. pulumiverse_scaleway/get_iam_user.py +8 -4
  156. pulumiverse_scaleway/get_instance_image.py +4 -0
  157. pulumiverse_scaleway/get_instance_ip.py +4 -0
  158. pulumiverse_scaleway/get_instance_placement_group.py +4 -0
  159. pulumiverse_scaleway/get_instance_private_nic.py +10 -6
  160. pulumiverse_scaleway/get_instance_security_group.py +4 -0
  161. pulumiverse_scaleway/get_instance_server.py +4 -0
  162. pulumiverse_scaleway/get_instance_servers.py +4 -0
  163. pulumiverse_scaleway/get_instance_snapshot.py +8 -4
  164. pulumiverse_scaleway/get_instance_volume.py +4 -0
  165. pulumiverse_scaleway/get_iot_device.py +4 -0
  166. pulumiverse_scaleway/get_iot_hub.py +4 -0
  167. pulumiverse_scaleway/get_ipam_ip.py +18 -14
  168. pulumiverse_scaleway/get_ipam_ips.py +14 -10
  169. pulumiverse_scaleway/get_k8s_version.py +8 -4
  170. pulumiverse_scaleway/get_kubernetes_cluster.py +4 -0
  171. pulumiverse_scaleway/get_kubernetes_node_pool.py +4 -0
  172. pulumiverse_scaleway/get_lb_acls.py +8 -4
  173. pulumiverse_scaleway/get_lb_backend.py +18 -14
  174. pulumiverse_scaleway/get_lb_backends.py +8 -4
  175. pulumiverse_scaleway/get_lb_frontend.py +28 -13
  176. pulumiverse_scaleway/get_lb_frontends.py +8 -4
  177. pulumiverse_scaleway/get_lb_ips.py +4 -0
  178. pulumiverse_scaleway/get_lb_route.py +28 -13
  179. pulumiverse_scaleway/get_lb_routes.py +8 -4
  180. pulumiverse_scaleway/get_lbs.py +4 -0
  181. pulumiverse_scaleway/get_loadbalancer.py +8 -4
  182. pulumiverse_scaleway/get_loadbalancer_certificate.py +4 -0
  183. pulumiverse_scaleway/get_loadbalancer_ip.py +4 -0
  184. pulumiverse_scaleway/get_mnq_sns.py +8 -4
  185. pulumiverse_scaleway/get_mnq_sqs.py +8 -4
  186. pulumiverse_scaleway/get_mongo_db_instance.py +4 -0
  187. pulumiverse_scaleway/get_object_bucket.py +12 -8
  188. pulumiverse_scaleway/get_object_bucket_policy.py +8 -4
  189. pulumiverse_scaleway/get_redis_cluster.py +4 -0
  190. pulumiverse_scaleway/get_registry_image.py +4 -0
  191. pulumiverse_scaleway/get_registry_image_tag.py +4 -0
  192. pulumiverse_scaleway/get_registry_namespace.py +4 -0
  193. pulumiverse_scaleway/get_secret.py +27 -12
  194. pulumiverse_scaleway/get_secret_version.py +14 -10
  195. pulumiverse_scaleway/get_tem_domain.py +4 -0
  196. pulumiverse_scaleway/get_vpc.py +10 -6
  197. pulumiverse_scaleway/get_vpc_gateway_network.py +10 -6
  198. pulumiverse_scaleway/get_vpc_private_network.py +10 -6
  199. pulumiverse_scaleway/get_vpc_public_gateway.py +44 -7
  200. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +16 -4
  201. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +78 -66
  202. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +8 -4
  203. pulumiverse_scaleway/get_vpc_public_pat_rule.py +26 -22
  204. pulumiverse_scaleway/get_vpc_routes.py +4 -0
  205. pulumiverse_scaleway/get_vpcs.py +4 -0
  206. pulumiverse_scaleway/get_web_host_offer.py +8 -4
  207. pulumiverse_scaleway/get_webhosting.py +8 -4
  208. pulumiverse_scaleway/hosting/__init__.py +12 -0
  209. pulumiverse_scaleway/hosting/_inputs.py +295 -0
  210. pulumiverse_scaleway/hosting/get_hosting.py +354 -0
  211. pulumiverse_scaleway/hosting/get_offer.py +229 -0
  212. pulumiverse_scaleway/hosting/hosting.py +870 -0
  213. pulumiverse_scaleway/hosting/outputs.py +626 -0
  214. pulumiverse_scaleway/iam/__init__.py +21 -0
  215. pulumiverse_scaleway/iam/_inputs.py +138 -0
  216. pulumiverse_scaleway/iam/api_key.py +622 -0
  217. pulumiverse_scaleway/iam/application.py +419 -0
  218. pulumiverse_scaleway/iam/get_api_key.py +210 -0
  219. pulumiverse_scaleway/iam/get_application.py +210 -0
  220. pulumiverse_scaleway/iam/get_group.py +236 -0
  221. pulumiverse_scaleway/iam/get_ssh_key.py +212 -0
  222. pulumiverse_scaleway/iam/get_user.py +177 -0
  223. pulumiverse_scaleway/iam/group.py +568 -0
  224. pulumiverse_scaleway/iam/group_membership.py +325 -0
  225. pulumiverse_scaleway/iam/outputs.py +111 -0
  226. pulumiverse_scaleway/iam/policy.py +775 -0
  227. pulumiverse_scaleway/iam/ssh_key.py +457 -0
  228. pulumiverse_scaleway/iam/user.py +515 -0
  229. pulumiverse_scaleway/iam_api_key.py +16 -10
  230. pulumiverse_scaleway/iam_application.py +8 -2
  231. pulumiverse_scaleway/iam_group.py +12 -6
  232. pulumiverse_scaleway/iam_group_membership.py +12 -6
  233. pulumiverse_scaleway/iam_policy.py +18 -12
  234. pulumiverse_scaleway/iam_ssh_key.py +8 -2
  235. pulumiverse_scaleway/iam_user.py +8 -2
  236. pulumiverse_scaleway/inference/__init__.py +10 -0
  237. pulumiverse_scaleway/inference/_inputs.py +209 -0
  238. pulumiverse_scaleway/inference/deployment.py +824 -0
  239. pulumiverse_scaleway/inference/outputs.py +169 -0
  240. pulumiverse_scaleway/inference_deployment.py +8 -2
  241. pulumiverse_scaleway/instance/__init__.py +29 -0
  242. pulumiverse_scaleway/instance/_inputs.py +1237 -0
  243. pulumiverse_scaleway/instance/get_image.py +305 -0
  244. pulumiverse_scaleway/instance/get_ip.py +204 -0
  245. pulumiverse_scaleway/instance/get_placement_group.py +212 -0
  246. pulumiverse_scaleway/instance/get_private_nic.py +226 -0
  247. pulumiverse_scaleway/instance/get_security_group.py +268 -0
  248. pulumiverse_scaleway/instance/get_server.py +488 -0
  249. pulumiverse_scaleway/instance/get_servers.py +187 -0
  250. pulumiverse_scaleway/instance/get_snapshot.py +248 -0
  251. pulumiverse_scaleway/instance/get_volume.py +226 -0
  252. pulumiverse_scaleway/instance/image.py +752 -0
  253. pulumiverse_scaleway/instance/ip.py +471 -0
  254. pulumiverse_scaleway/instance/ip_reverse_dns.py +310 -0
  255. pulumiverse_scaleway/instance/outputs.py +1533 -0
  256. pulumiverse_scaleway/instance/placement_group.py +481 -0
  257. pulumiverse_scaleway/instance/private_nic.py +557 -0
  258. pulumiverse_scaleway/instance/security_group.py +722 -0
  259. pulumiverse_scaleway/instance/security_group_rules.py +441 -0
  260. pulumiverse_scaleway/instance/server.py +1938 -0
  261. pulumiverse_scaleway/instance/snapshot.py +671 -0
  262. pulumiverse_scaleway/instance/user_data.py +437 -0
  263. pulumiverse_scaleway/instance/volume.py +584 -0
  264. pulumiverse_scaleway/instance_image.py +18 -12
  265. pulumiverse_scaleway/instance_ip.py +8 -2
  266. pulumiverse_scaleway/instance_ip_reverse_dns.py +12 -6
  267. pulumiverse_scaleway/instance_placement_group.py +8 -2
  268. pulumiverse_scaleway/instance_private_nic.py +24 -18
  269. pulumiverse_scaleway/instance_security_group.py +6 -0
  270. pulumiverse_scaleway/instance_security_group_rules.py +22 -16
  271. pulumiverse_scaleway/instance_server.py +74 -68
  272. pulumiverse_scaleway/instance_snapshot.py +22 -16
  273. pulumiverse_scaleway/instance_user_data.py +16 -10
  274. pulumiverse_scaleway/instance_volume.py +8 -2
  275. pulumiverse_scaleway/iot/__init__.py +15 -0
  276. pulumiverse_scaleway/iot/_inputs.py +539 -0
  277. pulumiverse_scaleway/iot/device.py +752 -0
  278. pulumiverse_scaleway/iot/get_device.py +257 -0
  279. pulumiverse_scaleway/iot/get_hub.py +322 -0
  280. pulumiverse_scaleway/iot/hub.py +898 -0
  281. pulumiverse_scaleway/iot/network.py +474 -0
  282. pulumiverse_scaleway/iot/outputs.py +465 -0
  283. pulumiverse_scaleway/iot/route.py +662 -0
  284. pulumiverse_scaleway/iot_device.py +14 -8
  285. pulumiverse_scaleway/iot_hub.py +8 -2
  286. pulumiverse_scaleway/iot_network.py +12 -6
  287. pulumiverse_scaleway/iot_route.py +32 -26
  288. pulumiverse_scaleway/ipam/__init__.py +13 -0
  289. pulumiverse_scaleway/ipam/_inputs.py +442 -0
  290. pulumiverse_scaleway/ipam/get_ip.py +419 -0
  291. pulumiverse_scaleway/ipam/get_ips.py +358 -0
  292. pulumiverse_scaleway/ipam/ip.py +759 -0
  293. pulumiverse_scaleway/ipam/ip_reverse_dns.py +320 -0
  294. pulumiverse_scaleway/ipam/outputs.py +481 -0
  295. pulumiverse_scaleway/ipam_ip.py +30 -24
  296. pulumiverse_scaleway/ipam_ip_reverse_dns.py +6 -0
  297. pulumiverse_scaleway/job/__init__.py +10 -0
  298. pulumiverse_scaleway/job/_inputs.py +73 -0
  299. pulumiverse_scaleway/job/definition.py +694 -0
  300. pulumiverse_scaleway/job/outputs.py +49 -0
  301. pulumiverse_scaleway/job_definition.py +8 -2
  302. pulumiverse_scaleway/kubernetes/__init__.py +14 -0
  303. pulumiverse_scaleway/kubernetes/_inputs.py +717 -0
  304. pulumiverse_scaleway/kubernetes/cluster.py +1540 -0
  305. pulumiverse_scaleway/kubernetes/get_cluster.py +417 -0
  306. pulumiverse_scaleway/kubernetes/get_pool.py +436 -0
  307. pulumiverse_scaleway/kubernetes/get_version.py +196 -0
  308. pulumiverse_scaleway/kubernetes/outputs.py +944 -0
  309. pulumiverse_scaleway/kubernetes/pool.py +1313 -0
  310. pulumiverse_scaleway/kubernetes_cluster.py +36 -30
  311. pulumiverse_scaleway/kubernetes_node_pool.py +6 -0
  312. pulumiverse_scaleway/loadbalancer.py +35 -29
  313. pulumiverse_scaleway/loadbalancer_acl.py +8 -2
  314. pulumiverse_scaleway/loadbalancer_backend.py +12 -6
  315. pulumiverse_scaleway/loadbalancer_certificate.py +6 -0
  316. pulumiverse_scaleway/loadbalancer_frontend.py +57 -4
  317. pulumiverse_scaleway/loadbalancer_ip.py +10 -4
  318. pulumiverse_scaleway/loadbalancer_route.py +74 -21
  319. pulumiverse_scaleway/loadbalancers/__init__.py +28 -0
  320. pulumiverse_scaleway/loadbalancers/_inputs.py +1103 -0
  321. pulumiverse_scaleway/loadbalancers/acl.py +522 -0
  322. pulumiverse_scaleway/loadbalancers/backend.py +1590 -0
  323. pulumiverse_scaleway/loadbalancers/certificate.py +462 -0
  324. pulumiverse_scaleway/loadbalancers/frontend.py +878 -0
  325. pulumiverse_scaleway/loadbalancers/get_acls.py +198 -0
  326. pulumiverse_scaleway/loadbalancers/get_backend.py +486 -0
  327. pulumiverse_scaleway/loadbalancers/get_backends.py +196 -0
  328. pulumiverse_scaleway/loadbalancers/get_certificate.py +230 -0
  329. pulumiverse_scaleway/loadbalancers/get_frontend.py +285 -0
  330. pulumiverse_scaleway/loadbalancers/get_frontends.py +196 -0
  331. pulumiverse_scaleway/loadbalancers/get_ip.py +228 -0
  332. pulumiverse_scaleway/loadbalancers/get_ips.py +198 -0
  333. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +339 -0
  334. pulumiverse_scaleway/loadbalancers/get_load_balancers.py +187 -0
  335. pulumiverse_scaleway/loadbalancers/get_route.py +228 -0
  336. pulumiverse_scaleway/loadbalancers/get_routes.py +179 -0
  337. pulumiverse_scaleway/loadbalancers/ip.py +516 -0
  338. pulumiverse_scaleway/loadbalancers/load_balancer.py +1063 -0
  339. pulumiverse_scaleway/loadbalancers/outputs.py +2502 -0
  340. pulumiverse_scaleway/loadbalancers/route.py +572 -0
  341. pulumiverse_scaleway/mnq/__init__.py +20 -0
  342. pulumiverse_scaleway/mnq/_inputs.py +169 -0
  343. pulumiverse_scaleway/mnq/get_sns.py +150 -0
  344. pulumiverse_scaleway/mnq/get_sqs.py +150 -0
  345. pulumiverse_scaleway/mnq/nats_account.py +336 -0
  346. pulumiverse_scaleway/mnq/nats_credentials.py +332 -0
  347. pulumiverse_scaleway/mnq/outputs.py +149 -0
  348. pulumiverse_scaleway/mnq/sns.py +308 -0
  349. pulumiverse_scaleway/mnq/sns_credentials.py +415 -0
  350. pulumiverse_scaleway/mnq/sns_topic.py +661 -0
  351. pulumiverse_scaleway/mnq/sns_topic_subscription.py +701 -0
  352. pulumiverse_scaleway/mnq/sqs.py +306 -0
  353. pulumiverse_scaleway/mnq/sqs_credentials.py +415 -0
  354. pulumiverse_scaleway/mnq/sqs_queue.py +802 -0
  355. pulumiverse_scaleway/mnq_nats_account.py +8 -2
  356. pulumiverse_scaleway/mnq_nats_credentials.py +10 -4
  357. pulumiverse_scaleway/mnq_sns.py +12 -6
  358. pulumiverse_scaleway/mnq_sns_credentials.py +10 -4
  359. pulumiverse_scaleway/mnq_sns_topic.py +16 -10
  360. pulumiverse_scaleway/mnq_sns_topic_subscription.py +22 -16
  361. pulumiverse_scaleway/mnq_sqs.py +12 -6
  362. pulumiverse_scaleway/mnq_sqs_credentials.py +10 -4
  363. pulumiverse_scaleway/mnq_sqs_queue.py +16 -10
  364. pulumiverse_scaleway/mongo_db_instance.py +14 -8
  365. pulumiverse_scaleway/mongo_db_snapshot.py +8 -2
  366. pulumiverse_scaleway/mongodb/__init__.py +12 -0
  367. pulumiverse_scaleway/mongodb/_inputs.py +208 -0
  368. pulumiverse_scaleway/mongodb/get_instance.py +335 -0
  369. pulumiverse_scaleway/mongodb/instance.py +1000 -0
  370. pulumiverse_scaleway/mongodb/outputs.py +270 -0
  371. pulumiverse_scaleway/mongodb/snapshot.py +523 -0
  372. pulumiverse_scaleway/network/__init__.py +30 -0
  373. pulumiverse_scaleway/network/_inputs.py +577 -0
  374. pulumiverse_scaleway/network/acl.py +415 -0
  375. pulumiverse_scaleway/network/gateway_network.py +850 -0
  376. pulumiverse_scaleway/network/get_gateway_network.py +287 -0
  377. pulumiverse_scaleway/network/get_private_network.py +282 -0
  378. pulumiverse_scaleway/network/get_public_gateway.py +337 -0
  379. pulumiverse_scaleway/network/get_public_gateway_dhcp.py +313 -0
  380. pulumiverse_scaleway/network/get_public_gateway_dhcp_reservation.py +390 -0
  381. pulumiverse_scaleway/network/get_public_gateway_ip.py +199 -0
  382. pulumiverse_scaleway/network/get_public_gateway_pat_rule.py +313 -0
  383. pulumiverse_scaleway/network/get_routes.py +208 -0
  384. pulumiverse_scaleway/network/get_vpc.py +246 -0
  385. pulumiverse_scaleway/network/get_vpcs.py +174 -0
  386. pulumiverse_scaleway/network/outputs.py +886 -0
  387. pulumiverse_scaleway/network/private_network.py +736 -0
  388. pulumiverse_scaleway/network/public_gateway.py +894 -0
  389. pulumiverse_scaleway/network/public_gateway_dhcp.py +957 -0
  390. pulumiverse_scaleway/network/public_gateway_dhcp_reservation.py +524 -0
  391. pulumiverse_scaleway/network/public_gateway_ip.py +459 -0
  392. pulumiverse_scaleway/network/public_gateway_ip_reverse_dns.py +308 -0
  393. pulumiverse_scaleway/network/public_gateway_pat_rule.py +593 -0
  394. pulumiverse_scaleway/network/route.py +579 -0
  395. pulumiverse_scaleway/network/vpc.py +538 -0
  396. pulumiverse_scaleway/object/__init__.py +17 -0
  397. pulumiverse_scaleway/object/_inputs.py +831 -0
  398. pulumiverse_scaleway/object/bucket.py +876 -0
  399. pulumiverse_scaleway/object/bucket_acl.py +598 -0
  400. pulumiverse_scaleway/object/bucket_lock_configuration.py +397 -0
  401. pulumiverse_scaleway/object/bucket_policy.py +675 -0
  402. pulumiverse_scaleway/object/bucket_website_configuration.py +536 -0
  403. pulumiverse_scaleway/object/get_bucket.py +290 -0
  404. pulumiverse_scaleway/object/get_bucket_policy.py +163 -0
  405. pulumiverse_scaleway/object/item.py +778 -0
  406. pulumiverse_scaleway/object/outputs.py +802 -0
  407. pulumiverse_scaleway/object_bucket.py +28 -22
  408. pulumiverse_scaleway/object_bucket_acl.py +14 -8
  409. pulumiverse_scaleway/object_bucket_lock_configuration.py +12 -6
  410. pulumiverse_scaleway/object_bucket_policy.py +46 -40
  411. pulumiverse_scaleway/object_bucket_website_configuration.py +18 -12
  412. pulumiverse_scaleway/object_item.py +8 -2
  413. pulumiverse_scaleway/observability/__init__.py +17 -0
  414. pulumiverse_scaleway/observability/_inputs.py +417 -0
  415. pulumiverse_scaleway/observability/alert_manager.py +403 -0
  416. pulumiverse_scaleway/observability/cockpit.py +325 -0
  417. pulumiverse_scaleway/observability/get_instance.py +205 -0
  418. pulumiverse_scaleway/observability/get_plan.py +125 -0
  419. pulumiverse_scaleway/observability/get_source.py +262 -0
  420. pulumiverse_scaleway/observability/grafana_user.py +364 -0
  421. pulumiverse_scaleway/observability/outputs.py +425 -0
  422. pulumiverse_scaleway/observability/source.py +569 -0
  423. pulumiverse_scaleway/observability/token.py +481 -0
  424. pulumiverse_scaleway/outputs.py +662 -2
  425. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  426. pulumiverse_scaleway/rdb_snapshot.py +16 -10
  427. pulumiverse_scaleway/redis/__init__.py +11 -0
  428. pulumiverse_scaleway/redis/_inputs.py +330 -0
  429. pulumiverse_scaleway/redis/cluster.py +1203 -0
  430. pulumiverse_scaleway/redis/get_cluster.py +347 -0
  431. pulumiverse_scaleway/redis/outputs.py +356 -0
  432. pulumiverse_scaleway/redis_cluster.py +14 -8
  433. pulumiverse_scaleway/registry/__init__.py +11 -0
  434. pulumiverse_scaleway/registry/get_image.py +239 -0
  435. pulumiverse_scaleway/registry/get_image_tag.py +229 -0
  436. pulumiverse_scaleway/registry/get_namespace.py +199 -0
  437. pulumiverse_scaleway/registry/namespace.py +460 -0
  438. pulumiverse_scaleway/registry_namespace.py +8 -2
  439. pulumiverse_scaleway/sdb_database.py +10 -4
  440. pulumiverse_scaleway/secret.py +28 -2
  441. pulumiverse_scaleway/secret_version.py +18 -12
  442. pulumiverse_scaleway/secrets/__init__.py +13 -0
  443. pulumiverse_scaleway/secrets/_inputs.py +248 -0
  444. pulumiverse_scaleway/secrets/get_secret.py +349 -0
  445. pulumiverse_scaleway/secrets/get_version.py +340 -0
  446. pulumiverse_scaleway/secrets/outputs.py +320 -0
  447. pulumiverse_scaleway/secrets/secret.py +685 -0
  448. pulumiverse_scaleway/secrets/version.py +489 -0
  449. pulumiverse_scaleway/tem/__init__.py +15 -0
  450. pulumiverse_scaleway/tem/_inputs.py +135 -0
  451. pulumiverse_scaleway/tem/blocked_list.py +442 -0
  452. pulumiverse_scaleway/tem/domain.py +1039 -0
  453. pulumiverse_scaleway/tem/domain_validation.py +305 -0
  454. pulumiverse_scaleway/tem/get_domain.py +378 -0
  455. pulumiverse_scaleway/tem/get_offer_subscription.py +254 -0
  456. pulumiverse_scaleway/tem/outputs.py +171 -0
  457. pulumiverse_scaleway/tem/webhook.py +642 -0
  458. pulumiverse_scaleway/tem_domain.py +27 -14
  459. pulumiverse_scaleway/tem_domain_validation.py +10 -4
  460. pulumiverse_scaleway/tem_webhook.py +28 -22
  461. pulumiverse_scaleway/vpc.py +10 -4
  462. pulumiverse_scaleway/vpc_gateway_network.py +128 -140
  463. pulumiverse_scaleway/vpc_private_network.py +10 -4
  464. pulumiverse_scaleway/vpc_public_gateway.py +132 -23
  465. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +23 -9
  466. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +40 -26
  467. pulumiverse_scaleway/vpc_public_gateway_ip.py +10 -4
  468. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +12 -6
  469. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +26 -20
  470. pulumiverse_scaleway/vpc_route.py +16 -10
  471. pulumiverse_scaleway/webhosting.py +10 -4
  472. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.26.0.dist-info}/METADATA +1 -1
  473. pulumiverse_scaleway-1.26.0.dist-info/RECORD +483 -0
  474. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.26.0.dist-info}/WHEEL +1 -1
  475. pulumiverse_scaleway-1.25.0a1742464679.dist-info/RECORD +0 -206
  476. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.26.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1203 @@
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__ = ['ClusterArgs', 'Cluster']
20
+
21
+ @pulumi.input_type
22
+ class ClusterArgs:
23
+ def __init__(__self__, *,
24
+ node_type: pulumi.Input[str],
25
+ password: pulumi.Input[str],
26
+ user_name: pulumi.Input[str],
27
+ version: pulumi.Input[str],
28
+ acls: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAclArgs']]]] = None,
29
+ cluster_size: Optional[pulumi.Input[int]] = None,
30
+ name: Optional[pulumi.Input[str]] = None,
31
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterPrivateNetworkArgs']]]] = None,
32
+ project_id: Optional[pulumi.Input[str]] = None,
33
+ public_network: Optional[pulumi.Input['ClusterPublicNetworkArgs']] = None,
34
+ settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
35
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
36
+ tls_enabled: Optional[pulumi.Input[bool]] = None,
37
+ zone: Optional[pulumi.Input[str]] = None):
38
+ """
39
+ The set of arguments for constructing a Cluster resource.
40
+ :param pulumi.Input[str] node_type: The type of Redis™ cluster you want to create (e.g. `RED1-M`).
41
+
42
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
43
+ you cannot downgrade a Redis™ cluster.
44
+ :param pulumi.Input[str] password: Password for the first user of the Redis™ cluster.
45
+ :param pulumi.Input[str] user_name: Identifier for the first user of the Redis™ cluster.
46
+ :param pulumi.Input[str] version: Redis™ cluster's version (e.g. `6.2.7`).
47
+
48
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
49
+ cannot downgrade a Redis™ cluster.
50
+ :param pulumi.Input[Sequence[pulumi.Input['ClusterAclArgs']]] acls: List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
51
+ :param pulumi.Input[int] cluster_size: The number of nodes in the Redis™ cluster.
52
+
53
+ > **Important:**
54
+
55
+ - Cluster_size = 1 for Standalone mode (single node).
56
+
57
+ - Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.
58
+
59
+ - Cluster_size >= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.
60
+
61
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
62
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
63
+ `cluster_size` will destroy and recreate your cluster.
64
+
65
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
66
+ recreate your cluster as you will be switching to the cluster mode.
67
+ :param pulumi.Input[str] name: The name of the Redis™ cluster.
68
+ :param pulumi.Input[Sequence[pulumi.Input['ClusterPrivateNetworkArgs']]] private_networks: Describes the Private Network you want to connect to your cluster. If not set, a public
69
+ network will be provided. More details on the Private Network section
70
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the Redis™ cluster is
71
+ associated with.
72
+ :param pulumi.Input['ClusterPublicNetworkArgs'] public_network: (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
73
+ > The `public_network` block exports:
74
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] settings: Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
75
+ with scaleway API or CLI
76
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Redis™ cluster.
77
+ :param pulumi.Input[bool] tls_enabled: Whether TLS is enabled or not.
78
+
79
+ > The changes on `tls_enabled` will force the resource creation.
80
+ :param pulumi.Input[str] zone: `zone`) The zone in which the
81
+ Redis™ cluster should be created.
82
+ """
83
+ pulumi.set(__self__, "node_type", node_type)
84
+ pulumi.set(__self__, "password", password)
85
+ pulumi.set(__self__, "user_name", user_name)
86
+ pulumi.set(__self__, "version", version)
87
+ if acls is not None:
88
+ pulumi.set(__self__, "acls", acls)
89
+ if cluster_size is not None:
90
+ pulumi.set(__self__, "cluster_size", cluster_size)
91
+ if name is not None:
92
+ pulumi.set(__self__, "name", name)
93
+ if private_networks is not None:
94
+ pulumi.set(__self__, "private_networks", private_networks)
95
+ if project_id is not None:
96
+ pulumi.set(__self__, "project_id", project_id)
97
+ if public_network is not None:
98
+ pulumi.set(__self__, "public_network", public_network)
99
+ if settings is not None:
100
+ pulumi.set(__self__, "settings", settings)
101
+ if tags is not None:
102
+ pulumi.set(__self__, "tags", tags)
103
+ if tls_enabled is not None:
104
+ pulumi.set(__self__, "tls_enabled", tls_enabled)
105
+ if zone is not None:
106
+ pulumi.set(__self__, "zone", zone)
107
+
108
+ @property
109
+ @pulumi.getter(name="nodeType")
110
+ def node_type(self) -> pulumi.Input[str]:
111
+ """
112
+ The type of Redis™ cluster you want to create (e.g. `RED1-M`).
113
+
114
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
115
+ you cannot downgrade a Redis™ cluster.
116
+ """
117
+ return pulumi.get(self, "node_type")
118
+
119
+ @node_type.setter
120
+ def node_type(self, value: pulumi.Input[str]):
121
+ pulumi.set(self, "node_type", value)
122
+
123
+ @property
124
+ @pulumi.getter
125
+ def password(self) -> pulumi.Input[str]:
126
+ """
127
+ Password for the first user of the Redis™ cluster.
128
+ """
129
+ return pulumi.get(self, "password")
130
+
131
+ @password.setter
132
+ def password(self, value: pulumi.Input[str]):
133
+ pulumi.set(self, "password", value)
134
+
135
+ @property
136
+ @pulumi.getter(name="userName")
137
+ def user_name(self) -> pulumi.Input[str]:
138
+ """
139
+ Identifier for the first user of the Redis™ cluster.
140
+ """
141
+ return pulumi.get(self, "user_name")
142
+
143
+ @user_name.setter
144
+ def user_name(self, value: pulumi.Input[str]):
145
+ pulumi.set(self, "user_name", value)
146
+
147
+ @property
148
+ @pulumi.getter
149
+ def version(self) -> pulumi.Input[str]:
150
+ """
151
+ Redis™ cluster's version (e.g. `6.2.7`).
152
+
153
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
154
+ cannot downgrade a Redis™ cluster.
155
+ """
156
+ return pulumi.get(self, "version")
157
+
158
+ @version.setter
159
+ def version(self, value: pulumi.Input[str]):
160
+ pulumi.set(self, "version", value)
161
+
162
+ @property
163
+ @pulumi.getter
164
+ def acls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAclArgs']]]]:
165
+ """
166
+ List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
167
+ """
168
+ return pulumi.get(self, "acls")
169
+
170
+ @acls.setter
171
+ def acls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAclArgs']]]]):
172
+ pulumi.set(self, "acls", value)
173
+
174
+ @property
175
+ @pulumi.getter(name="clusterSize")
176
+ def cluster_size(self) -> Optional[pulumi.Input[int]]:
177
+ """
178
+ The number of nodes in the Redis™ cluster.
179
+
180
+ > **Important:**
181
+
182
+ - Cluster_size = 1 for Standalone mode (single node).
183
+
184
+ - Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.
185
+
186
+ - Cluster_size >= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.
187
+
188
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
189
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
190
+ `cluster_size` will destroy and recreate your cluster.
191
+
192
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
193
+ recreate your cluster as you will be switching to the cluster mode.
194
+ """
195
+ return pulumi.get(self, "cluster_size")
196
+
197
+ @cluster_size.setter
198
+ def cluster_size(self, value: Optional[pulumi.Input[int]]):
199
+ pulumi.set(self, "cluster_size", value)
200
+
201
+ @property
202
+ @pulumi.getter
203
+ def name(self) -> Optional[pulumi.Input[str]]:
204
+ """
205
+ The name of the Redis™ cluster.
206
+ """
207
+ return pulumi.get(self, "name")
208
+
209
+ @name.setter
210
+ def name(self, value: Optional[pulumi.Input[str]]):
211
+ pulumi.set(self, "name", value)
212
+
213
+ @property
214
+ @pulumi.getter(name="privateNetworks")
215
+ def private_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterPrivateNetworkArgs']]]]:
216
+ """
217
+ Describes the Private Network you want to connect to your cluster. If not set, a public
218
+ network will be provided. More details on the Private Network section
219
+ """
220
+ return pulumi.get(self, "private_networks")
221
+
222
+ @private_networks.setter
223
+ def private_networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterPrivateNetworkArgs']]]]):
224
+ pulumi.set(self, "private_networks", value)
225
+
226
+ @property
227
+ @pulumi.getter(name="projectId")
228
+ def project_id(self) -> Optional[pulumi.Input[str]]:
229
+ """
230
+ `project_id`) The ID of the project the Redis™ cluster is
231
+ associated with.
232
+ """
233
+ return pulumi.get(self, "project_id")
234
+
235
+ @project_id.setter
236
+ def project_id(self, value: Optional[pulumi.Input[str]]):
237
+ pulumi.set(self, "project_id", value)
238
+
239
+ @property
240
+ @pulumi.getter(name="publicNetwork")
241
+ def public_network(self) -> Optional[pulumi.Input['ClusterPublicNetworkArgs']]:
242
+ """
243
+ (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
244
+ > The `public_network` block exports:
245
+ """
246
+ return pulumi.get(self, "public_network")
247
+
248
+ @public_network.setter
249
+ def public_network(self, value: Optional[pulumi.Input['ClusterPublicNetworkArgs']]):
250
+ pulumi.set(self, "public_network", value)
251
+
252
+ @property
253
+ @pulumi.getter
254
+ def settings(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
255
+ """
256
+ Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
257
+ with scaleway API or CLI
258
+ """
259
+ return pulumi.get(self, "settings")
260
+
261
+ @settings.setter
262
+ def settings(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
263
+ pulumi.set(self, "settings", value)
264
+
265
+ @property
266
+ @pulumi.getter
267
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
268
+ """
269
+ The tags associated with the Redis™ cluster.
270
+ """
271
+ return pulumi.get(self, "tags")
272
+
273
+ @tags.setter
274
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
275
+ pulumi.set(self, "tags", value)
276
+
277
+ @property
278
+ @pulumi.getter(name="tlsEnabled")
279
+ def tls_enabled(self) -> Optional[pulumi.Input[bool]]:
280
+ """
281
+ Whether TLS is enabled or not.
282
+
283
+ > The changes on `tls_enabled` will force the resource creation.
284
+ """
285
+ return pulumi.get(self, "tls_enabled")
286
+
287
+ @tls_enabled.setter
288
+ def tls_enabled(self, value: Optional[pulumi.Input[bool]]):
289
+ pulumi.set(self, "tls_enabled", value)
290
+
291
+ @property
292
+ @pulumi.getter
293
+ def zone(self) -> Optional[pulumi.Input[str]]:
294
+ """
295
+ `zone`) The zone in which the
296
+ Redis™ cluster should be created.
297
+ """
298
+ return pulumi.get(self, "zone")
299
+
300
+ @zone.setter
301
+ def zone(self, value: Optional[pulumi.Input[str]]):
302
+ pulumi.set(self, "zone", value)
303
+
304
+
305
+ @pulumi.input_type
306
+ class _ClusterState:
307
+ def __init__(__self__, *,
308
+ acls: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAclArgs']]]] = None,
309
+ certificate: Optional[pulumi.Input[str]] = None,
310
+ cluster_size: Optional[pulumi.Input[int]] = None,
311
+ created_at: Optional[pulumi.Input[str]] = None,
312
+ name: Optional[pulumi.Input[str]] = None,
313
+ node_type: Optional[pulumi.Input[str]] = None,
314
+ password: Optional[pulumi.Input[str]] = None,
315
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterPrivateNetworkArgs']]]] = None,
316
+ project_id: Optional[pulumi.Input[str]] = None,
317
+ public_network: Optional[pulumi.Input['ClusterPublicNetworkArgs']] = None,
318
+ settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
319
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
320
+ tls_enabled: Optional[pulumi.Input[bool]] = None,
321
+ updated_at: Optional[pulumi.Input[str]] = None,
322
+ user_name: Optional[pulumi.Input[str]] = None,
323
+ version: Optional[pulumi.Input[str]] = None,
324
+ zone: Optional[pulumi.Input[str]] = None):
325
+ """
326
+ Input properties used for looking up and filtering Cluster resources.
327
+ :param pulumi.Input[Sequence[pulumi.Input['ClusterAclArgs']]] acls: List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
328
+ :param pulumi.Input[str] certificate: The PEM of the certificate used by redis, only when `tls_enabled` is true
329
+ :param pulumi.Input[int] cluster_size: The number of nodes in the Redis™ cluster.
330
+
331
+ > **Important:**
332
+
333
+ - Cluster_size = 1 for Standalone mode (single node).
334
+
335
+ - Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.
336
+
337
+ - Cluster_size >= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.
338
+
339
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
340
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
341
+ `cluster_size` will destroy and recreate your cluster.
342
+
343
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
344
+ recreate your cluster as you will be switching to the cluster mode.
345
+ :param pulumi.Input[str] created_at: The date and time of creation of the Redis™ cluster.
346
+ :param pulumi.Input[str] name: The name of the Redis™ cluster.
347
+ :param pulumi.Input[str] node_type: The type of Redis™ cluster you want to create (e.g. `RED1-M`).
348
+
349
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
350
+ you cannot downgrade a Redis™ cluster.
351
+ :param pulumi.Input[str] password: Password for the first user of the Redis™ cluster.
352
+ :param pulumi.Input[Sequence[pulumi.Input['ClusterPrivateNetworkArgs']]] private_networks: Describes the Private Network you want to connect to your cluster. If not set, a public
353
+ network will be provided. More details on the Private Network section
354
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the Redis™ cluster is
355
+ associated with.
356
+ :param pulumi.Input['ClusterPublicNetworkArgs'] public_network: (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
357
+ > The `public_network` block exports:
358
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] settings: Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
359
+ with scaleway API or CLI
360
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Redis™ cluster.
361
+ :param pulumi.Input[bool] tls_enabled: Whether TLS is enabled or not.
362
+
363
+ > The changes on `tls_enabled` will force the resource creation.
364
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the Redis™ cluster.
365
+ :param pulumi.Input[str] user_name: Identifier for the first user of the Redis™ cluster.
366
+ :param pulumi.Input[str] version: Redis™ cluster's version (e.g. `6.2.7`).
367
+
368
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
369
+ cannot downgrade a Redis™ cluster.
370
+ :param pulumi.Input[str] zone: `zone`) The zone in which the
371
+ Redis™ cluster should be created.
372
+ """
373
+ if acls is not None:
374
+ pulumi.set(__self__, "acls", acls)
375
+ if certificate is not None:
376
+ pulumi.set(__self__, "certificate", certificate)
377
+ if cluster_size is not None:
378
+ pulumi.set(__self__, "cluster_size", cluster_size)
379
+ if created_at is not None:
380
+ pulumi.set(__self__, "created_at", created_at)
381
+ if name is not None:
382
+ pulumi.set(__self__, "name", name)
383
+ if node_type is not None:
384
+ pulumi.set(__self__, "node_type", node_type)
385
+ if password is not None:
386
+ pulumi.set(__self__, "password", password)
387
+ if private_networks is not None:
388
+ pulumi.set(__self__, "private_networks", private_networks)
389
+ if project_id is not None:
390
+ pulumi.set(__self__, "project_id", project_id)
391
+ if public_network is not None:
392
+ pulumi.set(__self__, "public_network", public_network)
393
+ if settings is not None:
394
+ pulumi.set(__self__, "settings", settings)
395
+ if tags is not None:
396
+ pulumi.set(__self__, "tags", tags)
397
+ if tls_enabled is not None:
398
+ pulumi.set(__self__, "tls_enabled", tls_enabled)
399
+ if updated_at is not None:
400
+ pulumi.set(__self__, "updated_at", updated_at)
401
+ if user_name is not None:
402
+ pulumi.set(__self__, "user_name", user_name)
403
+ if version is not None:
404
+ pulumi.set(__self__, "version", version)
405
+ if zone is not None:
406
+ pulumi.set(__self__, "zone", zone)
407
+
408
+ @property
409
+ @pulumi.getter
410
+ def acls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAclArgs']]]]:
411
+ """
412
+ List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
413
+ """
414
+ return pulumi.get(self, "acls")
415
+
416
+ @acls.setter
417
+ def acls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAclArgs']]]]):
418
+ pulumi.set(self, "acls", value)
419
+
420
+ @property
421
+ @pulumi.getter
422
+ def certificate(self) -> Optional[pulumi.Input[str]]:
423
+ """
424
+ The PEM of the certificate used by redis, only when `tls_enabled` is true
425
+ """
426
+ return pulumi.get(self, "certificate")
427
+
428
+ @certificate.setter
429
+ def certificate(self, value: Optional[pulumi.Input[str]]):
430
+ pulumi.set(self, "certificate", value)
431
+
432
+ @property
433
+ @pulumi.getter(name="clusterSize")
434
+ def cluster_size(self) -> Optional[pulumi.Input[int]]:
435
+ """
436
+ The number of nodes in the Redis™ cluster.
437
+
438
+ > **Important:**
439
+
440
+ - Cluster_size = 1 for Standalone mode (single node).
441
+
442
+ - Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.
443
+
444
+ - Cluster_size >= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.
445
+
446
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
447
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
448
+ `cluster_size` will destroy and recreate your cluster.
449
+
450
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
451
+ recreate your cluster as you will be switching to the cluster mode.
452
+ """
453
+ return pulumi.get(self, "cluster_size")
454
+
455
+ @cluster_size.setter
456
+ def cluster_size(self, value: Optional[pulumi.Input[int]]):
457
+ pulumi.set(self, "cluster_size", value)
458
+
459
+ @property
460
+ @pulumi.getter(name="createdAt")
461
+ def created_at(self) -> Optional[pulumi.Input[str]]:
462
+ """
463
+ The date and time of creation of the Redis™ cluster.
464
+ """
465
+ return pulumi.get(self, "created_at")
466
+
467
+ @created_at.setter
468
+ def created_at(self, value: Optional[pulumi.Input[str]]):
469
+ pulumi.set(self, "created_at", value)
470
+
471
+ @property
472
+ @pulumi.getter
473
+ def name(self) -> Optional[pulumi.Input[str]]:
474
+ """
475
+ The name of the Redis™ cluster.
476
+ """
477
+ return pulumi.get(self, "name")
478
+
479
+ @name.setter
480
+ def name(self, value: Optional[pulumi.Input[str]]):
481
+ pulumi.set(self, "name", value)
482
+
483
+ @property
484
+ @pulumi.getter(name="nodeType")
485
+ def node_type(self) -> Optional[pulumi.Input[str]]:
486
+ """
487
+ The type of Redis™ cluster you want to create (e.g. `RED1-M`).
488
+
489
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
490
+ you cannot downgrade a Redis™ cluster.
491
+ """
492
+ return pulumi.get(self, "node_type")
493
+
494
+ @node_type.setter
495
+ def node_type(self, value: Optional[pulumi.Input[str]]):
496
+ pulumi.set(self, "node_type", value)
497
+
498
+ @property
499
+ @pulumi.getter
500
+ def password(self) -> Optional[pulumi.Input[str]]:
501
+ """
502
+ Password for the first user of the Redis™ cluster.
503
+ """
504
+ return pulumi.get(self, "password")
505
+
506
+ @password.setter
507
+ def password(self, value: Optional[pulumi.Input[str]]):
508
+ pulumi.set(self, "password", value)
509
+
510
+ @property
511
+ @pulumi.getter(name="privateNetworks")
512
+ def private_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterPrivateNetworkArgs']]]]:
513
+ """
514
+ Describes the Private Network you want to connect to your cluster. If not set, a public
515
+ network will be provided. More details on the Private Network section
516
+ """
517
+ return pulumi.get(self, "private_networks")
518
+
519
+ @private_networks.setter
520
+ def private_networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterPrivateNetworkArgs']]]]):
521
+ pulumi.set(self, "private_networks", value)
522
+
523
+ @property
524
+ @pulumi.getter(name="projectId")
525
+ def project_id(self) -> Optional[pulumi.Input[str]]:
526
+ """
527
+ `project_id`) The ID of the project the Redis™ cluster is
528
+ associated with.
529
+ """
530
+ return pulumi.get(self, "project_id")
531
+
532
+ @project_id.setter
533
+ def project_id(self, value: Optional[pulumi.Input[str]]):
534
+ pulumi.set(self, "project_id", value)
535
+
536
+ @property
537
+ @pulumi.getter(name="publicNetwork")
538
+ def public_network(self) -> Optional[pulumi.Input['ClusterPublicNetworkArgs']]:
539
+ """
540
+ (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
541
+ > The `public_network` block exports:
542
+ """
543
+ return pulumi.get(self, "public_network")
544
+
545
+ @public_network.setter
546
+ def public_network(self, value: Optional[pulumi.Input['ClusterPublicNetworkArgs']]):
547
+ pulumi.set(self, "public_network", value)
548
+
549
+ @property
550
+ @pulumi.getter
551
+ def settings(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
552
+ """
553
+ Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
554
+ with scaleway API or CLI
555
+ """
556
+ return pulumi.get(self, "settings")
557
+
558
+ @settings.setter
559
+ def settings(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
560
+ pulumi.set(self, "settings", value)
561
+
562
+ @property
563
+ @pulumi.getter
564
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
565
+ """
566
+ The tags associated with the Redis™ cluster.
567
+ """
568
+ return pulumi.get(self, "tags")
569
+
570
+ @tags.setter
571
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
572
+ pulumi.set(self, "tags", value)
573
+
574
+ @property
575
+ @pulumi.getter(name="tlsEnabled")
576
+ def tls_enabled(self) -> Optional[pulumi.Input[bool]]:
577
+ """
578
+ Whether TLS is enabled or not.
579
+
580
+ > The changes on `tls_enabled` will force the resource creation.
581
+ """
582
+ return pulumi.get(self, "tls_enabled")
583
+
584
+ @tls_enabled.setter
585
+ def tls_enabled(self, value: Optional[pulumi.Input[bool]]):
586
+ pulumi.set(self, "tls_enabled", value)
587
+
588
+ @property
589
+ @pulumi.getter(name="updatedAt")
590
+ def updated_at(self) -> Optional[pulumi.Input[str]]:
591
+ """
592
+ The date and time of the last update of the Redis™ cluster.
593
+ """
594
+ return pulumi.get(self, "updated_at")
595
+
596
+ @updated_at.setter
597
+ def updated_at(self, value: Optional[pulumi.Input[str]]):
598
+ pulumi.set(self, "updated_at", value)
599
+
600
+ @property
601
+ @pulumi.getter(name="userName")
602
+ def user_name(self) -> Optional[pulumi.Input[str]]:
603
+ """
604
+ Identifier for the first user of the Redis™ cluster.
605
+ """
606
+ return pulumi.get(self, "user_name")
607
+
608
+ @user_name.setter
609
+ def user_name(self, value: Optional[pulumi.Input[str]]):
610
+ pulumi.set(self, "user_name", value)
611
+
612
+ @property
613
+ @pulumi.getter
614
+ def version(self) -> Optional[pulumi.Input[str]]:
615
+ """
616
+ Redis™ cluster's version (e.g. `6.2.7`).
617
+
618
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
619
+ cannot downgrade a Redis™ cluster.
620
+ """
621
+ return pulumi.get(self, "version")
622
+
623
+ @version.setter
624
+ def version(self, value: Optional[pulumi.Input[str]]):
625
+ pulumi.set(self, "version", value)
626
+
627
+ @property
628
+ @pulumi.getter
629
+ def zone(self) -> Optional[pulumi.Input[str]]:
630
+ """
631
+ `zone`) The zone in which the
632
+ Redis™ cluster should be created.
633
+ """
634
+ return pulumi.get(self, "zone")
635
+
636
+ @zone.setter
637
+ def zone(self, value: Optional[pulumi.Input[str]]):
638
+ pulumi.set(self, "zone", value)
639
+
640
+
641
+ class Cluster(pulumi.CustomResource):
642
+ @overload
643
+ def __init__(__self__,
644
+ resource_name: str,
645
+ opts: Optional[pulumi.ResourceOptions] = None,
646
+ acls: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClusterAclArgs', 'ClusterAclArgsDict']]]]] = None,
647
+ cluster_size: Optional[pulumi.Input[int]] = None,
648
+ name: Optional[pulumi.Input[str]] = None,
649
+ node_type: Optional[pulumi.Input[str]] = None,
650
+ password: Optional[pulumi.Input[str]] = None,
651
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClusterPrivateNetworkArgs', 'ClusterPrivateNetworkArgsDict']]]]] = None,
652
+ project_id: Optional[pulumi.Input[str]] = None,
653
+ public_network: Optional[pulumi.Input[Union['ClusterPublicNetworkArgs', 'ClusterPublicNetworkArgsDict']]] = None,
654
+ settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
655
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
656
+ tls_enabled: Optional[pulumi.Input[bool]] = None,
657
+ user_name: Optional[pulumi.Input[str]] = None,
658
+ version: Optional[pulumi.Input[str]] = None,
659
+ zone: Optional[pulumi.Input[str]] = None,
660
+ __props__=None):
661
+ """
662
+ Creates and manages Scaleway Redis™ clusters.
663
+ For more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-redis).
664
+
665
+ ## Example Usage
666
+
667
+ ### Basic
668
+
669
+ ```python
670
+ import pulumi
671
+ import pulumiverse_scaleway as scaleway
672
+
673
+ main = scaleway.redis.Cluster("main",
674
+ name="test_redis_basic",
675
+ version="6.2.7",
676
+ node_type="RED1-MICRO",
677
+ user_name="my_initial_user",
678
+ password="thiZ_is_v&ry_s3cret",
679
+ tags=[
680
+ "test",
681
+ "redis",
682
+ ],
683
+ cluster_size=1,
684
+ tls_enabled=True,
685
+ acls=[{
686
+ "ip": "0.0.0.0/0",
687
+ "description": "Allow all",
688
+ }])
689
+ ```
690
+
691
+ ### With settings
692
+
693
+ ```python
694
+ import pulumi
695
+ import pulumiverse_scaleway as scaleway
696
+
697
+ main = scaleway.redis.Cluster("main",
698
+ name="test_redis_basic",
699
+ version="6.2.7",
700
+ node_type="RED1-MICRO",
701
+ user_name="my_initial_user",
702
+ password="thiZ_is_v&ry_s3cret",
703
+ settings={
704
+ "maxclients": "1000",
705
+ "tcp-keepalive": "120",
706
+ })
707
+ ```
708
+
709
+ ### With a Private Network
710
+
711
+ ```python
712
+ import pulumi
713
+ import pulumiverse_scaleway as scaleway
714
+
715
+ pn = scaleway.network.PrivateNetwork("pn", name="private-network")
716
+ main = scaleway.redis.Cluster("main",
717
+ name="test_redis_endpoints",
718
+ version="6.2.7",
719
+ node_type="RED1-MICRO",
720
+ user_name="my_initial_user",
721
+ password="thiZ_is_v&ry_s3cret",
722
+ cluster_size=1,
723
+ private_networks=[{
724
+ "id": pn.id,
725
+ "service_ips": ["10.12.1.1/20"],
726
+ }],
727
+ opts = pulumi.ResourceOptions(depends_on=[pn]))
728
+ ```
729
+
730
+ ## Import
731
+
732
+ Redis™ cluster can be imported using the `{zone}/{id}`, e.g.
733
+
734
+ bash
735
+
736
+ ```sh
737
+ $ pulumi import scaleway:redis/cluster:Cluster main fr-par-1/11111111-1111-1111-1111-111111111111
738
+ ```
739
+
740
+ :param str resource_name: The name of the resource.
741
+ :param pulumi.ResourceOptions opts: Options for the resource.
742
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ClusterAclArgs', 'ClusterAclArgsDict']]]] acls: List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
743
+ :param pulumi.Input[int] cluster_size: The number of nodes in the Redis™ cluster.
744
+
745
+ > **Important:**
746
+
747
+ - Cluster_size = 1 for Standalone mode (single node).
748
+
749
+ - Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.
750
+
751
+ - Cluster_size >= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.
752
+
753
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
754
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
755
+ `cluster_size` will destroy and recreate your cluster.
756
+
757
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
758
+ recreate your cluster as you will be switching to the cluster mode.
759
+ :param pulumi.Input[str] name: The name of the Redis™ cluster.
760
+ :param pulumi.Input[str] node_type: The type of Redis™ cluster you want to create (e.g. `RED1-M`).
761
+
762
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
763
+ you cannot downgrade a Redis™ cluster.
764
+ :param pulumi.Input[str] password: Password for the first user of the Redis™ cluster.
765
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ClusterPrivateNetworkArgs', 'ClusterPrivateNetworkArgsDict']]]] private_networks: Describes the Private Network you want to connect to your cluster. If not set, a public
766
+ network will be provided. More details on the Private Network section
767
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the Redis™ cluster is
768
+ associated with.
769
+ :param pulumi.Input[Union['ClusterPublicNetworkArgs', 'ClusterPublicNetworkArgsDict']] public_network: (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
770
+ > The `public_network` block exports:
771
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] settings: Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
772
+ with scaleway API or CLI
773
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Redis™ cluster.
774
+ :param pulumi.Input[bool] tls_enabled: Whether TLS is enabled or not.
775
+
776
+ > The changes on `tls_enabled` will force the resource creation.
777
+ :param pulumi.Input[str] user_name: Identifier for the first user of the Redis™ cluster.
778
+ :param pulumi.Input[str] version: Redis™ cluster's version (e.g. `6.2.7`).
779
+
780
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
781
+ cannot downgrade a Redis™ cluster.
782
+ :param pulumi.Input[str] zone: `zone`) The zone in which the
783
+ Redis™ cluster should be created.
784
+ """
785
+ ...
786
+ @overload
787
+ def __init__(__self__,
788
+ resource_name: str,
789
+ args: ClusterArgs,
790
+ opts: Optional[pulumi.ResourceOptions] = None):
791
+ """
792
+ Creates and manages Scaleway Redis™ clusters.
793
+ For more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-redis).
794
+
795
+ ## Example Usage
796
+
797
+ ### Basic
798
+
799
+ ```python
800
+ import pulumi
801
+ import pulumiverse_scaleway as scaleway
802
+
803
+ main = scaleway.redis.Cluster("main",
804
+ name="test_redis_basic",
805
+ version="6.2.7",
806
+ node_type="RED1-MICRO",
807
+ user_name="my_initial_user",
808
+ password="thiZ_is_v&ry_s3cret",
809
+ tags=[
810
+ "test",
811
+ "redis",
812
+ ],
813
+ cluster_size=1,
814
+ tls_enabled=True,
815
+ acls=[{
816
+ "ip": "0.0.0.0/0",
817
+ "description": "Allow all",
818
+ }])
819
+ ```
820
+
821
+ ### With settings
822
+
823
+ ```python
824
+ import pulumi
825
+ import pulumiverse_scaleway as scaleway
826
+
827
+ main = scaleway.redis.Cluster("main",
828
+ name="test_redis_basic",
829
+ version="6.2.7",
830
+ node_type="RED1-MICRO",
831
+ user_name="my_initial_user",
832
+ password="thiZ_is_v&ry_s3cret",
833
+ settings={
834
+ "maxclients": "1000",
835
+ "tcp-keepalive": "120",
836
+ })
837
+ ```
838
+
839
+ ### With a Private Network
840
+
841
+ ```python
842
+ import pulumi
843
+ import pulumiverse_scaleway as scaleway
844
+
845
+ pn = scaleway.network.PrivateNetwork("pn", name="private-network")
846
+ main = scaleway.redis.Cluster("main",
847
+ name="test_redis_endpoints",
848
+ version="6.2.7",
849
+ node_type="RED1-MICRO",
850
+ user_name="my_initial_user",
851
+ password="thiZ_is_v&ry_s3cret",
852
+ cluster_size=1,
853
+ private_networks=[{
854
+ "id": pn.id,
855
+ "service_ips": ["10.12.1.1/20"],
856
+ }],
857
+ opts = pulumi.ResourceOptions(depends_on=[pn]))
858
+ ```
859
+
860
+ ## Import
861
+
862
+ Redis™ cluster can be imported using the `{zone}/{id}`, e.g.
863
+
864
+ bash
865
+
866
+ ```sh
867
+ $ pulumi import scaleway:redis/cluster:Cluster main fr-par-1/11111111-1111-1111-1111-111111111111
868
+ ```
869
+
870
+ :param str resource_name: The name of the resource.
871
+ :param ClusterArgs args: The arguments to use to populate this resource's properties.
872
+ :param pulumi.ResourceOptions opts: Options for the resource.
873
+ """
874
+ ...
875
+ def __init__(__self__, resource_name: str, *args, **kwargs):
876
+ resource_args, opts = _utilities.get_resource_args_opts(ClusterArgs, pulumi.ResourceOptions, *args, **kwargs)
877
+ if resource_args is not None:
878
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
879
+ else:
880
+ __self__._internal_init(resource_name, *args, **kwargs)
881
+
882
+ def _internal_init(__self__,
883
+ resource_name: str,
884
+ opts: Optional[pulumi.ResourceOptions] = None,
885
+ acls: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClusterAclArgs', 'ClusterAclArgsDict']]]]] = None,
886
+ cluster_size: Optional[pulumi.Input[int]] = None,
887
+ name: Optional[pulumi.Input[str]] = None,
888
+ node_type: Optional[pulumi.Input[str]] = None,
889
+ password: Optional[pulumi.Input[str]] = None,
890
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClusterPrivateNetworkArgs', 'ClusterPrivateNetworkArgsDict']]]]] = None,
891
+ project_id: Optional[pulumi.Input[str]] = None,
892
+ public_network: Optional[pulumi.Input[Union['ClusterPublicNetworkArgs', 'ClusterPublicNetworkArgsDict']]] = None,
893
+ settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
894
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
895
+ tls_enabled: Optional[pulumi.Input[bool]] = None,
896
+ user_name: Optional[pulumi.Input[str]] = None,
897
+ version: Optional[pulumi.Input[str]] = None,
898
+ zone: Optional[pulumi.Input[str]] = None,
899
+ __props__=None):
900
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
901
+ if not isinstance(opts, pulumi.ResourceOptions):
902
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
903
+ if opts.id is None:
904
+ if __props__ is not None:
905
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
906
+ __props__ = ClusterArgs.__new__(ClusterArgs)
907
+
908
+ __props__.__dict__["acls"] = acls
909
+ __props__.__dict__["cluster_size"] = cluster_size
910
+ __props__.__dict__["name"] = name
911
+ if node_type is None and not opts.urn:
912
+ raise TypeError("Missing required property 'node_type'")
913
+ __props__.__dict__["node_type"] = node_type
914
+ if password is None and not opts.urn:
915
+ raise TypeError("Missing required property 'password'")
916
+ __props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password)
917
+ __props__.__dict__["private_networks"] = private_networks
918
+ __props__.__dict__["project_id"] = project_id
919
+ __props__.__dict__["public_network"] = public_network
920
+ __props__.__dict__["settings"] = settings
921
+ __props__.__dict__["tags"] = tags
922
+ __props__.__dict__["tls_enabled"] = tls_enabled
923
+ if user_name is None and not opts.urn:
924
+ raise TypeError("Missing required property 'user_name'")
925
+ __props__.__dict__["user_name"] = user_name
926
+ if version is None and not opts.urn:
927
+ raise TypeError("Missing required property 'version'")
928
+ __props__.__dict__["version"] = version
929
+ __props__.__dict__["zone"] = zone
930
+ __props__.__dict__["certificate"] = None
931
+ __props__.__dict__["created_at"] = None
932
+ __props__.__dict__["updated_at"] = None
933
+ alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/redisCluster:RedisCluster")])
934
+ opts = pulumi.ResourceOptions.merge(opts, alias_opts)
935
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["password"])
936
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
937
+ super(Cluster, __self__).__init__(
938
+ 'scaleway:redis/cluster:Cluster',
939
+ resource_name,
940
+ __props__,
941
+ opts)
942
+
943
+ @staticmethod
944
+ def get(resource_name: str,
945
+ id: pulumi.Input[str],
946
+ opts: Optional[pulumi.ResourceOptions] = None,
947
+ acls: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClusterAclArgs', 'ClusterAclArgsDict']]]]] = None,
948
+ certificate: Optional[pulumi.Input[str]] = None,
949
+ cluster_size: Optional[pulumi.Input[int]] = None,
950
+ created_at: Optional[pulumi.Input[str]] = None,
951
+ name: Optional[pulumi.Input[str]] = None,
952
+ node_type: Optional[pulumi.Input[str]] = None,
953
+ password: Optional[pulumi.Input[str]] = None,
954
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClusterPrivateNetworkArgs', 'ClusterPrivateNetworkArgsDict']]]]] = None,
955
+ project_id: Optional[pulumi.Input[str]] = None,
956
+ public_network: Optional[pulumi.Input[Union['ClusterPublicNetworkArgs', 'ClusterPublicNetworkArgsDict']]] = None,
957
+ settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
958
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
959
+ tls_enabled: Optional[pulumi.Input[bool]] = None,
960
+ updated_at: Optional[pulumi.Input[str]] = None,
961
+ user_name: Optional[pulumi.Input[str]] = None,
962
+ version: Optional[pulumi.Input[str]] = None,
963
+ zone: Optional[pulumi.Input[str]] = None) -> 'Cluster':
964
+ """
965
+ Get an existing Cluster resource's state with the given name, id, and optional extra
966
+ properties used to qualify the lookup.
967
+
968
+ :param str resource_name: The unique name of the resulting resource.
969
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
970
+ :param pulumi.ResourceOptions opts: Options for the resource.
971
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ClusterAclArgs', 'ClusterAclArgsDict']]]] acls: List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
972
+ :param pulumi.Input[str] certificate: The PEM of the certificate used by redis, only when `tls_enabled` is true
973
+ :param pulumi.Input[int] cluster_size: The number of nodes in the Redis™ cluster.
974
+
975
+ > **Important:**
976
+
977
+ - Cluster_size = 1 for Standalone mode (single node).
978
+
979
+ - Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.
980
+
981
+ - Cluster_size >= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.
982
+
983
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
984
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
985
+ `cluster_size` will destroy and recreate your cluster.
986
+
987
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
988
+ recreate your cluster as you will be switching to the cluster mode.
989
+ :param pulumi.Input[str] created_at: The date and time of creation of the Redis™ cluster.
990
+ :param pulumi.Input[str] name: The name of the Redis™ cluster.
991
+ :param pulumi.Input[str] node_type: The type of Redis™ cluster you want to create (e.g. `RED1-M`).
992
+
993
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
994
+ you cannot downgrade a Redis™ cluster.
995
+ :param pulumi.Input[str] password: Password for the first user of the Redis™ cluster.
996
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ClusterPrivateNetworkArgs', 'ClusterPrivateNetworkArgsDict']]]] private_networks: Describes the Private Network you want to connect to your cluster. If not set, a public
997
+ network will be provided. More details on the Private Network section
998
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the Redis™ cluster is
999
+ associated with.
1000
+ :param pulumi.Input[Union['ClusterPublicNetworkArgs', 'ClusterPublicNetworkArgsDict']] public_network: (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
1001
+ > The `public_network` block exports:
1002
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] settings: Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
1003
+ with scaleway API or CLI
1004
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Redis™ cluster.
1005
+ :param pulumi.Input[bool] tls_enabled: Whether TLS is enabled or not.
1006
+
1007
+ > The changes on `tls_enabled` will force the resource creation.
1008
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the Redis™ cluster.
1009
+ :param pulumi.Input[str] user_name: Identifier for the first user of the Redis™ cluster.
1010
+ :param pulumi.Input[str] version: Redis™ cluster's version (e.g. `6.2.7`).
1011
+
1012
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
1013
+ cannot downgrade a Redis™ cluster.
1014
+ :param pulumi.Input[str] zone: `zone`) The zone in which the
1015
+ Redis™ cluster should be created.
1016
+ """
1017
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1018
+
1019
+ __props__ = _ClusterState.__new__(_ClusterState)
1020
+
1021
+ __props__.__dict__["acls"] = acls
1022
+ __props__.__dict__["certificate"] = certificate
1023
+ __props__.__dict__["cluster_size"] = cluster_size
1024
+ __props__.__dict__["created_at"] = created_at
1025
+ __props__.__dict__["name"] = name
1026
+ __props__.__dict__["node_type"] = node_type
1027
+ __props__.__dict__["password"] = password
1028
+ __props__.__dict__["private_networks"] = private_networks
1029
+ __props__.__dict__["project_id"] = project_id
1030
+ __props__.__dict__["public_network"] = public_network
1031
+ __props__.__dict__["settings"] = settings
1032
+ __props__.__dict__["tags"] = tags
1033
+ __props__.__dict__["tls_enabled"] = tls_enabled
1034
+ __props__.__dict__["updated_at"] = updated_at
1035
+ __props__.__dict__["user_name"] = user_name
1036
+ __props__.__dict__["version"] = version
1037
+ __props__.__dict__["zone"] = zone
1038
+ return Cluster(resource_name, opts=opts, __props__=__props__)
1039
+
1040
+ @property
1041
+ @pulumi.getter
1042
+ def acls(self) -> pulumi.Output[Optional[Sequence['outputs.ClusterAcl']]]:
1043
+ """
1044
+ List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
1045
+ """
1046
+ return pulumi.get(self, "acls")
1047
+
1048
+ @property
1049
+ @pulumi.getter
1050
+ def certificate(self) -> pulumi.Output[str]:
1051
+ """
1052
+ The PEM of the certificate used by redis, only when `tls_enabled` is true
1053
+ """
1054
+ return pulumi.get(self, "certificate")
1055
+
1056
+ @property
1057
+ @pulumi.getter(name="clusterSize")
1058
+ def cluster_size(self) -> pulumi.Output[int]:
1059
+ """
1060
+ The number of nodes in the Redis™ cluster.
1061
+
1062
+ > **Important:**
1063
+
1064
+ - Cluster_size = 1 for Standalone mode (single node).
1065
+
1066
+ - Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.
1067
+
1068
+ - Cluster_size >= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.
1069
+
1070
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
1071
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
1072
+ `cluster_size` will destroy and recreate your cluster.
1073
+
1074
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
1075
+ recreate your cluster as you will be switching to the cluster mode.
1076
+ """
1077
+ return pulumi.get(self, "cluster_size")
1078
+
1079
+ @property
1080
+ @pulumi.getter(name="createdAt")
1081
+ def created_at(self) -> pulumi.Output[str]:
1082
+ """
1083
+ The date and time of creation of the Redis™ cluster.
1084
+ """
1085
+ return pulumi.get(self, "created_at")
1086
+
1087
+ @property
1088
+ @pulumi.getter
1089
+ def name(self) -> pulumi.Output[str]:
1090
+ """
1091
+ The name of the Redis™ cluster.
1092
+ """
1093
+ return pulumi.get(self, "name")
1094
+
1095
+ @property
1096
+ @pulumi.getter(name="nodeType")
1097
+ def node_type(self) -> pulumi.Output[str]:
1098
+ """
1099
+ The type of Redis™ cluster you want to create (e.g. `RED1-M`).
1100
+
1101
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
1102
+ you cannot downgrade a Redis™ cluster.
1103
+ """
1104
+ return pulumi.get(self, "node_type")
1105
+
1106
+ @property
1107
+ @pulumi.getter
1108
+ def password(self) -> pulumi.Output[str]:
1109
+ """
1110
+ Password for the first user of the Redis™ cluster.
1111
+ """
1112
+ return pulumi.get(self, "password")
1113
+
1114
+ @property
1115
+ @pulumi.getter(name="privateNetworks")
1116
+ def private_networks(self) -> pulumi.Output[Optional[Sequence['outputs.ClusterPrivateNetwork']]]:
1117
+ """
1118
+ Describes the Private Network you want to connect to your cluster. If not set, a public
1119
+ network will be provided. More details on the Private Network section
1120
+ """
1121
+ return pulumi.get(self, "private_networks")
1122
+
1123
+ @property
1124
+ @pulumi.getter(name="projectId")
1125
+ def project_id(self) -> pulumi.Output[str]:
1126
+ """
1127
+ `project_id`) The ID of the project the Redis™ cluster is
1128
+ associated with.
1129
+ """
1130
+ return pulumi.get(self, "project_id")
1131
+
1132
+ @property
1133
+ @pulumi.getter(name="publicNetwork")
1134
+ def public_network(self) -> pulumi.Output['outputs.ClusterPublicNetwork']:
1135
+ """
1136
+ (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
1137
+ > The `public_network` block exports:
1138
+ """
1139
+ return pulumi.get(self, "public_network")
1140
+
1141
+ @property
1142
+ @pulumi.getter
1143
+ def settings(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1144
+ """
1145
+ Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
1146
+ with scaleway API or CLI
1147
+ """
1148
+ return pulumi.get(self, "settings")
1149
+
1150
+ @property
1151
+ @pulumi.getter
1152
+ def tags(self) -> pulumi.Output[Optional[Sequence[str]]]:
1153
+ """
1154
+ The tags associated with the Redis™ cluster.
1155
+ """
1156
+ return pulumi.get(self, "tags")
1157
+
1158
+ @property
1159
+ @pulumi.getter(name="tlsEnabled")
1160
+ def tls_enabled(self) -> pulumi.Output[Optional[bool]]:
1161
+ """
1162
+ Whether TLS is enabled or not.
1163
+
1164
+ > The changes on `tls_enabled` will force the resource creation.
1165
+ """
1166
+ return pulumi.get(self, "tls_enabled")
1167
+
1168
+ @property
1169
+ @pulumi.getter(name="updatedAt")
1170
+ def updated_at(self) -> pulumi.Output[str]:
1171
+ """
1172
+ The date and time of the last update of the Redis™ cluster.
1173
+ """
1174
+ return pulumi.get(self, "updated_at")
1175
+
1176
+ @property
1177
+ @pulumi.getter(name="userName")
1178
+ def user_name(self) -> pulumi.Output[str]:
1179
+ """
1180
+ Identifier for the first user of the Redis™ cluster.
1181
+ """
1182
+ return pulumi.get(self, "user_name")
1183
+
1184
+ @property
1185
+ @pulumi.getter
1186
+ def version(self) -> pulumi.Output[str]:
1187
+ """
1188
+ Redis™ cluster's version (e.g. `6.2.7`).
1189
+
1190
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
1191
+ cannot downgrade a Redis™ cluster.
1192
+ """
1193
+ return pulumi.get(self, "version")
1194
+
1195
+ @property
1196
+ @pulumi.getter
1197
+ def zone(self) -> pulumi.Output[str]:
1198
+ """
1199
+ `zone`) The zone in which the
1200
+ Redis™ cluster should be created.
1201
+ """
1202
+ return pulumi.get(self, "zone")
1203
+