pulumiverse-scaleway 1.23.0a1736837529__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

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