pulumiverse-scaleway 1.24.0a1741679978__py3-none-any.whl → 1.25.0__py3-none-any.whl

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