pulumiverse-scaleway 1.25.0a1742464679__py3-none-any.whl → 1.25.0a1742668904__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. pulumiverse_scaleway/__init__.py +929 -0
  2. pulumiverse_scaleway/account/__init__.py +12 -0
  3. pulumiverse_scaleway/account/get_availability_zones.py +139 -0
  4. pulumiverse_scaleway/account/get_project.py +170 -0
  5. pulumiverse_scaleway/account/get_ssh_key.py +205 -0
  6. pulumiverse_scaleway/account/project.py +318 -0
  7. pulumiverse_scaleway/account/ssh_key.py +456 -0
  8. pulumiverse_scaleway/account_project.py +6 -0
  9. pulumiverse_scaleway/account_ssh_key.py +12 -6
  10. pulumiverse_scaleway/apple_silicon_server.py +8 -2
  11. pulumiverse_scaleway/applesilicon/__init__.py +10 -0
  12. pulumiverse_scaleway/applesilicon/_inputs.py +154 -0
  13. pulumiverse_scaleway/applesilicon/outputs.py +119 -0
  14. pulumiverse_scaleway/applesilicon/server.py +690 -0
  15. pulumiverse_scaleway/baremetal_server.py +64 -58
  16. pulumiverse_scaleway/billing/__init__.py +10 -0
  17. pulumiverse_scaleway/billing/get_consumptions.py +134 -0
  18. pulumiverse_scaleway/billing/get_invoices.py +154 -0
  19. pulumiverse_scaleway/billing/outputs.py +288 -0
  20. pulumiverse_scaleway/block/__init__.py +11 -0
  21. pulumiverse_scaleway/block/get_snapshot.py +174 -0
  22. pulumiverse_scaleway/block/get_volume.py +199 -0
  23. pulumiverse_scaleway/block/snapshot.py +403 -0
  24. pulumiverse_scaleway/block/volume.py +576 -0
  25. pulumiverse_scaleway/block_snapshot.py +12 -6
  26. pulumiverse_scaleway/block_volume.py +16 -10
  27. pulumiverse_scaleway/cockpit.py +10 -4
  28. pulumiverse_scaleway/cockpit_alert_manager.py +12 -6
  29. pulumiverse_scaleway/cockpit_grafana_user.py +12 -6
  30. pulumiverse_scaleway/cockpit_source.py +12 -6
  31. pulumiverse_scaleway/cockpit_token.py +16 -10
  32. pulumiverse_scaleway/container.py +16 -10
  33. pulumiverse_scaleway/container_cron.py +14 -8
  34. pulumiverse_scaleway/container_domain.py +24 -18
  35. pulumiverse_scaleway/container_namespace.py +10 -4
  36. pulumiverse_scaleway/container_token.py +32 -26
  37. pulumiverse_scaleway/container_trigger.py +12 -6
  38. pulumiverse_scaleway/containers/__init__.py +17 -0
  39. pulumiverse_scaleway/containers/_inputs.py +389 -0
  40. pulumiverse_scaleway/containers/container.py +1635 -0
  41. pulumiverse_scaleway/containers/cron.py +460 -0
  42. pulumiverse_scaleway/containers/domain.py +408 -0
  43. pulumiverse_scaleway/containers/get_container.py +562 -0
  44. pulumiverse_scaleway/containers/get_namespace.py +283 -0
  45. pulumiverse_scaleway/containers/namespace.py +638 -0
  46. pulumiverse_scaleway/containers/outputs.py +412 -0
  47. pulumiverse_scaleway/containers/token.py +454 -0
  48. pulumiverse_scaleway/containers/trigger.py +482 -0
  49. pulumiverse_scaleway/database.py +10 -4
  50. pulumiverse_scaleway/database_acl.py +10 -4
  51. pulumiverse_scaleway/database_backup.py +14 -8
  52. pulumiverse_scaleway/database_instance.py +24 -18
  53. pulumiverse_scaleway/database_privilege.py +16 -10
  54. pulumiverse_scaleway/database_read_replica.py +22 -16
  55. pulumiverse_scaleway/database_user.py +10 -4
  56. pulumiverse_scaleway/databases/__init__.py +23 -0
  57. pulumiverse_scaleway/databases/_inputs.py +822 -0
  58. pulumiverse_scaleway/databases/acl.py +334 -0
  59. pulumiverse_scaleway/databases/database.py +409 -0
  60. pulumiverse_scaleway/databases/database_backup.py +576 -0
  61. pulumiverse_scaleway/databases/get_acl.py +143 -0
  62. pulumiverse_scaleway/databases/get_database.py +187 -0
  63. pulumiverse_scaleway/databases/get_database_backup.py +253 -0
  64. pulumiverse_scaleway/databases/get_instance.py +415 -0
  65. pulumiverse_scaleway/databases/get_privilege.py +181 -0
  66. pulumiverse_scaleway/databases/instance.py +1696 -0
  67. pulumiverse_scaleway/databases/outputs.py +866 -0
  68. pulumiverse_scaleway/databases/privilege.py +424 -0
  69. pulumiverse_scaleway/databases/read_replica.py +530 -0
  70. pulumiverse_scaleway/databases/serverless_database.py +434 -0
  71. pulumiverse_scaleway/databases/snapshot.py +610 -0
  72. pulumiverse_scaleway/databases/user.py +448 -0
  73. pulumiverse_scaleway/domain/__init__.py +13 -0
  74. pulumiverse_scaleway/domain/_inputs.py +341 -0
  75. pulumiverse_scaleway/domain/get_record.py +340 -0
  76. pulumiverse_scaleway/domain/get_zone.py +201 -0
  77. pulumiverse_scaleway/domain/outputs.py +408 -0
  78. pulumiverse_scaleway/domain/record.py +1118 -0
  79. pulumiverse_scaleway/domain/zone.py +432 -0
  80. pulumiverse_scaleway/domain_record.py +36 -30
  81. pulumiverse_scaleway/domain_zone.py +6 -0
  82. pulumiverse_scaleway/elasticmetal/__init__.py +18 -0
  83. pulumiverse_scaleway/elasticmetal/_inputs.py +509 -0
  84. pulumiverse_scaleway/elasticmetal/get_ip.py +247 -0
  85. pulumiverse_scaleway/elasticmetal/get_ips.py +240 -0
  86. pulumiverse_scaleway/elasticmetal/get_offer.py +245 -0
  87. pulumiverse_scaleway/elasticmetal/get_option.py +168 -0
  88. pulumiverse_scaleway/elasticmetal/get_os.py +174 -0
  89. pulumiverse_scaleway/elasticmetal/get_server.py +422 -0
  90. pulumiverse_scaleway/elasticmetal/ip.py +704 -0
  91. pulumiverse_scaleway/elasticmetal/ip_mac_address.py +512 -0
  92. pulumiverse_scaleway/elasticmetal/outputs.py +974 -0
  93. pulumiverse_scaleway/elasticmetal/server.py +1591 -0
  94. pulumiverse_scaleway/flexible_ip.py +22 -16
  95. pulumiverse_scaleway/flexible_ip_mac_address.py +22 -16
  96. pulumiverse_scaleway/function.py +6 -0
  97. pulumiverse_scaleway/function_cron.py +16 -10
  98. pulumiverse_scaleway/function_domain.py +16 -10
  99. pulumiverse_scaleway/function_namespace.py +10 -4
  100. pulumiverse_scaleway/function_token.py +32 -26
  101. pulumiverse_scaleway/function_trigger.py +12 -6
  102. pulumiverse_scaleway/functions/__init__.py +17 -0
  103. pulumiverse_scaleway/functions/_inputs.py +211 -0
  104. pulumiverse_scaleway/functions/cron.py +464 -0
  105. pulumiverse_scaleway/functions/domain.py +372 -0
  106. pulumiverse_scaleway/functions/function.py +1105 -0
  107. pulumiverse_scaleway/functions/get_function.py +365 -0
  108. pulumiverse_scaleway/functions/get_namespace.py +238 -0
  109. pulumiverse_scaleway/functions/namespace.py +582 -0
  110. pulumiverse_scaleway/functions/outputs.py +168 -0
  111. pulumiverse_scaleway/functions/token.py +462 -0
  112. pulumiverse_scaleway/functions/trigger.py +482 -0
  113. pulumiverse_scaleway/get_account_project.py +6 -2
  114. pulumiverse_scaleway/get_account_ssh_key.py +6 -2
  115. pulumiverse_scaleway/get_availability_zones.py +8 -4
  116. pulumiverse_scaleway/get_baremetal_offer.py +4 -0
  117. pulumiverse_scaleway/get_baremetal_option.py +8 -4
  118. pulumiverse_scaleway/get_baremetal_os.py +8 -4
  119. pulumiverse_scaleway/get_baremetal_server.py +8 -4
  120. pulumiverse_scaleway/get_billing_consumptions.py +4 -0
  121. pulumiverse_scaleway/get_billing_invoices.py +4 -0
  122. pulumiverse_scaleway/get_block_snapshot.py +6 -2
  123. pulumiverse_scaleway/get_block_volume.py +6 -2
  124. pulumiverse_scaleway/get_cockpit.py +12 -8
  125. pulumiverse_scaleway/get_cockpit_plan.py +10 -6
  126. pulumiverse_scaleway/get_cockpit_source.py +8 -4
  127. pulumiverse_scaleway/get_container.py +16 -12
  128. pulumiverse_scaleway/get_container_namespace.py +10 -6
  129. pulumiverse_scaleway/get_database.py +6 -2
  130. pulumiverse_scaleway/get_database_acl.py +6 -2
  131. pulumiverse_scaleway/get_database_backup.py +10 -6
  132. pulumiverse_scaleway/get_database_instance.py +4 -0
  133. pulumiverse_scaleway/get_database_privilege.py +6 -2
  134. pulumiverse_scaleway/get_domain_record.py +10 -6
  135. pulumiverse_scaleway/get_domain_zone.py +4 -0
  136. pulumiverse_scaleway/get_flexible_ip.py +4 -0
  137. pulumiverse_scaleway/get_flexible_ips.py +16 -12
  138. pulumiverse_scaleway/get_function.py +6 -2
  139. pulumiverse_scaleway/get_function_namespace.py +6 -2
  140. pulumiverse_scaleway/get_iam_api_key.py +6 -2
  141. pulumiverse_scaleway/get_iam_application.py +8 -4
  142. pulumiverse_scaleway/get_iam_group.py +8 -4
  143. pulumiverse_scaleway/get_iam_ssh_key.py +4 -0
  144. pulumiverse_scaleway/get_iam_user.py +8 -4
  145. pulumiverse_scaleway/get_instance_image.py +4 -0
  146. pulumiverse_scaleway/get_instance_ip.py +4 -0
  147. pulumiverse_scaleway/get_instance_placement_group.py +4 -0
  148. pulumiverse_scaleway/get_instance_private_nic.py +10 -6
  149. pulumiverse_scaleway/get_instance_security_group.py +4 -0
  150. pulumiverse_scaleway/get_instance_server.py +4 -0
  151. pulumiverse_scaleway/get_instance_servers.py +4 -0
  152. pulumiverse_scaleway/get_instance_snapshot.py +8 -4
  153. pulumiverse_scaleway/get_instance_volume.py +4 -0
  154. pulumiverse_scaleway/get_iot_device.py +4 -0
  155. pulumiverse_scaleway/get_iot_hub.py +4 -0
  156. pulumiverse_scaleway/get_ipam_ip.py +18 -14
  157. pulumiverse_scaleway/get_ipam_ips.py +14 -10
  158. pulumiverse_scaleway/get_k8s_version.py +8 -4
  159. pulumiverse_scaleway/get_kubernetes_cluster.py +4 -0
  160. pulumiverse_scaleway/get_kubernetes_node_pool.py +4 -0
  161. pulumiverse_scaleway/get_lb_acls.py +8 -4
  162. pulumiverse_scaleway/get_lb_backend.py +18 -14
  163. pulumiverse_scaleway/get_lb_backends.py +8 -4
  164. pulumiverse_scaleway/get_lb_frontend.py +16 -12
  165. pulumiverse_scaleway/get_lb_frontends.py +8 -4
  166. pulumiverse_scaleway/get_lb_ips.py +4 -0
  167. pulumiverse_scaleway/get_lb_route.py +16 -12
  168. pulumiverse_scaleway/get_lb_routes.py +8 -4
  169. pulumiverse_scaleway/get_lbs.py +4 -0
  170. pulumiverse_scaleway/get_loadbalancer.py +8 -4
  171. pulumiverse_scaleway/get_loadbalancer_certificate.py +4 -0
  172. pulumiverse_scaleway/get_loadbalancer_ip.py +4 -0
  173. pulumiverse_scaleway/get_mnq_sns.py +8 -4
  174. pulumiverse_scaleway/get_mnq_sqs.py +8 -4
  175. pulumiverse_scaleway/get_mongo_db_instance.py +4 -0
  176. pulumiverse_scaleway/get_object_bucket.py +12 -8
  177. pulumiverse_scaleway/get_object_bucket_policy.py +8 -4
  178. pulumiverse_scaleway/get_redis_cluster.py +4 -0
  179. pulumiverse_scaleway/get_registry_image.py +4 -0
  180. pulumiverse_scaleway/get_registry_image_tag.py +4 -0
  181. pulumiverse_scaleway/get_registry_namespace.py +4 -0
  182. pulumiverse_scaleway/get_secret.py +12 -8
  183. pulumiverse_scaleway/get_secret_version.py +14 -10
  184. pulumiverse_scaleway/get_tem_domain.py +4 -0
  185. pulumiverse_scaleway/get_vpc.py +10 -6
  186. pulumiverse_scaleway/get_vpc_gateway_network.py +10 -6
  187. pulumiverse_scaleway/get_vpc_private_network.py +10 -6
  188. pulumiverse_scaleway/get_vpc_public_gateway.py +10 -6
  189. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +8 -4
  190. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +70 -66
  191. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +8 -4
  192. pulumiverse_scaleway/get_vpc_public_pat_rule.py +26 -22
  193. pulumiverse_scaleway/get_vpc_routes.py +4 -0
  194. pulumiverse_scaleway/get_vpcs.py +4 -0
  195. pulumiverse_scaleway/get_web_host_offer.py +8 -4
  196. pulumiverse_scaleway/get_webhosting.py +8 -4
  197. pulumiverse_scaleway/hosting/__init__.py +12 -0
  198. pulumiverse_scaleway/hosting/_inputs.py +295 -0
  199. pulumiverse_scaleway/hosting/get_hosting.py +354 -0
  200. pulumiverse_scaleway/hosting/get_offer.py +229 -0
  201. pulumiverse_scaleway/hosting/hosting.py +870 -0
  202. pulumiverse_scaleway/hosting/outputs.py +626 -0
  203. pulumiverse_scaleway/iam/__init__.py +21 -0
  204. pulumiverse_scaleway/iam/_inputs.py +138 -0
  205. pulumiverse_scaleway/iam/api_key.py +622 -0
  206. pulumiverse_scaleway/iam/application.py +419 -0
  207. pulumiverse_scaleway/iam/get_api_key.py +210 -0
  208. pulumiverse_scaleway/iam/get_application.py +210 -0
  209. pulumiverse_scaleway/iam/get_group.py +236 -0
  210. pulumiverse_scaleway/iam/get_ssh_key.py +212 -0
  211. pulumiverse_scaleway/iam/get_user.py +177 -0
  212. pulumiverse_scaleway/iam/group.py +568 -0
  213. pulumiverse_scaleway/iam/group_membership.py +325 -0
  214. pulumiverse_scaleway/iam/outputs.py +111 -0
  215. pulumiverse_scaleway/iam/policy.py +775 -0
  216. pulumiverse_scaleway/iam/ssh_key.py +457 -0
  217. pulumiverse_scaleway/iam/user.py +515 -0
  218. pulumiverse_scaleway/iam_api_key.py +16 -10
  219. pulumiverse_scaleway/iam_application.py +8 -2
  220. pulumiverse_scaleway/iam_group.py +12 -6
  221. pulumiverse_scaleway/iam_group_membership.py +12 -6
  222. pulumiverse_scaleway/iam_policy.py +18 -12
  223. pulumiverse_scaleway/iam_ssh_key.py +8 -2
  224. pulumiverse_scaleway/iam_user.py +8 -2
  225. pulumiverse_scaleway/inference/__init__.py +10 -0
  226. pulumiverse_scaleway/inference/_inputs.py +209 -0
  227. pulumiverse_scaleway/inference/deployment.py +824 -0
  228. pulumiverse_scaleway/inference/outputs.py +169 -0
  229. pulumiverse_scaleway/inference_deployment.py +8 -2
  230. pulumiverse_scaleway/instance/__init__.py +29 -0
  231. pulumiverse_scaleway/instance/_inputs.py +1237 -0
  232. pulumiverse_scaleway/instance/get_image.py +305 -0
  233. pulumiverse_scaleway/instance/get_ip.py +204 -0
  234. pulumiverse_scaleway/instance/get_placement_group.py +212 -0
  235. pulumiverse_scaleway/instance/get_private_nic.py +226 -0
  236. pulumiverse_scaleway/instance/get_security_group.py +268 -0
  237. pulumiverse_scaleway/instance/get_server.py +488 -0
  238. pulumiverse_scaleway/instance/get_servers.py +187 -0
  239. pulumiverse_scaleway/instance/get_snapshot.py +248 -0
  240. pulumiverse_scaleway/instance/get_volume.py +226 -0
  241. pulumiverse_scaleway/instance/image.py +752 -0
  242. pulumiverse_scaleway/instance/ip.py +471 -0
  243. pulumiverse_scaleway/instance/ip_reverse_dns.py +310 -0
  244. pulumiverse_scaleway/instance/outputs.py +1533 -0
  245. pulumiverse_scaleway/instance/placement_group.py +481 -0
  246. pulumiverse_scaleway/instance/private_nic.py +557 -0
  247. pulumiverse_scaleway/instance/security_group.py +722 -0
  248. pulumiverse_scaleway/instance/security_group_rules.py +441 -0
  249. pulumiverse_scaleway/instance/server.py +1938 -0
  250. pulumiverse_scaleway/instance/snapshot.py +671 -0
  251. pulumiverse_scaleway/instance/user_data.py +437 -0
  252. pulumiverse_scaleway/instance/volume.py +584 -0
  253. pulumiverse_scaleway/instance_image.py +18 -12
  254. pulumiverse_scaleway/instance_ip.py +8 -2
  255. pulumiverse_scaleway/instance_ip_reverse_dns.py +12 -6
  256. pulumiverse_scaleway/instance_placement_group.py +8 -2
  257. pulumiverse_scaleway/instance_private_nic.py +24 -18
  258. pulumiverse_scaleway/instance_security_group.py +6 -0
  259. pulumiverse_scaleway/instance_security_group_rules.py +22 -16
  260. pulumiverse_scaleway/instance_server.py +74 -68
  261. pulumiverse_scaleway/instance_snapshot.py +22 -16
  262. pulumiverse_scaleway/instance_user_data.py +16 -10
  263. pulumiverse_scaleway/instance_volume.py +8 -2
  264. pulumiverse_scaleway/iot/__init__.py +15 -0
  265. pulumiverse_scaleway/iot/_inputs.py +539 -0
  266. pulumiverse_scaleway/iot/device.py +752 -0
  267. pulumiverse_scaleway/iot/get_device.py +257 -0
  268. pulumiverse_scaleway/iot/get_hub.py +322 -0
  269. pulumiverse_scaleway/iot/hub.py +898 -0
  270. pulumiverse_scaleway/iot/network.py +474 -0
  271. pulumiverse_scaleway/iot/outputs.py +465 -0
  272. pulumiverse_scaleway/iot/route.py +662 -0
  273. pulumiverse_scaleway/iot_device.py +14 -8
  274. pulumiverse_scaleway/iot_hub.py +8 -2
  275. pulumiverse_scaleway/iot_network.py +12 -6
  276. pulumiverse_scaleway/iot_route.py +32 -26
  277. pulumiverse_scaleway/ipam/__init__.py +13 -0
  278. pulumiverse_scaleway/ipam/_inputs.py +442 -0
  279. pulumiverse_scaleway/ipam/get_ip.py +419 -0
  280. pulumiverse_scaleway/ipam/get_ips.py +358 -0
  281. pulumiverse_scaleway/ipam/ip.py +759 -0
  282. pulumiverse_scaleway/ipam/ip_reverse_dns.py +320 -0
  283. pulumiverse_scaleway/ipam/outputs.py +481 -0
  284. pulumiverse_scaleway/ipam_ip.py +30 -24
  285. pulumiverse_scaleway/ipam_ip_reverse_dns.py +6 -0
  286. pulumiverse_scaleway/job/__init__.py +10 -0
  287. pulumiverse_scaleway/job/_inputs.py +73 -0
  288. pulumiverse_scaleway/job/definition.py +694 -0
  289. pulumiverse_scaleway/job/outputs.py +49 -0
  290. pulumiverse_scaleway/job_definition.py +8 -2
  291. pulumiverse_scaleway/kubernetes/__init__.py +14 -0
  292. pulumiverse_scaleway/kubernetes/_inputs.py +717 -0
  293. pulumiverse_scaleway/kubernetes/cluster.py +1540 -0
  294. pulumiverse_scaleway/kubernetes/get_cluster.py +417 -0
  295. pulumiverse_scaleway/kubernetes/get_pool.py +436 -0
  296. pulumiverse_scaleway/kubernetes/get_version.py +196 -0
  297. pulumiverse_scaleway/kubernetes/outputs.py +944 -0
  298. pulumiverse_scaleway/kubernetes/pool.py +1313 -0
  299. pulumiverse_scaleway/kubernetes_cluster.py +36 -30
  300. pulumiverse_scaleway/kubernetes_node_pool.py +6 -0
  301. pulumiverse_scaleway/loadbalancer.py +35 -29
  302. pulumiverse_scaleway/loadbalancer_acl.py +8 -2
  303. pulumiverse_scaleway/loadbalancer_backend.py +10 -4
  304. pulumiverse_scaleway/loadbalancer_certificate.py +6 -0
  305. pulumiverse_scaleway/loadbalancer_frontend.py +10 -4
  306. pulumiverse_scaleway/loadbalancer_ip.py +10 -4
  307. pulumiverse_scaleway/loadbalancer_route.py +26 -20
  308. pulumiverse_scaleway/loadbalancers/__init__.py +28 -0
  309. pulumiverse_scaleway/loadbalancers/_inputs.py +1103 -0
  310. pulumiverse_scaleway/loadbalancers/acl.py +522 -0
  311. pulumiverse_scaleway/loadbalancers/backend.py +1590 -0
  312. pulumiverse_scaleway/loadbalancers/certificate.py +462 -0
  313. pulumiverse_scaleway/loadbalancers/frontend.py +831 -0
  314. pulumiverse_scaleway/loadbalancers/get_acls.py +198 -0
  315. pulumiverse_scaleway/loadbalancers/get_backend.py +486 -0
  316. pulumiverse_scaleway/loadbalancers/get_backends.py +196 -0
  317. pulumiverse_scaleway/loadbalancers/get_certificate.py +230 -0
  318. pulumiverse_scaleway/loadbalancers/get_frontend.py +274 -0
  319. pulumiverse_scaleway/loadbalancers/get_frontends.py +196 -0
  320. pulumiverse_scaleway/loadbalancers/get_ip.py +228 -0
  321. pulumiverse_scaleway/loadbalancers/get_ips.py +198 -0
  322. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +339 -0
  323. pulumiverse_scaleway/loadbalancers/get_load_balancers.py +187 -0
  324. pulumiverse_scaleway/loadbalancers/get_route.py +217 -0
  325. pulumiverse_scaleway/loadbalancers/get_routes.py +179 -0
  326. pulumiverse_scaleway/loadbalancers/ip.py +516 -0
  327. pulumiverse_scaleway/loadbalancers/load_balancer.py +1063 -0
  328. pulumiverse_scaleway/loadbalancers/outputs.py +2491 -0
  329. pulumiverse_scaleway/loadbalancers/route.py +525 -0
  330. pulumiverse_scaleway/mnq/__init__.py +20 -0
  331. pulumiverse_scaleway/mnq/_inputs.py +169 -0
  332. pulumiverse_scaleway/mnq/get_sns.py +150 -0
  333. pulumiverse_scaleway/mnq/get_sqs.py +150 -0
  334. pulumiverse_scaleway/mnq/nats_account.py +336 -0
  335. pulumiverse_scaleway/mnq/nats_credentials.py +332 -0
  336. pulumiverse_scaleway/mnq/outputs.py +149 -0
  337. pulumiverse_scaleway/mnq/sns.py +308 -0
  338. pulumiverse_scaleway/mnq/sns_credentials.py +415 -0
  339. pulumiverse_scaleway/mnq/sns_topic.py +661 -0
  340. pulumiverse_scaleway/mnq/sns_topic_subscription.py +701 -0
  341. pulumiverse_scaleway/mnq/sqs.py +306 -0
  342. pulumiverse_scaleway/mnq/sqs_credentials.py +415 -0
  343. pulumiverse_scaleway/mnq/sqs_queue.py +802 -0
  344. pulumiverse_scaleway/mnq_nats_account.py +8 -2
  345. pulumiverse_scaleway/mnq_nats_credentials.py +10 -4
  346. pulumiverse_scaleway/mnq_sns.py +12 -6
  347. pulumiverse_scaleway/mnq_sns_credentials.py +10 -4
  348. pulumiverse_scaleway/mnq_sns_topic.py +16 -10
  349. pulumiverse_scaleway/mnq_sns_topic_subscription.py +22 -16
  350. pulumiverse_scaleway/mnq_sqs.py +12 -6
  351. pulumiverse_scaleway/mnq_sqs_credentials.py +10 -4
  352. pulumiverse_scaleway/mnq_sqs_queue.py +16 -10
  353. pulumiverse_scaleway/mongo_db_instance.py +14 -8
  354. pulumiverse_scaleway/mongo_db_snapshot.py +8 -2
  355. pulumiverse_scaleway/mongodb/__init__.py +12 -0
  356. pulumiverse_scaleway/mongodb/_inputs.py +208 -0
  357. pulumiverse_scaleway/mongodb/get_instance.py +335 -0
  358. pulumiverse_scaleway/mongodb/instance.py +1000 -0
  359. pulumiverse_scaleway/mongodb/outputs.py +270 -0
  360. pulumiverse_scaleway/mongodb/snapshot.py +523 -0
  361. pulumiverse_scaleway/network/__init__.py +29 -0
  362. pulumiverse_scaleway/network/_inputs.py +383 -0
  363. pulumiverse_scaleway/network/gateway_network.py +868 -0
  364. pulumiverse_scaleway/network/get_gateway_network.py +287 -0
  365. pulumiverse_scaleway/network/get_private_network.py +282 -0
  366. pulumiverse_scaleway/network/get_public_gateway.py +304 -0
  367. pulumiverse_scaleway/network/get_public_gateway_dhcp.py +305 -0
  368. pulumiverse_scaleway/network/get_public_gateway_dhcp_reservation.py +382 -0
  369. pulumiverse_scaleway/network/get_public_gateway_ip.py +199 -0
  370. pulumiverse_scaleway/network/get_public_gateway_pat_rule.py +313 -0
  371. pulumiverse_scaleway/network/get_routes.py +208 -0
  372. pulumiverse_scaleway/network/get_vpc.py +246 -0
  373. pulumiverse_scaleway/network/get_vpcs.py +174 -0
  374. pulumiverse_scaleway/network/outputs.py +747 -0
  375. pulumiverse_scaleway/network/private_network.py +736 -0
  376. pulumiverse_scaleway/network/public_gateway.py +791 -0
  377. pulumiverse_scaleway/network/public_gateway_dhcp.py +949 -0
  378. pulumiverse_scaleway/network/public_gateway_dhcp_reservation.py +516 -0
  379. pulumiverse_scaleway/network/public_gateway_ip.py +459 -0
  380. pulumiverse_scaleway/network/public_gateway_ip_reverse_dns.py +308 -0
  381. pulumiverse_scaleway/network/public_gateway_pat_rule.py +593 -0
  382. pulumiverse_scaleway/network/route.py +579 -0
  383. pulumiverse_scaleway/network/vpc.py +538 -0
  384. pulumiverse_scaleway/object/__init__.py +17 -0
  385. pulumiverse_scaleway/object/_inputs.py +831 -0
  386. pulumiverse_scaleway/object/bucket.py +876 -0
  387. pulumiverse_scaleway/object/bucket_acl.py +598 -0
  388. pulumiverse_scaleway/object/bucket_lock_configuration.py +397 -0
  389. pulumiverse_scaleway/object/bucket_policy.py +675 -0
  390. pulumiverse_scaleway/object/bucket_website_configuration.py +536 -0
  391. pulumiverse_scaleway/object/get_bucket.py +290 -0
  392. pulumiverse_scaleway/object/get_bucket_policy.py +163 -0
  393. pulumiverse_scaleway/object/item.py +778 -0
  394. pulumiverse_scaleway/object/outputs.py +802 -0
  395. pulumiverse_scaleway/object_bucket.py +28 -22
  396. pulumiverse_scaleway/object_bucket_acl.py +14 -8
  397. pulumiverse_scaleway/object_bucket_lock_configuration.py +12 -6
  398. pulumiverse_scaleway/object_bucket_policy.py +46 -40
  399. pulumiverse_scaleway/object_bucket_website_configuration.py +18 -12
  400. pulumiverse_scaleway/object_item.py +8 -2
  401. pulumiverse_scaleway/observability/__init__.py +17 -0
  402. pulumiverse_scaleway/observability/_inputs.py +417 -0
  403. pulumiverse_scaleway/observability/alert_manager.py +403 -0
  404. pulumiverse_scaleway/observability/cockpit.py +325 -0
  405. pulumiverse_scaleway/observability/get_instance.py +205 -0
  406. pulumiverse_scaleway/observability/get_plan.py +125 -0
  407. pulumiverse_scaleway/observability/get_source.py +262 -0
  408. pulumiverse_scaleway/observability/grafana_user.py +364 -0
  409. pulumiverse_scaleway/observability/outputs.py +425 -0
  410. pulumiverse_scaleway/observability/source.py +569 -0
  411. pulumiverse_scaleway/observability/token.py +481 -0
  412. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  413. pulumiverse_scaleway/rdb_snapshot.py +16 -10
  414. pulumiverse_scaleway/redis/__init__.py +11 -0
  415. pulumiverse_scaleway/redis/_inputs.py +330 -0
  416. pulumiverse_scaleway/redis/cluster.py +1203 -0
  417. pulumiverse_scaleway/redis/get_cluster.py +347 -0
  418. pulumiverse_scaleway/redis/outputs.py +356 -0
  419. pulumiverse_scaleway/redis_cluster.py +14 -8
  420. pulumiverse_scaleway/registry/__init__.py +11 -0
  421. pulumiverse_scaleway/registry/get_image.py +239 -0
  422. pulumiverse_scaleway/registry/get_image_tag.py +229 -0
  423. pulumiverse_scaleway/registry/get_namespace.py +199 -0
  424. pulumiverse_scaleway/registry/namespace.py +460 -0
  425. pulumiverse_scaleway/registry_namespace.py +8 -2
  426. pulumiverse_scaleway/sdb_database.py +10 -4
  427. pulumiverse_scaleway/secret.py +6 -0
  428. pulumiverse_scaleway/secret_version.py +12 -6
  429. pulumiverse_scaleway/secrets/__init__.py +13 -0
  430. pulumiverse_scaleway/secrets/_inputs.py +94 -0
  431. pulumiverse_scaleway/secrets/get_secret.py +338 -0
  432. pulumiverse_scaleway/secrets/get_version.py +340 -0
  433. pulumiverse_scaleway/secrets/outputs.py +120 -0
  434. pulumiverse_scaleway/secrets/secret.py +665 -0
  435. pulumiverse_scaleway/secrets/version.py +489 -0
  436. pulumiverse_scaleway/tem/__init__.py +13 -0
  437. pulumiverse_scaleway/tem/_inputs.py +135 -0
  438. pulumiverse_scaleway/tem/domain.py +1032 -0
  439. pulumiverse_scaleway/tem/domain_validation.py +305 -0
  440. pulumiverse_scaleway/tem/get_domain.py +378 -0
  441. pulumiverse_scaleway/tem/outputs.py +171 -0
  442. pulumiverse_scaleway/tem/webhook.py +642 -0
  443. pulumiverse_scaleway/tem_domain.py +20 -14
  444. pulumiverse_scaleway/tem_domain_validation.py +10 -4
  445. pulumiverse_scaleway/tem_webhook.py +28 -22
  446. pulumiverse_scaleway/vpc.py +10 -4
  447. pulumiverse_scaleway/vpc_gateway_network.py +40 -34
  448. pulumiverse_scaleway/vpc_private_network.py +10 -4
  449. pulumiverse_scaleway/vpc_public_gateway.py +8 -2
  450. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +15 -9
  451. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +32 -26
  452. pulumiverse_scaleway/vpc_public_gateway_ip.py +10 -4
  453. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +12 -6
  454. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +26 -20
  455. pulumiverse_scaleway/vpc_route.py +16 -10
  456. pulumiverse_scaleway/webhosting.py +10 -4
  457. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.25.0a1742668904.dist-info}/METADATA +1 -1
  458. pulumiverse_scaleway-1.25.0a1742668904.dist-info/RECORD +470 -0
  459. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.25.0a1742668904.dist-info}/WHEEL +1 -1
  460. pulumiverse_scaleway-1.25.0a1742464679.dist-info/RECORD +0 -206
  461. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.25.0a1742668904.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1540 @@
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
+ cni: pulumi.Input[str],
25
+ delete_additional_resources: pulumi.Input[bool],
26
+ version: pulumi.Input[str],
27
+ admission_plugins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
28
+ apiserver_cert_sans: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
29
+ auto_upgrade: Optional[pulumi.Input['ClusterAutoUpgradeArgs']] = None,
30
+ autoscaler_config: Optional[pulumi.Input['ClusterAutoscalerConfigArgs']] = None,
31
+ description: Optional[pulumi.Input[str]] = None,
32
+ feature_gates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
33
+ name: Optional[pulumi.Input[str]] = None,
34
+ open_id_connect_config: Optional[pulumi.Input['ClusterOpenIdConnectConfigArgs']] = None,
35
+ private_network_id: Optional[pulumi.Input[str]] = None,
36
+ project_id: Optional[pulumi.Input[str]] = None,
37
+ region: Optional[pulumi.Input[str]] = None,
38
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
39
+ type: Optional[pulumi.Input[str]] = None):
40
+ """
41
+ The set of arguments for constructing a Cluster resource.
42
+ :param pulumi.Input[str] cni: The Container Network Interface (CNI) for the Kubernetes cluster.
43
+ > **Important:** Updates to this field will recreate a new resource.
44
+ :param pulumi.Input[bool] delete_additional_resources: Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.
45
+ > **Important:** Setting this field to `true` means that you will lose all your cluster data and network configuration when you delete your cluster.
46
+ If you prefer keeping it, you should instead set it as `false`.
47
+ :param pulumi.Input[str] version: The version of the Kubernetes cluster.
48
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] admission_plugins: The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.
49
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] apiserver_cert_sans: Additional Subject Alternative Names for the Kubernetes API server certificate
50
+ :param pulumi.Input['ClusterAutoUpgradeArgs'] auto_upgrade: The auto upgrade configuration.
51
+ :param pulumi.Input['ClusterAutoscalerConfigArgs'] autoscaler_config: The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).
52
+ :param pulumi.Input[str] description: A description for the Kubernetes cluster.
53
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] feature_gates: The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.
54
+ :param pulumi.Input[str] name: The name for the Kubernetes cluster.
55
+ :param pulumi.Input['ClusterOpenIdConnectConfigArgs'] open_id_connect_config: The OpenID Connect configuration of the cluster
56
+ :param pulumi.Input[str] private_network_id: The ID of the private network of the cluster.
57
+
58
+ > **Important:** Changes to this field will recreate a new resource.
59
+
60
+ > **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no `private_network_id` set),
61
+ you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.
62
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the cluster is associated with.
63
+ :param pulumi.Input[str] region: `region`) The region in which the cluster should be created.
64
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Kubernetes cluster.
65
+ :param pulumi.Input[str] type: The type of Kubernetes cluster. Possible values are:
66
+
67
+ - for mutualized clusters: `kapsule` or `multicloud`
68
+
69
+ - for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.
70
+
71
+ - for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.
72
+ """
73
+ pulumi.set(__self__, "cni", cni)
74
+ pulumi.set(__self__, "delete_additional_resources", delete_additional_resources)
75
+ pulumi.set(__self__, "version", version)
76
+ if admission_plugins is not None:
77
+ pulumi.set(__self__, "admission_plugins", admission_plugins)
78
+ if apiserver_cert_sans is not None:
79
+ pulumi.set(__self__, "apiserver_cert_sans", apiserver_cert_sans)
80
+ if auto_upgrade is not None:
81
+ pulumi.set(__self__, "auto_upgrade", auto_upgrade)
82
+ if autoscaler_config is not None:
83
+ pulumi.set(__self__, "autoscaler_config", autoscaler_config)
84
+ if description is not None:
85
+ pulumi.set(__self__, "description", description)
86
+ if feature_gates is not None:
87
+ pulumi.set(__self__, "feature_gates", feature_gates)
88
+ if name is not None:
89
+ pulumi.set(__self__, "name", name)
90
+ if open_id_connect_config is not None:
91
+ pulumi.set(__self__, "open_id_connect_config", open_id_connect_config)
92
+ if private_network_id is not None:
93
+ pulumi.set(__self__, "private_network_id", private_network_id)
94
+ if project_id is not None:
95
+ pulumi.set(__self__, "project_id", project_id)
96
+ if region is not None:
97
+ pulumi.set(__self__, "region", region)
98
+ if tags is not None:
99
+ pulumi.set(__self__, "tags", tags)
100
+ if type is not None:
101
+ pulumi.set(__self__, "type", type)
102
+
103
+ @property
104
+ @pulumi.getter
105
+ def cni(self) -> pulumi.Input[str]:
106
+ """
107
+ The Container Network Interface (CNI) for the Kubernetes cluster.
108
+ > **Important:** Updates to this field will recreate a new resource.
109
+ """
110
+ return pulumi.get(self, "cni")
111
+
112
+ @cni.setter
113
+ def cni(self, value: pulumi.Input[str]):
114
+ pulumi.set(self, "cni", value)
115
+
116
+ @property
117
+ @pulumi.getter(name="deleteAdditionalResources")
118
+ def delete_additional_resources(self) -> pulumi.Input[bool]:
119
+ """
120
+ Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.
121
+ > **Important:** Setting this field to `true` means that you will lose all your cluster data and network configuration when you delete your cluster.
122
+ If you prefer keeping it, you should instead set it as `false`.
123
+ """
124
+ return pulumi.get(self, "delete_additional_resources")
125
+
126
+ @delete_additional_resources.setter
127
+ def delete_additional_resources(self, value: pulumi.Input[bool]):
128
+ pulumi.set(self, "delete_additional_resources", value)
129
+
130
+ @property
131
+ @pulumi.getter
132
+ def version(self) -> pulumi.Input[str]:
133
+ """
134
+ The version of the Kubernetes cluster.
135
+ """
136
+ return pulumi.get(self, "version")
137
+
138
+ @version.setter
139
+ def version(self, value: pulumi.Input[str]):
140
+ pulumi.set(self, "version", value)
141
+
142
+ @property
143
+ @pulumi.getter(name="admissionPlugins")
144
+ def admission_plugins(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
145
+ """
146
+ The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.
147
+ """
148
+ return pulumi.get(self, "admission_plugins")
149
+
150
+ @admission_plugins.setter
151
+ def admission_plugins(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
152
+ pulumi.set(self, "admission_plugins", value)
153
+
154
+ @property
155
+ @pulumi.getter(name="apiserverCertSans")
156
+ def apiserver_cert_sans(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
157
+ """
158
+ Additional Subject Alternative Names for the Kubernetes API server certificate
159
+ """
160
+ return pulumi.get(self, "apiserver_cert_sans")
161
+
162
+ @apiserver_cert_sans.setter
163
+ def apiserver_cert_sans(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
164
+ pulumi.set(self, "apiserver_cert_sans", value)
165
+
166
+ @property
167
+ @pulumi.getter(name="autoUpgrade")
168
+ def auto_upgrade(self) -> Optional[pulumi.Input['ClusterAutoUpgradeArgs']]:
169
+ """
170
+ The auto upgrade configuration.
171
+ """
172
+ return pulumi.get(self, "auto_upgrade")
173
+
174
+ @auto_upgrade.setter
175
+ def auto_upgrade(self, value: Optional[pulumi.Input['ClusterAutoUpgradeArgs']]):
176
+ pulumi.set(self, "auto_upgrade", value)
177
+
178
+ @property
179
+ @pulumi.getter(name="autoscalerConfig")
180
+ def autoscaler_config(self) -> Optional[pulumi.Input['ClusterAutoscalerConfigArgs']]:
181
+ """
182
+ The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).
183
+ """
184
+ return pulumi.get(self, "autoscaler_config")
185
+
186
+ @autoscaler_config.setter
187
+ def autoscaler_config(self, value: Optional[pulumi.Input['ClusterAutoscalerConfigArgs']]):
188
+ pulumi.set(self, "autoscaler_config", value)
189
+
190
+ @property
191
+ @pulumi.getter
192
+ def description(self) -> Optional[pulumi.Input[str]]:
193
+ """
194
+ A description for the Kubernetes cluster.
195
+ """
196
+ return pulumi.get(self, "description")
197
+
198
+ @description.setter
199
+ def description(self, value: Optional[pulumi.Input[str]]):
200
+ pulumi.set(self, "description", value)
201
+
202
+ @property
203
+ @pulumi.getter(name="featureGates")
204
+ def feature_gates(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
205
+ """
206
+ The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.
207
+ """
208
+ return pulumi.get(self, "feature_gates")
209
+
210
+ @feature_gates.setter
211
+ def feature_gates(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
212
+ pulumi.set(self, "feature_gates", value)
213
+
214
+ @property
215
+ @pulumi.getter
216
+ def name(self) -> Optional[pulumi.Input[str]]:
217
+ """
218
+ The name for the Kubernetes cluster.
219
+ """
220
+ return pulumi.get(self, "name")
221
+
222
+ @name.setter
223
+ def name(self, value: Optional[pulumi.Input[str]]):
224
+ pulumi.set(self, "name", value)
225
+
226
+ @property
227
+ @pulumi.getter(name="openIdConnectConfig")
228
+ def open_id_connect_config(self) -> Optional[pulumi.Input['ClusterOpenIdConnectConfigArgs']]:
229
+ """
230
+ The OpenID Connect configuration of the cluster
231
+ """
232
+ return pulumi.get(self, "open_id_connect_config")
233
+
234
+ @open_id_connect_config.setter
235
+ def open_id_connect_config(self, value: Optional[pulumi.Input['ClusterOpenIdConnectConfigArgs']]):
236
+ pulumi.set(self, "open_id_connect_config", value)
237
+
238
+ @property
239
+ @pulumi.getter(name="privateNetworkId")
240
+ def private_network_id(self) -> Optional[pulumi.Input[str]]:
241
+ """
242
+ The ID of the private network of the cluster.
243
+
244
+ > **Important:** Changes to this field will recreate a new resource.
245
+
246
+ > **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no `private_network_id` set),
247
+ you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.
248
+ """
249
+ return pulumi.get(self, "private_network_id")
250
+
251
+ @private_network_id.setter
252
+ def private_network_id(self, value: Optional[pulumi.Input[str]]):
253
+ pulumi.set(self, "private_network_id", value)
254
+
255
+ @property
256
+ @pulumi.getter(name="projectId")
257
+ def project_id(self) -> Optional[pulumi.Input[str]]:
258
+ """
259
+ `project_id`) The ID of the project the cluster is associated with.
260
+ """
261
+ return pulumi.get(self, "project_id")
262
+
263
+ @project_id.setter
264
+ def project_id(self, value: Optional[pulumi.Input[str]]):
265
+ pulumi.set(self, "project_id", value)
266
+
267
+ @property
268
+ @pulumi.getter
269
+ def region(self) -> Optional[pulumi.Input[str]]:
270
+ """
271
+ `region`) The region in which the cluster should be created.
272
+ """
273
+ return pulumi.get(self, "region")
274
+
275
+ @region.setter
276
+ def region(self, value: Optional[pulumi.Input[str]]):
277
+ pulumi.set(self, "region", value)
278
+
279
+ @property
280
+ @pulumi.getter
281
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
282
+ """
283
+ The tags associated with the Kubernetes cluster.
284
+ """
285
+ return pulumi.get(self, "tags")
286
+
287
+ @tags.setter
288
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
289
+ pulumi.set(self, "tags", value)
290
+
291
+ @property
292
+ @pulumi.getter
293
+ def type(self) -> Optional[pulumi.Input[str]]:
294
+ """
295
+ The type of Kubernetes cluster. Possible values are:
296
+
297
+ - for mutualized clusters: `kapsule` or `multicloud`
298
+
299
+ - for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.
300
+
301
+ - for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.
302
+ """
303
+ return pulumi.get(self, "type")
304
+
305
+ @type.setter
306
+ def type(self, value: Optional[pulumi.Input[str]]):
307
+ pulumi.set(self, "type", value)
308
+
309
+
310
+ @pulumi.input_type
311
+ class _ClusterState:
312
+ def __init__(__self__, *,
313
+ admission_plugins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
314
+ apiserver_cert_sans: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
315
+ apiserver_url: Optional[pulumi.Input[str]] = None,
316
+ auto_upgrade: Optional[pulumi.Input['ClusterAutoUpgradeArgs']] = None,
317
+ autoscaler_config: Optional[pulumi.Input['ClusterAutoscalerConfigArgs']] = None,
318
+ cni: Optional[pulumi.Input[str]] = None,
319
+ created_at: Optional[pulumi.Input[str]] = None,
320
+ delete_additional_resources: Optional[pulumi.Input[bool]] = None,
321
+ description: Optional[pulumi.Input[str]] = None,
322
+ feature_gates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
323
+ kubeconfigs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterKubeconfigArgs']]]] = None,
324
+ name: Optional[pulumi.Input[str]] = None,
325
+ open_id_connect_config: Optional[pulumi.Input['ClusterOpenIdConnectConfigArgs']] = None,
326
+ organization_id: Optional[pulumi.Input[str]] = None,
327
+ private_network_id: Optional[pulumi.Input[str]] = None,
328
+ project_id: Optional[pulumi.Input[str]] = None,
329
+ region: Optional[pulumi.Input[str]] = None,
330
+ status: Optional[pulumi.Input[str]] = None,
331
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
332
+ type: Optional[pulumi.Input[str]] = None,
333
+ updated_at: Optional[pulumi.Input[str]] = None,
334
+ upgrade_available: Optional[pulumi.Input[bool]] = None,
335
+ version: Optional[pulumi.Input[str]] = None,
336
+ wildcard_dns: Optional[pulumi.Input[str]] = None):
337
+ """
338
+ Input properties used for looking up and filtering Cluster resources.
339
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] admission_plugins: The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.
340
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] apiserver_cert_sans: Additional Subject Alternative Names for the Kubernetes API server certificate
341
+ :param pulumi.Input[str] apiserver_url: The URL of the Kubernetes API server.
342
+ :param pulumi.Input['ClusterAutoUpgradeArgs'] auto_upgrade: The auto upgrade configuration.
343
+ :param pulumi.Input['ClusterAutoscalerConfigArgs'] autoscaler_config: The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).
344
+ :param pulumi.Input[str] cni: The Container Network Interface (CNI) for the Kubernetes cluster.
345
+ > **Important:** Updates to this field will recreate a new resource.
346
+ :param pulumi.Input[str] created_at: The creation date of the cluster.
347
+ :param pulumi.Input[bool] delete_additional_resources: Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.
348
+ > **Important:** Setting this field to `true` means that you will lose all your cluster data and network configuration when you delete your cluster.
349
+ If you prefer keeping it, you should instead set it as `false`.
350
+ :param pulumi.Input[str] description: A description for the Kubernetes cluster.
351
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] feature_gates: The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.
352
+ :param pulumi.Input[Sequence[pulumi.Input['ClusterKubeconfigArgs']]] kubeconfigs: The kubeconfig configuration file of the Kubernetes cluster
353
+ :param pulumi.Input[str] name: The name for the Kubernetes cluster.
354
+ :param pulumi.Input['ClusterOpenIdConnectConfigArgs'] open_id_connect_config: The OpenID Connect configuration of the cluster
355
+ :param pulumi.Input[str] organization_id: The organization ID the cluster is associated with.
356
+ :param pulumi.Input[str] private_network_id: The ID of the private network of the cluster.
357
+
358
+ > **Important:** Changes to this field will recreate a new resource.
359
+
360
+ > **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no `private_network_id` set),
361
+ you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.
362
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the cluster is associated with.
363
+ :param pulumi.Input[str] region: `region`) The region in which the cluster should be created.
364
+ :param pulumi.Input[str] status: The status of the Kubernetes cluster.
365
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Kubernetes cluster.
366
+ :param pulumi.Input[str] type: The type of Kubernetes cluster. Possible values are:
367
+
368
+ - for mutualized clusters: `kapsule` or `multicloud`
369
+
370
+ - for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.
371
+
372
+ - for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.
373
+ :param pulumi.Input[str] updated_at: The last update date of the cluster.
374
+ :param pulumi.Input[bool] upgrade_available: Set to `true` if a newer Kubernetes version is available.
375
+ :param pulumi.Input[str] version: The version of the Kubernetes cluster.
376
+ :param pulumi.Input[str] wildcard_dns: The DNS wildcard that points to all ready nodes.
377
+ """
378
+ if admission_plugins is not None:
379
+ pulumi.set(__self__, "admission_plugins", admission_plugins)
380
+ if apiserver_cert_sans is not None:
381
+ pulumi.set(__self__, "apiserver_cert_sans", apiserver_cert_sans)
382
+ if apiserver_url is not None:
383
+ pulumi.set(__self__, "apiserver_url", apiserver_url)
384
+ if auto_upgrade is not None:
385
+ pulumi.set(__self__, "auto_upgrade", auto_upgrade)
386
+ if autoscaler_config is not None:
387
+ pulumi.set(__self__, "autoscaler_config", autoscaler_config)
388
+ if cni is not None:
389
+ pulumi.set(__self__, "cni", cni)
390
+ if created_at is not None:
391
+ pulumi.set(__self__, "created_at", created_at)
392
+ if delete_additional_resources is not None:
393
+ pulumi.set(__self__, "delete_additional_resources", delete_additional_resources)
394
+ if description is not None:
395
+ pulumi.set(__self__, "description", description)
396
+ if feature_gates is not None:
397
+ pulumi.set(__self__, "feature_gates", feature_gates)
398
+ if kubeconfigs is not None:
399
+ pulumi.set(__self__, "kubeconfigs", kubeconfigs)
400
+ if name is not None:
401
+ pulumi.set(__self__, "name", name)
402
+ if open_id_connect_config is not None:
403
+ pulumi.set(__self__, "open_id_connect_config", open_id_connect_config)
404
+ if organization_id is not None:
405
+ pulumi.set(__self__, "organization_id", organization_id)
406
+ if private_network_id is not None:
407
+ pulumi.set(__self__, "private_network_id", private_network_id)
408
+ if project_id is not None:
409
+ pulumi.set(__self__, "project_id", project_id)
410
+ if region is not None:
411
+ pulumi.set(__self__, "region", region)
412
+ if status is not None:
413
+ pulumi.set(__self__, "status", status)
414
+ if tags is not None:
415
+ pulumi.set(__self__, "tags", tags)
416
+ if type is not None:
417
+ pulumi.set(__self__, "type", type)
418
+ if updated_at is not None:
419
+ pulumi.set(__self__, "updated_at", updated_at)
420
+ if upgrade_available is not None:
421
+ pulumi.set(__self__, "upgrade_available", upgrade_available)
422
+ if version is not None:
423
+ pulumi.set(__self__, "version", version)
424
+ if wildcard_dns is not None:
425
+ pulumi.set(__self__, "wildcard_dns", wildcard_dns)
426
+
427
+ @property
428
+ @pulumi.getter(name="admissionPlugins")
429
+ def admission_plugins(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
430
+ """
431
+ The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.
432
+ """
433
+ return pulumi.get(self, "admission_plugins")
434
+
435
+ @admission_plugins.setter
436
+ def admission_plugins(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
437
+ pulumi.set(self, "admission_plugins", value)
438
+
439
+ @property
440
+ @pulumi.getter(name="apiserverCertSans")
441
+ def apiserver_cert_sans(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
442
+ """
443
+ Additional Subject Alternative Names for the Kubernetes API server certificate
444
+ """
445
+ return pulumi.get(self, "apiserver_cert_sans")
446
+
447
+ @apiserver_cert_sans.setter
448
+ def apiserver_cert_sans(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
449
+ pulumi.set(self, "apiserver_cert_sans", value)
450
+
451
+ @property
452
+ @pulumi.getter(name="apiserverUrl")
453
+ def apiserver_url(self) -> Optional[pulumi.Input[str]]:
454
+ """
455
+ The URL of the Kubernetes API server.
456
+ """
457
+ return pulumi.get(self, "apiserver_url")
458
+
459
+ @apiserver_url.setter
460
+ def apiserver_url(self, value: Optional[pulumi.Input[str]]):
461
+ pulumi.set(self, "apiserver_url", value)
462
+
463
+ @property
464
+ @pulumi.getter(name="autoUpgrade")
465
+ def auto_upgrade(self) -> Optional[pulumi.Input['ClusterAutoUpgradeArgs']]:
466
+ """
467
+ The auto upgrade configuration.
468
+ """
469
+ return pulumi.get(self, "auto_upgrade")
470
+
471
+ @auto_upgrade.setter
472
+ def auto_upgrade(self, value: Optional[pulumi.Input['ClusterAutoUpgradeArgs']]):
473
+ pulumi.set(self, "auto_upgrade", value)
474
+
475
+ @property
476
+ @pulumi.getter(name="autoscalerConfig")
477
+ def autoscaler_config(self) -> Optional[pulumi.Input['ClusterAutoscalerConfigArgs']]:
478
+ """
479
+ The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).
480
+ """
481
+ return pulumi.get(self, "autoscaler_config")
482
+
483
+ @autoscaler_config.setter
484
+ def autoscaler_config(self, value: Optional[pulumi.Input['ClusterAutoscalerConfigArgs']]):
485
+ pulumi.set(self, "autoscaler_config", value)
486
+
487
+ @property
488
+ @pulumi.getter
489
+ def cni(self) -> Optional[pulumi.Input[str]]:
490
+ """
491
+ The Container Network Interface (CNI) for the Kubernetes cluster.
492
+ > **Important:** Updates to this field will recreate a new resource.
493
+ """
494
+ return pulumi.get(self, "cni")
495
+
496
+ @cni.setter
497
+ def cni(self, value: Optional[pulumi.Input[str]]):
498
+ pulumi.set(self, "cni", value)
499
+
500
+ @property
501
+ @pulumi.getter(name="createdAt")
502
+ def created_at(self) -> Optional[pulumi.Input[str]]:
503
+ """
504
+ The creation date of the cluster.
505
+ """
506
+ return pulumi.get(self, "created_at")
507
+
508
+ @created_at.setter
509
+ def created_at(self, value: Optional[pulumi.Input[str]]):
510
+ pulumi.set(self, "created_at", value)
511
+
512
+ @property
513
+ @pulumi.getter(name="deleteAdditionalResources")
514
+ def delete_additional_resources(self) -> Optional[pulumi.Input[bool]]:
515
+ """
516
+ Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.
517
+ > **Important:** Setting this field to `true` means that you will lose all your cluster data and network configuration when you delete your cluster.
518
+ If you prefer keeping it, you should instead set it as `false`.
519
+ """
520
+ return pulumi.get(self, "delete_additional_resources")
521
+
522
+ @delete_additional_resources.setter
523
+ def delete_additional_resources(self, value: Optional[pulumi.Input[bool]]):
524
+ pulumi.set(self, "delete_additional_resources", value)
525
+
526
+ @property
527
+ @pulumi.getter
528
+ def description(self) -> Optional[pulumi.Input[str]]:
529
+ """
530
+ A description for the Kubernetes cluster.
531
+ """
532
+ return pulumi.get(self, "description")
533
+
534
+ @description.setter
535
+ def description(self, value: Optional[pulumi.Input[str]]):
536
+ pulumi.set(self, "description", value)
537
+
538
+ @property
539
+ @pulumi.getter(name="featureGates")
540
+ def feature_gates(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
541
+ """
542
+ The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.
543
+ """
544
+ return pulumi.get(self, "feature_gates")
545
+
546
+ @feature_gates.setter
547
+ def feature_gates(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
548
+ pulumi.set(self, "feature_gates", value)
549
+
550
+ @property
551
+ @pulumi.getter
552
+ def kubeconfigs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterKubeconfigArgs']]]]:
553
+ """
554
+ The kubeconfig configuration file of the Kubernetes cluster
555
+ """
556
+ return pulumi.get(self, "kubeconfigs")
557
+
558
+ @kubeconfigs.setter
559
+ def kubeconfigs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterKubeconfigArgs']]]]):
560
+ pulumi.set(self, "kubeconfigs", value)
561
+
562
+ @property
563
+ @pulumi.getter
564
+ def name(self) -> Optional[pulumi.Input[str]]:
565
+ """
566
+ The name for the Kubernetes cluster.
567
+ """
568
+ return pulumi.get(self, "name")
569
+
570
+ @name.setter
571
+ def name(self, value: Optional[pulumi.Input[str]]):
572
+ pulumi.set(self, "name", value)
573
+
574
+ @property
575
+ @pulumi.getter(name="openIdConnectConfig")
576
+ def open_id_connect_config(self) -> Optional[pulumi.Input['ClusterOpenIdConnectConfigArgs']]:
577
+ """
578
+ The OpenID Connect configuration of the cluster
579
+ """
580
+ return pulumi.get(self, "open_id_connect_config")
581
+
582
+ @open_id_connect_config.setter
583
+ def open_id_connect_config(self, value: Optional[pulumi.Input['ClusterOpenIdConnectConfigArgs']]):
584
+ pulumi.set(self, "open_id_connect_config", value)
585
+
586
+ @property
587
+ @pulumi.getter(name="organizationId")
588
+ def organization_id(self) -> Optional[pulumi.Input[str]]:
589
+ """
590
+ The organization ID the cluster is associated with.
591
+ """
592
+ return pulumi.get(self, "organization_id")
593
+
594
+ @organization_id.setter
595
+ def organization_id(self, value: Optional[pulumi.Input[str]]):
596
+ pulumi.set(self, "organization_id", value)
597
+
598
+ @property
599
+ @pulumi.getter(name="privateNetworkId")
600
+ def private_network_id(self) -> Optional[pulumi.Input[str]]:
601
+ """
602
+ The ID of the private network of the cluster.
603
+
604
+ > **Important:** Changes to this field will recreate a new resource.
605
+
606
+ > **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no `private_network_id` set),
607
+ you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.
608
+ """
609
+ return pulumi.get(self, "private_network_id")
610
+
611
+ @private_network_id.setter
612
+ def private_network_id(self, value: Optional[pulumi.Input[str]]):
613
+ pulumi.set(self, "private_network_id", value)
614
+
615
+ @property
616
+ @pulumi.getter(name="projectId")
617
+ def project_id(self) -> Optional[pulumi.Input[str]]:
618
+ """
619
+ `project_id`) The ID of the project the cluster is associated with.
620
+ """
621
+ return pulumi.get(self, "project_id")
622
+
623
+ @project_id.setter
624
+ def project_id(self, value: Optional[pulumi.Input[str]]):
625
+ pulumi.set(self, "project_id", value)
626
+
627
+ @property
628
+ @pulumi.getter
629
+ def region(self) -> Optional[pulumi.Input[str]]:
630
+ """
631
+ `region`) The region in which the cluster should be created.
632
+ """
633
+ return pulumi.get(self, "region")
634
+
635
+ @region.setter
636
+ def region(self, value: Optional[pulumi.Input[str]]):
637
+ pulumi.set(self, "region", value)
638
+
639
+ @property
640
+ @pulumi.getter
641
+ def status(self) -> Optional[pulumi.Input[str]]:
642
+ """
643
+ The status of the Kubernetes cluster.
644
+ """
645
+ return pulumi.get(self, "status")
646
+
647
+ @status.setter
648
+ def status(self, value: Optional[pulumi.Input[str]]):
649
+ pulumi.set(self, "status", value)
650
+
651
+ @property
652
+ @pulumi.getter
653
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
654
+ """
655
+ The tags associated with the Kubernetes cluster.
656
+ """
657
+ return pulumi.get(self, "tags")
658
+
659
+ @tags.setter
660
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
661
+ pulumi.set(self, "tags", value)
662
+
663
+ @property
664
+ @pulumi.getter
665
+ def type(self) -> Optional[pulumi.Input[str]]:
666
+ """
667
+ The type of Kubernetes cluster. Possible values are:
668
+
669
+ - for mutualized clusters: `kapsule` or `multicloud`
670
+
671
+ - for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.
672
+
673
+ - for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.
674
+ """
675
+ return pulumi.get(self, "type")
676
+
677
+ @type.setter
678
+ def type(self, value: Optional[pulumi.Input[str]]):
679
+ pulumi.set(self, "type", value)
680
+
681
+ @property
682
+ @pulumi.getter(name="updatedAt")
683
+ def updated_at(self) -> Optional[pulumi.Input[str]]:
684
+ """
685
+ The last update date of the cluster.
686
+ """
687
+ return pulumi.get(self, "updated_at")
688
+
689
+ @updated_at.setter
690
+ def updated_at(self, value: Optional[pulumi.Input[str]]):
691
+ pulumi.set(self, "updated_at", value)
692
+
693
+ @property
694
+ @pulumi.getter(name="upgradeAvailable")
695
+ def upgrade_available(self) -> Optional[pulumi.Input[bool]]:
696
+ """
697
+ Set to `true` if a newer Kubernetes version is available.
698
+ """
699
+ return pulumi.get(self, "upgrade_available")
700
+
701
+ @upgrade_available.setter
702
+ def upgrade_available(self, value: Optional[pulumi.Input[bool]]):
703
+ pulumi.set(self, "upgrade_available", value)
704
+
705
+ @property
706
+ @pulumi.getter
707
+ def version(self) -> Optional[pulumi.Input[str]]:
708
+ """
709
+ The version of the Kubernetes cluster.
710
+ """
711
+ return pulumi.get(self, "version")
712
+
713
+ @version.setter
714
+ def version(self, value: Optional[pulumi.Input[str]]):
715
+ pulumi.set(self, "version", value)
716
+
717
+ @property
718
+ @pulumi.getter(name="wildcardDns")
719
+ def wildcard_dns(self) -> Optional[pulumi.Input[str]]:
720
+ """
721
+ The DNS wildcard that points to all ready nodes.
722
+ """
723
+ return pulumi.get(self, "wildcard_dns")
724
+
725
+ @wildcard_dns.setter
726
+ def wildcard_dns(self, value: Optional[pulumi.Input[str]]):
727
+ pulumi.set(self, "wildcard_dns", value)
728
+
729
+
730
+ class Cluster(pulumi.CustomResource):
731
+ @overload
732
+ def __init__(__self__,
733
+ resource_name: str,
734
+ opts: Optional[pulumi.ResourceOptions] = None,
735
+ admission_plugins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
736
+ apiserver_cert_sans: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
737
+ auto_upgrade: Optional[pulumi.Input[Union['ClusterAutoUpgradeArgs', 'ClusterAutoUpgradeArgsDict']]] = None,
738
+ autoscaler_config: Optional[pulumi.Input[Union['ClusterAutoscalerConfigArgs', 'ClusterAutoscalerConfigArgsDict']]] = None,
739
+ cni: Optional[pulumi.Input[str]] = None,
740
+ delete_additional_resources: Optional[pulumi.Input[bool]] = None,
741
+ description: Optional[pulumi.Input[str]] = None,
742
+ feature_gates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
743
+ name: Optional[pulumi.Input[str]] = None,
744
+ open_id_connect_config: Optional[pulumi.Input[Union['ClusterOpenIdConnectConfigArgs', 'ClusterOpenIdConnectConfigArgsDict']]] = None,
745
+ private_network_id: Optional[pulumi.Input[str]] = None,
746
+ project_id: Optional[pulumi.Input[str]] = None,
747
+ region: Optional[pulumi.Input[str]] = None,
748
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
749
+ type: Optional[pulumi.Input[str]] = None,
750
+ version: Optional[pulumi.Input[str]] = None,
751
+ __props__=None):
752
+ """
753
+ Creates and manages Scaleway Kubernetes clusters. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/kubernetes/).
754
+
755
+ ## Example Usage
756
+
757
+ ### Basic
758
+
759
+ ```python
760
+ import pulumi
761
+ import pulumiverse_scaleway as scaleway
762
+
763
+ pn = scaleway.network.PrivateNetwork("pn")
764
+ cluster = scaleway.kubernetes.Cluster("cluster",
765
+ name="tf-cluster",
766
+ version="1.29.1",
767
+ cni="cilium",
768
+ private_network_id=pn.id,
769
+ delete_additional_resources=False)
770
+ pool = scaleway.kubernetes.Pool("pool",
771
+ cluster_id=cluster.id,
772
+ name="tf-pool",
773
+ node_type="DEV1-M",
774
+ size=1)
775
+ ```
776
+
777
+ ### Multicloud
778
+
779
+ ```python
780
+ import pulumi
781
+ import pulumiverse_scaleway as scaleway
782
+
783
+ cluster = scaleway.kubernetes.Cluster("cluster",
784
+ name="tf-cluster",
785
+ type="multicloud",
786
+ version="1.29.1",
787
+ cni="kilo",
788
+ delete_additional_resources=False)
789
+ pool = scaleway.kubernetes.Pool("pool",
790
+ cluster_id=cluster.id,
791
+ name="tf-pool",
792
+ node_type="external",
793
+ size=0,
794
+ min_size=0)
795
+ ```
796
+
797
+ For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to this guide.
798
+
799
+ ### With additional configuration
800
+
801
+ ```python
802
+ import pulumi
803
+ import pulumiverse_scaleway as scaleway
804
+
805
+ pn = scaleway.network.PrivateNetwork("pn")
806
+ cluster = scaleway.kubernetes.Cluster("cluster",
807
+ name="tf-cluster",
808
+ description="cluster made in terraform",
809
+ version="1.29.1",
810
+ cni="calico",
811
+ tags=["terraform"],
812
+ private_network_id=pn.id,
813
+ delete_additional_resources=False,
814
+ autoscaler_config={
815
+ "disable_scale_down": False,
816
+ "scale_down_delay_after_add": "5m",
817
+ "estimator": "binpacking",
818
+ "expander": "random",
819
+ "ignore_daemonsets_utilization": True,
820
+ "balance_similar_node_groups": True,
821
+ "expendable_pods_priority_cutoff": -5,
822
+ })
823
+ pool = scaleway.kubernetes.Pool("pool",
824
+ cluster_id=cluster.id,
825
+ name="tf-pool",
826
+ node_type="DEV1-M",
827
+ size=3,
828
+ autoscaling=True,
829
+ autohealing=True,
830
+ min_size=1,
831
+ max_size=5)
832
+ ```
833
+
834
+ ### With the kubernetes provider
835
+
836
+ ```python
837
+ import pulumi
838
+ import pulumi_null as null
839
+ import pulumiverse_scaleway as scaleway
840
+
841
+ pn = scaleway.network.PrivateNetwork("pn")
842
+ cluster = scaleway.kubernetes.Cluster("cluster",
843
+ name="tf-cluster",
844
+ version="1.29.1",
845
+ cni="cilium",
846
+ private_network_id=pn.id,
847
+ delete_additional_resources=False)
848
+ pool = scaleway.kubernetes.Pool("pool",
849
+ cluster_id=cluster.id,
850
+ name="tf-pool",
851
+ node_type="DEV1-M",
852
+ size=1)
853
+ kubeconfig = null.Resource("kubeconfig", triggers={
854
+ "host": cluster.kubeconfigs[0].host,
855
+ "token": cluster.kubeconfigs[0].token,
856
+ "cluster_ca_certificate": cluster.kubeconfigs[0].cluster_ca_certificate,
857
+ },
858
+ opts = pulumi.ResourceOptions(depends_on=[pool]))
859
+ ```
860
+
861
+ The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.
862
+ It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.
863
+
864
+ ### With the Helm provider
865
+
866
+ ```python
867
+ import pulumi
868
+ import pulumi_helm as helm
869
+ import pulumi_null as null
870
+ import pulumiverse_scaleway as scaleway
871
+
872
+ pn = scaleway.network.PrivateNetwork("pn")
873
+ cluster = scaleway.kubernetes.Cluster("cluster",
874
+ name="tf-cluster",
875
+ version="1.29.1",
876
+ cni="cilium",
877
+ delete_additional_resources=False,
878
+ private_network_id=pn.id)
879
+ pool = scaleway.kubernetes.Pool("pool",
880
+ cluster_id=cluster.id,
881
+ name="tf-pool",
882
+ node_type="DEV1-M",
883
+ size=1)
884
+ kubeconfig = null.Resource("kubeconfig", triggers={
885
+ "host": cluster.kubeconfigs[0].host,
886
+ "token": cluster.kubeconfigs[0].token,
887
+ "cluster_ca_certificate": cluster.kubeconfigs[0].cluster_ca_certificate,
888
+ },
889
+ opts = pulumi.ResourceOptions(depends_on=[pool]))
890
+ nginx_ip = scaleway.loadbalancers.Ip("nginx_ip",
891
+ zone="fr-par-1",
892
+ project_id=cluster.project_id)
893
+ nginx_ingress = helm.index.Release("nginx_ingress",
894
+ name=nginx-ingress,
895
+ namespace=kube-system,
896
+ repository=https://kubernetes.github.io/ingress-nginx,
897
+ chart=ingress-nginx,
898
+ set=[
899
+ {
900
+ name: controller.service.loadBalancerIP,
901
+ value: nginx_ip.ip_address,
902
+ },
903
+ {
904
+ name: controller.config.use-proxy-protocol,
905
+ value: true,
906
+ },
907
+ {
908
+ name: controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-proxy-protocol-v2,
909
+ value: true,
910
+ },
911
+ {
912
+ name: controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-zone,
913
+ value: nginx_ip.zone,
914
+ },
915
+ {
916
+ name: controller.service.externalTrafficPolicy,
917
+ value: Local,
918
+ },
919
+ ])
920
+ ```
921
+
922
+ ## Import
923
+
924
+ Kubernetes clusters can be imported using the `{region}/{id}`, e.g.
925
+
926
+ bash
927
+
928
+ ```sh
929
+ $ pulumi import scaleway:kubernetes/cluster:Cluster mycluster fr-par/11111111-1111-1111-1111-111111111111
930
+ ```
931
+
932
+ :param str resource_name: The name of the resource.
933
+ :param pulumi.ResourceOptions opts: Options for the resource.
934
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] admission_plugins: The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.
935
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] apiserver_cert_sans: Additional Subject Alternative Names for the Kubernetes API server certificate
936
+ :param pulumi.Input[Union['ClusterAutoUpgradeArgs', 'ClusterAutoUpgradeArgsDict']] auto_upgrade: The auto upgrade configuration.
937
+ :param pulumi.Input[Union['ClusterAutoscalerConfigArgs', 'ClusterAutoscalerConfigArgsDict']] autoscaler_config: The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).
938
+ :param pulumi.Input[str] cni: The Container Network Interface (CNI) for the Kubernetes cluster.
939
+ > **Important:** Updates to this field will recreate a new resource.
940
+ :param pulumi.Input[bool] delete_additional_resources: Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.
941
+ > **Important:** Setting this field to `true` means that you will lose all your cluster data and network configuration when you delete your cluster.
942
+ If you prefer keeping it, you should instead set it as `false`.
943
+ :param pulumi.Input[str] description: A description for the Kubernetes cluster.
944
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] feature_gates: The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.
945
+ :param pulumi.Input[str] name: The name for the Kubernetes cluster.
946
+ :param pulumi.Input[Union['ClusterOpenIdConnectConfigArgs', 'ClusterOpenIdConnectConfigArgsDict']] open_id_connect_config: The OpenID Connect configuration of the cluster
947
+ :param pulumi.Input[str] private_network_id: The ID of the private network of the cluster.
948
+
949
+ > **Important:** Changes to this field will recreate a new resource.
950
+
951
+ > **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no `private_network_id` set),
952
+ you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.
953
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the cluster is associated with.
954
+ :param pulumi.Input[str] region: `region`) The region in which the cluster should be created.
955
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Kubernetes cluster.
956
+ :param pulumi.Input[str] type: The type of Kubernetes cluster. Possible values are:
957
+
958
+ - for mutualized clusters: `kapsule` or `multicloud`
959
+
960
+ - for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.
961
+
962
+ - for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.
963
+ :param pulumi.Input[str] version: The version of the Kubernetes cluster.
964
+ """
965
+ ...
966
+ @overload
967
+ def __init__(__self__,
968
+ resource_name: str,
969
+ args: ClusterArgs,
970
+ opts: Optional[pulumi.ResourceOptions] = None):
971
+ """
972
+ Creates and manages Scaleway Kubernetes clusters. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/kubernetes/).
973
+
974
+ ## Example Usage
975
+
976
+ ### Basic
977
+
978
+ ```python
979
+ import pulumi
980
+ import pulumiverse_scaleway as scaleway
981
+
982
+ pn = scaleway.network.PrivateNetwork("pn")
983
+ cluster = scaleway.kubernetes.Cluster("cluster",
984
+ name="tf-cluster",
985
+ version="1.29.1",
986
+ cni="cilium",
987
+ private_network_id=pn.id,
988
+ delete_additional_resources=False)
989
+ pool = scaleway.kubernetes.Pool("pool",
990
+ cluster_id=cluster.id,
991
+ name="tf-pool",
992
+ node_type="DEV1-M",
993
+ size=1)
994
+ ```
995
+
996
+ ### Multicloud
997
+
998
+ ```python
999
+ import pulumi
1000
+ import pulumiverse_scaleway as scaleway
1001
+
1002
+ cluster = scaleway.kubernetes.Cluster("cluster",
1003
+ name="tf-cluster",
1004
+ type="multicloud",
1005
+ version="1.29.1",
1006
+ cni="kilo",
1007
+ delete_additional_resources=False)
1008
+ pool = scaleway.kubernetes.Pool("pool",
1009
+ cluster_id=cluster.id,
1010
+ name="tf-pool",
1011
+ node_type="external",
1012
+ size=0,
1013
+ min_size=0)
1014
+ ```
1015
+
1016
+ For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to this guide.
1017
+
1018
+ ### With additional configuration
1019
+
1020
+ ```python
1021
+ import pulumi
1022
+ import pulumiverse_scaleway as scaleway
1023
+
1024
+ pn = scaleway.network.PrivateNetwork("pn")
1025
+ cluster = scaleway.kubernetes.Cluster("cluster",
1026
+ name="tf-cluster",
1027
+ description="cluster made in terraform",
1028
+ version="1.29.1",
1029
+ cni="calico",
1030
+ tags=["terraform"],
1031
+ private_network_id=pn.id,
1032
+ delete_additional_resources=False,
1033
+ autoscaler_config={
1034
+ "disable_scale_down": False,
1035
+ "scale_down_delay_after_add": "5m",
1036
+ "estimator": "binpacking",
1037
+ "expander": "random",
1038
+ "ignore_daemonsets_utilization": True,
1039
+ "balance_similar_node_groups": True,
1040
+ "expendable_pods_priority_cutoff": -5,
1041
+ })
1042
+ pool = scaleway.kubernetes.Pool("pool",
1043
+ cluster_id=cluster.id,
1044
+ name="tf-pool",
1045
+ node_type="DEV1-M",
1046
+ size=3,
1047
+ autoscaling=True,
1048
+ autohealing=True,
1049
+ min_size=1,
1050
+ max_size=5)
1051
+ ```
1052
+
1053
+ ### With the kubernetes provider
1054
+
1055
+ ```python
1056
+ import pulumi
1057
+ import pulumi_null as null
1058
+ import pulumiverse_scaleway as scaleway
1059
+
1060
+ pn = scaleway.network.PrivateNetwork("pn")
1061
+ cluster = scaleway.kubernetes.Cluster("cluster",
1062
+ name="tf-cluster",
1063
+ version="1.29.1",
1064
+ cni="cilium",
1065
+ private_network_id=pn.id,
1066
+ delete_additional_resources=False)
1067
+ pool = scaleway.kubernetes.Pool("pool",
1068
+ cluster_id=cluster.id,
1069
+ name="tf-pool",
1070
+ node_type="DEV1-M",
1071
+ size=1)
1072
+ kubeconfig = null.Resource("kubeconfig", triggers={
1073
+ "host": cluster.kubeconfigs[0].host,
1074
+ "token": cluster.kubeconfigs[0].token,
1075
+ "cluster_ca_certificate": cluster.kubeconfigs[0].cluster_ca_certificate,
1076
+ },
1077
+ opts = pulumi.ResourceOptions(depends_on=[pool]))
1078
+ ```
1079
+
1080
+ The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.
1081
+ It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.
1082
+
1083
+ ### With the Helm provider
1084
+
1085
+ ```python
1086
+ import pulumi
1087
+ import pulumi_helm as helm
1088
+ import pulumi_null as null
1089
+ import pulumiverse_scaleway as scaleway
1090
+
1091
+ pn = scaleway.network.PrivateNetwork("pn")
1092
+ cluster = scaleway.kubernetes.Cluster("cluster",
1093
+ name="tf-cluster",
1094
+ version="1.29.1",
1095
+ cni="cilium",
1096
+ delete_additional_resources=False,
1097
+ private_network_id=pn.id)
1098
+ pool = scaleway.kubernetes.Pool("pool",
1099
+ cluster_id=cluster.id,
1100
+ name="tf-pool",
1101
+ node_type="DEV1-M",
1102
+ size=1)
1103
+ kubeconfig = null.Resource("kubeconfig", triggers={
1104
+ "host": cluster.kubeconfigs[0].host,
1105
+ "token": cluster.kubeconfigs[0].token,
1106
+ "cluster_ca_certificate": cluster.kubeconfigs[0].cluster_ca_certificate,
1107
+ },
1108
+ opts = pulumi.ResourceOptions(depends_on=[pool]))
1109
+ nginx_ip = scaleway.loadbalancers.Ip("nginx_ip",
1110
+ zone="fr-par-1",
1111
+ project_id=cluster.project_id)
1112
+ nginx_ingress = helm.index.Release("nginx_ingress",
1113
+ name=nginx-ingress,
1114
+ namespace=kube-system,
1115
+ repository=https://kubernetes.github.io/ingress-nginx,
1116
+ chart=ingress-nginx,
1117
+ set=[
1118
+ {
1119
+ name: controller.service.loadBalancerIP,
1120
+ value: nginx_ip.ip_address,
1121
+ },
1122
+ {
1123
+ name: controller.config.use-proxy-protocol,
1124
+ value: true,
1125
+ },
1126
+ {
1127
+ name: controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-proxy-protocol-v2,
1128
+ value: true,
1129
+ },
1130
+ {
1131
+ name: controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-zone,
1132
+ value: nginx_ip.zone,
1133
+ },
1134
+ {
1135
+ name: controller.service.externalTrafficPolicy,
1136
+ value: Local,
1137
+ },
1138
+ ])
1139
+ ```
1140
+
1141
+ ## Import
1142
+
1143
+ Kubernetes clusters can be imported using the `{region}/{id}`, e.g.
1144
+
1145
+ bash
1146
+
1147
+ ```sh
1148
+ $ pulumi import scaleway:kubernetes/cluster:Cluster mycluster fr-par/11111111-1111-1111-1111-111111111111
1149
+ ```
1150
+
1151
+ :param str resource_name: The name of the resource.
1152
+ :param ClusterArgs args: The arguments to use to populate this resource's properties.
1153
+ :param pulumi.ResourceOptions opts: Options for the resource.
1154
+ """
1155
+ ...
1156
+ def __init__(__self__, resource_name: str, *args, **kwargs):
1157
+ resource_args, opts = _utilities.get_resource_args_opts(ClusterArgs, pulumi.ResourceOptions, *args, **kwargs)
1158
+ if resource_args is not None:
1159
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
1160
+ else:
1161
+ __self__._internal_init(resource_name, *args, **kwargs)
1162
+
1163
+ def _internal_init(__self__,
1164
+ resource_name: str,
1165
+ opts: Optional[pulumi.ResourceOptions] = None,
1166
+ admission_plugins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1167
+ apiserver_cert_sans: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1168
+ auto_upgrade: Optional[pulumi.Input[Union['ClusterAutoUpgradeArgs', 'ClusterAutoUpgradeArgsDict']]] = None,
1169
+ autoscaler_config: Optional[pulumi.Input[Union['ClusterAutoscalerConfigArgs', 'ClusterAutoscalerConfigArgsDict']]] = None,
1170
+ cni: Optional[pulumi.Input[str]] = None,
1171
+ delete_additional_resources: Optional[pulumi.Input[bool]] = None,
1172
+ description: Optional[pulumi.Input[str]] = None,
1173
+ feature_gates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1174
+ name: Optional[pulumi.Input[str]] = None,
1175
+ open_id_connect_config: Optional[pulumi.Input[Union['ClusterOpenIdConnectConfigArgs', 'ClusterOpenIdConnectConfigArgsDict']]] = None,
1176
+ private_network_id: Optional[pulumi.Input[str]] = None,
1177
+ project_id: Optional[pulumi.Input[str]] = None,
1178
+ region: Optional[pulumi.Input[str]] = None,
1179
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1180
+ type: Optional[pulumi.Input[str]] = None,
1181
+ version: Optional[pulumi.Input[str]] = None,
1182
+ __props__=None):
1183
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1184
+ if not isinstance(opts, pulumi.ResourceOptions):
1185
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
1186
+ if opts.id is None:
1187
+ if __props__ is not None:
1188
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
1189
+ __props__ = ClusterArgs.__new__(ClusterArgs)
1190
+
1191
+ __props__.__dict__["admission_plugins"] = admission_plugins
1192
+ __props__.__dict__["apiserver_cert_sans"] = apiserver_cert_sans
1193
+ __props__.__dict__["auto_upgrade"] = auto_upgrade
1194
+ __props__.__dict__["autoscaler_config"] = autoscaler_config
1195
+ if cni is None and not opts.urn:
1196
+ raise TypeError("Missing required property 'cni'")
1197
+ __props__.__dict__["cni"] = cni
1198
+ if delete_additional_resources is None and not opts.urn:
1199
+ raise TypeError("Missing required property 'delete_additional_resources'")
1200
+ __props__.__dict__["delete_additional_resources"] = delete_additional_resources
1201
+ __props__.__dict__["description"] = description
1202
+ __props__.__dict__["feature_gates"] = feature_gates
1203
+ __props__.__dict__["name"] = name
1204
+ __props__.__dict__["open_id_connect_config"] = open_id_connect_config
1205
+ __props__.__dict__["private_network_id"] = private_network_id
1206
+ __props__.__dict__["project_id"] = project_id
1207
+ __props__.__dict__["region"] = region
1208
+ __props__.__dict__["tags"] = tags
1209
+ __props__.__dict__["type"] = type
1210
+ if version is None and not opts.urn:
1211
+ raise TypeError("Missing required property 'version'")
1212
+ __props__.__dict__["version"] = version
1213
+ __props__.__dict__["apiserver_url"] = None
1214
+ __props__.__dict__["created_at"] = None
1215
+ __props__.__dict__["kubeconfigs"] = None
1216
+ __props__.__dict__["organization_id"] = None
1217
+ __props__.__dict__["status"] = None
1218
+ __props__.__dict__["updated_at"] = None
1219
+ __props__.__dict__["upgrade_available"] = None
1220
+ __props__.__dict__["wildcard_dns"] = None
1221
+ alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/kubernetesCluster:KubernetesCluster")])
1222
+ opts = pulumi.ResourceOptions.merge(opts, alias_opts)
1223
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["kubeconfigs"])
1224
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
1225
+ super(Cluster, __self__).__init__(
1226
+ 'scaleway:kubernetes/cluster:Cluster',
1227
+ resource_name,
1228
+ __props__,
1229
+ opts)
1230
+
1231
+ @staticmethod
1232
+ def get(resource_name: str,
1233
+ id: pulumi.Input[str],
1234
+ opts: Optional[pulumi.ResourceOptions] = None,
1235
+ admission_plugins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1236
+ apiserver_cert_sans: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1237
+ apiserver_url: Optional[pulumi.Input[str]] = None,
1238
+ auto_upgrade: Optional[pulumi.Input[Union['ClusterAutoUpgradeArgs', 'ClusterAutoUpgradeArgsDict']]] = None,
1239
+ autoscaler_config: Optional[pulumi.Input[Union['ClusterAutoscalerConfigArgs', 'ClusterAutoscalerConfigArgsDict']]] = None,
1240
+ cni: Optional[pulumi.Input[str]] = None,
1241
+ created_at: Optional[pulumi.Input[str]] = None,
1242
+ delete_additional_resources: Optional[pulumi.Input[bool]] = None,
1243
+ description: Optional[pulumi.Input[str]] = None,
1244
+ feature_gates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1245
+ kubeconfigs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClusterKubeconfigArgs', 'ClusterKubeconfigArgsDict']]]]] = None,
1246
+ name: Optional[pulumi.Input[str]] = None,
1247
+ open_id_connect_config: Optional[pulumi.Input[Union['ClusterOpenIdConnectConfigArgs', 'ClusterOpenIdConnectConfigArgsDict']]] = None,
1248
+ organization_id: Optional[pulumi.Input[str]] = None,
1249
+ private_network_id: Optional[pulumi.Input[str]] = None,
1250
+ project_id: Optional[pulumi.Input[str]] = None,
1251
+ region: Optional[pulumi.Input[str]] = None,
1252
+ status: Optional[pulumi.Input[str]] = None,
1253
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1254
+ type: Optional[pulumi.Input[str]] = None,
1255
+ updated_at: Optional[pulumi.Input[str]] = None,
1256
+ upgrade_available: Optional[pulumi.Input[bool]] = None,
1257
+ version: Optional[pulumi.Input[str]] = None,
1258
+ wildcard_dns: Optional[pulumi.Input[str]] = None) -> 'Cluster':
1259
+ """
1260
+ Get an existing Cluster resource's state with the given name, id, and optional extra
1261
+ properties used to qualify the lookup.
1262
+
1263
+ :param str resource_name: The unique name of the resulting resource.
1264
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1265
+ :param pulumi.ResourceOptions opts: Options for the resource.
1266
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] admission_plugins: The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.
1267
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] apiserver_cert_sans: Additional Subject Alternative Names for the Kubernetes API server certificate
1268
+ :param pulumi.Input[str] apiserver_url: The URL of the Kubernetes API server.
1269
+ :param pulumi.Input[Union['ClusterAutoUpgradeArgs', 'ClusterAutoUpgradeArgsDict']] auto_upgrade: The auto upgrade configuration.
1270
+ :param pulumi.Input[Union['ClusterAutoscalerConfigArgs', 'ClusterAutoscalerConfigArgsDict']] autoscaler_config: The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).
1271
+ :param pulumi.Input[str] cni: The Container Network Interface (CNI) for the Kubernetes cluster.
1272
+ > **Important:** Updates to this field will recreate a new resource.
1273
+ :param pulumi.Input[str] created_at: The creation date of the cluster.
1274
+ :param pulumi.Input[bool] delete_additional_resources: Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.
1275
+ > **Important:** Setting this field to `true` means that you will lose all your cluster data and network configuration when you delete your cluster.
1276
+ If you prefer keeping it, you should instead set it as `false`.
1277
+ :param pulumi.Input[str] description: A description for the Kubernetes cluster.
1278
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] feature_gates: The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.
1279
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ClusterKubeconfigArgs', 'ClusterKubeconfigArgsDict']]]] kubeconfigs: The kubeconfig configuration file of the Kubernetes cluster
1280
+ :param pulumi.Input[str] name: The name for the Kubernetes cluster.
1281
+ :param pulumi.Input[Union['ClusterOpenIdConnectConfigArgs', 'ClusterOpenIdConnectConfigArgsDict']] open_id_connect_config: The OpenID Connect configuration of the cluster
1282
+ :param pulumi.Input[str] organization_id: The organization ID the cluster is associated with.
1283
+ :param pulumi.Input[str] private_network_id: The ID of the private network of the cluster.
1284
+
1285
+ > **Important:** Changes to this field will recreate a new resource.
1286
+
1287
+ > **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no `private_network_id` set),
1288
+ you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.
1289
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the cluster is associated with.
1290
+ :param pulumi.Input[str] region: `region`) The region in which the cluster should be created.
1291
+ :param pulumi.Input[str] status: The status of the Kubernetes cluster.
1292
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Kubernetes cluster.
1293
+ :param pulumi.Input[str] type: The type of Kubernetes cluster. Possible values are:
1294
+
1295
+ - for mutualized clusters: `kapsule` or `multicloud`
1296
+
1297
+ - for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.
1298
+
1299
+ - for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.
1300
+ :param pulumi.Input[str] updated_at: The last update date of the cluster.
1301
+ :param pulumi.Input[bool] upgrade_available: Set to `true` if a newer Kubernetes version is available.
1302
+ :param pulumi.Input[str] version: The version of the Kubernetes cluster.
1303
+ :param pulumi.Input[str] wildcard_dns: The DNS wildcard that points to all ready nodes.
1304
+ """
1305
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1306
+
1307
+ __props__ = _ClusterState.__new__(_ClusterState)
1308
+
1309
+ __props__.__dict__["admission_plugins"] = admission_plugins
1310
+ __props__.__dict__["apiserver_cert_sans"] = apiserver_cert_sans
1311
+ __props__.__dict__["apiserver_url"] = apiserver_url
1312
+ __props__.__dict__["auto_upgrade"] = auto_upgrade
1313
+ __props__.__dict__["autoscaler_config"] = autoscaler_config
1314
+ __props__.__dict__["cni"] = cni
1315
+ __props__.__dict__["created_at"] = created_at
1316
+ __props__.__dict__["delete_additional_resources"] = delete_additional_resources
1317
+ __props__.__dict__["description"] = description
1318
+ __props__.__dict__["feature_gates"] = feature_gates
1319
+ __props__.__dict__["kubeconfigs"] = kubeconfigs
1320
+ __props__.__dict__["name"] = name
1321
+ __props__.__dict__["open_id_connect_config"] = open_id_connect_config
1322
+ __props__.__dict__["organization_id"] = organization_id
1323
+ __props__.__dict__["private_network_id"] = private_network_id
1324
+ __props__.__dict__["project_id"] = project_id
1325
+ __props__.__dict__["region"] = region
1326
+ __props__.__dict__["status"] = status
1327
+ __props__.__dict__["tags"] = tags
1328
+ __props__.__dict__["type"] = type
1329
+ __props__.__dict__["updated_at"] = updated_at
1330
+ __props__.__dict__["upgrade_available"] = upgrade_available
1331
+ __props__.__dict__["version"] = version
1332
+ __props__.__dict__["wildcard_dns"] = wildcard_dns
1333
+ return Cluster(resource_name, opts=opts, __props__=__props__)
1334
+
1335
+ @property
1336
+ @pulumi.getter(name="admissionPlugins")
1337
+ def admission_plugins(self) -> pulumi.Output[Optional[Sequence[str]]]:
1338
+ """
1339
+ The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.
1340
+ """
1341
+ return pulumi.get(self, "admission_plugins")
1342
+
1343
+ @property
1344
+ @pulumi.getter(name="apiserverCertSans")
1345
+ def apiserver_cert_sans(self) -> pulumi.Output[Optional[Sequence[str]]]:
1346
+ """
1347
+ Additional Subject Alternative Names for the Kubernetes API server certificate
1348
+ """
1349
+ return pulumi.get(self, "apiserver_cert_sans")
1350
+
1351
+ @property
1352
+ @pulumi.getter(name="apiserverUrl")
1353
+ def apiserver_url(self) -> pulumi.Output[str]:
1354
+ """
1355
+ The URL of the Kubernetes API server.
1356
+ """
1357
+ return pulumi.get(self, "apiserver_url")
1358
+
1359
+ @property
1360
+ @pulumi.getter(name="autoUpgrade")
1361
+ def auto_upgrade(self) -> pulumi.Output['outputs.ClusterAutoUpgrade']:
1362
+ """
1363
+ The auto upgrade configuration.
1364
+ """
1365
+ return pulumi.get(self, "auto_upgrade")
1366
+
1367
+ @property
1368
+ @pulumi.getter(name="autoscalerConfig")
1369
+ def autoscaler_config(self) -> pulumi.Output['outputs.ClusterAutoscalerConfig']:
1370
+ """
1371
+ The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).
1372
+ """
1373
+ return pulumi.get(self, "autoscaler_config")
1374
+
1375
+ @property
1376
+ @pulumi.getter
1377
+ def cni(self) -> pulumi.Output[str]:
1378
+ """
1379
+ The Container Network Interface (CNI) for the Kubernetes cluster.
1380
+ > **Important:** Updates to this field will recreate a new resource.
1381
+ """
1382
+ return pulumi.get(self, "cni")
1383
+
1384
+ @property
1385
+ @pulumi.getter(name="createdAt")
1386
+ def created_at(self) -> pulumi.Output[str]:
1387
+ """
1388
+ The creation date of the cluster.
1389
+ """
1390
+ return pulumi.get(self, "created_at")
1391
+
1392
+ @property
1393
+ @pulumi.getter(name="deleteAdditionalResources")
1394
+ def delete_additional_resources(self) -> pulumi.Output[bool]:
1395
+ """
1396
+ Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.
1397
+ > **Important:** Setting this field to `true` means that you will lose all your cluster data and network configuration when you delete your cluster.
1398
+ If you prefer keeping it, you should instead set it as `false`.
1399
+ """
1400
+ return pulumi.get(self, "delete_additional_resources")
1401
+
1402
+ @property
1403
+ @pulumi.getter
1404
+ def description(self) -> pulumi.Output[Optional[str]]:
1405
+ """
1406
+ A description for the Kubernetes cluster.
1407
+ """
1408
+ return pulumi.get(self, "description")
1409
+
1410
+ @property
1411
+ @pulumi.getter(name="featureGates")
1412
+ def feature_gates(self) -> pulumi.Output[Optional[Sequence[str]]]:
1413
+ """
1414
+ The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.
1415
+ """
1416
+ return pulumi.get(self, "feature_gates")
1417
+
1418
+ @property
1419
+ @pulumi.getter
1420
+ def kubeconfigs(self) -> pulumi.Output[Sequence['outputs.ClusterKubeconfig']]:
1421
+ """
1422
+ The kubeconfig configuration file of the Kubernetes cluster
1423
+ """
1424
+ return pulumi.get(self, "kubeconfigs")
1425
+
1426
+ @property
1427
+ @pulumi.getter
1428
+ def name(self) -> pulumi.Output[str]:
1429
+ """
1430
+ The name for the Kubernetes cluster.
1431
+ """
1432
+ return pulumi.get(self, "name")
1433
+
1434
+ @property
1435
+ @pulumi.getter(name="openIdConnectConfig")
1436
+ def open_id_connect_config(self) -> pulumi.Output['outputs.ClusterOpenIdConnectConfig']:
1437
+ """
1438
+ The OpenID Connect configuration of the cluster
1439
+ """
1440
+ return pulumi.get(self, "open_id_connect_config")
1441
+
1442
+ @property
1443
+ @pulumi.getter(name="organizationId")
1444
+ def organization_id(self) -> pulumi.Output[str]:
1445
+ """
1446
+ The organization ID the cluster is associated with.
1447
+ """
1448
+ return pulumi.get(self, "organization_id")
1449
+
1450
+ @property
1451
+ @pulumi.getter(name="privateNetworkId")
1452
+ def private_network_id(self) -> pulumi.Output[Optional[str]]:
1453
+ """
1454
+ The ID of the private network of the cluster.
1455
+
1456
+ > **Important:** Changes to this field will recreate a new resource.
1457
+
1458
+ > **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no `private_network_id` set),
1459
+ you can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.
1460
+ """
1461
+ return pulumi.get(self, "private_network_id")
1462
+
1463
+ @property
1464
+ @pulumi.getter(name="projectId")
1465
+ def project_id(self) -> pulumi.Output[str]:
1466
+ """
1467
+ `project_id`) The ID of the project the cluster is associated with.
1468
+ """
1469
+ return pulumi.get(self, "project_id")
1470
+
1471
+ @property
1472
+ @pulumi.getter
1473
+ def region(self) -> pulumi.Output[str]:
1474
+ """
1475
+ `region`) The region in which the cluster should be created.
1476
+ """
1477
+ return pulumi.get(self, "region")
1478
+
1479
+ @property
1480
+ @pulumi.getter
1481
+ def status(self) -> pulumi.Output[str]:
1482
+ """
1483
+ The status of the Kubernetes cluster.
1484
+ """
1485
+ return pulumi.get(self, "status")
1486
+
1487
+ @property
1488
+ @pulumi.getter
1489
+ def tags(self) -> pulumi.Output[Optional[Sequence[str]]]:
1490
+ """
1491
+ The tags associated with the Kubernetes cluster.
1492
+ """
1493
+ return pulumi.get(self, "tags")
1494
+
1495
+ @property
1496
+ @pulumi.getter
1497
+ def type(self) -> pulumi.Output[str]:
1498
+ """
1499
+ The type of Kubernetes cluster. Possible values are:
1500
+
1501
+ - for mutualized clusters: `kapsule` or `multicloud`
1502
+
1503
+ - for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.
1504
+
1505
+ - for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.
1506
+ """
1507
+ return pulumi.get(self, "type")
1508
+
1509
+ @property
1510
+ @pulumi.getter(name="updatedAt")
1511
+ def updated_at(self) -> pulumi.Output[str]:
1512
+ """
1513
+ The last update date of the cluster.
1514
+ """
1515
+ return pulumi.get(self, "updated_at")
1516
+
1517
+ @property
1518
+ @pulumi.getter(name="upgradeAvailable")
1519
+ def upgrade_available(self) -> pulumi.Output[bool]:
1520
+ """
1521
+ Set to `true` if a newer Kubernetes version is available.
1522
+ """
1523
+ return pulumi.get(self, "upgrade_available")
1524
+
1525
+ @property
1526
+ @pulumi.getter
1527
+ def version(self) -> pulumi.Output[str]:
1528
+ """
1529
+ The version of the Kubernetes cluster.
1530
+ """
1531
+ return pulumi.get(self, "version")
1532
+
1533
+ @property
1534
+ @pulumi.getter(name="wildcardDns")
1535
+ def wildcard_dns(self) -> pulumi.Output[str]:
1536
+ """
1537
+ The DNS wildcard that points to all ready nodes.
1538
+ """
1539
+ return pulumi.get(self, "wildcard_dns")
1540
+