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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. pulumiverse_scaleway/__init__.py +1034 -0
  2. pulumiverse_scaleway/_inputs.py +663 -0
  3. pulumiverse_scaleway/account/__init__.py +12 -0
  4. pulumiverse_scaleway/account/get_availability_zones.py +139 -0
  5. pulumiverse_scaleway/account/get_project.py +170 -0
  6. pulumiverse_scaleway/account/get_ssh_key.py +205 -0
  7. pulumiverse_scaleway/account/project.py +318 -0
  8. pulumiverse_scaleway/account/ssh_key.py +456 -0
  9. pulumiverse_scaleway/account_project.py +6 -0
  10. pulumiverse_scaleway/account_ssh_key.py +12 -6
  11. pulumiverse_scaleway/apple_silicon_server.py +113 -2
  12. pulumiverse_scaleway/applesilicon/__init__.py +10 -0
  13. pulumiverse_scaleway/applesilicon/_inputs.py +154 -0
  14. pulumiverse_scaleway/applesilicon/outputs.py +119 -0
  15. pulumiverse_scaleway/applesilicon/server.py +795 -0
  16. pulumiverse_scaleway/baremetal_server.py +64 -58
  17. pulumiverse_scaleway/billing/__init__.py +10 -0
  18. pulumiverse_scaleway/billing/get_consumptions.py +134 -0
  19. pulumiverse_scaleway/billing/get_invoices.py +154 -0
  20. pulumiverse_scaleway/billing/outputs.py +288 -0
  21. pulumiverse_scaleway/block/__init__.py +11 -0
  22. pulumiverse_scaleway/block/get_snapshot.py +174 -0
  23. pulumiverse_scaleway/block/get_volume.py +199 -0
  24. pulumiverse_scaleway/block/snapshot.py +403 -0
  25. pulumiverse_scaleway/block/volume.py +576 -0
  26. pulumiverse_scaleway/block_snapshot.py +12 -6
  27. pulumiverse_scaleway/block_volume.py +16 -10
  28. pulumiverse_scaleway/cockpit.py +10 -4
  29. pulumiverse_scaleway/cockpit_alert_manager.py +12 -6
  30. pulumiverse_scaleway/cockpit_grafana_user.py +12 -6
  31. pulumiverse_scaleway/cockpit_source.py +12 -6
  32. pulumiverse_scaleway/cockpit_token.py +16 -10
  33. pulumiverse_scaleway/container.py +16 -10
  34. pulumiverse_scaleway/container_cron.py +14 -8
  35. pulumiverse_scaleway/container_domain.py +24 -18
  36. pulumiverse_scaleway/container_namespace.py +10 -4
  37. pulumiverse_scaleway/container_token.py +32 -26
  38. pulumiverse_scaleway/container_trigger.py +12 -6
  39. pulumiverse_scaleway/containers/__init__.py +17 -0
  40. pulumiverse_scaleway/containers/_inputs.py +389 -0
  41. pulumiverse_scaleway/containers/container.py +1635 -0
  42. pulumiverse_scaleway/containers/cron.py +460 -0
  43. pulumiverse_scaleway/containers/domain.py +408 -0
  44. pulumiverse_scaleway/containers/get_container.py +562 -0
  45. pulumiverse_scaleway/containers/get_namespace.py +283 -0
  46. pulumiverse_scaleway/containers/namespace.py +638 -0
  47. pulumiverse_scaleway/containers/outputs.py +412 -0
  48. pulumiverse_scaleway/containers/token.py +454 -0
  49. pulumiverse_scaleway/containers/trigger.py +482 -0
  50. pulumiverse_scaleway/database.py +10 -4
  51. pulumiverse_scaleway/database_acl.py +10 -4
  52. pulumiverse_scaleway/database_backup.py +14 -8
  53. pulumiverse_scaleway/database_instance.py +24 -18
  54. pulumiverse_scaleway/database_privilege.py +16 -10
  55. pulumiverse_scaleway/database_read_replica.py +22 -16
  56. pulumiverse_scaleway/database_user.py +10 -4
  57. pulumiverse_scaleway/databases/__init__.py +23 -0
  58. pulumiverse_scaleway/databases/_inputs.py +822 -0
  59. pulumiverse_scaleway/databases/acl.py +334 -0
  60. pulumiverse_scaleway/databases/database.py +409 -0
  61. pulumiverse_scaleway/databases/database_backup.py +576 -0
  62. pulumiverse_scaleway/databases/get_acl.py +143 -0
  63. pulumiverse_scaleway/databases/get_database.py +187 -0
  64. pulumiverse_scaleway/databases/get_database_backup.py +253 -0
  65. pulumiverse_scaleway/databases/get_instance.py +415 -0
  66. pulumiverse_scaleway/databases/get_privilege.py +181 -0
  67. pulumiverse_scaleway/databases/instance.py +1696 -0
  68. pulumiverse_scaleway/databases/outputs.py +866 -0
  69. pulumiverse_scaleway/databases/privilege.py +424 -0
  70. pulumiverse_scaleway/databases/read_replica.py +530 -0
  71. pulumiverse_scaleway/databases/serverless_database.py +434 -0
  72. pulumiverse_scaleway/databases/snapshot.py +610 -0
  73. pulumiverse_scaleway/databases/user.py +448 -0
  74. pulumiverse_scaleway/domain/__init__.py +14 -0
  75. pulumiverse_scaleway/domain/_inputs.py +3038 -0
  76. pulumiverse_scaleway/domain/get_record.py +340 -0
  77. pulumiverse_scaleway/domain/get_zone.py +201 -0
  78. pulumiverse_scaleway/domain/outputs.py +2553 -0
  79. pulumiverse_scaleway/domain/record.py +1118 -0
  80. pulumiverse_scaleway/domain/registration.py +777 -0
  81. pulumiverse_scaleway/domain/zone.py +432 -0
  82. pulumiverse_scaleway/domain_record.py +36 -30
  83. pulumiverse_scaleway/domain_zone.py +6 -0
  84. pulumiverse_scaleway/edge_services_backend_stage.py +472 -0
  85. pulumiverse_scaleway/edge_services_cache_stage.py +490 -0
  86. pulumiverse_scaleway/edge_services_dns_stage.py +516 -0
  87. pulumiverse_scaleway/edge_services_head_stage.py +258 -0
  88. pulumiverse_scaleway/edge_services_pipeline.py +436 -0
  89. pulumiverse_scaleway/edge_services_plan.py +239 -0
  90. pulumiverse_scaleway/edge_services_route_stage.py +422 -0
  91. pulumiverse_scaleway/edge_services_tls_stage.py +546 -0
  92. pulumiverse_scaleway/edge_services_waf_stage.py +444 -0
  93. pulumiverse_scaleway/elasticmetal/__init__.py +18 -0
  94. pulumiverse_scaleway/elasticmetal/_inputs.py +509 -0
  95. pulumiverse_scaleway/elasticmetal/get_ip.py +247 -0
  96. pulumiverse_scaleway/elasticmetal/get_ips.py +240 -0
  97. pulumiverse_scaleway/elasticmetal/get_offer.py +245 -0
  98. pulumiverse_scaleway/elasticmetal/get_option.py +168 -0
  99. pulumiverse_scaleway/elasticmetal/get_os.py +174 -0
  100. pulumiverse_scaleway/elasticmetal/get_server.py +422 -0
  101. pulumiverse_scaleway/elasticmetal/ip.py +710 -0
  102. pulumiverse_scaleway/elasticmetal/ip_mac_address.py +512 -0
  103. pulumiverse_scaleway/elasticmetal/outputs.py +974 -0
  104. pulumiverse_scaleway/elasticmetal/server.py +1591 -0
  105. pulumiverse_scaleway/flexible_ip.py +35 -23
  106. pulumiverse_scaleway/flexible_ip_mac_address.py +22 -16
  107. pulumiverse_scaleway/function.py +6 -0
  108. pulumiverse_scaleway/function_cron.py +16 -10
  109. pulumiverse_scaleway/function_domain.py +16 -10
  110. pulumiverse_scaleway/function_namespace.py +10 -4
  111. pulumiverse_scaleway/function_token.py +32 -26
  112. pulumiverse_scaleway/function_trigger.py +12 -6
  113. pulumiverse_scaleway/functions/__init__.py +17 -0
  114. pulumiverse_scaleway/functions/_inputs.py +211 -0
  115. pulumiverse_scaleway/functions/cron.py +464 -0
  116. pulumiverse_scaleway/functions/domain.py +372 -0
  117. pulumiverse_scaleway/functions/function.py +1105 -0
  118. pulumiverse_scaleway/functions/get_function.py +365 -0
  119. pulumiverse_scaleway/functions/get_namespace.py +238 -0
  120. pulumiverse_scaleway/functions/namespace.py +582 -0
  121. pulumiverse_scaleway/functions/outputs.py +168 -0
  122. pulumiverse_scaleway/functions/token.py +462 -0
  123. pulumiverse_scaleway/functions/trigger.py +482 -0
  124. pulumiverse_scaleway/get_account_project.py +6 -2
  125. pulumiverse_scaleway/get_account_ssh_key.py +6 -2
  126. pulumiverse_scaleway/get_availability_zones.py +8 -4
  127. pulumiverse_scaleway/get_baremetal_offer.py +4 -0
  128. pulumiverse_scaleway/get_baremetal_option.py +8 -4
  129. pulumiverse_scaleway/get_baremetal_os.py +8 -4
  130. pulumiverse_scaleway/get_baremetal_server.py +8 -4
  131. pulumiverse_scaleway/get_billing_consumptions.py +4 -0
  132. pulumiverse_scaleway/get_billing_invoices.py +4 -0
  133. pulumiverse_scaleway/get_block_snapshot.py +6 -2
  134. pulumiverse_scaleway/get_block_volume.py +6 -2
  135. pulumiverse_scaleway/get_cockpit.py +12 -8
  136. pulumiverse_scaleway/get_cockpit_plan.py +10 -6
  137. pulumiverse_scaleway/get_cockpit_source.py +8 -4
  138. pulumiverse_scaleway/get_container.py +16 -12
  139. pulumiverse_scaleway/get_container_namespace.py +10 -6
  140. pulumiverse_scaleway/get_database.py +6 -2
  141. pulumiverse_scaleway/get_database_acl.py +6 -2
  142. pulumiverse_scaleway/get_database_backup.py +10 -6
  143. pulumiverse_scaleway/get_database_instance.py +4 -0
  144. pulumiverse_scaleway/get_database_privilege.py +6 -2
  145. pulumiverse_scaleway/get_domain_record.py +10 -6
  146. pulumiverse_scaleway/get_domain_zone.py +4 -0
  147. pulumiverse_scaleway/get_flexible_ip.py +4 -0
  148. pulumiverse_scaleway/get_flexible_ips.py +16 -12
  149. pulumiverse_scaleway/get_function.py +6 -2
  150. pulumiverse_scaleway/get_function_namespace.py +6 -2
  151. pulumiverse_scaleway/get_iam_api_key.py +6 -2
  152. pulumiverse_scaleway/get_iam_application.py +8 -4
  153. pulumiverse_scaleway/get_iam_group.py +8 -4
  154. pulumiverse_scaleway/get_iam_ssh_key.py +4 -0
  155. pulumiverse_scaleway/get_iam_user.py +8 -4
  156. pulumiverse_scaleway/get_instance_image.py +4 -0
  157. pulumiverse_scaleway/get_instance_ip.py +4 -0
  158. pulumiverse_scaleway/get_instance_placement_group.py +4 -0
  159. pulumiverse_scaleway/get_instance_private_nic.py +10 -6
  160. pulumiverse_scaleway/get_instance_security_group.py +4 -0
  161. pulumiverse_scaleway/get_instance_server.py +4 -0
  162. pulumiverse_scaleway/get_instance_servers.py +4 -0
  163. pulumiverse_scaleway/get_instance_snapshot.py +8 -4
  164. pulumiverse_scaleway/get_instance_volume.py +4 -0
  165. pulumiverse_scaleway/get_iot_device.py +4 -0
  166. pulumiverse_scaleway/get_iot_hub.py +4 -0
  167. pulumiverse_scaleway/get_ipam_ip.py +18 -14
  168. pulumiverse_scaleway/get_ipam_ips.py +14 -10
  169. pulumiverse_scaleway/get_k8s_version.py +8 -4
  170. pulumiverse_scaleway/get_kubernetes_cluster.py +4 -0
  171. pulumiverse_scaleway/get_kubernetes_node_pool.py +4 -0
  172. pulumiverse_scaleway/get_lb_acls.py +8 -4
  173. pulumiverse_scaleway/get_lb_backend.py +18 -14
  174. pulumiverse_scaleway/get_lb_backends.py +8 -4
  175. pulumiverse_scaleway/get_lb_frontend.py +28 -13
  176. pulumiverse_scaleway/get_lb_frontends.py +8 -4
  177. pulumiverse_scaleway/get_lb_ips.py +4 -0
  178. pulumiverse_scaleway/get_lb_route.py +28 -13
  179. pulumiverse_scaleway/get_lb_routes.py +8 -4
  180. pulumiverse_scaleway/get_lbs.py +4 -0
  181. pulumiverse_scaleway/get_loadbalancer.py +8 -4
  182. pulumiverse_scaleway/get_loadbalancer_certificate.py +4 -0
  183. pulumiverse_scaleway/get_loadbalancer_ip.py +4 -0
  184. pulumiverse_scaleway/get_mnq_sns.py +8 -4
  185. pulumiverse_scaleway/get_mnq_sqs.py +8 -4
  186. pulumiverse_scaleway/get_mongo_db_instance.py +4 -0
  187. pulumiverse_scaleway/get_object_bucket.py +12 -8
  188. pulumiverse_scaleway/get_object_bucket_policy.py +8 -4
  189. pulumiverse_scaleway/get_redis_cluster.py +4 -0
  190. pulumiverse_scaleway/get_registry_image.py +4 -0
  191. pulumiverse_scaleway/get_registry_image_tag.py +4 -0
  192. pulumiverse_scaleway/get_registry_namespace.py +4 -0
  193. pulumiverse_scaleway/get_secret.py +27 -12
  194. pulumiverse_scaleway/get_secret_version.py +14 -10
  195. pulumiverse_scaleway/get_tem_domain.py +4 -0
  196. pulumiverse_scaleway/get_vpc.py +10 -6
  197. pulumiverse_scaleway/get_vpc_gateway_network.py +10 -6
  198. pulumiverse_scaleway/get_vpc_private_network.py +10 -6
  199. pulumiverse_scaleway/get_vpc_public_gateway.py +44 -7
  200. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +16 -4
  201. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +78 -66
  202. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +8 -4
  203. pulumiverse_scaleway/get_vpc_public_pat_rule.py +26 -22
  204. pulumiverse_scaleway/get_vpc_routes.py +4 -0
  205. pulumiverse_scaleway/get_vpcs.py +4 -0
  206. pulumiverse_scaleway/get_web_host_offer.py +8 -4
  207. pulumiverse_scaleway/get_webhosting.py +8 -4
  208. pulumiverse_scaleway/hosting/__init__.py +12 -0
  209. pulumiverse_scaleway/hosting/_inputs.py +295 -0
  210. pulumiverse_scaleway/hosting/get_hosting.py +354 -0
  211. pulumiverse_scaleway/hosting/get_offer.py +229 -0
  212. pulumiverse_scaleway/hosting/hosting.py +870 -0
  213. pulumiverse_scaleway/hosting/outputs.py +626 -0
  214. pulumiverse_scaleway/iam/__init__.py +21 -0
  215. pulumiverse_scaleway/iam/_inputs.py +138 -0
  216. pulumiverse_scaleway/iam/api_key.py +622 -0
  217. pulumiverse_scaleway/iam/application.py +419 -0
  218. pulumiverse_scaleway/iam/get_api_key.py +210 -0
  219. pulumiverse_scaleway/iam/get_application.py +210 -0
  220. pulumiverse_scaleway/iam/get_group.py +236 -0
  221. pulumiverse_scaleway/iam/get_ssh_key.py +212 -0
  222. pulumiverse_scaleway/iam/get_user.py +177 -0
  223. pulumiverse_scaleway/iam/group.py +568 -0
  224. pulumiverse_scaleway/iam/group_membership.py +325 -0
  225. pulumiverse_scaleway/iam/outputs.py +111 -0
  226. pulumiverse_scaleway/iam/policy.py +775 -0
  227. pulumiverse_scaleway/iam/ssh_key.py +457 -0
  228. pulumiverse_scaleway/iam/user.py +515 -0
  229. pulumiverse_scaleway/iam_api_key.py +16 -10
  230. pulumiverse_scaleway/iam_application.py +8 -2
  231. pulumiverse_scaleway/iam_group.py +12 -6
  232. pulumiverse_scaleway/iam_group_membership.py +12 -6
  233. pulumiverse_scaleway/iam_policy.py +18 -12
  234. pulumiverse_scaleway/iam_ssh_key.py +8 -2
  235. pulumiverse_scaleway/iam_user.py +8 -2
  236. pulumiverse_scaleway/inference/__init__.py +10 -0
  237. pulumiverse_scaleway/inference/_inputs.py +209 -0
  238. pulumiverse_scaleway/inference/deployment.py +824 -0
  239. pulumiverse_scaleway/inference/outputs.py +169 -0
  240. pulumiverse_scaleway/inference_deployment.py +8 -2
  241. pulumiverse_scaleway/instance/__init__.py +29 -0
  242. pulumiverse_scaleway/instance/_inputs.py +1237 -0
  243. pulumiverse_scaleway/instance/get_image.py +305 -0
  244. pulumiverse_scaleway/instance/get_ip.py +204 -0
  245. pulumiverse_scaleway/instance/get_placement_group.py +212 -0
  246. pulumiverse_scaleway/instance/get_private_nic.py +226 -0
  247. pulumiverse_scaleway/instance/get_security_group.py +268 -0
  248. pulumiverse_scaleway/instance/get_server.py +488 -0
  249. pulumiverse_scaleway/instance/get_servers.py +187 -0
  250. pulumiverse_scaleway/instance/get_snapshot.py +248 -0
  251. pulumiverse_scaleway/instance/get_volume.py +226 -0
  252. pulumiverse_scaleway/instance/image.py +752 -0
  253. pulumiverse_scaleway/instance/ip.py +471 -0
  254. pulumiverse_scaleway/instance/ip_reverse_dns.py +310 -0
  255. pulumiverse_scaleway/instance/outputs.py +1533 -0
  256. pulumiverse_scaleway/instance/placement_group.py +481 -0
  257. pulumiverse_scaleway/instance/private_nic.py +557 -0
  258. pulumiverse_scaleway/instance/security_group.py +722 -0
  259. pulumiverse_scaleway/instance/security_group_rules.py +441 -0
  260. pulumiverse_scaleway/instance/server.py +1938 -0
  261. pulumiverse_scaleway/instance/snapshot.py +671 -0
  262. pulumiverse_scaleway/instance/user_data.py +437 -0
  263. pulumiverse_scaleway/instance/volume.py +584 -0
  264. pulumiverse_scaleway/instance_image.py +18 -12
  265. pulumiverse_scaleway/instance_ip.py +8 -2
  266. pulumiverse_scaleway/instance_ip_reverse_dns.py +12 -6
  267. pulumiverse_scaleway/instance_placement_group.py +8 -2
  268. pulumiverse_scaleway/instance_private_nic.py +24 -18
  269. pulumiverse_scaleway/instance_security_group.py +6 -0
  270. pulumiverse_scaleway/instance_security_group_rules.py +22 -16
  271. pulumiverse_scaleway/instance_server.py +74 -68
  272. pulumiverse_scaleway/instance_snapshot.py +22 -16
  273. pulumiverse_scaleway/instance_user_data.py +16 -10
  274. pulumiverse_scaleway/instance_volume.py +8 -2
  275. pulumiverse_scaleway/iot/__init__.py +15 -0
  276. pulumiverse_scaleway/iot/_inputs.py +539 -0
  277. pulumiverse_scaleway/iot/device.py +752 -0
  278. pulumiverse_scaleway/iot/get_device.py +257 -0
  279. pulumiverse_scaleway/iot/get_hub.py +322 -0
  280. pulumiverse_scaleway/iot/hub.py +898 -0
  281. pulumiverse_scaleway/iot/network.py +474 -0
  282. pulumiverse_scaleway/iot/outputs.py +465 -0
  283. pulumiverse_scaleway/iot/route.py +662 -0
  284. pulumiverse_scaleway/iot_device.py +14 -8
  285. pulumiverse_scaleway/iot_hub.py +8 -2
  286. pulumiverse_scaleway/iot_network.py +12 -6
  287. pulumiverse_scaleway/iot_route.py +32 -26
  288. pulumiverse_scaleway/ipam/__init__.py +13 -0
  289. pulumiverse_scaleway/ipam/_inputs.py +442 -0
  290. pulumiverse_scaleway/ipam/get_ip.py +419 -0
  291. pulumiverse_scaleway/ipam/get_ips.py +358 -0
  292. pulumiverse_scaleway/ipam/ip.py +759 -0
  293. pulumiverse_scaleway/ipam/ip_reverse_dns.py +320 -0
  294. pulumiverse_scaleway/ipam/outputs.py +481 -0
  295. pulumiverse_scaleway/ipam_ip.py +30 -24
  296. pulumiverse_scaleway/ipam_ip_reverse_dns.py +6 -0
  297. pulumiverse_scaleway/job/__init__.py +10 -0
  298. pulumiverse_scaleway/job/_inputs.py +73 -0
  299. pulumiverse_scaleway/job/definition.py +694 -0
  300. pulumiverse_scaleway/job/outputs.py +49 -0
  301. pulumiverse_scaleway/job_definition.py +8 -2
  302. pulumiverse_scaleway/kubernetes/__init__.py +14 -0
  303. pulumiverse_scaleway/kubernetes/_inputs.py +717 -0
  304. pulumiverse_scaleway/kubernetes/cluster.py +1540 -0
  305. pulumiverse_scaleway/kubernetes/get_cluster.py +417 -0
  306. pulumiverse_scaleway/kubernetes/get_pool.py +436 -0
  307. pulumiverse_scaleway/kubernetes/get_version.py +196 -0
  308. pulumiverse_scaleway/kubernetes/outputs.py +944 -0
  309. pulumiverse_scaleway/kubernetes/pool.py +1313 -0
  310. pulumiverse_scaleway/kubernetes_cluster.py +36 -30
  311. pulumiverse_scaleway/kubernetes_node_pool.py +6 -0
  312. pulumiverse_scaleway/loadbalancer.py +35 -29
  313. pulumiverse_scaleway/loadbalancer_acl.py +8 -2
  314. pulumiverse_scaleway/loadbalancer_backend.py +12 -6
  315. pulumiverse_scaleway/loadbalancer_certificate.py +6 -0
  316. pulumiverse_scaleway/loadbalancer_frontend.py +57 -4
  317. pulumiverse_scaleway/loadbalancer_ip.py +10 -4
  318. pulumiverse_scaleway/loadbalancer_route.py +74 -21
  319. pulumiverse_scaleway/loadbalancers/__init__.py +28 -0
  320. pulumiverse_scaleway/loadbalancers/_inputs.py +1103 -0
  321. pulumiverse_scaleway/loadbalancers/acl.py +522 -0
  322. pulumiverse_scaleway/loadbalancers/backend.py +1590 -0
  323. pulumiverse_scaleway/loadbalancers/certificate.py +462 -0
  324. pulumiverse_scaleway/loadbalancers/frontend.py +878 -0
  325. pulumiverse_scaleway/loadbalancers/get_acls.py +198 -0
  326. pulumiverse_scaleway/loadbalancers/get_backend.py +486 -0
  327. pulumiverse_scaleway/loadbalancers/get_backends.py +196 -0
  328. pulumiverse_scaleway/loadbalancers/get_certificate.py +230 -0
  329. pulumiverse_scaleway/loadbalancers/get_frontend.py +285 -0
  330. pulumiverse_scaleway/loadbalancers/get_frontends.py +196 -0
  331. pulumiverse_scaleway/loadbalancers/get_ip.py +228 -0
  332. pulumiverse_scaleway/loadbalancers/get_ips.py +198 -0
  333. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +339 -0
  334. pulumiverse_scaleway/loadbalancers/get_load_balancers.py +187 -0
  335. pulumiverse_scaleway/loadbalancers/get_route.py +228 -0
  336. pulumiverse_scaleway/loadbalancers/get_routes.py +179 -0
  337. pulumiverse_scaleway/loadbalancers/ip.py +516 -0
  338. pulumiverse_scaleway/loadbalancers/load_balancer.py +1063 -0
  339. pulumiverse_scaleway/loadbalancers/outputs.py +2502 -0
  340. pulumiverse_scaleway/loadbalancers/route.py +572 -0
  341. pulumiverse_scaleway/mnq/__init__.py +20 -0
  342. pulumiverse_scaleway/mnq/_inputs.py +169 -0
  343. pulumiverse_scaleway/mnq/get_sns.py +150 -0
  344. pulumiverse_scaleway/mnq/get_sqs.py +150 -0
  345. pulumiverse_scaleway/mnq/nats_account.py +336 -0
  346. pulumiverse_scaleway/mnq/nats_credentials.py +332 -0
  347. pulumiverse_scaleway/mnq/outputs.py +149 -0
  348. pulumiverse_scaleway/mnq/sns.py +308 -0
  349. pulumiverse_scaleway/mnq/sns_credentials.py +415 -0
  350. pulumiverse_scaleway/mnq/sns_topic.py +661 -0
  351. pulumiverse_scaleway/mnq/sns_topic_subscription.py +701 -0
  352. pulumiverse_scaleway/mnq/sqs.py +306 -0
  353. pulumiverse_scaleway/mnq/sqs_credentials.py +415 -0
  354. pulumiverse_scaleway/mnq/sqs_queue.py +802 -0
  355. pulumiverse_scaleway/mnq_nats_account.py +8 -2
  356. pulumiverse_scaleway/mnq_nats_credentials.py +10 -4
  357. pulumiverse_scaleway/mnq_sns.py +12 -6
  358. pulumiverse_scaleway/mnq_sns_credentials.py +10 -4
  359. pulumiverse_scaleway/mnq_sns_topic.py +16 -10
  360. pulumiverse_scaleway/mnq_sns_topic_subscription.py +22 -16
  361. pulumiverse_scaleway/mnq_sqs.py +12 -6
  362. pulumiverse_scaleway/mnq_sqs_credentials.py +10 -4
  363. pulumiverse_scaleway/mnq_sqs_queue.py +16 -10
  364. pulumiverse_scaleway/mongo_db_instance.py +14 -8
  365. pulumiverse_scaleway/mongo_db_snapshot.py +8 -2
  366. pulumiverse_scaleway/mongodb/__init__.py +12 -0
  367. pulumiverse_scaleway/mongodb/_inputs.py +208 -0
  368. pulumiverse_scaleway/mongodb/get_instance.py +335 -0
  369. pulumiverse_scaleway/mongodb/instance.py +1000 -0
  370. pulumiverse_scaleway/mongodb/outputs.py +270 -0
  371. pulumiverse_scaleway/mongodb/snapshot.py +523 -0
  372. pulumiverse_scaleway/network/__init__.py +30 -0
  373. pulumiverse_scaleway/network/_inputs.py +577 -0
  374. pulumiverse_scaleway/network/acl.py +415 -0
  375. pulumiverse_scaleway/network/gateway_network.py +850 -0
  376. pulumiverse_scaleway/network/get_gateway_network.py +287 -0
  377. pulumiverse_scaleway/network/get_private_network.py +282 -0
  378. pulumiverse_scaleway/network/get_public_gateway.py +337 -0
  379. pulumiverse_scaleway/network/get_public_gateway_dhcp.py +313 -0
  380. pulumiverse_scaleway/network/get_public_gateway_dhcp_reservation.py +390 -0
  381. pulumiverse_scaleway/network/get_public_gateway_ip.py +199 -0
  382. pulumiverse_scaleway/network/get_public_gateway_pat_rule.py +313 -0
  383. pulumiverse_scaleway/network/get_routes.py +208 -0
  384. pulumiverse_scaleway/network/get_vpc.py +246 -0
  385. pulumiverse_scaleway/network/get_vpcs.py +174 -0
  386. pulumiverse_scaleway/network/outputs.py +886 -0
  387. pulumiverse_scaleway/network/private_network.py +736 -0
  388. pulumiverse_scaleway/network/public_gateway.py +894 -0
  389. pulumiverse_scaleway/network/public_gateway_dhcp.py +957 -0
  390. pulumiverse_scaleway/network/public_gateway_dhcp_reservation.py +524 -0
  391. pulumiverse_scaleway/network/public_gateway_ip.py +459 -0
  392. pulumiverse_scaleway/network/public_gateway_ip_reverse_dns.py +308 -0
  393. pulumiverse_scaleway/network/public_gateway_pat_rule.py +593 -0
  394. pulumiverse_scaleway/network/route.py +579 -0
  395. pulumiverse_scaleway/network/vpc.py +538 -0
  396. pulumiverse_scaleway/object/__init__.py +17 -0
  397. pulumiverse_scaleway/object/_inputs.py +831 -0
  398. pulumiverse_scaleway/object/bucket.py +876 -0
  399. pulumiverse_scaleway/object/bucket_acl.py +598 -0
  400. pulumiverse_scaleway/object/bucket_lock_configuration.py +397 -0
  401. pulumiverse_scaleway/object/bucket_policy.py +675 -0
  402. pulumiverse_scaleway/object/bucket_website_configuration.py +536 -0
  403. pulumiverse_scaleway/object/get_bucket.py +290 -0
  404. pulumiverse_scaleway/object/get_bucket_policy.py +163 -0
  405. pulumiverse_scaleway/object/item.py +778 -0
  406. pulumiverse_scaleway/object/outputs.py +802 -0
  407. pulumiverse_scaleway/object_bucket.py +28 -22
  408. pulumiverse_scaleway/object_bucket_acl.py +14 -8
  409. pulumiverse_scaleway/object_bucket_lock_configuration.py +12 -6
  410. pulumiverse_scaleway/object_bucket_policy.py +46 -40
  411. pulumiverse_scaleway/object_bucket_website_configuration.py +18 -12
  412. pulumiverse_scaleway/object_item.py +8 -2
  413. pulumiverse_scaleway/observability/__init__.py +17 -0
  414. pulumiverse_scaleway/observability/_inputs.py +417 -0
  415. pulumiverse_scaleway/observability/alert_manager.py +403 -0
  416. pulumiverse_scaleway/observability/cockpit.py +325 -0
  417. pulumiverse_scaleway/observability/get_instance.py +205 -0
  418. pulumiverse_scaleway/observability/get_plan.py +125 -0
  419. pulumiverse_scaleway/observability/get_source.py +262 -0
  420. pulumiverse_scaleway/observability/grafana_user.py +364 -0
  421. pulumiverse_scaleway/observability/outputs.py +425 -0
  422. pulumiverse_scaleway/observability/source.py +569 -0
  423. pulumiverse_scaleway/observability/token.py +481 -0
  424. pulumiverse_scaleway/outputs.py +662 -2
  425. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  426. pulumiverse_scaleway/rdb_snapshot.py +16 -10
  427. pulumiverse_scaleway/redis/__init__.py +11 -0
  428. pulumiverse_scaleway/redis/_inputs.py +330 -0
  429. pulumiverse_scaleway/redis/cluster.py +1203 -0
  430. pulumiverse_scaleway/redis/get_cluster.py +347 -0
  431. pulumiverse_scaleway/redis/outputs.py +356 -0
  432. pulumiverse_scaleway/redis_cluster.py +14 -8
  433. pulumiverse_scaleway/registry/__init__.py +11 -0
  434. pulumiverse_scaleway/registry/get_image.py +239 -0
  435. pulumiverse_scaleway/registry/get_image_tag.py +229 -0
  436. pulumiverse_scaleway/registry/get_namespace.py +199 -0
  437. pulumiverse_scaleway/registry/namespace.py +460 -0
  438. pulumiverse_scaleway/registry_namespace.py +8 -2
  439. pulumiverse_scaleway/sdb_database.py +10 -4
  440. pulumiverse_scaleway/secret.py +28 -2
  441. pulumiverse_scaleway/secret_version.py +18 -12
  442. pulumiverse_scaleway/secrets/__init__.py +13 -0
  443. pulumiverse_scaleway/secrets/_inputs.py +248 -0
  444. pulumiverse_scaleway/secrets/get_secret.py +349 -0
  445. pulumiverse_scaleway/secrets/get_version.py +340 -0
  446. pulumiverse_scaleway/secrets/outputs.py +320 -0
  447. pulumiverse_scaleway/secrets/secret.py +685 -0
  448. pulumiverse_scaleway/secrets/version.py +489 -0
  449. pulumiverse_scaleway/tem/__init__.py +15 -0
  450. pulumiverse_scaleway/tem/_inputs.py +135 -0
  451. pulumiverse_scaleway/tem/blocked_list.py +442 -0
  452. pulumiverse_scaleway/tem/domain.py +1039 -0
  453. pulumiverse_scaleway/tem/domain_validation.py +305 -0
  454. pulumiverse_scaleway/tem/get_domain.py +378 -0
  455. pulumiverse_scaleway/tem/get_offer_subscription.py +254 -0
  456. pulumiverse_scaleway/tem/outputs.py +171 -0
  457. pulumiverse_scaleway/tem/webhook.py +642 -0
  458. pulumiverse_scaleway/tem_domain.py +27 -14
  459. pulumiverse_scaleway/tem_domain_validation.py +10 -4
  460. pulumiverse_scaleway/tem_webhook.py +28 -22
  461. pulumiverse_scaleway/vpc.py +10 -4
  462. pulumiverse_scaleway/vpc_gateway_network.py +128 -140
  463. pulumiverse_scaleway/vpc_private_network.py +10 -4
  464. pulumiverse_scaleway/vpc_public_gateway.py +132 -23
  465. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +23 -9
  466. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +40 -26
  467. pulumiverse_scaleway/vpc_public_gateway_ip.py +10 -4
  468. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +12 -6
  469. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +26 -20
  470. pulumiverse_scaleway/vpc_route.py +16 -10
  471. pulumiverse_scaleway/webhosting.py +10 -4
  472. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.26.0.dist-info}/METADATA +1 -1
  473. pulumiverse_scaleway-1.26.0.dist-info/RECORD +483 -0
  474. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.26.0.dist-info}/WHEEL +1 -1
  475. pulumiverse_scaleway-1.25.0a1742464679.dist-info/RECORD +0 -206
  476. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.26.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1938 @@
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
+ type: pulumi.Input[str],
25
+ additional_volume_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
26
+ boot_type: Optional[pulumi.Input[str]] = None,
27
+ bootscript_id: Optional[pulumi.Input[str]] = None,
28
+ cloud_init: Optional[pulumi.Input[str]] = None,
29
+ enable_dynamic_ip: Optional[pulumi.Input[bool]] = None,
30
+ enable_ipv6: Optional[pulumi.Input[bool]] = None,
31
+ image: Optional[pulumi.Input[str]] = None,
32
+ ip_id: Optional[pulumi.Input[str]] = None,
33
+ ip_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34
+ name: Optional[pulumi.Input[str]] = None,
35
+ placement_group_id: Optional[pulumi.Input[str]] = None,
36
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPrivateNetworkArgs']]]] = None,
37
+ project_id: Optional[pulumi.Input[str]] = None,
38
+ public_ips: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPublicIpArgs']]]] = None,
39
+ replace_on_type_change: Optional[pulumi.Input[bool]] = None,
40
+ root_volume: Optional[pulumi.Input['ServerRootVolumeArgs']] = None,
41
+ security_group_id: Optional[pulumi.Input[str]] = None,
42
+ state: Optional[pulumi.Input[str]] = None,
43
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
44
+ user_data: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
45
+ zone: Optional[pulumi.Input[str]] = None):
46
+ """
47
+ The set of arguments for constructing a Server resource.
48
+ :param pulumi.Input[str] type: The commercial type of the server.
49
+ You find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).
50
+ Updates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).
51
+ Use `replace_on_type_change` to trigger replacement instead of migration.
52
+
53
+ > **Important:** If `type` change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.
54
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] additional_volume_ids: The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)
55
+ attached to the server. Updates to this field will trigger a stop/start of the server.
56
+
57
+ > **Important:** If this field contains local volumes, the `state` must be set to `stopped`, otherwise it will fail.
58
+
59
+ > **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.
60
+ :param pulumi.Input[str] boot_type: The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
61
+ :param pulumi.Input[str] bootscript_id: ID of the target bootscript (set boot_type to bootscript)
62
+ :param pulumi.Input[str] cloud_init: The cloud init script associated with this server
63
+ :param pulumi.Input[bool] enable_dynamic_ip: If true a dynamic IP will be attached to the server.
64
+ :param pulumi.Input[bool] enable_ipv6: Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported.
65
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
66
+ :param pulumi.Input[str] image: The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)
67
+ to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.
68
+
69
+ You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```
70
+
71
+ To retrieve more information by label please use: ```scw marketplace image get label=<LABEL>```
72
+ :param pulumi.Input[str] ip_id: The ID of the reserved IP that is attached to the server.
73
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_ids: List of ID of reserved IPs that are attached to the server. Cannot be used with `ip_id`.
74
+
75
+ > `ip_id` to `ip_ids` migration: if moving the ip from the old `ip_id` field to the new `ip_ids`, it should not detach the ip.
76
+ :param pulumi.Input[str] name: The name of the server.
77
+ :param pulumi.Input[str] placement_group_id: The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group the server is attached to.
78
+
79
+
80
+ > **Important:** When updating `placement_group_id` the `state` must be set to `stopped`, otherwise it will fail.
81
+ :param pulumi.Input[Sequence[pulumi.Input['ServerPrivateNetworkArgs']]] private_networks: The private network associated with the server.
82
+ Use the `pn_id` key to attach a [private_network](https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.
83
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the server is associated with.
84
+ :param pulumi.Input[Sequence[pulumi.Input['ServerPublicIpArgs']]] public_ips: The list of public IPs of the server.
85
+ :param pulumi.Input[bool] replace_on_type_change: If true, the server will be replaced if `type` is changed. Otherwise, the server will migrate.
86
+ :param pulumi.Input['ServerRootVolumeArgs'] root_volume: Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.
87
+ :param pulumi.Input[str] security_group_id: The security group the server is attached to
88
+ :param pulumi.Input[str] state: The state of the server. Possible values are: `started`, `stopped` or `standby`.
89
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the server.
90
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] user_data: The user data associated with the server.
91
+ Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.
92
+ You can define values using:
93
+ - string
94
+ - UTF-8 encoded file content using file
95
+ - Binary files using filebase64.
96
+ :param pulumi.Input[str] zone: `zone`) The zone in which the server should be created.
97
+ """
98
+ pulumi.set(__self__, "type", type)
99
+ if additional_volume_ids is not None:
100
+ pulumi.set(__self__, "additional_volume_ids", additional_volume_ids)
101
+ if boot_type is not None:
102
+ pulumi.set(__self__, "boot_type", boot_type)
103
+ if bootscript_id is not None:
104
+ warnings.warn("""bootscript is not supported anymore.""", DeprecationWarning)
105
+ pulumi.log.warn("""bootscript_id is deprecated: bootscript is not supported anymore.""")
106
+ if bootscript_id is not None:
107
+ pulumi.set(__self__, "bootscript_id", bootscript_id)
108
+ if cloud_init is not None:
109
+ pulumi.set(__self__, "cloud_init", cloud_init)
110
+ if enable_dynamic_ip is not None:
111
+ pulumi.set(__self__, "enable_dynamic_ip", enable_dynamic_ip)
112
+ if enable_ipv6 is not None:
113
+ warnings.warn("""Please use a instance.Ip with a `routed_ipv6` type""", DeprecationWarning)
114
+ pulumi.log.warn("""enable_ipv6 is deprecated: Please use a instance.Ip with a `routed_ipv6` type""")
115
+ if enable_ipv6 is not None:
116
+ pulumi.set(__self__, "enable_ipv6", enable_ipv6)
117
+ if image is not None:
118
+ pulumi.set(__self__, "image", image)
119
+ if ip_id is not None:
120
+ pulumi.set(__self__, "ip_id", ip_id)
121
+ if ip_ids is not None:
122
+ pulumi.set(__self__, "ip_ids", ip_ids)
123
+ if name is not None:
124
+ pulumi.set(__self__, "name", name)
125
+ if placement_group_id is not None:
126
+ pulumi.set(__self__, "placement_group_id", placement_group_id)
127
+ if private_networks is not None:
128
+ pulumi.set(__self__, "private_networks", private_networks)
129
+ if project_id is not None:
130
+ pulumi.set(__self__, "project_id", project_id)
131
+ if public_ips is not None:
132
+ pulumi.set(__self__, "public_ips", public_ips)
133
+ if replace_on_type_change is not None:
134
+ pulumi.set(__self__, "replace_on_type_change", replace_on_type_change)
135
+ if root_volume is not None:
136
+ pulumi.set(__self__, "root_volume", root_volume)
137
+ if security_group_id is not None:
138
+ pulumi.set(__self__, "security_group_id", security_group_id)
139
+ if state is not None:
140
+ pulumi.set(__self__, "state", state)
141
+ if tags is not None:
142
+ pulumi.set(__self__, "tags", tags)
143
+ if user_data is not None:
144
+ pulumi.set(__self__, "user_data", user_data)
145
+ if zone is not None:
146
+ pulumi.set(__self__, "zone", zone)
147
+
148
+ @property
149
+ @pulumi.getter
150
+ def type(self) -> pulumi.Input[str]:
151
+ """
152
+ The commercial type of the server.
153
+ You find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).
154
+ Updates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).
155
+ Use `replace_on_type_change` to trigger replacement instead of migration.
156
+
157
+ > **Important:** If `type` change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.
158
+ """
159
+ return pulumi.get(self, "type")
160
+
161
+ @type.setter
162
+ def type(self, value: pulumi.Input[str]):
163
+ pulumi.set(self, "type", value)
164
+
165
+ @property
166
+ @pulumi.getter(name="additionalVolumeIds")
167
+ def additional_volume_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
168
+ """
169
+ The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)
170
+ attached to the server. Updates to this field will trigger a stop/start of the server.
171
+
172
+ > **Important:** If this field contains local volumes, the `state` must be set to `stopped`, otherwise it will fail.
173
+
174
+ > **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.
175
+ """
176
+ return pulumi.get(self, "additional_volume_ids")
177
+
178
+ @additional_volume_ids.setter
179
+ def additional_volume_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
180
+ pulumi.set(self, "additional_volume_ids", value)
181
+
182
+ @property
183
+ @pulumi.getter(name="bootType")
184
+ def boot_type(self) -> Optional[pulumi.Input[str]]:
185
+ """
186
+ The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
187
+ """
188
+ return pulumi.get(self, "boot_type")
189
+
190
+ @boot_type.setter
191
+ def boot_type(self, value: Optional[pulumi.Input[str]]):
192
+ pulumi.set(self, "boot_type", value)
193
+
194
+ @property
195
+ @pulumi.getter(name="bootscriptId")
196
+ @_utilities.deprecated("""bootscript is not supported anymore.""")
197
+ def bootscript_id(self) -> Optional[pulumi.Input[str]]:
198
+ """
199
+ ID of the target bootscript (set boot_type to bootscript)
200
+ """
201
+ return pulumi.get(self, "bootscript_id")
202
+
203
+ @bootscript_id.setter
204
+ def bootscript_id(self, value: Optional[pulumi.Input[str]]):
205
+ pulumi.set(self, "bootscript_id", value)
206
+
207
+ @property
208
+ @pulumi.getter(name="cloudInit")
209
+ def cloud_init(self) -> Optional[pulumi.Input[str]]:
210
+ """
211
+ The cloud init script associated with this server
212
+ """
213
+ return pulumi.get(self, "cloud_init")
214
+
215
+ @cloud_init.setter
216
+ def cloud_init(self, value: Optional[pulumi.Input[str]]):
217
+ pulumi.set(self, "cloud_init", value)
218
+
219
+ @property
220
+ @pulumi.getter(name="enableDynamicIp")
221
+ def enable_dynamic_ip(self) -> Optional[pulumi.Input[bool]]:
222
+ """
223
+ If true a dynamic IP will be attached to the server.
224
+ """
225
+ return pulumi.get(self, "enable_dynamic_ip")
226
+
227
+ @enable_dynamic_ip.setter
228
+ def enable_dynamic_ip(self, value: Optional[pulumi.Input[bool]]):
229
+ pulumi.set(self, "enable_dynamic_ip", value)
230
+
231
+ @property
232
+ @pulumi.getter(name="enableIpv6")
233
+ @_utilities.deprecated("""Please use a instance.Ip with a `routed_ipv6` type""")
234
+ def enable_ipv6(self) -> Optional[pulumi.Input[bool]]:
235
+ """
236
+ Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported.
237
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
238
+ """
239
+ return pulumi.get(self, "enable_ipv6")
240
+
241
+ @enable_ipv6.setter
242
+ def enable_ipv6(self, value: Optional[pulumi.Input[bool]]):
243
+ pulumi.set(self, "enable_ipv6", value)
244
+
245
+ @property
246
+ @pulumi.getter
247
+ def image(self) -> Optional[pulumi.Input[str]]:
248
+ """
249
+ The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)
250
+ to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.
251
+
252
+ You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```
253
+
254
+ To retrieve more information by label please use: ```scw marketplace image get label=<LABEL>```
255
+ """
256
+ return pulumi.get(self, "image")
257
+
258
+ @image.setter
259
+ def image(self, value: Optional[pulumi.Input[str]]):
260
+ pulumi.set(self, "image", value)
261
+
262
+ @property
263
+ @pulumi.getter(name="ipId")
264
+ def ip_id(self) -> Optional[pulumi.Input[str]]:
265
+ """
266
+ The ID of the reserved IP that is attached to the server.
267
+ """
268
+ return pulumi.get(self, "ip_id")
269
+
270
+ @ip_id.setter
271
+ def ip_id(self, value: Optional[pulumi.Input[str]]):
272
+ pulumi.set(self, "ip_id", value)
273
+
274
+ @property
275
+ @pulumi.getter(name="ipIds")
276
+ def ip_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
277
+ """
278
+ List of ID of reserved IPs that are attached to the server. Cannot be used with `ip_id`.
279
+
280
+ > `ip_id` to `ip_ids` migration: if moving the ip from the old `ip_id` field to the new `ip_ids`, it should not detach the ip.
281
+ """
282
+ return pulumi.get(self, "ip_ids")
283
+
284
+ @ip_ids.setter
285
+ def ip_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
286
+ pulumi.set(self, "ip_ids", value)
287
+
288
+ @property
289
+ @pulumi.getter
290
+ def name(self) -> Optional[pulumi.Input[str]]:
291
+ """
292
+ The name of the server.
293
+ """
294
+ return pulumi.get(self, "name")
295
+
296
+ @name.setter
297
+ def name(self, value: Optional[pulumi.Input[str]]):
298
+ pulumi.set(self, "name", value)
299
+
300
+ @property
301
+ @pulumi.getter(name="placementGroupId")
302
+ def placement_group_id(self) -> Optional[pulumi.Input[str]]:
303
+ """
304
+ The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group the server is attached to.
305
+
306
+
307
+ > **Important:** When updating `placement_group_id` the `state` must be set to `stopped`, otherwise it will fail.
308
+ """
309
+ return pulumi.get(self, "placement_group_id")
310
+
311
+ @placement_group_id.setter
312
+ def placement_group_id(self, value: Optional[pulumi.Input[str]]):
313
+ pulumi.set(self, "placement_group_id", value)
314
+
315
+ @property
316
+ @pulumi.getter(name="privateNetworks")
317
+ def private_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerPrivateNetworkArgs']]]]:
318
+ """
319
+ The private network associated with the server.
320
+ Use the `pn_id` key to attach a [private_network](https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.
321
+ """
322
+ return pulumi.get(self, "private_networks")
323
+
324
+ @private_networks.setter
325
+ def private_networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPrivateNetworkArgs']]]]):
326
+ pulumi.set(self, "private_networks", value)
327
+
328
+ @property
329
+ @pulumi.getter(name="projectId")
330
+ def project_id(self) -> Optional[pulumi.Input[str]]:
331
+ """
332
+ `project_id`) The ID of the project the server is associated with.
333
+ """
334
+ return pulumi.get(self, "project_id")
335
+
336
+ @project_id.setter
337
+ def project_id(self, value: Optional[pulumi.Input[str]]):
338
+ pulumi.set(self, "project_id", value)
339
+
340
+ @property
341
+ @pulumi.getter(name="publicIps")
342
+ def public_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerPublicIpArgs']]]]:
343
+ """
344
+ The list of public IPs of the server.
345
+ """
346
+ return pulumi.get(self, "public_ips")
347
+
348
+ @public_ips.setter
349
+ def public_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPublicIpArgs']]]]):
350
+ pulumi.set(self, "public_ips", value)
351
+
352
+ @property
353
+ @pulumi.getter(name="replaceOnTypeChange")
354
+ def replace_on_type_change(self) -> Optional[pulumi.Input[bool]]:
355
+ """
356
+ If true, the server will be replaced if `type` is changed. Otherwise, the server will migrate.
357
+ """
358
+ return pulumi.get(self, "replace_on_type_change")
359
+
360
+ @replace_on_type_change.setter
361
+ def replace_on_type_change(self, value: Optional[pulumi.Input[bool]]):
362
+ pulumi.set(self, "replace_on_type_change", value)
363
+
364
+ @property
365
+ @pulumi.getter(name="rootVolume")
366
+ def root_volume(self) -> Optional[pulumi.Input['ServerRootVolumeArgs']]:
367
+ """
368
+ Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.
369
+ """
370
+ return pulumi.get(self, "root_volume")
371
+
372
+ @root_volume.setter
373
+ def root_volume(self, value: Optional[pulumi.Input['ServerRootVolumeArgs']]):
374
+ pulumi.set(self, "root_volume", value)
375
+
376
+ @property
377
+ @pulumi.getter(name="securityGroupId")
378
+ def security_group_id(self) -> Optional[pulumi.Input[str]]:
379
+ """
380
+ The security group the server is attached to
381
+ """
382
+ return pulumi.get(self, "security_group_id")
383
+
384
+ @security_group_id.setter
385
+ def security_group_id(self, value: Optional[pulumi.Input[str]]):
386
+ pulumi.set(self, "security_group_id", value)
387
+
388
+ @property
389
+ @pulumi.getter
390
+ def state(self) -> Optional[pulumi.Input[str]]:
391
+ """
392
+ The state of the server. Possible values are: `started`, `stopped` or `standby`.
393
+ """
394
+ return pulumi.get(self, "state")
395
+
396
+ @state.setter
397
+ def state(self, value: Optional[pulumi.Input[str]]):
398
+ pulumi.set(self, "state", value)
399
+
400
+ @property
401
+ @pulumi.getter
402
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
403
+ """
404
+ The tags associated with the server.
405
+ """
406
+ return pulumi.get(self, "tags")
407
+
408
+ @tags.setter
409
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
410
+ pulumi.set(self, "tags", value)
411
+
412
+ @property
413
+ @pulumi.getter(name="userData")
414
+ def user_data(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
415
+ """
416
+ The user data associated with the server.
417
+ Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.
418
+ You can define values using:
419
+ - string
420
+ - UTF-8 encoded file content using file
421
+ - Binary files using filebase64.
422
+ """
423
+ return pulumi.get(self, "user_data")
424
+
425
+ @user_data.setter
426
+ def user_data(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
427
+ pulumi.set(self, "user_data", value)
428
+
429
+ @property
430
+ @pulumi.getter
431
+ def zone(self) -> Optional[pulumi.Input[str]]:
432
+ """
433
+ `zone`) The zone in which the server should be created.
434
+ """
435
+ return pulumi.get(self, "zone")
436
+
437
+ @zone.setter
438
+ def zone(self, value: Optional[pulumi.Input[str]]):
439
+ pulumi.set(self, "zone", value)
440
+
441
+
442
+ @pulumi.input_type
443
+ class _ServerState:
444
+ def __init__(__self__, *,
445
+ additional_volume_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
446
+ boot_type: Optional[pulumi.Input[str]] = None,
447
+ bootscript_id: Optional[pulumi.Input[str]] = None,
448
+ cloud_init: Optional[pulumi.Input[str]] = None,
449
+ enable_dynamic_ip: Optional[pulumi.Input[bool]] = None,
450
+ enable_ipv6: Optional[pulumi.Input[bool]] = None,
451
+ image: Optional[pulumi.Input[str]] = None,
452
+ ip_id: Optional[pulumi.Input[str]] = None,
453
+ ip_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
454
+ ipv6_address: Optional[pulumi.Input[str]] = None,
455
+ ipv6_gateway: Optional[pulumi.Input[str]] = None,
456
+ ipv6_prefix_length: Optional[pulumi.Input[int]] = None,
457
+ name: Optional[pulumi.Input[str]] = None,
458
+ organization_id: Optional[pulumi.Input[str]] = None,
459
+ placement_group_id: Optional[pulumi.Input[str]] = None,
460
+ placement_group_policy_respected: Optional[pulumi.Input[bool]] = None,
461
+ private_ip: Optional[pulumi.Input[str]] = None,
462
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPrivateNetworkArgs']]]] = None,
463
+ project_id: Optional[pulumi.Input[str]] = None,
464
+ public_ip: Optional[pulumi.Input[str]] = None,
465
+ public_ips: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPublicIpArgs']]]] = None,
466
+ replace_on_type_change: Optional[pulumi.Input[bool]] = None,
467
+ root_volume: Optional[pulumi.Input['ServerRootVolumeArgs']] = None,
468
+ security_group_id: Optional[pulumi.Input[str]] = None,
469
+ state: Optional[pulumi.Input[str]] = None,
470
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
471
+ type: Optional[pulumi.Input[str]] = None,
472
+ user_data: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
473
+ zone: Optional[pulumi.Input[str]] = None):
474
+ """
475
+ Input properties used for looking up and filtering Server resources.
476
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] additional_volume_ids: The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)
477
+ attached to the server. Updates to this field will trigger a stop/start of the server.
478
+
479
+ > **Important:** If this field contains local volumes, the `state` must be set to `stopped`, otherwise it will fail.
480
+
481
+ > **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.
482
+ :param pulumi.Input[str] boot_type: The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
483
+ :param pulumi.Input[str] bootscript_id: ID of the target bootscript (set boot_type to bootscript)
484
+ :param pulumi.Input[str] cloud_init: The cloud init script associated with this server
485
+ :param pulumi.Input[bool] enable_dynamic_ip: If true a dynamic IP will be attached to the server.
486
+ :param pulumi.Input[bool] enable_ipv6: Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported.
487
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
488
+ :param pulumi.Input[str] image: The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)
489
+ to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.
490
+
491
+ You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```
492
+
493
+ To retrieve more information by label please use: ```scw marketplace image get label=<LABEL>```
494
+ :param pulumi.Input[str] ip_id: The ID of the reserved IP that is attached to the server.
495
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_ids: List of ID of reserved IPs that are attached to the server. Cannot be used with `ip_id`.
496
+
497
+ > `ip_id` to `ip_ids` migration: if moving the ip from the old `ip_id` field to the new `ip_ids`, it should not detach the ip.
498
+ :param pulumi.Input[str] ipv6_address: The default ipv6 address routed to the server. ( Only set when enable_ipv6 is set to true )
499
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
500
+ :param pulumi.Input[str] ipv6_gateway: The ipv6 gateway address. ( Only set when enable_ipv6 is set to true )
501
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
502
+ :param pulumi.Input[int] ipv6_prefix_length: The prefix length of the ipv6 subnet routed to the server. ( Only set when enable_ipv6 is set to true )
503
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
504
+ :param pulumi.Input[str] name: The name of the server.
505
+ :param pulumi.Input[str] organization_id: The organization ID the server is associated with.
506
+ :param pulumi.Input[str] placement_group_id: The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group the server is attached to.
507
+
508
+
509
+ > **Important:** When updating `placement_group_id` the `state` must be set to `stopped`, otherwise it will fail.
510
+ :param pulumi.Input[bool] placement_group_policy_respected: (Deprecated) Always false, use instance_placement_group ressource to known when the placement group policy is respected.
511
+ :param pulumi.Input[str] private_ip: The Scaleway internal IP address of the server (Deprecated use ipam_ip datasource instead).
512
+ :param pulumi.Input[Sequence[pulumi.Input['ServerPrivateNetworkArgs']]] private_networks: The private network associated with the server.
513
+ Use the `pn_id` key to attach a [private_network](https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.
514
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the server is associated with.
515
+ :param pulumi.Input[str] public_ip: The public IP address of the server (Deprecated use `public_ips` instead).
516
+ :param pulumi.Input[Sequence[pulumi.Input['ServerPublicIpArgs']]] public_ips: The list of public IPs of the server.
517
+ :param pulumi.Input[bool] replace_on_type_change: If true, the server will be replaced if `type` is changed. Otherwise, the server will migrate.
518
+ :param pulumi.Input['ServerRootVolumeArgs'] root_volume: Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.
519
+ :param pulumi.Input[str] security_group_id: The security group the server is attached to
520
+ :param pulumi.Input[str] state: The state of the server. Possible values are: `started`, `stopped` or `standby`.
521
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the server.
522
+ :param pulumi.Input[str] type: The commercial type of the server.
523
+ You find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).
524
+ Updates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).
525
+ Use `replace_on_type_change` to trigger replacement instead of migration.
526
+
527
+ > **Important:** If `type` change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.
528
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] user_data: The user data associated with the server.
529
+ Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.
530
+ You can define values using:
531
+ - string
532
+ - UTF-8 encoded file content using file
533
+ - Binary files using filebase64.
534
+ :param pulumi.Input[str] zone: `zone`) The zone in which the server should be created.
535
+ """
536
+ if additional_volume_ids is not None:
537
+ pulumi.set(__self__, "additional_volume_ids", additional_volume_ids)
538
+ if boot_type is not None:
539
+ pulumi.set(__self__, "boot_type", boot_type)
540
+ if bootscript_id is not None:
541
+ warnings.warn("""bootscript is not supported anymore.""", DeprecationWarning)
542
+ pulumi.log.warn("""bootscript_id is deprecated: bootscript is not supported anymore.""")
543
+ if bootscript_id is not None:
544
+ pulumi.set(__self__, "bootscript_id", bootscript_id)
545
+ if cloud_init is not None:
546
+ pulumi.set(__self__, "cloud_init", cloud_init)
547
+ if enable_dynamic_ip is not None:
548
+ pulumi.set(__self__, "enable_dynamic_ip", enable_dynamic_ip)
549
+ if enable_ipv6 is not None:
550
+ warnings.warn("""Please use a instance.Ip with a `routed_ipv6` type""", DeprecationWarning)
551
+ pulumi.log.warn("""enable_ipv6 is deprecated: Please use a instance.Ip with a `routed_ipv6` type""")
552
+ if enable_ipv6 is not None:
553
+ pulumi.set(__self__, "enable_ipv6", enable_ipv6)
554
+ if image is not None:
555
+ pulumi.set(__self__, "image", image)
556
+ if ip_id is not None:
557
+ pulumi.set(__self__, "ip_id", ip_id)
558
+ if ip_ids is not None:
559
+ pulumi.set(__self__, "ip_ids", ip_ids)
560
+ if ipv6_address is not None:
561
+ warnings.warn("""Please use a instance.Ip with a `routed_ipv6` type""", DeprecationWarning)
562
+ pulumi.log.warn("""ipv6_address is deprecated: Please use a instance.Ip with a `routed_ipv6` type""")
563
+ if ipv6_address is not None:
564
+ pulumi.set(__self__, "ipv6_address", ipv6_address)
565
+ if ipv6_gateway is not None:
566
+ warnings.warn("""Please use a instance.Ip with a `routed_ipv6` type""", DeprecationWarning)
567
+ pulumi.log.warn("""ipv6_gateway is deprecated: Please use a instance.Ip with a `routed_ipv6` type""")
568
+ if ipv6_gateway is not None:
569
+ pulumi.set(__self__, "ipv6_gateway", ipv6_gateway)
570
+ if ipv6_prefix_length is not None:
571
+ warnings.warn("""Please use a instance.Ip with a `routed_ipv6` type""", DeprecationWarning)
572
+ pulumi.log.warn("""ipv6_prefix_length is deprecated: Please use a instance.Ip with a `routed_ipv6` type""")
573
+ if ipv6_prefix_length is not None:
574
+ pulumi.set(__self__, "ipv6_prefix_length", ipv6_prefix_length)
575
+ if name is not None:
576
+ pulumi.set(__self__, "name", name)
577
+ if organization_id is not None:
578
+ pulumi.set(__self__, "organization_id", organization_id)
579
+ if placement_group_id is not None:
580
+ pulumi.set(__self__, "placement_group_id", placement_group_id)
581
+ if placement_group_policy_respected is not None:
582
+ pulumi.set(__self__, "placement_group_policy_respected", placement_group_policy_respected)
583
+ if private_ip is not None:
584
+ warnings.warn("""Use ipam_ip datasource instead to fetch your server's IP in your private network.""", DeprecationWarning)
585
+ pulumi.log.warn("""private_ip is deprecated: Use ipam_ip datasource instead to fetch your server's IP in your private network.""")
586
+ if private_ip is not None:
587
+ pulumi.set(__self__, "private_ip", private_ip)
588
+ if private_networks is not None:
589
+ pulumi.set(__self__, "private_networks", private_networks)
590
+ if project_id is not None:
591
+ pulumi.set(__self__, "project_id", project_id)
592
+ if public_ip is not None:
593
+ warnings.warn("""Use public_ips instead""", DeprecationWarning)
594
+ pulumi.log.warn("""public_ip is deprecated: Use public_ips instead""")
595
+ if public_ip is not None:
596
+ pulumi.set(__self__, "public_ip", public_ip)
597
+ if public_ips is not None:
598
+ pulumi.set(__self__, "public_ips", public_ips)
599
+ if replace_on_type_change is not None:
600
+ pulumi.set(__self__, "replace_on_type_change", replace_on_type_change)
601
+ if root_volume is not None:
602
+ pulumi.set(__self__, "root_volume", root_volume)
603
+ if security_group_id is not None:
604
+ pulumi.set(__self__, "security_group_id", security_group_id)
605
+ if state is not None:
606
+ pulumi.set(__self__, "state", state)
607
+ if tags is not None:
608
+ pulumi.set(__self__, "tags", tags)
609
+ if type is not None:
610
+ pulumi.set(__self__, "type", type)
611
+ if user_data is not None:
612
+ pulumi.set(__self__, "user_data", user_data)
613
+ if zone is not None:
614
+ pulumi.set(__self__, "zone", zone)
615
+
616
+ @property
617
+ @pulumi.getter(name="additionalVolumeIds")
618
+ def additional_volume_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
619
+ """
620
+ The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)
621
+ attached to the server. Updates to this field will trigger a stop/start of the server.
622
+
623
+ > **Important:** If this field contains local volumes, the `state` must be set to `stopped`, otherwise it will fail.
624
+
625
+ > **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.
626
+ """
627
+ return pulumi.get(self, "additional_volume_ids")
628
+
629
+ @additional_volume_ids.setter
630
+ def additional_volume_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
631
+ pulumi.set(self, "additional_volume_ids", value)
632
+
633
+ @property
634
+ @pulumi.getter(name="bootType")
635
+ def boot_type(self) -> Optional[pulumi.Input[str]]:
636
+ """
637
+ The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
638
+ """
639
+ return pulumi.get(self, "boot_type")
640
+
641
+ @boot_type.setter
642
+ def boot_type(self, value: Optional[pulumi.Input[str]]):
643
+ pulumi.set(self, "boot_type", value)
644
+
645
+ @property
646
+ @pulumi.getter(name="bootscriptId")
647
+ @_utilities.deprecated("""bootscript is not supported anymore.""")
648
+ def bootscript_id(self) -> Optional[pulumi.Input[str]]:
649
+ """
650
+ ID of the target bootscript (set boot_type to bootscript)
651
+ """
652
+ return pulumi.get(self, "bootscript_id")
653
+
654
+ @bootscript_id.setter
655
+ def bootscript_id(self, value: Optional[pulumi.Input[str]]):
656
+ pulumi.set(self, "bootscript_id", value)
657
+
658
+ @property
659
+ @pulumi.getter(name="cloudInit")
660
+ def cloud_init(self) -> Optional[pulumi.Input[str]]:
661
+ """
662
+ The cloud init script associated with this server
663
+ """
664
+ return pulumi.get(self, "cloud_init")
665
+
666
+ @cloud_init.setter
667
+ def cloud_init(self, value: Optional[pulumi.Input[str]]):
668
+ pulumi.set(self, "cloud_init", value)
669
+
670
+ @property
671
+ @pulumi.getter(name="enableDynamicIp")
672
+ def enable_dynamic_ip(self) -> Optional[pulumi.Input[bool]]:
673
+ """
674
+ If true a dynamic IP will be attached to the server.
675
+ """
676
+ return pulumi.get(self, "enable_dynamic_ip")
677
+
678
+ @enable_dynamic_ip.setter
679
+ def enable_dynamic_ip(self, value: Optional[pulumi.Input[bool]]):
680
+ pulumi.set(self, "enable_dynamic_ip", value)
681
+
682
+ @property
683
+ @pulumi.getter(name="enableIpv6")
684
+ @_utilities.deprecated("""Please use a instance.Ip with a `routed_ipv6` type""")
685
+ def enable_ipv6(self) -> Optional[pulumi.Input[bool]]:
686
+ """
687
+ Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported.
688
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
689
+ """
690
+ return pulumi.get(self, "enable_ipv6")
691
+
692
+ @enable_ipv6.setter
693
+ def enable_ipv6(self, value: Optional[pulumi.Input[bool]]):
694
+ pulumi.set(self, "enable_ipv6", value)
695
+
696
+ @property
697
+ @pulumi.getter
698
+ def image(self) -> Optional[pulumi.Input[str]]:
699
+ """
700
+ The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)
701
+ to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.
702
+
703
+ You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```
704
+
705
+ To retrieve more information by label please use: ```scw marketplace image get label=<LABEL>```
706
+ """
707
+ return pulumi.get(self, "image")
708
+
709
+ @image.setter
710
+ def image(self, value: Optional[pulumi.Input[str]]):
711
+ pulumi.set(self, "image", value)
712
+
713
+ @property
714
+ @pulumi.getter(name="ipId")
715
+ def ip_id(self) -> Optional[pulumi.Input[str]]:
716
+ """
717
+ The ID of the reserved IP that is attached to the server.
718
+ """
719
+ return pulumi.get(self, "ip_id")
720
+
721
+ @ip_id.setter
722
+ def ip_id(self, value: Optional[pulumi.Input[str]]):
723
+ pulumi.set(self, "ip_id", value)
724
+
725
+ @property
726
+ @pulumi.getter(name="ipIds")
727
+ def ip_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
728
+ """
729
+ List of ID of reserved IPs that are attached to the server. Cannot be used with `ip_id`.
730
+
731
+ > `ip_id` to `ip_ids` migration: if moving the ip from the old `ip_id` field to the new `ip_ids`, it should not detach the ip.
732
+ """
733
+ return pulumi.get(self, "ip_ids")
734
+
735
+ @ip_ids.setter
736
+ def ip_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
737
+ pulumi.set(self, "ip_ids", value)
738
+
739
+ @property
740
+ @pulumi.getter(name="ipv6Address")
741
+ @_utilities.deprecated("""Please use a instance.Ip with a `routed_ipv6` type""")
742
+ def ipv6_address(self) -> Optional[pulumi.Input[str]]:
743
+ """
744
+ The default ipv6 address routed to the server. ( Only set when enable_ipv6 is set to true )
745
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
746
+ """
747
+ return pulumi.get(self, "ipv6_address")
748
+
749
+ @ipv6_address.setter
750
+ def ipv6_address(self, value: Optional[pulumi.Input[str]]):
751
+ pulumi.set(self, "ipv6_address", value)
752
+
753
+ @property
754
+ @pulumi.getter(name="ipv6Gateway")
755
+ @_utilities.deprecated("""Please use a instance.Ip with a `routed_ipv6` type""")
756
+ def ipv6_gateway(self) -> Optional[pulumi.Input[str]]:
757
+ """
758
+ The ipv6 gateway address. ( Only set when enable_ipv6 is set to true )
759
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
760
+ """
761
+ return pulumi.get(self, "ipv6_gateway")
762
+
763
+ @ipv6_gateway.setter
764
+ def ipv6_gateway(self, value: Optional[pulumi.Input[str]]):
765
+ pulumi.set(self, "ipv6_gateway", value)
766
+
767
+ @property
768
+ @pulumi.getter(name="ipv6PrefixLength")
769
+ @_utilities.deprecated("""Please use a instance.Ip with a `routed_ipv6` type""")
770
+ def ipv6_prefix_length(self) -> Optional[pulumi.Input[int]]:
771
+ """
772
+ The prefix length of the ipv6 subnet routed to the server. ( Only set when enable_ipv6 is set to true )
773
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
774
+ """
775
+ return pulumi.get(self, "ipv6_prefix_length")
776
+
777
+ @ipv6_prefix_length.setter
778
+ def ipv6_prefix_length(self, value: Optional[pulumi.Input[int]]):
779
+ pulumi.set(self, "ipv6_prefix_length", value)
780
+
781
+ @property
782
+ @pulumi.getter
783
+ def name(self) -> Optional[pulumi.Input[str]]:
784
+ """
785
+ The name of the server.
786
+ """
787
+ return pulumi.get(self, "name")
788
+
789
+ @name.setter
790
+ def name(self, value: Optional[pulumi.Input[str]]):
791
+ pulumi.set(self, "name", value)
792
+
793
+ @property
794
+ @pulumi.getter(name="organizationId")
795
+ def organization_id(self) -> Optional[pulumi.Input[str]]:
796
+ """
797
+ The organization ID the server is associated with.
798
+ """
799
+ return pulumi.get(self, "organization_id")
800
+
801
+ @organization_id.setter
802
+ def organization_id(self, value: Optional[pulumi.Input[str]]):
803
+ pulumi.set(self, "organization_id", value)
804
+
805
+ @property
806
+ @pulumi.getter(name="placementGroupId")
807
+ def placement_group_id(self) -> Optional[pulumi.Input[str]]:
808
+ """
809
+ The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group the server is attached to.
810
+
811
+
812
+ > **Important:** When updating `placement_group_id` the `state` must be set to `stopped`, otherwise it will fail.
813
+ """
814
+ return pulumi.get(self, "placement_group_id")
815
+
816
+ @placement_group_id.setter
817
+ def placement_group_id(self, value: Optional[pulumi.Input[str]]):
818
+ pulumi.set(self, "placement_group_id", value)
819
+
820
+ @property
821
+ @pulumi.getter(name="placementGroupPolicyRespected")
822
+ def placement_group_policy_respected(self) -> Optional[pulumi.Input[bool]]:
823
+ """
824
+ (Deprecated) Always false, use instance_placement_group ressource to known when the placement group policy is respected.
825
+ """
826
+ return pulumi.get(self, "placement_group_policy_respected")
827
+
828
+ @placement_group_policy_respected.setter
829
+ def placement_group_policy_respected(self, value: Optional[pulumi.Input[bool]]):
830
+ pulumi.set(self, "placement_group_policy_respected", value)
831
+
832
+ @property
833
+ @pulumi.getter(name="privateIp")
834
+ @_utilities.deprecated("""Use ipam_ip datasource instead to fetch your server's IP in your private network.""")
835
+ def private_ip(self) -> Optional[pulumi.Input[str]]:
836
+ """
837
+ The Scaleway internal IP address of the server (Deprecated use ipam_ip datasource instead).
838
+ """
839
+ return pulumi.get(self, "private_ip")
840
+
841
+ @private_ip.setter
842
+ def private_ip(self, value: Optional[pulumi.Input[str]]):
843
+ pulumi.set(self, "private_ip", value)
844
+
845
+ @property
846
+ @pulumi.getter(name="privateNetworks")
847
+ def private_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerPrivateNetworkArgs']]]]:
848
+ """
849
+ The private network associated with the server.
850
+ Use the `pn_id` key to attach a [private_network](https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.
851
+ """
852
+ return pulumi.get(self, "private_networks")
853
+
854
+ @private_networks.setter
855
+ def private_networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPrivateNetworkArgs']]]]):
856
+ pulumi.set(self, "private_networks", value)
857
+
858
+ @property
859
+ @pulumi.getter(name="projectId")
860
+ def project_id(self) -> Optional[pulumi.Input[str]]:
861
+ """
862
+ `project_id`) The ID of the project the server is associated with.
863
+ """
864
+ return pulumi.get(self, "project_id")
865
+
866
+ @project_id.setter
867
+ def project_id(self, value: Optional[pulumi.Input[str]]):
868
+ pulumi.set(self, "project_id", value)
869
+
870
+ @property
871
+ @pulumi.getter(name="publicIp")
872
+ @_utilities.deprecated("""Use public_ips instead""")
873
+ def public_ip(self) -> Optional[pulumi.Input[str]]:
874
+ """
875
+ The public IP address of the server (Deprecated use `public_ips` instead).
876
+ """
877
+ return pulumi.get(self, "public_ip")
878
+
879
+ @public_ip.setter
880
+ def public_ip(self, value: Optional[pulumi.Input[str]]):
881
+ pulumi.set(self, "public_ip", value)
882
+
883
+ @property
884
+ @pulumi.getter(name="publicIps")
885
+ def public_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerPublicIpArgs']]]]:
886
+ """
887
+ The list of public IPs of the server.
888
+ """
889
+ return pulumi.get(self, "public_ips")
890
+
891
+ @public_ips.setter
892
+ def public_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPublicIpArgs']]]]):
893
+ pulumi.set(self, "public_ips", value)
894
+
895
+ @property
896
+ @pulumi.getter(name="replaceOnTypeChange")
897
+ def replace_on_type_change(self) -> Optional[pulumi.Input[bool]]:
898
+ """
899
+ If true, the server will be replaced if `type` is changed. Otherwise, the server will migrate.
900
+ """
901
+ return pulumi.get(self, "replace_on_type_change")
902
+
903
+ @replace_on_type_change.setter
904
+ def replace_on_type_change(self, value: Optional[pulumi.Input[bool]]):
905
+ pulumi.set(self, "replace_on_type_change", value)
906
+
907
+ @property
908
+ @pulumi.getter(name="rootVolume")
909
+ def root_volume(self) -> Optional[pulumi.Input['ServerRootVolumeArgs']]:
910
+ """
911
+ Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.
912
+ """
913
+ return pulumi.get(self, "root_volume")
914
+
915
+ @root_volume.setter
916
+ def root_volume(self, value: Optional[pulumi.Input['ServerRootVolumeArgs']]):
917
+ pulumi.set(self, "root_volume", value)
918
+
919
+ @property
920
+ @pulumi.getter(name="securityGroupId")
921
+ def security_group_id(self) -> Optional[pulumi.Input[str]]:
922
+ """
923
+ The security group the server is attached to
924
+ """
925
+ return pulumi.get(self, "security_group_id")
926
+
927
+ @security_group_id.setter
928
+ def security_group_id(self, value: Optional[pulumi.Input[str]]):
929
+ pulumi.set(self, "security_group_id", value)
930
+
931
+ @property
932
+ @pulumi.getter
933
+ def state(self) -> Optional[pulumi.Input[str]]:
934
+ """
935
+ The state of the server. Possible values are: `started`, `stopped` or `standby`.
936
+ """
937
+ return pulumi.get(self, "state")
938
+
939
+ @state.setter
940
+ def state(self, value: Optional[pulumi.Input[str]]):
941
+ pulumi.set(self, "state", value)
942
+
943
+ @property
944
+ @pulumi.getter
945
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
946
+ """
947
+ The tags associated with the server.
948
+ """
949
+ return pulumi.get(self, "tags")
950
+
951
+ @tags.setter
952
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
953
+ pulumi.set(self, "tags", value)
954
+
955
+ @property
956
+ @pulumi.getter
957
+ def type(self) -> Optional[pulumi.Input[str]]:
958
+ """
959
+ The commercial type of the server.
960
+ You find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).
961
+ Updates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).
962
+ Use `replace_on_type_change` to trigger replacement instead of migration.
963
+
964
+ > **Important:** If `type` change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.
965
+ """
966
+ return pulumi.get(self, "type")
967
+
968
+ @type.setter
969
+ def type(self, value: Optional[pulumi.Input[str]]):
970
+ pulumi.set(self, "type", value)
971
+
972
+ @property
973
+ @pulumi.getter(name="userData")
974
+ def user_data(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
975
+ """
976
+ The user data associated with the server.
977
+ Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.
978
+ You can define values using:
979
+ - string
980
+ - UTF-8 encoded file content using file
981
+ - Binary files using filebase64.
982
+ """
983
+ return pulumi.get(self, "user_data")
984
+
985
+ @user_data.setter
986
+ def user_data(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
987
+ pulumi.set(self, "user_data", value)
988
+
989
+ @property
990
+ @pulumi.getter
991
+ def zone(self) -> Optional[pulumi.Input[str]]:
992
+ """
993
+ `zone`) The zone in which the server should be created.
994
+ """
995
+ return pulumi.get(self, "zone")
996
+
997
+ @zone.setter
998
+ def zone(self, value: Optional[pulumi.Input[str]]):
999
+ pulumi.set(self, "zone", value)
1000
+
1001
+
1002
+ class Server(pulumi.CustomResource):
1003
+ @overload
1004
+ def __init__(__self__,
1005
+ resource_name: str,
1006
+ opts: Optional[pulumi.ResourceOptions] = None,
1007
+ additional_volume_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1008
+ boot_type: Optional[pulumi.Input[str]] = None,
1009
+ bootscript_id: Optional[pulumi.Input[str]] = None,
1010
+ cloud_init: Optional[pulumi.Input[str]] = None,
1011
+ enable_dynamic_ip: Optional[pulumi.Input[bool]] = None,
1012
+ enable_ipv6: Optional[pulumi.Input[bool]] = None,
1013
+ image: Optional[pulumi.Input[str]] = None,
1014
+ ip_id: Optional[pulumi.Input[str]] = None,
1015
+ ip_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1016
+ name: Optional[pulumi.Input[str]] = None,
1017
+ placement_group_id: Optional[pulumi.Input[str]] = None,
1018
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPrivateNetworkArgs', 'ServerPrivateNetworkArgsDict']]]]] = None,
1019
+ project_id: Optional[pulumi.Input[str]] = None,
1020
+ public_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPublicIpArgs', 'ServerPublicIpArgsDict']]]]] = None,
1021
+ replace_on_type_change: Optional[pulumi.Input[bool]] = None,
1022
+ root_volume: Optional[pulumi.Input[Union['ServerRootVolumeArgs', 'ServerRootVolumeArgsDict']]] = None,
1023
+ security_group_id: Optional[pulumi.Input[str]] = None,
1024
+ state: Optional[pulumi.Input[str]] = None,
1025
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1026
+ type: Optional[pulumi.Input[str]] = None,
1027
+ user_data: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1028
+ zone: Optional[pulumi.Input[str]] = None,
1029
+ __props__=None):
1030
+ """
1031
+ Creates and manages Scaleway compute Instances. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-instances-list-all-instances).
1032
+
1033
+ Please check our [FAQ - Instances](https://www.scaleway.com/en/docs/faq/instances).
1034
+
1035
+ ## Example Usage
1036
+
1037
+ ### Basic
1038
+
1039
+ ```python
1040
+ import pulumi
1041
+ import pulumiverse_scaleway as scaleway
1042
+
1043
+ public_ip = scaleway.instance.Ip("public_ip")
1044
+ web = scaleway.instance.Server("web",
1045
+ type="DEV1-S",
1046
+ image="ubuntu_jammy",
1047
+ ip_id=public_ip.id)
1048
+ ```
1049
+
1050
+ ### With additional volumes and tags
1051
+
1052
+ ```python
1053
+ import pulumi
1054
+ import pulumiverse_scaleway as scaleway
1055
+
1056
+ data = scaleway.block.Volume("data",
1057
+ size_in_gb=100,
1058
+ iops=5000)
1059
+ web = scaleway.instance.Server("web",
1060
+ type="DEV1-S",
1061
+ image="ubuntu_jammy",
1062
+ tags=[
1063
+ "hello",
1064
+ "public",
1065
+ ],
1066
+ root_volume={
1067
+ "delete_on_termination": False,
1068
+ },
1069
+ additional_volume_ids=[data.id])
1070
+ ```
1071
+
1072
+ ### With a reserved IP
1073
+
1074
+ ```python
1075
+ import pulumi
1076
+ import pulumiverse_scaleway as scaleway
1077
+
1078
+ ip = scaleway.instance.Ip("ip")
1079
+ web = scaleway.instance.Server("web",
1080
+ type="DEV1-S",
1081
+ image="f974feac-abae-4365-b988-8ec7d1cec10d",
1082
+ tags=[
1083
+ "hello",
1084
+ "public",
1085
+ ],
1086
+ ip_id=ip.id)
1087
+ ```
1088
+
1089
+ ### With security group
1090
+
1091
+ ```python
1092
+ import pulumi
1093
+ import pulumiverse_scaleway as scaleway
1094
+
1095
+ www = scaleway.instance.SecurityGroup("www",
1096
+ inbound_default_policy="drop",
1097
+ outbound_default_policy="accept",
1098
+ inbound_rules=[
1099
+ {
1100
+ "action": "accept",
1101
+ "port": 22,
1102
+ "ip": "212.47.225.64",
1103
+ },
1104
+ {
1105
+ "action": "accept",
1106
+ "port": 80,
1107
+ },
1108
+ {
1109
+ "action": "accept",
1110
+ "port": 443,
1111
+ },
1112
+ ],
1113
+ outbound_rules=[{
1114
+ "action": "drop",
1115
+ "ip_range": "10.20.0.0/24",
1116
+ }])
1117
+ web = scaleway.instance.Server("web",
1118
+ type="DEV1-S",
1119
+ image="ubuntu_jammy",
1120
+ security_group_id=www.id)
1121
+ ```
1122
+
1123
+ ### With private network
1124
+
1125
+ ```python
1126
+ import pulumi
1127
+ import pulumiverse_scaleway as scaleway
1128
+
1129
+ pn01 = scaleway.network.PrivateNetwork("pn01", name="private_network_instance")
1130
+ base = scaleway.instance.Server("base",
1131
+ image="ubuntu_jammy",
1132
+ type="DEV1-S",
1133
+ private_networks=[{
1134
+ "pn_id": pn01.id,
1135
+ }])
1136
+ ```
1137
+
1138
+ ### Root volume configuration
1139
+
1140
+ ### Resized block volume with installed image
1141
+
1142
+ ```python
1143
+ import pulumi
1144
+ import pulumiverse_scaleway as scaleway
1145
+
1146
+ image = scaleway.instance.Server("image",
1147
+ type="PRO2-XXS",
1148
+ image="ubuntu_jammy",
1149
+ root_volume={
1150
+ "size_in_gb": 100,
1151
+ })
1152
+ ```
1153
+
1154
+ ### From snapshot
1155
+
1156
+ ```python
1157
+ import pulumi
1158
+ import pulumi_scaleway as scaleway
1159
+ import pulumiverse_scaleway as scaleway
1160
+
1161
+ snapshot = scaleway.block.get_snapshot(name="my_snapshot")
1162
+ from_snapshot = scaleway.block.Volume("from_snapshot",
1163
+ snapshot_id=snapshot.id,
1164
+ iops=5000)
1165
+ from_snapshot_server = scaleway.instance.Server("from_snapshot",
1166
+ type="PRO2-XXS",
1167
+ root_volume={
1168
+ "volume_id": from_snapshot.id,
1169
+ "volume_type": "sbs_volume",
1170
+ })
1171
+ ```
1172
+
1173
+ ### Using Scaleway Block Storage (SBS) volume
1174
+
1175
+ ```python
1176
+ import pulumi
1177
+ import pulumiverse_scaleway as scaleway
1178
+
1179
+ server = scaleway.instance.Server("server",
1180
+ type="PLAY2-MICRO",
1181
+ image="ubuntu_jammy",
1182
+ root_volume={
1183
+ "volume_type": "sbs_volume",
1184
+ "sbs_iops": 15000,
1185
+ "size_in_gb": 50,
1186
+ })
1187
+ ```
1188
+
1189
+ ## Private Network
1190
+
1191
+ > **Important:** Updates to `private_network` will recreate a new private network interface.
1192
+
1193
+ - `pn_id` - (Required) The private network ID where to connect.
1194
+ - `mac_address` The private NIC MAC address.
1195
+ - `status` The private NIC state.
1196
+ - `zone` - (Defaults to provider `zone`) The zone in which the server must be created.
1197
+
1198
+ > **Important:** You can only attach an instance in the same zone as a private network.
1199
+ **Important:** Instance supports a maximum of 8 different private networks.
1200
+
1201
+ ## Import
1202
+
1203
+ Instance servers can be imported using the `{zone}/{id}`, e.g.
1204
+
1205
+ bash
1206
+
1207
+ ```sh
1208
+ $ pulumi import scaleway:instance/server:Server web fr-par-1/11111111-1111-1111-1111-111111111111
1209
+ ```
1210
+
1211
+ :param str resource_name: The name of the resource.
1212
+ :param pulumi.ResourceOptions opts: Options for the resource.
1213
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] additional_volume_ids: The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)
1214
+ attached to the server. Updates to this field will trigger a stop/start of the server.
1215
+
1216
+ > **Important:** If this field contains local volumes, the `state` must be set to `stopped`, otherwise it will fail.
1217
+
1218
+ > **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.
1219
+ :param pulumi.Input[str] boot_type: The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
1220
+ :param pulumi.Input[str] bootscript_id: ID of the target bootscript (set boot_type to bootscript)
1221
+ :param pulumi.Input[str] cloud_init: The cloud init script associated with this server
1222
+ :param pulumi.Input[bool] enable_dynamic_ip: If true a dynamic IP will be attached to the server.
1223
+ :param pulumi.Input[bool] enable_ipv6: Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported.
1224
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
1225
+ :param pulumi.Input[str] image: The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)
1226
+ to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.
1227
+
1228
+ You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```
1229
+
1230
+ To retrieve more information by label please use: ```scw marketplace image get label=<LABEL>```
1231
+ :param pulumi.Input[str] ip_id: The ID of the reserved IP that is attached to the server.
1232
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_ids: List of ID of reserved IPs that are attached to the server. Cannot be used with `ip_id`.
1233
+
1234
+ > `ip_id` to `ip_ids` migration: if moving the ip from the old `ip_id` field to the new `ip_ids`, it should not detach the ip.
1235
+ :param pulumi.Input[str] name: The name of the server.
1236
+ :param pulumi.Input[str] placement_group_id: The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group the server is attached to.
1237
+
1238
+
1239
+ > **Important:** When updating `placement_group_id` the `state` must be set to `stopped`, otherwise it will fail.
1240
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ServerPrivateNetworkArgs', 'ServerPrivateNetworkArgsDict']]]] private_networks: The private network associated with the server.
1241
+ Use the `pn_id` key to attach a [private_network](https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.
1242
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the server is associated with.
1243
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ServerPublicIpArgs', 'ServerPublicIpArgsDict']]]] public_ips: The list of public IPs of the server.
1244
+ :param pulumi.Input[bool] replace_on_type_change: If true, the server will be replaced if `type` is changed. Otherwise, the server will migrate.
1245
+ :param pulumi.Input[Union['ServerRootVolumeArgs', 'ServerRootVolumeArgsDict']] root_volume: Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.
1246
+ :param pulumi.Input[str] security_group_id: The security group the server is attached to
1247
+ :param pulumi.Input[str] state: The state of the server. Possible values are: `started`, `stopped` or `standby`.
1248
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the server.
1249
+ :param pulumi.Input[str] type: The commercial type of the server.
1250
+ You find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).
1251
+ Updates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).
1252
+ Use `replace_on_type_change` to trigger replacement instead of migration.
1253
+
1254
+ > **Important:** If `type` change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.
1255
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] user_data: The user data associated with the server.
1256
+ Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.
1257
+ You can define values using:
1258
+ - string
1259
+ - UTF-8 encoded file content using file
1260
+ - Binary files using filebase64.
1261
+ :param pulumi.Input[str] zone: `zone`) The zone in which the server should be created.
1262
+ """
1263
+ ...
1264
+ @overload
1265
+ def __init__(__self__,
1266
+ resource_name: str,
1267
+ args: ServerArgs,
1268
+ opts: Optional[pulumi.ResourceOptions] = None):
1269
+ """
1270
+ Creates and manages Scaleway compute Instances. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-instances-list-all-instances).
1271
+
1272
+ Please check our [FAQ - Instances](https://www.scaleway.com/en/docs/faq/instances).
1273
+
1274
+ ## Example Usage
1275
+
1276
+ ### Basic
1277
+
1278
+ ```python
1279
+ import pulumi
1280
+ import pulumiverse_scaleway as scaleway
1281
+
1282
+ public_ip = scaleway.instance.Ip("public_ip")
1283
+ web = scaleway.instance.Server("web",
1284
+ type="DEV1-S",
1285
+ image="ubuntu_jammy",
1286
+ ip_id=public_ip.id)
1287
+ ```
1288
+
1289
+ ### With additional volumes and tags
1290
+
1291
+ ```python
1292
+ import pulumi
1293
+ import pulumiverse_scaleway as scaleway
1294
+
1295
+ data = scaleway.block.Volume("data",
1296
+ size_in_gb=100,
1297
+ iops=5000)
1298
+ web = scaleway.instance.Server("web",
1299
+ type="DEV1-S",
1300
+ image="ubuntu_jammy",
1301
+ tags=[
1302
+ "hello",
1303
+ "public",
1304
+ ],
1305
+ root_volume={
1306
+ "delete_on_termination": False,
1307
+ },
1308
+ additional_volume_ids=[data.id])
1309
+ ```
1310
+
1311
+ ### With a reserved IP
1312
+
1313
+ ```python
1314
+ import pulumi
1315
+ import pulumiverse_scaleway as scaleway
1316
+
1317
+ ip = scaleway.instance.Ip("ip")
1318
+ web = scaleway.instance.Server("web",
1319
+ type="DEV1-S",
1320
+ image="f974feac-abae-4365-b988-8ec7d1cec10d",
1321
+ tags=[
1322
+ "hello",
1323
+ "public",
1324
+ ],
1325
+ ip_id=ip.id)
1326
+ ```
1327
+
1328
+ ### With security group
1329
+
1330
+ ```python
1331
+ import pulumi
1332
+ import pulumiverse_scaleway as scaleway
1333
+
1334
+ www = scaleway.instance.SecurityGroup("www",
1335
+ inbound_default_policy="drop",
1336
+ outbound_default_policy="accept",
1337
+ inbound_rules=[
1338
+ {
1339
+ "action": "accept",
1340
+ "port": 22,
1341
+ "ip": "212.47.225.64",
1342
+ },
1343
+ {
1344
+ "action": "accept",
1345
+ "port": 80,
1346
+ },
1347
+ {
1348
+ "action": "accept",
1349
+ "port": 443,
1350
+ },
1351
+ ],
1352
+ outbound_rules=[{
1353
+ "action": "drop",
1354
+ "ip_range": "10.20.0.0/24",
1355
+ }])
1356
+ web = scaleway.instance.Server("web",
1357
+ type="DEV1-S",
1358
+ image="ubuntu_jammy",
1359
+ security_group_id=www.id)
1360
+ ```
1361
+
1362
+ ### With private network
1363
+
1364
+ ```python
1365
+ import pulumi
1366
+ import pulumiverse_scaleway as scaleway
1367
+
1368
+ pn01 = scaleway.network.PrivateNetwork("pn01", name="private_network_instance")
1369
+ base = scaleway.instance.Server("base",
1370
+ image="ubuntu_jammy",
1371
+ type="DEV1-S",
1372
+ private_networks=[{
1373
+ "pn_id": pn01.id,
1374
+ }])
1375
+ ```
1376
+
1377
+ ### Root volume configuration
1378
+
1379
+ ### Resized block volume with installed image
1380
+
1381
+ ```python
1382
+ import pulumi
1383
+ import pulumiverse_scaleway as scaleway
1384
+
1385
+ image = scaleway.instance.Server("image",
1386
+ type="PRO2-XXS",
1387
+ image="ubuntu_jammy",
1388
+ root_volume={
1389
+ "size_in_gb": 100,
1390
+ })
1391
+ ```
1392
+
1393
+ ### From snapshot
1394
+
1395
+ ```python
1396
+ import pulumi
1397
+ import pulumi_scaleway as scaleway
1398
+ import pulumiverse_scaleway as scaleway
1399
+
1400
+ snapshot = scaleway.block.get_snapshot(name="my_snapshot")
1401
+ from_snapshot = scaleway.block.Volume("from_snapshot",
1402
+ snapshot_id=snapshot.id,
1403
+ iops=5000)
1404
+ from_snapshot_server = scaleway.instance.Server("from_snapshot",
1405
+ type="PRO2-XXS",
1406
+ root_volume={
1407
+ "volume_id": from_snapshot.id,
1408
+ "volume_type": "sbs_volume",
1409
+ })
1410
+ ```
1411
+
1412
+ ### Using Scaleway Block Storage (SBS) volume
1413
+
1414
+ ```python
1415
+ import pulumi
1416
+ import pulumiverse_scaleway as scaleway
1417
+
1418
+ server = scaleway.instance.Server("server",
1419
+ type="PLAY2-MICRO",
1420
+ image="ubuntu_jammy",
1421
+ root_volume={
1422
+ "volume_type": "sbs_volume",
1423
+ "sbs_iops": 15000,
1424
+ "size_in_gb": 50,
1425
+ })
1426
+ ```
1427
+
1428
+ ## Private Network
1429
+
1430
+ > **Important:** Updates to `private_network` will recreate a new private network interface.
1431
+
1432
+ - `pn_id` - (Required) The private network ID where to connect.
1433
+ - `mac_address` The private NIC MAC address.
1434
+ - `status` The private NIC state.
1435
+ - `zone` - (Defaults to provider `zone`) The zone in which the server must be created.
1436
+
1437
+ > **Important:** You can only attach an instance in the same zone as a private network.
1438
+ **Important:** Instance supports a maximum of 8 different private networks.
1439
+
1440
+ ## Import
1441
+
1442
+ Instance servers can be imported using the `{zone}/{id}`, e.g.
1443
+
1444
+ bash
1445
+
1446
+ ```sh
1447
+ $ pulumi import scaleway:instance/server:Server web fr-par-1/11111111-1111-1111-1111-111111111111
1448
+ ```
1449
+
1450
+ :param str resource_name: The name of the resource.
1451
+ :param ServerArgs args: The arguments to use to populate this resource's properties.
1452
+ :param pulumi.ResourceOptions opts: Options for the resource.
1453
+ """
1454
+ ...
1455
+ def __init__(__self__, resource_name: str, *args, **kwargs):
1456
+ resource_args, opts = _utilities.get_resource_args_opts(ServerArgs, pulumi.ResourceOptions, *args, **kwargs)
1457
+ if resource_args is not None:
1458
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
1459
+ else:
1460
+ __self__._internal_init(resource_name, *args, **kwargs)
1461
+
1462
+ def _internal_init(__self__,
1463
+ resource_name: str,
1464
+ opts: Optional[pulumi.ResourceOptions] = None,
1465
+ additional_volume_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1466
+ boot_type: Optional[pulumi.Input[str]] = None,
1467
+ bootscript_id: Optional[pulumi.Input[str]] = None,
1468
+ cloud_init: Optional[pulumi.Input[str]] = None,
1469
+ enable_dynamic_ip: Optional[pulumi.Input[bool]] = None,
1470
+ enable_ipv6: Optional[pulumi.Input[bool]] = None,
1471
+ image: Optional[pulumi.Input[str]] = None,
1472
+ ip_id: Optional[pulumi.Input[str]] = None,
1473
+ ip_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1474
+ name: Optional[pulumi.Input[str]] = None,
1475
+ placement_group_id: Optional[pulumi.Input[str]] = None,
1476
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPrivateNetworkArgs', 'ServerPrivateNetworkArgsDict']]]]] = None,
1477
+ project_id: Optional[pulumi.Input[str]] = None,
1478
+ public_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPublicIpArgs', 'ServerPublicIpArgsDict']]]]] = None,
1479
+ replace_on_type_change: Optional[pulumi.Input[bool]] = None,
1480
+ root_volume: Optional[pulumi.Input[Union['ServerRootVolumeArgs', 'ServerRootVolumeArgsDict']]] = None,
1481
+ security_group_id: Optional[pulumi.Input[str]] = None,
1482
+ state: Optional[pulumi.Input[str]] = None,
1483
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1484
+ type: Optional[pulumi.Input[str]] = None,
1485
+ user_data: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1486
+ zone: Optional[pulumi.Input[str]] = None,
1487
+ __props__=None):
1488
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1489
+ if not isinstance(opts, pulumi.ResourceOptions):
1490
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
1491
+ if opts.id is None:
1492
+ if __props__ is not None:
1493
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
1494
+ __props__ = ServerArgs.__new__(ServerArgs)
1495
+
1496
+ __props__.__dict__["additional_volume_ids"] = additional_volume_ids
1497
+ __props__.__dict__["boot_type"] = boot_type
1498
+ __props__.__dict__["bootscript_id"] = bootscript_id
1499
+ __props__.__dict__["cloud_init"] = cloud_init
1500
+ __props__.__dict__["enable_dynamic_ip"] = enable_dynamic_ip
1501
+ __props__.__dict__["enable_ipv6"] = enable_ipv6
1502
+ __props__.__dict__["image"] = image
1503
+ __props__.__dict__["ip_id"] = ip_id
1504
+ __props__.__dict__["ip_ids"] = ip_ids
1505
+ __props__.__dict__["name"] = name
1506
+ __props__.__dict__["placement_group_id"] = placement_group_id
1507
+ __props__.__dict__["private_networks"] = private_networks
1508
+ __props__.__dict__["project_id"] = project_id
1509
+ __props__.__dict__["public_ips"] = public_ips
1510
+ __props__.__dict__["replace_on_type_change"] = replace_on_type_change
1511
+ __props__.__dict__["root_volume"] = root_volume
1512
+ __props__.__dict__["security_group_id"] = security_group_id
1513
+ __props__.__dict__["state"] = state
1514
+ __props__.__dict__["tags"] = tags
1515
+ if type is None and not opts.urn:
1516
+ raise TypeError("Missing required property 'type'")
1517
+ __props__.__dict__["type"] = type
1518
+ __props__.__dict__["user_data"] = user_data
1519
+ __props__.__dict__["zone"] = zone
1520
+ __props__.__dict__["ipv6_address"] = None
1521
+ __props__.__dict__["ipv6_gateway"] = None
1522
+ __props__.__dict__["ipv6_prefix_length"] = None
1523
+ __props__.__dict__["organization_id"] = None
1524
+ __props__.__dict__["placement_group_policy_respected"] = None
1525
+ __props__.__dict__["private_ip"] = None
1526
+ __props__.__dict__["public_ip"] = None
1527
+ alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/instanceServer:InstanceServer")])
1528
+ opts = pulumi.ResourceOptions.merge(opts, alias_opts)
1529
+ super(Server, __self__).__init__(
1530
+ 'scaleway:instance/server:Server',
1531
+ resource_name,
1532
+ __props__,
1533
+ opts)
1534
+
1535
+ @staticmethod
1536
+ def get(resource_name: str,
1537
+ id: pulumi.Input[str],
1538
+ opts: Optional[pulumi.ResourceOptions] = None,
1539
+ additional_volume_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1540
+ boot_type: Optional[pulumi.Input[str]] = None,
1541
+ bootscript_id: Optional[pulumi.Input[str]] = None,
1542
+ cloud_init: Optional[pulumi.Input[str]] = None,
1543
+ enable_dynamic_ip: Optional[pulumi.Input[bool]] = None,
1544
+ enable_ipv6: Optional[pulumi.Input[bool]] = None,
1545
+ image: Optional[pulumi.Input[str]] = None,
1546
+ ip_id: Optional[pulumi.Input[str]] = None,
1547
+ ip_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1548
+ ipv6_address: Optional[pulumi.Input[str]] = None,
1549
+ ipv6_gateway: Optional[pulumi.Input[str]] = None,
1550
+ ipv6_prefix_length: Optional[pulumi.Input[int]] = None,
1551
+ name: Optional[pulumi.Input[str]] = None,
1552
+ organization_id: Optional[pulumi.Input[str]] = None,
1553
+ placement_group_id: Optional[pulumi.Input[str]] = None,
1554
+ placement_group_policy_respected: Optional[pulumi.Input[bool]] = None,
1555
+ private_ip: Optional[pulumi.Input[str]] = None,
1556
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPrivateNetworkArgs', 'ServerPrivateNetworkArgsDict']]]]] = None,
1557
+ project_id: Optional[pulumi.Input[str]] = None,
1558
+ public_ip: Optional[pulumi.Input[str]] = None,
1559
+ public_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPublicIpArgs', 'ServerPublicIpArgsDict']]]]] = None,
1560
+ replace_on_type_change: Optional[pulumi.Input[bool]] = None,
1561
+ root_volume: Optional[pulumi.Input[Union['ServerRootVolumeArgs', 'ServerRootVolumeArgsDict']]] = None,
1562
+ security_group_id: Optional[pulumi.Input[str]] = None,
1563
+ state: Optional[pulumi.Input[str]] = None,
1564
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1565
+ type: Optional[pulumi.Input[str]] = None,
1566
+ user_data: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1567
+ zone: Optional[pulumi.Input[str]] = None) -> 'Server':
1568
+ """
1569
+ Get an existing Server resource's state with the given name, id, and optional extra
1570
+ properties used to qualify the lookup.
1571
+
1572
+ :param str resource_name: The unique name of the resulting resource.
1573
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1574
+ :param pulumi.ResourceOptions opts: Options for the resource.
1575
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] additional_volume_ids: The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)
1576
+ attached to the server. Updates to this field will trigger a stop/start of the server.
1577
+
1578
+ > **Important:** If this field contains local volumes, the `state` must be set to `stopped`, otherwise it will fail.
1579
+
1580
+ > **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.
1581
+ :param pulumi.Input[str] boot_type: The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
1582
+ :param pulumi.Input[str] bootscript_id: ID of the target bootscript (set boot_type to bootscript)
1583
+ :param pulumi.Input[str] cloud_init: The cloud init script associated with this server
1584
+ :param pulumi.Input[bool] enable_dynamic_ip: If true a dynamic IP will be attached to the server.
1585
+ :param pulumi.Input[bool] enable_ipv6: Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported.
1586
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
1587
+ :param pulumi.Input[str] image: The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)
1588
+ to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.
1589
+
1590
+ You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```
1591
+
1592
+ To retrieve more information by label please use: ```scw marketplace image get label=<LABEL>```
1593
+ :param pulumi.Input[str] ip_id: The ID of the reserved IP that is attached to the server.
1594
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_ids: List of ID of reserved IPs that are attached to the server. Cannot be used with `ip_id`.
1595
+
1596
+ > `ip_id` to `ip_ids` migration: if moving the ip from the old `ip_id` field to the new `ip_ids`, it should not detach the ip.
1597
+ :param pulumi.Input[str] ipv6_address: The default ipv6 address routed to the server. ( Only set when enable_ipv6 is set to true )
1598
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
1599
+ :param pulumi.Input[str] ipv6_gateway: The ipv6 gateway address. ( Only set when enable_ipv6 is set to true )
1600
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
1601
+ :param pulumi.Input[int] ipv6_prefix_length: The prefix length of the ipv6 subnet routed to the server. ( Only set when enable_ipv6 is set to true )
1602
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
1603
+ :param pulumi.Input[str] name: The name of the server.
1604
+ :param pulumi.Input[str] organization_id: The organization ID the server is associated with.
1605
+ :param pulumi.Input[str] placement_group_id: The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group the server is attached to.
1606
+
1607
+
1608
+ > **Important:** When updating `placement_group_id` the `state` must be set to `stopped`, otherwise it will fail.
1609
+ :param pulumi.Input[bool] placement_group_policy_respected: (Deprecated) Always false, use instance_placement_group ressource to known when the placement group policy is respected.
1610
+ :param pulumi.Input[str] private_ip: The Scaleway internal IP address of the server (Deprecated use ipam_ip datasource instead).
1611
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ServerPrivateNetworkArgs', 'ServerPrivateNetworkArgsDict']]]] private_networks: The private network associated with the server.
1612
+ Use the `pn_id` key to attach a [private_network](https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.
1613
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the server is associated with.
1614
+ :param pulumi.Input[str] public_ip: The public IP address of the server (Deprecated use `public_ips` instead).
1615
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ServerPublicIpArgs', 'ServerPublicIpArgsDict']]]] public_ips: The list of public IPs of the server.
1616
+ :param pulumi.Input[bool] replace_on_type_change: If true, the server will be replaced if `type` is changed. Otherwise, the server will migrate.
1617
+ :param pulumi.Input[Union['ServerRootVolumeArgs', 'ServerRootVolumeArgsDict']] root_volume: Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.
1618
+ :param pulumi.Input[str] security_group_id: The security group the server is attached to
1619
+ :param pulumi.Input[str] state: The state of the server. Possible values are: `started`, `stopped` or `standby`.
1620
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the server.
1621
+ :param pulumi.Input[str] type: The commercial type of the server.
1622
+ You find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).
1623
+ Updates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).
1624
+ Use `replace_on_type_change` to trigger replacement instead of migration.
1625
+
1626
+ > **Important:** If `type` change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.
1627
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] user_data: The user data associated with the server.
1628
+ Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.
1629
+ You can define values using:
1630
+ - string
1631
+ - UTF-8 encoded file content using file
1632
+ - Binary files using filebase64.
1633
+ :param pulumi.Input[str] zone: `zone`) The zone in which the server should be created.
1634
+ """
1635
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1636
+
1637
+ __props__ = _ServerState.__new__(_ServerState)
1638
+
1639
+ __props__.__dict__["additional_volume_ids"] = additional_volume_ids
1640
+ __props__.__dict__["boot_type"] = boot_type
1641
+ __props__.__dict__["bootscript_id"] = bootscript_id
1642
+ __props__.__dict__["cloud_init"] = cloud_init
1643
+ __props__.__dict__["enable_dynamic_ip"] = enable_dynamic_ip
1644
+ __props__.__dict__["enable_ipv6"] = enable_ipv6
1645
+ __props__.__dict__["image"] = image
1646
+ __props__.__dict__["ip_id"] = ip_id
1647
+ __props__.__dict__["ip_ids"] = ip_ids
1648
+ __props__.__dict__["ipv6_address"] = ipv6_address
1649
+ __props__.__dict__["ipv6_gateway"] = ipv6_gateway
1650
+ __props__.__dict__["ipv6_prefix_length"] = ipv6_prefix_length
1651
+ __props__.__dict__["name"] = name
1652
+ __props__.__dict__["organization_id"] = organization_id
1653
+ __props__.__dict__["placement_group_id"] = placement_group_id
1654
+ __props__.__dict__["placement_group_policy_respected"] = placement_group_policy_respected
1655
+ __props__.__dict__["private_ip"] = private_ip
1656
+ __props__.__dict__["private_networks"] = private_networks
1657
+ __props__.__dict__["project_id"] = project_id
1658
+ __props__.__dict__["public_ip"] = public_ip
1659
+ __props__.__dict__["public_ips"] = public_ips
1660
+ __props__.__dict__["replace_on_type_change"] = replace_on_type_change
1661
+ __props__.__dict__["root_volume"] = root_volume
1662
+ __props__.__dict__["security_group_id"] = security_group_id
1663
+ __props__.__dict__["state"] = state
1664
+ __props__.__dict__["tags"] = tags
1665
+ __props__.__dict__["type"] = type
1666
+ __props__.__dict__["user_data"] = user_data
1667
+ __props__.__dict__["zone"] = zone
1668
+ return Server(resource_name, opts=opts, __props__=__props__)
1669
+
1670
+ @property
1671
+ @pulumi.getter(name="additionalVolumeIds")
1672
+ def additional_volume_ids(self) -> pulumi.Output[Optional[Sequence[str]]]:
1673
+ """
1674
+ The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)
1675
+ attached to the server. Updates to this field will trigger a stop/start of the server.
1676
+
1677
+ > **Important:** If this field contains local volumes, the `state` must be set to `stopped`, otherwise it will fail.
1678
+
1679
+ > **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.
1680
+ """
1681
+ return pulumi.get(self, "additional_volume_ids")
1682
+
1683
+ @property
1684
+ @pulumi.getter(name="bootType")
1685
+ def boot_type(self) -> pulumi.Output[Optional[str]]:
1686
+ """
1687
+ The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
1688
+ """
1689
+ return pulumi.get(self, "boot_type")
1690
+
1691
+ @property
1692
+ @pulumi.getter(name="bootscriptId")
1693
+ @_utilities.deprecated("""bootscript is not supported anymore.""")
1694
+ def bootscript_id(self) -> pulumi.Output[str]:
1695
+ """
1696
+ ID of the target bootscript (set boot_type to bootscript)
1697
+ """
1698
+ return pulumi.get(self, "bootscript_id")
1699
+
1700
+ @property
1701
+ @pulumi.getter(name="cloudInit")
1702
+ def cloud_init(self) -> pulumi.Output[str]:
1703
+ """
1704
+ The cloud init script associated with this server
1705
+ """
1706
+ return pulumi.get(self, "cloud_init")
1707
+
1708
+ @property
1709
+ @pulumi.getter(name="enableDynamicIp")
1710
+ def enable_dynamic_ip(self) -> pulumi.Output[Optional[bool]]:
1711
+ """
1712
+ If true a dynamic IP will be attached to the server.
1713
+ """
1714
+ return pulumi.get(self, "enable_dynamic_ip")
1715
+
1716
+ @property
1717
+ @pulumi.getter(name="enableIpv6")
1718
+ @_utilities.deprecated("""Please use a instance.Ip with a `routed_ipv6` type""")
1719
+ def enable_ipv6(self) -> pulumi.Output[Optional[bool]]:
1720
+ """
1721
+ Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported.
1722
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
1723
+ """
1724
+ return pulumi.get(self, "enable_ipv6")
1725
+
1726
+ @property
1727
+ @pulumi.getter
1728
+ def image(self) -> pulumi.Output[Optional[str]]:
1729
+ """
1730
+ The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)
1731
+ to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.
1732
+
1733
+ You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```
1734
+
1735
+ To retrieve more information by label please use: ```scw marketplace image get label=<LABEL>```
1736
+ """
1737
+ return pulumi.get(self, "image")
1738
+
1739
+ @property
1740
+ @pulumi.getter(name="ipId")
1741
+ def ip_id(self) -> pulumi.Output[Optional[str]]:
1742
+ """
1743
+ The ID of the reserved IP that is attached to the server.
1744
+ """
1745
+ return pulumi.get(self, "ip_id")
1746
+
1747
+ @property
1748
+ @pulumi.getter(name="ipIds")
1749
+ def ip_ids(self) -> pulumi.Output[Optional[Sequence[str]]]:
1750
+ """
1751
+ List of ID of reserved IPs that are attached to the server. Cannot be used with `ip_id`.
1752
+
1753
+ > `ip_id` to `ip_ids` migration: if moving the ip from the old `ip_id` field to the new `ip_ids`, it should not detach the ip.
1754
+ """
1755
+ return pulumi.get(self, "ip_ids")
1756
+
1757
+ @property
1758
+ @pulumi.getter(name="ipv6Address")
1759
+ @_utilities.deprecated("""Please use a instance.Ip with a `routed_ipv6` type""")
1760
+ def ipv6_address(self) -> pulumi.Output[str]:
1761
+ """
1762
+ The default ipv6 address routed to the server. ( Only set when enable_ipv6 is set to true )
1763
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
1764
+ """
1765
+ return pulumi.get(self, "ipv6_address")
1766
+
1767
+ @property
1768
+ @pulumi.getter(name="ipv6Gateway")
1769
+ @_utilities.deprecated("""Please use a instance.Ip with a `routed_ipv6` type""")
1770
+ def ipv6_gateway(self) -> pulumi.Output[str]:
1771
+ """
1772
+ The ipv6 gateway address. ( Only set when enable_ipv6 is set to true )
1773
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
1774
+ """
1775
+ return pulumi.get(self, "ipv6_gateway")
1776
+
1777
+ @property
1778
+ @pulumi.getter(name="ipv6PrefixLength")
1779
+ @_utilities.deprecated("""Please use a instance.Ip with a `routed_ipv6` type""")
1780
+ def ipv6_prefix_length(self) -> pulumi.Output[int]:
1781
+ """
1782
+ The prefix length of the ipv6 subnet routed to the server. ( Only set when enable_ipv6 is set to true )
1783
+ Deprecated: Please use a instance.Ip with a `routed_ipv6` type.
1784
+ """
1785
+ return pulumi.get(self, "ipv6_prefix_length")
1786
+
1787
+ @property
1788
+ @pulumi.getter
1789
+ def name(self) -> pulumi.Output[str]:
1790
+ """
1791
+ The name of the server.
1792
+ """
1793
+ return pulumi.get(self, "name")
1794
+
1795
+ @property
1796
+ @pulumi.getter(name="organizationId")
1797
+ def organization_id(self) -> pulumi.Output[str]:
1798
+ """
1799
+ The organization ID the server is associated with.
1800
+ """
1801
+ return pulumi.get(self, "organization_id")
1802
+
1803
+ @property
1804
+ @pulumi.getter(name="placementGroupId")
1805
+ def placement_group_id(self) -> pulumi.Output[Optional[str]]:
1806
+ """
1807
+ The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group the server is attached to.
1808
+
1809
+
1810
+ > **Important:** When updating `placement_group_id` the `state` must be set to `stopped`, otherwise it will fail.
1811
+ """
1812
+ return pulumi.get(self, "placement_group_id")
1813
+
1814
+ @property
1815
+ @pulumi.getter(name="placementGroupPolicyRespected")
1816
+ def placement_group_policy_respected(self) -> pulumi.Output[bool]:
1817
+ """
1818
+ (Deprecated) Always false, use instance_placement_group ressource to known when the placement group policy is respected.
1819
+ """
1820
+ return pulumi.get(self, "placement_group_policy_respected")
1821
+
1822
+ @property
1823
+ @pulumi.getter(name="privateIp")
1824
+ @_utilities.deprecated("""Use ipam_ip datasource instead to fetch your server's IP in your private network.""")
1825
+ def private_ip(self) -> pulumi.Output[str]:
1826
+ """
1827
+ The Scaleway internal IP address of the server (Deprecated use ipam_ip datasource instead).
1828
+ """
1829
+ return pulumi.get(self, "private_ip")
1830
+
1831
+ @property
1832
+ @pulumi.getter(name="privateNetworks")
1833
+ def private_networks(self) -> pulumi.Output[Optional[Sequence['outputs.ServerPrivateNetwork']]]:
1834
+ """
1835
+ The private network associated with the server.
1836
+ Use the `pn_id` key to attach a [private_network](https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.
1837
+ """
1838
+ return pulumi.get(self, "private_networks")
1839
+
1840
+ @property
1841
+ @pulumi.getter(name="projectId")
1842
+ def project_id(self) -> pulumi.Output[str]:
1843
+ """
1844
+ `project_id`) The ID of the project the server is associated with.
1845
+ """
1846
+ return pulumi.get(self, "project_id")
1847
+
1848
+ @property
1849
+ @pulumi.getter(name="publicIp")
1850
+ @_utilities.deprecated("""Use public_ips instead""")
1851
+ def public_ip(self) -> pulumi.Output[str]:
1852
+ """
1853
+ The public IP address of the server (Deprecated use `public_ips` instead).
1854
+ """
1855
+ return pulumi.get(self, "public_ip")
1856
+
1857
+ @property
1858
+ @pulumi.getter(name="publicIps")
1859
+ def public_ips(self) -> pulumi.Output[Sequence['outputs.ServerPublicIp']]:
1860
+ """
1861
+ The list of public IPs of the server.
1862
+ """
1863
+ return pulumi.get(self, "public_ips")
1864
+
1865
+ @property
1866
+ @pulumi.getter(name="replaceOnTypeChange")
1867
+ def replace_on_type_change(self) -> pulumi.Output[Optional[bool]]:
1868
+ """
1869
+ If true, the server will be replaced if `type` is changed. Otherwise, the server will migrate.
1870
+ """
1871
+ return pulumi.get(self, "replace_on_type_change")
1872
+
1873
+ @property
1874
+ @pulumi.getter(name="rootVolume")
1875
+ def root_volume(self) -> pulumi.Output['outputs.ServerRootVolume']:
1876
+ """
1877
+ Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.
1878
+ """
1879
+ return pulumi.get(self, "root_volume")
1880
+
1881
+ @property
1882
+ @pulumi.getter(name="securityGroupId")
1883
+ def security_group_id(self) -> pulumi.Output[str]:
1884
+ """
1885
+ The security group the server is attached to
1886
+ """
1887
+ return pulumi.get(self, "security_group_id")
1888
+
1889
+ @property
1890
+ @pulumi.getter
1891
+ def state(self) -> pulumi.Output[Optional[str]]:
1892
+ """
1893
+ The state of the server. Possible values are: `started`, `stopped` or `standby`.
1894
+ """
1895
+ return pulumi.get(self, "state")
1896
+
1897
+ @property
1898
+ @pulumi.getter
1899
+ def tags(self) -> pulumi.Output[Optional[Sequence[str]]]:
1900
+ """
1901
+ The tags associated with the server.
1902
+ """
1903
+ return pulumi.get(self, "tags")
1904
+
1905
+ @property
1906
+ @pulumi.getter
1907
+ def type(self) -> pulumi.Output[str]:
1908
+ """
1909
+ The commercial type of the server.
1910
+ You find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).
1911
+ Updates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).
1912
+ Use `replace_on_type_change` to trigger replacement instead of migration.
1913
+
1914
+ > **Important:** If `type` change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.
1915
+ """
1916
+ return pulumi.get(self, "type")
1917
+
1918
+ @property
1919
+ @pulumi.getter(name="userData")
1920
+ def user_data(self) -> pulumi.Output[Mapping[str, str]]:
1921
+ """
1922
+ The user data associated with the server.
1923
+ Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.
1924
+ You can define values using:
1925
+ - string
1926
+ - UTF-8 encoded file content using file
1927
+ - Binary files using filebase64.
1928
+ """
1929
+ return pulumi.get(self, "user_data")
1930
+
1931
+ @property
1932
+ @pulumi.getter
1933
+ def zone(self) -> pulumi.Output[str]:
1934
+ """
1935
+ `zone`) The zone in which the server should be created.
1936
+ """
1937
+ return pulumi.get(self, "zone")
1938
+