cdktf-cdktf-provider-upcloud 14.16.0__py3-none-any.whl → 14.18.0__py3-none-any.whl

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

Potentially problematic release.


This version of cdktf-cdktf-provider-upcloud might be problematic. Click here for more details.

Files changed (68) hide show
  1. cdktf_cdktf_provider_upcloud/__init__.py +3 -3
  2. cdktf_cdktf_provider_upcloud/_jsii/__init__.py +2 -2
  3. cdktf_cdktf_provider_upcloud/_jsii/provider-upcloud@14.18.0.jsii.tgz +0 -0
  4. cdktf_cdktf_provider_upcloud/data_upcloud_hosts/__init__.py +7 -7
  5. cdktf_cdktf_provider_upcloud/data_upcloud_ip_addresses/__init__.py +7 -7
  6. cdktf_cdktf_provider_upcloud/data_upcloud_kubernetes_cluster/__init__.py +7 -7
  7. cdktf_cdktf_provider_upcloud/data_upcloud_load_balancer_dns_challenge_domain/__init__.py +4 -4
  8. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_mysql_sessions/__init__.py +22 -22
  9. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_opensearch_indices/__init__.py +13 -13
  10. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_postgresql_sessions/__init__.py +30 -30
  11. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_redis_sessions/__init__.py +22 -22
  12. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_valkey_sessions/__init__.py +22 -22
  13. cdktf_cdktf_provider_upcloud/data_upcloud_managed_object_storage_policies/__init__.py +10 -10
  14. cdktf_cdktf_provider_upcloud/data_upcloud_managed_object_storage_regions/__init__.py +7 -7
  15. cdktf_cdktf_provider_upcloud/data_upcloud_networks/__init__.py +13 -13
  16. cdktf_cdktf_provider_upcloud/data_upcloud_storage/__init__.py +28 -28
  17. cdktf_cdktf_provider_upcloud/data_upcloud_tags/__init__.py +7 -7
  18. cdktf_cdktf_provider_upcloud/data_upcloud_zone/__init__.py +10 -10
  19. cdktf_cdktf_provider_upcloud/data_upcloud_zones/__init__.py +7 -7
  20. cdktf_cdktf_provider_upcloud/firewall_rules/__init__.py +42 -42
  21. cdktf_cdktf_provider_upcloud/floating_ip_address/__init__.py +16 -16
  22. cdktf_cdktf_provider_upcloud/gateway/__init__.py +37 -37
  23. cdktf_cdktf_provider_upcloud/gateway_connection/__init__.py +34 -34
  24. cdktf_cdktf_provider_upcloud/gateway_connection_tunnel/__init__.py +61 -61
  25. cdktf_cdktf_provider_upcloud/kubernetes_cluster/__init__.py +31 -31
  26. cdktf_cdktf_provider_upcloud/kubernetes_node_group/__init__.py +58 -58
  27. cdktf_cdktf_provider_upcloud/loadbalancer/__init__.py +39 -39
  28. cdktf_cdktf_provider_upcloud/loadbalancer_backend/__init__.py +46 -46
  29. cdktf_cdktf_provider_upcloud/loadbalancer_backend_tls_config/__init__.py +13 -13
  30. cdktf_cdktf_provider_upcloud/loadbalancer_dynamic_backend_member/__init__.py +25 -25
  31. cdktf_cdktf_provider_upcloud/loadbalancer_dynamic_certificate_bundle/__init__.py +13 -13
  32. cdktf_cdktf_provider_upcloud/loadbalancer_frontend/__init__.py +33 -33
  33. cdktf_cdktf_provider_upcloud/loadbalancer_frontend_rule/__init__.py +226 -226
  34. cdktf_cdktf_provider_upcloud/loadbalancer_frontend_tls_config/__init__.py +13 -13
  35. cdktf_cdktf_provider_upcloud/loadbalancer_manual_certificate_bundle/__init__.py +16 -16
  36. cdktf_cdktf_provider_upcloud/loadbalancer_resolver/__init__.py +28 -28
  37. cdktf_cdktf_provider_upcloud/loadbalancer_static_backend_member/__init__.py +25 -25
  38. cdktf_cdktf_provider_upcloud/managed_database_logical_database/__init__.py +19 -19
  39. cdktf_cdktf_provider_upcloud/managed_database_mysql/__init__.py +201 -201
  40. cdktf_cdktf_provider_upcloud/managed_database_opensearch/__init__.py +3160 -3189
  41. cdktf_cdktf_provider_upcloud/managed_database_postgresql/__init__.py +358 -312
  42. cdktf_cdktf_provider_upcloud/managed_database_redis/__init__.py +132 -132
  43. cdktf_cdktf_provider_upcloud/managed_database_user/__init__.py +65 -65
  44. cdktf_cdktf_provider_upcloud/managed_database_valkey/__init__.py +129 -129
  45. cdktf_cdktf_provider_upcloud/managed_object_storage/__init__.py +30 -30
  46. cdktf_cdktf_provider_upcloud/managed_object_storage_bucket/__init__.py +10 -10
  47. cdktf_cdktf_provider_upcloud/managed_object_storage_custom_domain/__init__.py +13 -13
  48. cdktf_cdktf_provider_upcloud/managed_object_storage_policy/__init__.py +16 -16
  49. cdktf_cdktf_provider_upcloud/managed_object_storage_user/__init__.py +13 -13
  50. cdktf_cdktf_provider_upcloud/managed_object_storage_user_access_key/__init__.py +16 -16
  51. cdktf_cdktf_provider_upcloud/managed_object_storage_user_policy/__init__.py +16 -16
  52. cdktf_cdktf_provider_upcloud/network/__init__.py +33 -33
  53. cdktf_cdktf_provider_upcloud/network_peering/__init__.py +23 -23
  54. cdktf_cdktf_provider_upcloud/object_storage/__init__.py +30 -30
  55. cdktf_cdktf_provider_upcloud/provider/__init__.py +25 -25
  56. cdktf_cdktf_provider_upcloud/router/__init__.py +19 -19
  57. cdktf_cdktf_provider_upcloud/server/__init__.py +1002 -425
  58. cdktf_cdktf_provider_upcloud/server_group/__init__.py +19 -19
  59. cdktf_cdktf_provider_upcloud/storage/__init__.py +51 -51
  60. cdktf_cdktf_provider_upcloud/storage_template/__init__.py +13 -13
  61. cdktf_cdktf_provider_upcloud/tag/__init__.py +16 -16
  62. {cdktf_cdktf_provider_upcloud-14.16.0.dist-info → cdktf_cdktf_provider_upcloud-14.18.0.dist-info}/LICENSE +1 -1
  63. {cdktf_cdktf_provider_upcloud-14.16.0.dist-info → cdktf_cdktf_provider_upcloud-14.18.0.dist-info}/METADATA +5 -5
  64. cdktf_cdktf_provider_upcloud-14.18.0.dist-info/RECORD +67 -0
  65. cdktf_cdktf_provider_upcloud/_jsii/provider-upcloud@14.16.0.jsii.tgz +0 -0
  66. cdktf_cdktf_provider_upcloud-14.16.0.dist-info/RECORD +0 -67
  67. {cdktf_cdktf_provider_upcloud-14.16.0.dist-info → cdktf_cdktf_provider_upcloud-14.18.0.dist-info}/WHEEL +0 -0
  68. {cdktf_cdktf_provider_upcloud-14.16.0.dist-info → cdktf_cdktf_provider_upcloud-14.18.0.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  r'''
2
2
  # `upcloud_server`
3
3
 
4
- Refer to the Terraform Registry for docs: [`upcloud_server`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server).
4
+ Refer to the Terraform Registry for docs: [`upcloud_server`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server).
5
5
  '''
6
6
  from pkgutil import extend_path
7
7
  __path__ = extend_path(__path__, __name__)
@@ -44,32 +44,31 @@ class Server(
44
44
  metaclass=jsii.JSIIMeta,
45
45
  jsii_type="@cdktf/provider-upcloud.server.Server",
46
46
  ):
47
- '''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server upcloud_server}.'''
47
+ '''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server upcloud_server}.'''
48
48
 
49
49
  def __init__(
50
50
  self,
51
51
  scope: _constructs_77d1e7e8.Construct,
52
- id_: builtins.str,
52
+ id: builtins.str,
53
53
  *,
54
54
  hostname: builtins.str,
55
- network_interface: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerNetworkInterface", typing.Dict[builtins.str, typing.Any]]]],
56
55
  zone: builtins.str,
57
56
  boot_order: typing.Optional[builtins.str] = None,
58
57
  cpu: typing.Optional[jsii.Number] = None,
59
58
  firewall: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
60
59
  host: typing.Optional[jsii.Number] = None,
61
- id: typing.Optional[builtins.str] = None,
62
60
  labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
63
- login: typing.Optional[typing.Union["ServerLogin", typing.Dict[builtins.str, typing.Any]]] = None,
61
+ login: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerLogin", typing.Dict[builtins.str, typing.Any]]]]] = None,
64
62
  mem: typing.Optional[jsii.Number] = None,
65
63
  metadata: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
64
+ network_interface: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerNetworkInterface", typing.Dict[builtins.str, typing.Any]]]]] = None,
66
65
  nic_model: typing.Optional[builtins.str] = None,
67
66
  plan: typing.Optional[builtins.str] = None,
68
67
  server_group: typing.Optional[builtins.str] = None,
69
- simple_backup: typing.Optional[typing.Union["ServerSimpleBackup", typing.Dict[builtins.str, typing.Any]]] = None,
68
+ simple_backup: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerSimpleBackup", typing.Dict[builtins.str, typing.Any]]]]] = None,
70
69
  storage_devices: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerStorageDevices", typing.Dict[builtins.str, typing.Any]]]]] = None,
71
70
  tags: typing.Optional[typing.Sequence[builtins.str]] = None,
72
- template: typing.Optional[typing.Union["ServerTemplate", typing.Dict[builtins.str, typing.Any]]] = None,
71
+ template: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerTemplate", typing.Dict[builtins.str, typing.Any]]]]] = None,
73
72
  timezone: typing.Optional[builtins.str] = None,
74
73
  title: typing.Optional[builtins.str] = None,
75
74
  user_data: typing.Optional[builtins.str] = None,
@@ -82,33 +81,32 @@ class Server(
82
81
  provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
83
82
  provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktf_9a9027ec.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
84
83
  ) -> None:
85
- '''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server upcloud_server} Resource.
84
+ '''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server upcloud_server} Resource.
86
85
 
87
86
  :param scope: The scope in which to define this construct.
88
- :param id_: The scoped construct ID. Must be unique amongst siblings in the same scope
89
- :param hostname: A valid domain name. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#hostname Server#hostname}
90
- :param network_interface: network_interface block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#network_interface Server#network_interface}
91
- :param zone: The zone in which the server will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#zone Server#zone}
92
- :param boot_order: The boot device order, ``cdrom``|``disk``|``network`` or comma separated combination of those values. Defaults to ``disk``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#boot_order Server#boot_order}
93
- :param cpu: The number of CPU for the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#cpu Server#cpu}
94
- :param firewall: Are firewall rules active for the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#firewall Server#firewall}
95
- :param host: Use this to start the VM on a specific host. Refers to value from host -attribute. Only available for private cloud hosts Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#host Server#host}
96
- :param id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#id Server#id}. Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
97
- :param labels: User defined key-value pairs to classify the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#labels Server#labels}
98
- :param login: login block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#login Server#login}
99
- :param mem: The size of memory for the server (in megabytes). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#mem Server#mem}
100
- :param metadata: Is the metadata service active for the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#metadata Server#metadata}
101
- :param nic_model: The model of the server's network interfaces. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#nic_model Server#nic_model}
102
- :param plan: The pricing plan used for the server. You can list available server plans with ``upctl server plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#plan Server#plan}
103
- :param server_group: The UUID of a server group to attach this server to. Note that the server can also be attached to a server group via the ``members`` property of ``upcloud_server_group``. Only one of the these should be defined at a time. This value is only updated if it has been set to non-zero value. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#server_group Server#server_group}
104
- :param simple_backup: simple_backup block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#simple_backup Server#simple_backup}
105
- :param storage_devices: storage_devices block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#storage_devices Server#storage_devices}
106
- :param tags: The server related tags. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#tags Server#tags}
107
- :param template: template block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#template Server#template}
108
- :param timezone: A timezone identifier, e.g. ``Europe/Helsinki``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#timezone Server#timezone}
109
- :param title: A short, informational description. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#title Server#title}
110
- :param user_data: Defines URL for a server setup script, or the script body itself. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#user_data Server#user_data}
111
- :param video_model: The model of the server's video interface. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#video_model Server#video_model}
87
+ :param id: The scoped construct ID. Must be unique amongst siblings in the same scope
88
+ :param hostname: The hostname of the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#hostname Server#hostname}
89
+ :param zone: The zone in which the server will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#zone Server#zone}
90
+ :param boot_order: The boot device order, ``cdrom``|``disk``|``network`` or comma separated combination of those values. Defaults to ``disk``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#boot_order Server#boot_order}
91
+ :param cpu: The number of CPU cores for the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#cpu Server#cpu}
92
+ :param firewall: Are firewall rules active for the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#firewall Server#firewall}
93
+ :param host: Use this to start the VM on a specific host. Refers to value from host -attribute. Only available for private cloud hosts Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#host Server#host}
94
+ :param labels: User defined key-value pairs to classify the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#labels Server#labels}
95
+ :param login: login block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#login Server#login}
96
+ :param mem: The amount of memory for the server (in megabytes). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#mem Server#mem}
97
+ :param metadata: Is metadata service active for the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#metadata Server#metadata}
98
+ :param network_interface: network_interface block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#network_interface Server#network_interface}
99
+ :param nic_model: The model of the server's network interfaces. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#nic_model Server#nic_model}
100
+ :param plan: The pricing plan used for the server. You can list available server plans with ``upctl server plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#plan Server#plan}
101
+ :param server_group: The UUID of a server group to attach this server to. Note that the server can also be attached to a server group via the ``members`` property of ``upcloud_server_group``. Only one of the these should be defined at a time. This value is only updated if it has been set to non-zero value. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#server_group Server#server_group}
102
+ :param simple_backup: simple_backup block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#simple_backup Server#simple_backup}
103
+ :param storage_devices: storage_devices block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#storage_devices Server#storage_devices}
104
+ :param tags: The server related tags. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#tags Server#tags}
105
+ :param template: template block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#template Server#template}
106
+ :param timezone: The timezone of the server. The timezone must be a valid timezone string, e.g. ``Europe/Helsinki``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#timezone Server#timezone}
107
+ :param title: A short, informational description of the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#title Server#title}
108
+ :param user_data: Defines URL for a server setup script, or the script body itself. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#user_data Server#user_data}
109
+ :param video_model: The model of the server's video interface. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#video_model Server#video_model}
112
110
  :param connection:
113
111
  :param count:
114
112
  :param depends_on:
@@ -120,20 +118,19 @@ class Server(
120
118
  if __debug__:
121
119
  type_hints = typing.get_type_hints(_typecheckingstub__6b83690e478f8730a1b183dfb2bf71b179dc55ba8028fd8cc73841eff54172a9)
122
120
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
123
- check_type(argname="argument id_", value=id_, expected_type=type_hints["id_"])
121
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
124
122
  config = ServerConfig(
125
123
  hostname=hostname,
126
- network_interface=network_interface,
127
124
  zone=zone,
128
125
  boot_order=boot_order,
129
126
  cpu=cpu,
130
127
  firewall=firewall,
131
128
  host=host,
132
- id=id,
133
129
  labels=labels,
134
130
  login=login,
135
131
  mem=mem,
136
132
  metadata=metadata,
133
+ network_interface=network_interface,
137
134
  nic_model=nic_model,
138
135
  plan=plan,
139
136
  server_group=server_group,
@@ -154,7 +151,7 @@ class Server(
154
151
  provisioners=provisioners,
155
152
  )
156
153
 
157
- jsii.create(self.__class__, self, [scope, id_, config])
154
+ jsii.create(self.__class__, self, [scope, id, config])
158
155
 
159
156
  @jsii.member(jsii_name="generateConfigForImport")
160
157
  @builtins.classmethod
@@ -169,7 +166,7 @@ class Server(
169
166
 
170
167
  :param scope: The scope in which to define this construct.
171
168
  :param import_to_id: The construct id used in the generated config for the Server to import.
172
- :param import_from_id: The id of the existing Server that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#import import section} in the documentation of this resource for the id to use
169
+ :param import_from_id: The id of the existing Server that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#import import section} in the documentation of this resource for the id to use
173
170
  :param provider: ? Optional instance of the provider where the Server to import is found.
174
171
  '''
175
172
  if __debug__:
@@ -183,25 +180,14 @@ class Server(
183
180
  @jsii.member(jsii_name="putLogin")
184
181
  def put_login(
185
182
  self,
186
- *,
187
- create_password: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
188
- keys: typing.Optional[typing.Sequence[builtins.str]] = None,
189
- password_delivery: typing.Optional[builtins.str] = None,
190
- user: typing.Optional[builtins.str] = None,
183
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerLogin", typing.Dict[builtins.str, typing.Any]]]],
191
184
  ) -> None:
192
185
  '''
193
- :param create_password: Indicates a password should be create to allow access. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#create_password Server#create_password}
194
- :param keys: A list of ssh keys to access the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#keys Server#keys}
195
- :param password_delivery: The delivery method for the server's root password (one of ``none``, ``email`` or ``sms``). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#password_delivery Server#password_delivery}
196
- :param user: Username to be create to access the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#user Server#user}
186
+ :param value: -
197
187
  '''
198
- value = ServerLogin(
199
- create_password=create_password,
200
- keys=keys,
201
- password_delivery=password_delivery,
202
- user=user,
203
- )
204
-
188
+ if __debug__:
189
+ type_hints = typing.get_type_hints(_typecheckingstub__490f22a0cad848cb278fe5943c1379db07f317157bbed237d4a276b686019b4f)
190
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
205
191
  return typing.cast(None, jsii.invoke(self, "putLogin", [value]))
206
192
 
207
193
  @jsii.member(jsii_name="putNetworkInterface")
@@ -218,13 +204,16 @@ class Server(
218
204
  return typing.cast(None, jsii.invoke(self, "putNetworkInterface", [value]))
219
205
 
220
206
  @jsii.member(jsii_name="putSimpleBackup")
221
- def put_simple_backup(self, *, plan: builtins.str, time: builtins.str) -> None:
207
+ def put_simple_backup(
208
+ self,
209
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerSimpleBackup", typing.Dict[builtins.str, typing.Any]]]],
210
+ ) -> None:
222
211
  '''
223
- :param plan: Simple backup plan. Accepted values: daily, dailies, weeklies, monthlies. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#plan Server#plan}
224
- :param time: Time of the day at which backup will be taken. Should be provided in a hhmm format (e.g. 2230). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#time Server#time}
212
+ :param value: -
225
213
  '''
226
- value = ServerSimpleBackup(plan=plan, time=time)
227
-
214
+ if __debug__:
215
+ type_hints = typing.get_type_hints(_typecheckingstub__2473c5d20588446793f53015ab62c61ad46df9fac03399584f460799254ecaef)
216
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
228
217
  return typing.cast(None, jsii.invoke(self, "putSimpleBackup", [value]))
229
218
 
230
219
  @jsii.member(jsii_name="putStorageDevices")
@@ -243,40 +232,14 @@ class Server(
243
232
  @jsii.member(jsii_name="putTemplate")
244
233
  def put_template(
245
234
  self,
246
- *,
247
- storage: builtins.str,
248
- address: typing.Optional[builtins.str] = None,
249
- address_position: typing.Optional[builtins.str] = None,
250
- backup_rule: typing.Optional[typing.Union["ServerTemplateBackupRule", typing.Dict[builtins.str, typing.Any]]] = None,
251
- delete_autoresize_backup: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
252
- encrypt: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
253
- filesystem_autoresize: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
254
- size: typing.Optional[jsii.Number] = None,
255
- title: typing.Optional[builtins.str] = None,
235
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerTemplate", typing.Dict[builtins.str, typing.Any]]]],
256
236
  ) -> None:
257
237
  '''
258
- :param storage: A valid storage UUID or template name. You can list available public templates with ``upctl storage list --public --template`` and available private templates with ``upctl storage list --template``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#storage Server#storage}
259
- :param address: The device address the storage will be attached to (``scsi``|``virtio``|``ide``). Leave ``address_position`` field empty to auto-select next available address from that bus. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#address Server#address}
260
- :param address_position: The device position in the given bus (defined via field ``address``). For example ``0:0``, or ``0``. Leave empty to auto-select next available address in the given bus. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#address_position Server#address_position}
261
- :param backup_rule: backup_rule block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#backup_rule Server#backup_rule}
262
- :param delete_autoresize_backup: If set to true, the backup taken before the partition and filesystem resize attempt will be deleted immediately after success. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#delete_autoresize_backup Server#delete_autoresize_backup}
263
- :param encrypt: Sets if the storage is encrypted at rest. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#encrypt Server#encrypt}
264
- :param filesystem_autoresize: If set to true, provider will attempt to resize partition and filesystem when the size of template storage changes. Please note that before the resize attempt is made, backup of the storage will be taken. If the resize attempt fails, the backup will be used to restore the storage and then deleted. If the resize attempt succeeds, backup will be kept (unless delete_autoresize_backup option is set to true). Taking and keeping backups incure costs. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#filesystem_autoresize Server#filesystem_autoresize}
265
- :param size: The size of the storage in gigabytes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#size Server#size}
266
- :param title: A short, informative description. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#title Server#title}
267
- '''
268
- value = ServerTemplate(
269
- storage=storage,
270
- address=address,
271
- address_position=address_position,
272
- backup_rule=backup_rule,
273
- delete_autoresize_backup=delete_autoresize_backup,
274
- encrypt=encrypt,
275
- filesystem_autoresize=filesystem_autoresize,
276
- size=size,
277
- title=title,
278
- )
279
-
238
+ :param value: -
239
+ '''
240
+ if __debug__:
241
+ type_hints = typing.get_type_hints(_typecheckingstub__8e6618d82a6e3f04079510015b7e45ddc3974b7b3a19e932ef378e303678b595)
242
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
280
243
  return typing.cast(None, jsii.invoke(self, "putTemplate", [value]))
281
244
 
282
245
  @jsii.member(jsii_name="resetBootOrder")
@@ -295,10 +258,6 @@ class Server(
295
258
  def reset_host(self) -> None:
296
259
  return typing.cast(None, jsii.invoke(self, "resetHost", []))
297
260
 
298
- @jsii.member(jsii_name="resetId")
299
- def reset_id(self) -> None:
300
- return typing.cast(None, jsii.invoke(self, "resetId", []))
301
-
302
261
  @jsii.member(jsii_name="resetLabels")
303
262
  def reset_labels(self) -> None:
304
263
  return typing.cast(None, jsii.invoke(self, "resetLabels", []))
@@ -315,6 +274,10 @@ class Server(
315
274
  def reset_metadata(self) -> None:
316
275
  return typing.cast(None, jsii.invoke(self, "resetMetadata", []))
317
276
 
277
+ @jsii.member(jsii_name="resetNetworkInterface")
278
+ def reset_network_interface(self) -> None:
279
+ return typing.cast(None, jsii.invoke(self, "resetNetworkInterface", []))
280
+
318
281
  @jsii.member(jsii_name="resetNicModel")
319
282
  def reset_nic_model(self) -> None:
320
283
  return typing.cast(None, jsii.invoke(self, "resetNicModel", []))
@@ -372,10 +335,15 @@ class Server(
372
335
  def TF_RESOURCE_TYPE(cls) -> builtins.str:
373
336
  return typing.cast(builtins.str, jsii.sget(cls, "tfResourceType"))
374
337
 
338
+ @builtins.property
339
+ @jsii.member(jsii_name="id")
340
+ def id(self) -> builtins.str:
341
+ return typing.cast(builtins.str, jsii.get(self, "id"))
342
+
375
343
  @builtins.property
376
344
  @jsii.member(jsii_name="login")
377
- def login(self) -> "ServerLoginOutputReference":
378
- return typing.cast("ServerLoginOutputReference", jsii.get(self, "login"))
345
+ def login(self) -> "ServerLoginList":
346
+ return typing.cast("ServerLoginList", jsii.get(self, "login"))
379
347
 
380
348
  @builtins.property
381
349
  @jsii.member(jsii_name="networkInterface")
@@ -384,8 +352,8 @@ class Server(
384
352
 
385
353
  @builtins.property
386
354
  @jsii.member(jsii_name="simpleBackup")
387
- def simple_backup(self) -> "ServerSimpleBackupOutputReference":
388
- return typing.cast("ServerSimpleBackupOutputReference", jsii.get(self, "simpleBackup"))
355
+ def simple_backup(self) -> "ServerSimpleBackupList":
356
+ return typing.cast("ServerSimpleBackupList", jsii.get(self, "simpleBackup"))
389
357
 
390
358
  @builtins.property
391
359
  @jsii.member(jsii_name="storageDevices")
@@ -394,8 +362,8 @@ class Server(
394
362
 
395
363
  @builtins.property
396
364
  @jsii.member(jsii_name="template")
397
- def template(self) -> "ServerTemplateOutputReference":
398
- return typing.cast("ServerTemplateOutputReference", jsii.get(self, "template"))
365
+ def template(self) -> "ServerTemplateList":
366
+ return typing.cast("ServerTemplateList", jsii.get(self, "template"))
399
367
 
400
368
  @builtins.property
401
369
  @jsii.member(jsii_name="bootOrderInput")
@@ -424,11 +392,6 @@ class Server(
424
392
  def hostname_input(self) -> typing.Optional[builtins.str]:
425
393
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "hostnameInput"))
426
394
 
427
- @builtins.property
428
- @jsii.member(jsii_name="idInput")
429
- def id_input(self) -> typing.Optional[builtins.str]:
430
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "idInput"))
431
-
432
395
  @builtins.property
433
396
  @jsii.member(jsii_name="labelsInput")
434
397
  def labels_input(
@@ -438,8 +401,10 @@ class Server(
438
401
 
439
402
  @builtins.property
440
403
  @jsii.member(jsii_name="loginInput")
441
- def login_input(self) -> typing.Optional["ServerLogin"]:
442
- return typing.cast(typing.Optional["ServerLogin"], jsii.get(self, "loginInput"))
404
+ def login_input(
405
+ self,
406
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerLogin"]]]:
407
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerLogin"]]], jsii.get(self, "loginInput"))
443
408
 
444
409
  @builtins.property
445
410
  @jsii.member(jsii_name="memInput")
@@ -477,8 +442,10 @@ class Server(
477
442
 
478
443
  @builtins.property
479
444
  @jsii.member(jsii_name="simpleBackupInput")
480
- def simple_backup_input(self) -> typing.Optional["ServerSimpleBackup"]:
481
- return typing.cast(typing.Optional["ServerSimpleBackup"], jsii.get(self, "simpleBackupInput"))
445
+ def simple_backup_input(
446
+ self,
447
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerSimpleBackup"]]]:
448
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerSimpleBackup"]]], jsii.get(self, "simpleBackupInput"))
482
449
 
483
450
  @builtins.property
484
451
  @jsii.member(jsii_name="storageDevicesInput")
@@ -494,8 +461,10 @@ class Server(
494
461
 
495
462
  @builtins.property
496
463
  @jsii.member(jsii_name="templateInput")
497
- def template_input(self) -> typing.Optional["ServerTemplate"]:
498
- return typing.cast(typing.Optional["ServerTemplate"], jsii.get(self, "templateInput"))
464
+ def template_input(
465
+ self,
466
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerTemplate"]]]:
467
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerTemplate"]]], jsii.get(self, "templateInput"))
499
468
 
500
469
  @builtins.property
501
470
  @jsii.member(jsii_name="timezoneInput")
@@ -585,18 +554,6 @@ class Server(
585
554
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
586
555
  jsii.set(self, "hostname", value) # pyright: ignore[reportArgumentType]
587
556
 
588
- @builtins.property
589
- @jsii.member(jsii_name="id")
590
- def id(self) -> builtins.str:
591
- return typing.cast(builtins.str, jsii.get(self, "id"))
592
-
593
- @id.setter
594
- def id(self, value: builtins.str) -> None:
595
- if __debug__:
596
- type_hints = typing.get_type_hints(_typecheckingstub__a84cfa579ab88830b19af88519f30728d1a5668fda89bc3e98d7b7cb076e00cc)
597
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
598
- jsii.set(self, "id", value) # pyright: ignore[reportArgumentType]
599
-
600
557
  @builtins.property
601
558
  @jsii.member(jsii_name="labels")
602
559
  def labels(self) -> typing.Mapping[builtins.str, builtins.str]:
@@ -757,17 +714,16 @@ class Server(
757
714
  "provider": "provider",
758
715
  "provisioners": "provisioners",
759
716
  "hostname": "hostname",
760
- "network_interface": "networkInterface",
761
717
  "zone": "zone",
762
718
  "boot_order": "bootOrder",
763
719
  "cpu": "cpu",
764
720
  "firewall": "firewall",
765
721
  "host": "host",
766
- "id": "id",
767
722
  "labels": "labels",
768
723
  "login": "login",
769
724
  "mem": "mem",
770
725
  "metadata": "metadata",
726
+ "network_interface": "networkInterface",
771
727
  "nic_model": "nicModel",
772
728
  "plan": "plan",
773
729
  "server_group": "serverGroup",
@@ -793,24 +749,23 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
793
749
  provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
794
750
  provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktf_9a9027ec.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
795
751
  hostname: builtins.str,
796
- network_interface: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerNetworkInterface", typing.Dict[builtins.str, typing.Any]]]],
797
752
  zone: builtins.str,
798
753
  boot_order: typing.Optional[builtins.str] = None,
799
754
  cpu: typing.Optional[jsii.Number] = None,
800
755
  firewall: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
801
756
  host: typing.Optional[jsii.Number] = None,
802
- id: typing.Optional[builtins.str] = None,
803
757
  labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
804
- login: typing.Optional[typing.Union["ServerLogin", typing.Dict[builtins.str, typing.Any]]] = None,
758
+ login: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerLogin", typing.Dict[builtins.str, typing.Any]]]]] = None,
805
759
  mem: typing.Optional[jsii.Number] = None,
806
760
  metadata: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
761
+ network_interface: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerNetworkInterface", typing.Dict[builtins.str, typing.Any]]]]] = None,
807
762
  nic_model: typing.Optional[builtins.str] = None,
808
763
  plan: typing.Optional[builtins.str] = None,
809
764
  server_group: typing.Optional[builtins.str] = None,
810
- simple_backup: typing.Optional[typing.Union["ServerSimpleBackup", typing.Dict[builtins.str, typing.Any]]] = None,
765
+ simple_backup: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerSimpleBackup", typing.Dict[builtins.str, typing.Any]]]]] = None,
811
766
  storage_devices: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerStorageDevices", typing.Dict[builtins.str, typing.Any]]]]] = None,
812
767
  tags: typing.Optional[typing.Sequence[builtins.str]] = None,
813
- template: typing.Optional[typing.Union["ServerTemplate", typing.Dict[builtins.str, typing.Any]]] = None,
768
+ template: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerTemplate", typing.Dict[builtins.str, typing.Any]]]]] = None,
814
769
  timezone: typing.Optional[builtins.str] = None,
815
770
  title: typing.Optional[builtins.str] = None,
816
771
  user_data: typing.Optional[builtins.str] = None,
@@ -824,38 +779,31 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
824
779
  :param lifecycle:
825
780
  :param provider:
826
781
  :param provisioners:
827
- :param hostname: A valid domain name. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#hostname Server#hostname}
828
- :param network_interface: network_interface block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#network_interface Server#network_interface}
829
- :param zone: The zone in which the server will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#zone Server#zone}
830
- :param boot_order: The boot device order, ``cdrom``|``disk``|``network`` or comma separated combination of those values. Defaults to ``disk``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#boot_order Server#boot_order}
831
- :param cpu: The number of CPU for the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#cpu Server#cpu}
832
- :param firewall: Are firewall rules active for the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#firewall Server#firewall}
833
- :param host: Use this to start the VM on a specific host. Refers to value from host -attribute. Only available for private cloud hosts Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#host Server#host}
834
- :param id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#id Server#id}. Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
835
- :param labels: User defined key-value pairs to classify the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#labels Server#labels}
836
- :param login: login block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#login Server#login}
837
- :param mem: The size of memory for the server (in megabytes). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#mem Server#mem}
838
- :param metadata: Is the metadata service active for the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#metadata Server#metadata}
839
- :param nic_model: The model of the server's network interfaces. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#nic_model Server#nic_model}
840
- :param plan: The pricing plan used for the server. You can list available server plans with ``upctl server plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#plan Server#plan}
841
- :param server_group: The UUID of a server group to attach this server to. Note that the server can also be attached to a server group via the ``members`` property of ``upcloud_server_group``. Only one of the these should be defined at a time. This value is only updated if it has been set to non-zero value. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#server_group Server#server_group}
842
- :param simple_backup: simple_backup block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#simple_backup Server#simple_backup}
843
- :param storage_devices: storage_devices block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#storage_devices Server#storage_devices}
844
- :param tags: The server related tags. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#tags Server#tags}
845
- :param template: template block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#template Server#template}
846
- :param timezone: A timezone identifier, e.g. ``Europe/Helsinki``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#timezone Server#timezone}
847
- :param title: A short, informational description. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#title Server#title}
848
- :param user_data: Defines URL for a server setup script, or the script body itself. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#user_data Server#user_data}
849
- :param video_model: The model of the server's video interface. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#video_model Server#video_model}
782
+ :param hostname: The hostname of the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#hostname Server#hostname}
783
+ :param zone: The zone in which the server will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#zone Server#zone}
784
+ :param boot_order: The boot device order, ``cdrom``|``disk``|``network`` or comma separated combination of those values. Defaults to ``disk``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#boot_order Server#boot_order}
785
+ :param cpu: The number of CPU cores for the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#cpu Server#cpu}
786
+ :param firewall: Are firewall rules active for the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#firewall Server#firewall}
787
+ :param host: Use this to start the VM on a specific host. Refers to value from host -attribute. Only available for private cloud hosts Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#host Server#host}
788
+ :param labels: User defined key-value pairs to classify the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#labels Server#labels}
789
+ :param login: login block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#login Server#login}
790
+ :param mem: The amount of memory for the server (in megabytes). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#mem Server#mem}
791
+ :param metadata: Is metadata service active for the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#metadata Server#metadata}
792
+ :param network_interface: network_interface block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#network_interface Server#network_interface}
793
+ :param nic_model: The model of the server's network interfaces. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#nic_model Server#nic_model}
794
+ :param plan: The pricing plan used for the server. You can list available server plans with ``upctl server plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#plan Server#plan}
795
+ :param server_group: The UUID of a server group to attach this server to. Note that the server can also be attached to a server group via the ``members`` property of ``upcloud_server_group``. Only one of the these should be defined at a time. This value is only updated if it has been set to non-zero value. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#server_group Server#server_group}
796
+ :param simple_backup: simple_backup block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#simple_backup Server#simple_backup}
797
+ :param storage_devices: storage_devices block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#storage_devices Server#storage_devices}
798
+ :param tags: The server related tags. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#tags Server#tags}
799
+ :param template: template block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#template Server#template}
800
+ :param timezone: The timezone of the server. The timezone must be a valid timezone string, e.g. ``Europe/Helsinki``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#timezone Server#timezone}
801
+ :param title: A short, informational description of the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#title Server#title}
802
+ :param user_data: Defines URL for a server setup script, or the script body itself. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#user_data Server#user_data}
803
+ :param video_model: The model of the server's video interface. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#video_model Server#video_model}
850
804
  '''
851
805
  if isinstance(lifecycle, dict):
852
806
  lifecycle = _cdktf_9a9027ec.TerraformResourceLifecycle(**lifecycle)
853
- if isinstance(login, dict):
854
- login = ServerLogin(**login)
855
- if isinstance(simple_backup, dict):
856
- simple_backup = ServerSimpleBackup(**simple_backup)
857
- if isinstance(template, dict):
858
- template = ServerTemplate(**template)
859
807
  if __debug__:
860
808
  type_hints = typing.get_type_hints(_typecheckingstub__ea0c30195fdb4e86d473d86dcc3b49fe1de4f105b946dcc2035464e29e243e2a)
861
809
  check_type(argname="argument connection", value=connection, expected_type=type_hints["connection"])
@@ -866,17 +814,16 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
866
814
  check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
867
815
  check_type(argname="argument provisioners", value=provisioners, expected_type=type_hints["provisioners"])
868
816
  check_type(argname="argument hostname", value=hostname, expected_type=type_hints["hostname"])
869
- check_type(argname="argument network_interface", value=network_interface, expected_type=type_hints["network_interface"])
870
817
  check_type(argname="argument zone", value=zone, expected_type=type_hints["zone"])
871
818
  check_type(argname="argument boot_order", value=boot_order, expected_type=type_hints["boot_order"])
872
819
  check_type(argname="argument cpu", value=cpu, expected_type=type_hints["cpu"])
873
820
  check_type(argname="argument firewall", value=firewall, expected_type=type_hints["firewall"])
874
821
  check_type(argname="argument host", value=host, expected_type=type_hints["host"])
875
- check_type(argname="argument id", value=id, expected_type=type_hints["id"])
876
822
  check_type(argname="argument labels", value=labels, expected_type=type_hints["labels"])
877
823
  check_type(argname="argument login", value=login, expected_type=type_hints["login"])
878
824
  check_type(argname="argument mem", value=mem, expected_type=type_hints["mem"])
879
825
  check_type(argname="argument metadata", value=metadata, expected_type=type_hints["metadata"])
826
+ check_type(argname="argument network_interface", value=network_interface, expected_type=type_hints["network_interface"])
880
827
  check_type(argname="argument nic_model", value=nic_model, expected_type=type_hints["nic_model"])
881
828
  check_type(argname="argument plan", value=plan, expected_type=type_hints["plan"])
882
829
  check_type(argname="argument server_group", value=server_group, expected_type=type_hints["server_group"])
@@ -890,7 +837,6 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
890
837
  check_type(argname="argument video_model", value=video_model, expected_type=type_hints["video_model"])
891
838
  self._values: typing.Dict[builtins.str, typing.Any] = {
892
839
  "hostname": hostname,
893
- "network_interface": network_interface,
894
840
  "zone": zone,
895
841
  }
896
842
  if connection is not None:
@@ -915,8 +861,6 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
915
861
  self._values["firewall"] = firewall
916
862
  if host is not None:
917
863
  self._values["host"] = host
918
- if id is not None:
919
- self._values["id"] = id
920
864
  if labels is not None:
921
865
  self._values["labels"] = labels
922
866
  if login is not None:
@@ -925,6 +869,8 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
925
869
  self._values["mem"] = mem
926
870
  if metadata is not None:
927
871
  self._values["metadata"] = metadata
872
+ if network_interface is not None:
873
+ self._values["network_interface"] = network_interface
928
874
  if nic_model is not None:
929
875
  self._values["nic_model"] = nic_model
930
876
  if plan is not None:
@@ -1014,31 +960,19 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
1014
960
 
1015
961
  @builtins.property
1016
962
  def hostname(self) -> builtins.str:
1017
- '''A valid domain name.
963
+ '''The hostname of the server.
1018
964
 
1019
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#hostname Server#hostname}
965
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#hostname Server#hostname}
1020
966
  '''
1021
967
  result = self._values.get("hostname")
1022
968
  assert result is not None, "Required property 'hostname' is missing"
1023
969
  return typing.cast(builtins.str, result)
1024
970
 
1025
- @builtins.property
1026
- def network_interface(
1027
- self,
1028
- ) -> typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerNetworkInterface"]]:
1029
- '''network_interface block.
1030
-
1031
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#network_interface Server#network_interface}
1032
- '''
1033
- result = self._values.get("network_interface")
1034
- assert result is not None, "Required property 'network_interface' is missing"
1035
- return typing.cast(typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerNetworkInterface"]], result)
1036
-
1037
971
  @builtins.property
1038
972
  def zone(self) -> builtins.str:
1039
973
  '''The zone in which the server will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``.
1040
974
 
1041
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#zone Server#zone}
975
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#zone Server#zone}
1042
976
  '''
1043
977
  result = self._values.get("zone")
1044
978
  assert result is not None, "Required property 'zone' is missing"
@@ -1048,16 +982,16 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
1048
982
  def boot_order(self) -> typing.Optional[builtins.str]:
1049
983
  '''The boot device order, ``cdrom``|``disk``|``network`` or comma separated combination of those values. Defaults to ``disk``.
1050
984
 
1051
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#boot_order Server#boot_order}
985
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#boot_order Server#boot_order}
1052
986
  '''
1053
987
  result = self._values.get("boot_order")
1054
988
  return typing.cast(typing.Optional[builtins.str], result)
1055
989
 
1056
990
  @builtins.property
1057
991
  def cpu(self) -> typing.Optional[jsii.Number]:
1058
- '''The number of CPU for the server.
992
+ '''The number of CPU cores for the server.
1059
993
 
1060
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#cpu Server#cpu}
994
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#cpu Server#cpu}
1061
995
  '''
1062
996
  result = self._values.get("cpu")
1063
997
  return typing.cast(typing.Optional[jsii.Number], result)
@@ -1068,7 +1002,7 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
1068
1002
  ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
1069
1003
  '''Are firewall rules active for the server.
1070
1004
 
1071
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#firewall Server#firewall}
1005
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#firewall Server#firewall}
1072
1006
  '''
1073
1007
  result = self._values.get("firewall")
1074
1008
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
@@ -1079,44 +1013,36 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
1079
1013
 
1080
1014
  Refers to value from host -attribute. Only available for private cloud hosts
1081
1015
 
1082
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#host Server#host}
1016
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#host Server#host}
1083
1017
  '''
1084
1018
  result = self._values.get("host")
1085
1019
  return typing.cast(typing.Optional[jsii.Number], result)
1086
1020
 
1087
- @builtins.property
1088
- def id(self) -> typing.Optional[builtins.str]:
1089
- '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#id Server#id}.
1090
-
1091
- Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
1092
- If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
1093
- '''
1094
- result = self._values.get("id")
1095
- return typing.cast(typing.Optional[builtins.str], result)
1096
-
1097
1021
  @builtins.property
1098
1022
  def labels(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
1099
1023
  '''User defined key-value pairs to classify the server.
1100
1024
 
1101
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#labels Server#labels}
1025
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#labels Server#labels}
1102
1026
  '''
1103
1027
  result = self._values.get("labels")
1104
1028
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
1105
1029
 
1106
1030
  @builtins.property
1107
- def login(self) -> typing.Optional["ServerLogin"]:
1031
+ def login(
1032
+ self,
1033
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerLogin"]]]:
1108
1034
  '''login block.
1109
1035
 
1110
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#login Server#login}
1036
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#login Server#login}
1111
1037
  '''
1112
1038
  result = self._values.get("login")
1113
- return typing.cast(typing.Optional["ServerLogin"], result)
1039
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerLogin"]]], result)
1114
1040
 
1115
1041
  @builtins.property
1116
1042
  def mem(self) -> typing.Optional[jsii.Number]:
1117
- '''The size of memory for the server (in megabytes).
1043
+ '''The amount of memory for the server (in megabytes).
1118
1044
 
1119
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#mem Server#mem}
1045
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#mem Server#mem}
1120
1046
  '''
1121
1047
  result = self._values.get("mem")
1122
1048
  return typing.cast(typing.Optional[jsii.Number], result)
@@ -1125,18 +1051,29 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
1125
1051
  def metadata(
1126
1052
  self,
1127
1053
  ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
1128
- '''Is the metadata service active for the server.
1054
+ '''Is metadata service active for the server.
1129
1055
 
1130
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#metadata Server#metadata}
1056
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#metadata Server#metadata}
1131
1057
  '''
1132
1058
  result = self._values.get("metadata")
1133
1059
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
1134
1060
 
1061
+ @builtins.property
1062
+ def network_interface(
1063
+ self,
1064
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerNetworkInterface"]]]:
1065
+ '''network_interface block.
1066
+
1067
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#network_interface Server#network_interface}
1068
+ '''
1069
+ result = self._values.get("network_interface")
1070
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerNetworkInterface"]]], result)
1071
+
1135
1072
  @builtins.property
1136
1073
  def nic_model(self) -> typing.Optional[builtins.str]:
1137
1074
  '''The model of the server's network interfaces.
1138
1075
 
1139
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#nic_model Server#nic_model}
1076
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#nic_model Server#nic_model}
1140
1077
  '''
1141
1078
  result = self._values.get("nic_model")
1142
1079
  return typing.cast(typing.Optional[builtins.str], result)
@@ -1145,7 +1082,7 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
1145
1082
  def plan(self) -> typing.Optional[builtins.str]:
1146
1083
  '''The pricing plan used for the server. You can list available server plans with ``upctl server plans``.
1147
1084
 
1148
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#plan Server#plan}
1085
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#plan Server#plan}
1149
1086
  '''
1150
1087
  result = self._values.get("plan")
1151
1088
  return typing.cast(typing.Optional[builtins.str], result)
@@ -1156,19 +1093,21 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
1156
1093
 
1157
1094
  Note that the server can also be attached to a server group via the ``members`` property of ``upcloud_server_group``. Only one of the these should be defined at a time. This value is only updated if it has been set to non-zero value.
1158
1095
 
1159
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#server_group Server#server_group}
1096
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#server_group Server#server_group}
1160
1097
  '''
1161
1098
  result = self._values.get("server_group")
1162
1099
  return typing.cast(typing.Optional[builtins.str], result)
1163
1100
 
1164
1101
  @builtins.property
1165
- def simple_backup(self) -> typing.Optional["ServerSimpleBackup"]:
1102
+ def simple_backup(
1103
+ self,
1104
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerSimpleBackup"]]]:
1166
1105
  '''simple_backup block.
1167
1106
 
1168
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#simple_backup Server#simple_backup}
1107
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#simple_backup Server#simple_backup}
1169
1108
  '''
1170
1109
  result = self._values.get("simple_backup")
1171
- return typing.cast(typing.Optional["ServerSimpleBackup"], result)
1110
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerSimpleBackup"]]], result)
1172
1111
 
1173
1112
  @builtins.property
1174
1113
  def storage_devices(
@@ -1176,7 +1115,7 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
1176
1115
  ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerStorageDevices"]]]:
1177
1116
  '''storage_devices block.
1178
1117
 
1179
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#storage_devices Server#storage_devices}
1118
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#storage_devices Server#storage_devices}
1180
1119
  '''
1181
1120
  result = self._values.get("storage_devices")
1182
1121
  return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerStorageDevices"]]], result)
@@ -1185,34 +1124,36 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
1185
1124
  def tags(self) -> typing.Optional[typing.List[builtins.str]]:
1186
1125
  '''The server related tags.
1187
1126
 
1188
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#tags Server#tags}
1127
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#tags Server#tags}
1189
1128
  '''
1190
1129
  result = self._values.get("tags")
1191
1130
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1192
1131
 
1193
1132
  @builtins.property
1194
- def template(self) -> typing.Optional["ServerTemplate"]:
1133
+ def template(
1134
+ self,
1135
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerTemplate"]]]:
1195
1136
  '''template block.
1196
1137
 
1197
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#template Server#template}
1138
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#template Server#template}
1198
1139
  '''
1199
1140
  result = self._values.get("template")
1200
- return typing.cast(typing.Optional["ServerTemplate"], result)
1141
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerTemplate"]]], result)
1201
1142
 
1202
1143
  @builtins.property
1203
1144
  def timezone(self) -> typing.Optional[builtins.str]:
1204
- '''A timezone identifier, e.g. ``Europe/Helsinki``.
1145
+ '''The timezone of the server. The timezone must be a valid timezone string, e.g. ``Europe/Helsinki``.
1205
1146
 
1206
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#timezone Server#timezone}
1147
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#timezone Server#timezone}
1207
1148
  '''
1208
1149
  result = self._values.get("timezone")
1209
1150
  return typing.cast(typing.Optional[builtins.str], result)
1210
1151
 
1211
1152
  @builtins.property
1212
1153
  def title(self) -> typing.Optional[builtins.str]:
1213
- '''A short, informational description.
1154
+ '''A short, informational description of the server.
1214
1155
 
1215
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#title Server#title}
1156
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#title Server#title}
1216
1157
  '''
1217
1158
  result = self._values.get("title")
1218
1159
  return typing.cast(typing.Optional[builtins.str], result)
@@ -1221,7 +1162,7 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
1221
1162
  def user_data(self) -> typing.Optional[builtins.str]:
1222
1163
  '''Defines URL for a server setup script, or the script body itself.
1223
1164
 
1224
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#user_data Server#user_data}
1165
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#user_data Server#user_data}
1225
1166
  '''
1226
1167
  result = self._values.get("user_data")
1227
1168
  return typing.cast(typing.Optional[builtins.str], result)
@@ -1230,7 +1171,7 @@ class ServerConfig(_cdktf_9a9027ec.TerraformMetaArguments):
1230
1171
  def video_model(self) -> typing.Optional[builtins.str]:
1231
1172
  '''The model of the server's video interface.
1232
1173
 
1233
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#video_model Server#video_model}
1174
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#video_model Server#video_model}
1234
1175
  '''
1235
1176
  result = self._values.get("video_model")
1236
1177
  return typing.cast(typing.Optional[builtins.str], result)
@@ -1267,10 +1208,10 @@ class ServerLogin:
1267
1208
  user: typing.Optional[builtins.str] = None,
1268
1209
  ) -> None:
1269
1210
  '''
1270
- :param create_password: Indicates a password should be create to allow access. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#create_password Server#create_password}
1271
- :param keys: A list of ssh keys to access the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#keys Server#keys}
1272
- :param password_delivery: The delivery method for the server's root password (one of ``none``, ``email`` or ``sms``). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#password_delivery Server#password_delivery}
1273
- :param user: Username to be create to access the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#user Server#user}
1211
+ :param create_password: Indicates a password should be create to allow access. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#create_password Server#create_password}
1212
+ :param keys: A list of ssh keys to access the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#keys Server#keys}
1213
+ :param password_delivery: The delivery method for the server's root password (one of ``none``, ``email`` or ``sms``). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#password_delivery Server#password_delivery}
1214
+ :param user: Username to be create to access the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#user Server#user}
1274
1215
  '''
1275
1216
  if __debug__:
1276
1217
  type_hints = typing.get_type_hints(_typecheckingstub__ba39a2ee1d911b76fb74554613ea114a5a572a0bf44aae12941ef4644ef7377a)
@@ -1294,7 +1235,7 @@ class ServerLogin:
1294
1235
  ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
1295
1236
  '''Indicates a password should be create to allow access.
1296
1237
 
1297
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#create_password Server#create_password}
1238
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#create_password Server#create_password}
1298
1239
  '''
1299
1240
  result = self._values.get("create_password")
1300
1241
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
@@ -1303,7 +1244,7 @@ class ServerLogin:
1303
1244
  def keys(self) -> typing.Optional[typing.List[builtins.str]]:
1304
1245
  '''A list of ssh keys to access the server.
1305
1246
 
1306
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#keys Server#keys}
1247
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#keys Server#keys}
1307
1248
  '''
1308
1249
  result = self._values.get("keys")
1309
1250
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
@@ -1312,7 +1253,7 @@ class ServerLogin:
1312
1253
  def password_delivery(self) -> typing.Optional[builtins.str]:
1313
1254
  '''The delivery method for the server's root password (one of ``none``, ``email`` or ``sms``).
1314
1255
 
1315
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#password_delivery Server#password_delivery}
1256
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#password_delivery Server#password_delivery}
1316
1257
  '''
1317
1258
  result = self._values.get("password_delivery")
1318
1259
  return typing.cast(typing.Optional[builtins.str], result)
@@ -1321,7 +1262,7 @@ class ServerLogin:
1321
1262
  def user(self) -> typing.Optional[builtins.str]:
1322
1263
  '''Username to be create to access the server.
1323
1264
 
1324
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#user Server#user}
1265
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#user Server#user}
1325
1266
  '''
1326
1267
  result = self._values.get("user")
1327
1268
  return typing.cast(typing.Optional[builtins.str], result)
@@ -1338,6 +1279,96 @@ class ServerLogin:
1338
1279
  )
1339
1280
 
1340
1281
 
1282
+ class ServerLoginList(
1283
+ _cdktf_9a9027ec.ComplexList,
1284
+ metaclass=jsii.JSIIMeta,
1285
+ jsii_type="@cdktf/provider-upcloud.server.ServerLoginList",
1286
+ ):
1287
+ def __init__(
1288
+ self,
1289
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1290
+ terraform_attribute: builtins.str,
1291
+ wraps_set: builtins.bool,
1292
+ ) -> None:
1293
+ '''
1294
+ :param terraform_resource: The parent resource.
1295
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
1296
+ :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
1297
+ '''
1298
+ if __debug__:
1299
+ type_hints = typing.get_type_hints(_typecheckingstub__fb03a79d03ab141be1cadd4f8b35544e42fdf474cb721eaceed4d99cd543137a)
1300
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
1301
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
1302
+ check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
1303
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])
1304
+
1305
+ @jsii.member(jsii_name="get")
1306
+ def get(self, index: jsii.Number) -> "ServerLoginOutputReference":
1307
+ '''
1308
+ :param index: the index of the item to return.
1309
+ '''
1310
+ if __debug__:
1311
+ type_hints = typing.get_type_hints(_typecheckingstub__d0481abc20ad310759cbe2f28f10c094b5a5d751a61674ea1910af4cd52a0553)
1312
+ check_type(argname="argument index", value=index, expected_type=type_hints["index"])
1313
+ return typing.cast("ServerLoginOutputReference", jsii.invoke(self, "get", [index]))
1314
+
1315
+ @builtins.property
1316
+ @jsii.member(jsii_name="terraformAttribute")
1317
+ def _terraform_attribute(self) -> builtins.str:
1318
+ '''The attribute on the parent resource this class is referencing.'''
1319
+ return typing.cast(builtins.str, jsii.get(self, "terraformAttribute"))
1320
+
1321
+ @_terraform_attribute.setter
1322
+ def _terraform_attribute(self, value: builtins.str) -> None:
1323
+ if __debug__:
1324
+ type_hints = typing.get_type_hints(_typecheckingstub__f132c1614c9b5ba1ba5b19ab717b2469460fa2427499b457d6df94a3ecd32ad3)
1325
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1326
+ jsii.set(self, "terraformAttribute", value) # pyright: ignore[reportArgumentType]
1327
+
1328
+ @builtins.property
1329
+ @jsii.member(jsii_name="terraformResource")
1330
+ def _terraform_resource(self) -> _cdktf_9a9027ec.IInterpolatingParent:
1331
+ '''The parent resource.'''
1332
+ return typing.cast(_cdktf_9a9027ec.IInterpolatingParent, jsii.get(self, "terraformResource"))
1333
+
1334
+ @_terraform_resource.setter
1335
+ def _terraform_resource(self, value: _cdktf_9a9027ec.IInterpolatingParent) -> None:
1336
+ if __debug__:
1337
+ type_hints = typing.get_type_hints(_typecheckingstub__19fbe734a6b0e38e5289cc8fe824275160a50fb2585cf0d51ef68b976dea61c6)
1338
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1339
+ jsii.set(self, "terraformResource", value) # pyright: ignore[reportArgumentType]
1340
+
1341
+ @builtins.property
1342
+ @jsii.member(jsii_name="wrapsSet")
1343
+ def _wraps_set(self) -> builtins.bool:
1344
+ '''whether the list is wrapping a set (will add tolist() to be able to access an item via an index).'''
1345
+ return typing.cast(builtins.bool, jsii.get(self, "wrapsSet"))
1346
+
1347
+ @_wraps_set.setter
1348
+ def _wraps_set(self, value: builtins.bool) -> None:
1349
+ if __debug__:
1350
+ type_hints = typing.get_type_hints(_typecheckingstub__eaeef62da438caf9575e9c49eef5839c2d85d328d845ce461169c3db3d91756e)
1351
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1352
+ jsii.set(self, "wrapsSet", value) # pyright: ignore[reportArgumentType]
1353
+
1354
+ @builtins.property
1355
+ @jsii.member(jsii_name="internalValue")
1356
+ def internal_value(
1357
+ self,
1358
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerLogin]]]:
1359
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerLogin]]], jsii.get(self, "internalValue"))
1360
+
1361
+ @internal_value.setter
1362
+ def internal_value(
1363
+ self,
1364
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerLogin]]],
1365
+ ) -> None:
1366
+ if __debug__:
1367
+ type_hints = typing.get_type_hints(_typecheckingstub__e67a467069e4676293f1f5918b73243b8eb7133d888bd7f11cebf870f3426f49)
1368
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1369
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
1370
+
1371
+
1341
1372
  class ServerLoginOutputReference(
1342
1373
  _cdktf_9a9027ec.ComplexObject,
1343
1374
  metaclass=jsii.JSIIMeta,
@@ -1347,16 +1378,22 @@ class ServerLoginOutputReference(
1347
1378
  self,
1348
1379
  terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1349
1380
  terraform_attribute: builtins.str,
1381
+ complex_object_index: jsii.Number,
1382
+ complex_object_is_from_set: builtins.bool,
1350
1383
  ) -> None:
1351
1384
  '''
1352
1385
  :param terraform_resource: The parent resource.
1353
1386
  :param terraform_attribute: The attribute on the parent resource this class is referencing.
1387
+ :param complex_object_index: the index of this item in the list.
1388
+ :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
1354
1389
  '''
1355
1390
  if __debug__:
1356
1391
  type_hints = typing.get_type_hints(_typecheckingstub__cb37b4e00c78f37c38cbba42c725d341426cd4846a37328a858efbce8e63b347)
1357
1392
  check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
1358
1393
  check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
1359
- jsii.create(self.__class__, self, [terraform_resource, terraform_attribute])
1394
+ check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
1395
+ check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
1396
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])
1360
1397
 
1361
1398
  @jsii.member(jsii_name="resetCreatePassword")
1362
1399
  def reset_create_password(self) -> None:
@@ -1451,11 +1488,16 @@ class ServerLoginOutputReference(
1451
1488
 
1452
1489
  @builtins.property
1453
1490
  @jsii.member(jsii_name="internalValue")
1454
- def internal_value(self) -> typing.Optional[ServerLogin]:
1455
- return typing.cast(typing.Optional[ServerLogin], jsii.get(self, "internalValue"))
1491
+ def internal_value(
1492
+ self,
1493
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerLogin]]:
1494
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerLogin]], jsii.get(self, "internalValue"))
1456
1495
 
1457
1496
  @internal_value.setter
1458
- def internal_value(self, value: typing.Optional[ServerLogin]) -> None:
1497
+ def internal_value(
1498
+ self,
1499
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerLogin]],
1500
+ ) -> None:
1459
1501
  if __debug__:
1460
1502
  type_hints = typing.get_type_hints(_typecheckingstub__c5a2e407880016cbd5838a509393761434aa730eb60add2b4b29eadad0776d3b)
1461
1503
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
@@ -1490,14 +1532,14 @@ class ServerNetworkInterface:
1490
1532
  source_ip_filtering: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
1491
1533
  ) -> None:
1492
1534
  '''
1493
- :param type: Network interface type. For private network interfaces, a network must be specified with an existing network id. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#type Server#type}
1494
- :param additional_ip_address: additional_ip_address block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#additional_ip_address Server#additional_ip_address}
1495
- :param bootable: ``true`` if this interface should be used for network booting. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#bootable Server#bootable}
1496
- :param index: The interface index. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#index Server#index}
1497
- :param ip_address: The assigned primary IP address. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#ip_address Server#ip_address}
1498
- :param ip_address_family: The type of the primary IP address of this interface (one of ``IPv4`` or ``IPv6``). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#ip_address_family Server#ip_address_family}
1499
- :param network: The unique ID of a network to attach this network to. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#network Server#network}
1500
- :param source_ip_filtering: ``true`` if source IP should be filtered. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#source_ip_filtering Server#source_ip_filtering}
1535
+ :param type: Network interface type. For private network interfaces, a network must be specified with an existing network id. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#type Server#type}
1536
+ :param additional_ip_address: additional_ip_address block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#additional_ip_address Server#additional_ip_address}
1537
+ :param bootable: ``true`` if this interface should be used for network booting. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#bootable Server#bootable}
1538
+ :param index: The interface index. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#index Server#index}
1539
+ :param ip_address: The primary IP address of this interface. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#ip_address Server#ip_address}
1540
+ :param ip_address_family: The type of the primary IP address of this interface (one of ``IPv4`` or ``IPv6``). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#ip_address_family Server#ip_address_family}
1541
+ :param network: The UUID of the network to attach this interface to. Required for private network interfaces. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#network Server#network}
1542
+ :param source_ip_filtering: ``true`` if source IP should be filtered. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#source_ip_filtering Server#source_ip_filtering}
1501
1543
  '''
1502
1544
  if __debug__:
1503
1545
  type_hints = typing.get_type_hints(_typecheckingstub__fd495e0f43b555636347e658837821c13810606782b5f840f155acbfbcf8b7ea)
@@ -1531,7 +1573,7 @@ class ServerNetworkInterface:
1531
1573
  def type(self) -> builtins.str:
1532
1574
  '''Network interface type. For private network interfaces, a network must be specified with an existing network id.
1533
1575
 
1534
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#type Server#type}
1576
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#type Server#type}
1535
1577
  '''
1536
1578
  result = self._values.get("type")
1537
1579
  assert result is not None, "Required property 'type' is missing"
@@ -1543,7 +1585,7 @@ class ServerNetworkInterface:
1543
1585
  ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerNetworkInterfaceAdditionalIpAddress"]]]:
1544
1586
  '''additional_ip_address block.
1545
1587
 
1546
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#additional_ip_address Server#additional_ip_address}
1588
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#additional_ip_address Server#additional_ip_address}
1547
1589
  '''
1548
1590
  result = self._values.get("additional_ip_address")
1549
1591
  return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerNetworkInterfaceAdditionalIpAddress"]]], result)
@@ -1554,7 +1596,7 @@ class ServerNetworkInterface:
1554
1596
  ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
1555
1597
  '''``true`` if this interface should be used for network booting.
1556
1598
 
1557
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#bootable Server#bootable}
1599
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#bootable Server#bootable}
1558
1600
  '''
1559
1601
  result = self._values.get("bootable")
1560
1602
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
@@ -1563,16 +1605,16 @@ class ServerNetworkInterface:
1563
1605
  def index(self) -> typing.Optional[jsii.Number]:
1564
1606
  '''The interface index.
1565
1607
 
1566
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#index Server#index}
1608
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#index Server#index}
1567
1609
  '''
1568
1610
  result = self._values.get("index")
1569
1611
  return typing.cast(typing.Optional[jsii.Number], result)
1570
1612
 
1571
1613
  @builtins.property
1572
1614
  def ip_address(self) -> typing.Optional[builtins.str]:
1573
- '''The assigned primary IP address.
1615
+ '''The primary IP address of this interface.
1574
1616
 
1575
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#ip_address Server#ip_address}
1617
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#ip_address Server#ip_address}
1576
1618
  '''
1577
1619
  result = self._values.get("ip_address")
1578
1620
  return typing.cast(typing.Optional[builtins.str], result)
@@ -1581,16 +1623,16 @@ class ServerNetworkInterface:
1581
1623
  def ip_address_family(self) -> typing.Optional[builtins.str]:
1582
1624
  '''The type of the primary IP address of this interface (one of ``IPv4`` or ``IPv6``).
1583
1625
 
1584
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#ip_address_family Server#ip_address_family}
1626
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#ip_address_family Server#ip_address_family}
1585
1627
  '''
1586
1628
  result = self._values.get("ip_address_family")
1587
1629
  return typing.cast(typing.Optional[builtins.str], result)
1588
1630
 
1589
1631
  @builtins.property
1590
1632
  def network(self) -> typing.Optional[builtins.str]:
1591
- '''The unique ID of a network to attach this network to.
1633
+ '''The UUID of the network to attach this interface to. Required for private network interfaces.
1592
1634
 
1593
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#network Server#network}
1635
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#network Server#network}
1594
1636
  '''
1595
1637
  result = self._values.get("network")
1596
1638
  return typing.cast(typing.Optional[builtins.str], result)
@@ -1601,7 +1643,7 @@ class ServerNetworkInterface:
1601
1643
  ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
1602
1644
  '''``true`` if source IP should be filtered.
1603
1645
 
1604
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#source_ip_filtering Server#source_ip_filtering}
1646
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#source_ip_filtering Server#source_ip_filtering}
1605
1647
  '''
1606
1648
  result = self._values.get("source_ip_filtering")
1607
1649
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
@@ -1631,8 +1673,8 @@ class ServerNetworkInterfaceAdditionalIpAddress:
1631
1673
  ip_address_family: typing.Optional[builtins.str] = None,
1632
1674
  ) -> None:
1633
1675
  '''
1634
- :param ip_address: The assigned additional IP address. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#ip_address Server#ip_address}
1635
- :param ip_address_family: The type of this additional IP address of this interface (one of ``IPv4`` or ``IPv6``). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#ip_address_family Server#ip_address_family}
1676
+ :param ip_address: An additional IP address for this interface. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#ip_address Server#ip_address}
1677
+ :param ip_address_family: The type of the additional IP address of this interface (one of ``IPv4`` or ``IPv6``). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#ip_address_family Server#ip_address_family}
1636
1678
  '''
1637
1679
  if __debug__:
1638
1680
  type_hints = typing.get_type_hints(_typecheckingstub__0b6048ebfe8d4aeae43994c82a3e7294ab414eb1a49571fd3fff63238f2a288c)
@@ -1646,18 +1688,18 @@ class ServerNetworkInterfaceAdditionalIpAddress:
1646
1688
 
1647
1689
  @builtins.property
1648
1690
  def ip_address(self) -> typing.Optional[builtins.str]:
1649
- '''The assigned additional IP address.
1691
+ '''An additional IP address for this interface.
1650
1692
 
1651
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#ip_address Server#ip_address}
1693
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#ip_address Server#ip_address}
1652
1694
  '''
1653
1695
  result = self._values.get("ip_address")
1654
1696
  return typing.cast(typing.Optional[builtins.str], result)
1655
1697
 
1656
1698
  @builtins.property
1657
1699
  def ip_address_family(self) -> typing.Optional[builtins.str]:
1658
- '''The type of this additional IP address of this interface (one of ``IPv4`` or ``IPv6``).
1700
+ '''The type of the additional IP address of this interface (one of ``IPv4`` or ``IPv6``).
1659
1701
 
1660
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#ip_address_family Server#ip_address_family}
1702
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#ip_address_family Server#ip_address_family}
1661
1703
  '''
1662
1704
  result = self._values.get("ip_address_family")
1663
1705
  return typing.cast(typing.Optional[builtins.str], result)
@@ -2192,39 +2234,43 @@ class ServerNetworkInterfaceOutputReference(
2192
2234
  name_mapping={"plan": "plan", "time": "time"},
2193
2235
  )
2194
2236
  class ServerSimpleBackup:
2195
- def __init__(self, *, plan: builtins.str, time: builtins.str) -> None:
2237
+ def __init__(
2238
+ self,
2239
+ *,
2240
+ plan: typing.Optional[builtins.str] = None,
2241
+ time: typing.Optional[builtins.str] = None,
2242
+ ) -> None:
2196
2243
  '''
2197
- :param plan: Simple backup plan. Accepted values: daily, dailies, weeklies, monthlies. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#plan Server#plan}
2198
- :param time: Time of the day at which backup will be taken. Should be provided in a hhmm format (e.g. 2230). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#time Server#time}
2244
+ :param plan: Simple backup plan. Accepted values: daily, dailies, weeklies, monthlies. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#plan Server#plan}
2245
+ :param time: Time of the day at which backup will be taken. Should be provided in a hhmm format (e.g. 2230). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#time Server#time}
2199
2246
  '''
2200
2247
  if __debug__:
2201
2248
  type_hints = typing.get_type_hints(_typecheckingstub__e0bd20cac4bdde3b91171ae0bf44e53e9583617261eaf0793a175a7d8da3cee3)
2202
2249
  check_type(argname="argument plan", value=plan, expected_type=type_hints["plan"])
2203
2250
  check_type(argname="argument time", value=time, expected_type=type_hints["time"])
2204
- self._values: typing.Dict[builtins.str, typing.Any] = {
2205
- "plan": plan,
2206
- "time": time,
2207
- }
2251
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2252
+ if plan is not None:
2253
+ self._values["plan"] = plan
2254
+ if time is not None:
2255
+ self._values["time"] = time
2208
2256
 
2209
2257
  @builtins.property
2210
- def plan(self) -> builtins.str:
2258
+ def plan(self) -> typing.Optional[builtins.str]:
2211
2259
  '''Simple backup plan. Accepted values: daily, dailies, weeklies, monthlies.
2212
2260
 
2213
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#plan Server#plan}
2261
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#plan Server#plan}
2214
2262
  '''
2215
2263
  result = self._values.get("plan")
2216
- assert result is not None, "Required property 'plan' is missing"
2217
- return typing.cast(builtins.str, result)
2264
+ return typing.cast(typing.Optional[builtins.str], result)
2218
2265
 
2219
2266
  @builtins.property
2220
- def time(self) -> builtins.str:
2267
+ def time(self) -> typing.Optional[builtins.str]:
2221
2268
  '''Time of the day at which backup will be taken. Should be provided in a hhmm format (e.g. 2230).
2222
2269
 
2223
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#time Server#time}
2270
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#time Server#time}
2224
2271
  '''
2225
2272
  result = self._values.get("time")
2226
- assert result is not None, "Required property 'time' is missing"
2227
- return typing.cast(builtins.str, result)
2273
+ return typing.cast(typing.Optional[builtins.str], result)
2228
2274
 
2229
2275
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
2230
2276
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -2238,69 +2284,178 @@ class ServerSimpleBackup:
2238
2284
  )
2239
2285
 
2240
2286
 
2241
- class ServerSimpleBackupOutputReference(
2242
- _cdktf_9a9027ec.ComplexObject,
2287
+ class ServerSimpleBackupList(
2288
+ _cdktf_9a9027ec.ComplexList,
2243
2289
  metaclass=jsii.JSIIMeta,
2244
- jsii_type="@cdktf/provider-upcloud.server.ServerSimpleBackupOutputReference",
2290
+ jsii_type="@cdktf/provider-upcloud.server.ServerSimpleBackupList",
2245
2291
  ):
2246
2292
  def __init__(
2247
2293
  self,
2248
2294
  terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
2249
2295
  terraform_attribute: builtins.str,
2296
+ wraps_set: builtins.bool,
2250
2297
  ) -> None:
2251
2298
  '''
2252
2299
  :param terraform_resource: The parent resource.
2253
2300
  :param terraform_attribute: The attribute on the parent resource this class is referencing.
2301
+ :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
2254
2302
  '''
2255
2303
  if __debug__:
2256
- type_hints = typing.get_type_hints(_typecheckingstub__543283afc6e5dcbaed6d63b62679b76fe001c3a94535d560e5ee698bde877d12)
2304
+ type_hints = typing.get_type_hints(_typecheckingstub__d5bc799dd20317cd73a9978f93c9cd6a9ea8fd88acd763183b836b6eddd20d62)
2257
2305
  check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
2258
2306
  check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
2259
- jsii.create(self.__class__, self, [terraform_resource, terraform_attribute])
2307
+ check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
2308
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])
2260
2309
 
2261
- @builtins.property
2262
- @jsii.member(jsii_name="planInput")
2263
- def plan_input(self) -> typing.Optional[builtins.str]:
2264
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "planInput"))
2310
+ @jsii.member(jsii_name="get")
2311
+ def get(self, index: jsii.Number) -> "ServerSimpleBackupOutputReference":
2312
+ '''
2313
+ :param index: the index of the item to return.
2314
+ '''
2315
+ if __debug__:
2316
+ type_hints = typing.get_type_hints(_typecheckingstub__c50b5bf6c21c58214becf2e9e5e6e334430c4c27c6557540fae04ae21e102c92)
2317
+ check_type(argname="argument index", value=index, expected_type=type_hints["index"])
2318
+ return typing.cast("ServerSimpleBackupOutputReference", jsii.invoke(self, "get", [index]))
2265
2319
 
2266
2320
  @builtins.property
2267
- @jsii.member(jsii_name="timeInput")
2268
- def time_input(self) -> typing.Optional[builtins.str]:
2269
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "timeInput"))
2321
+ @jsii.member(jsii_name="terraformAttribute")
2322
+ def _terraform_attribute(self) -> builtins.str:
2323
+ '''The attribute on the parent resource this class is referencing.'''
2324
+ return typing.cast(builtins.str, jsii.get(self, "terraformAttribute"))
2325
+
2326
+ @_terraform_attribute.setter
2327
+ def _terraform_attribute(self, value: builtins.str) -> None:
2328
+ if __debug__:
2329
+ type_hints = typing.get_type_hints(_typecheckingstub__8ada2344e2be9cf11d5892b47601e5ccbe84e1fe73623f0fe28918eff6b656fe)
2330
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2331
+ jsii.set(self, "terraformAttribute", value) # pyright: ignore[reportArgumentType]
2270
2332
 
2271
2333
  @builtins.property
2272
- @jsii.member(jsii_name="plan")
2273
- def plan(self) -> builtins.str:
2274
- return typing.cast(builtins.str, jsii.get(self, "plan"))
2334
+ @jsii.member(jsii_name="terraformResource")
2335
+ def _terraform_resource(self) -> _cdktf_9a9027ec.IInterpolatingParent:
2336
+ '''The parent resource.'''
2337
+ return typing.cast(_cdktf_9a9027ec.IInterpolatingParent, jsii.get(self, "terraformResource"))
2275
2338
 
2276
- @plan.setter
2277
- def plan(self, value: builtins.str) -> None:
2339
+ @_terraform_resource.setter
2340
+ def _terraform_resource(self, value: _cdktf_9a9027ec.IInterpolatingParent) -> None:
2278
2341
  if __debug__:
2279
- type_hints = typing.get_type_hints(_typecheckingstub__3fcfd10d4cc42b7a124d6deb709aed8a84109c8a6ccf87e6ea1c1446e290e765)
2342
+ type_hints = typing.get_type_hints(_typecheckingstub__80ac01001775f9091e90876610cfbadfba3c0bd897bcd725fbdebf70436d1b1c)
2280
2343
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2281
- jsii.set(self, "plan", value) # pyright: ignore[reportArgumentType]
2344
+ jsii.set(self, "terraformResource", value) # pyright: ignore[reportArgumentType]
2282
2345
 
2283
2346
  @builtins.property
2284
- @jsii.member(jsii_name="time")
2285
- def time(self) -> builtins.str:
2286
- return typing.cast(builtins.str, jsii.get(self, "time"))
2347
+ @jsii.member(jsii_name="wrapsSet")
2348
+ def _wraps_set(self) -> builtins.bool:
2349
+ '''whether the list is wrapping a set (will add tolist() to be able to access an item via an index).'''
2350
+ return typing.cast(builtins.bool, jsii.get(self, "wrapsSet"))
2287
2351
 
2288
- @time.setter
2289
- def time(self, value: builtins.str) -> None:
2352
+ @_wraps_set.setter
2353
+ def _wraps_set(self, value: builtins.bool) -> None:
2290
2354
  if __debug__:
2291
- type_hints = typing.get_type_hints(_typecheckingstub__d2a12363cbec7f1b1136e6a05c23fd0826a6915ccf0b0b64f9f4fccc66a7b1da)
2355
+ type_hints = typing.get_type_hints(_typecheckingstub__8b09a06daff97f70b9cda1eb1be8f02b060130ccbabb3a8764635911bab83554)
2292
2356
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2293
- jsii.set(self, "time", value) # pyright: ignore[reportArgumentType]
2357
+ jsii.set(self, "wrapsSet", value) # pyright: ignore[reportArgumentType]
2294
2358
 
2295
2359
  @builtins.property
2296
2360
  @jsii.member(jsii_name="internalValue")
2297
- def internal_value(self) -> typing.Optional[ServerSimpleBackup]:
2298
- return typing.cast(typing.Optional[ServerSimpleBackup], jsii.get(self, "internalValue"))
2361
+ def internal_value(
2362
+ self,
2363
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerSimpleBackup]]]:
2364
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerSimpleBackup]]], jsii.get(self, "internalValue"))
2299
2365
 
2300
2366
  @internal_value.setter
2301
- def internal_value(self, value: typing.Optional[ServerSimpleBackup]) -> None:
2302
- if __debug__:
2303
- type_hints = typing.get_type_hints(_typecheckingstub__047ada69f3d10e42273140f60146f8fdf26e9f7c5b02497edf7ff0b3533062bd)
2367
+ def internal_value(
2368
+ self,
2369
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerSimpleBackup]]],
2370
+ ) -> None:
2371
+ if __debug__:
2372
+ type_hints = typing.get_type_hints(_typecheckingstub__af359ef04adfda4ddc712b398d407bb32fa5497d8f06474f907f793398e3a518)
2373
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2374
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
2375
+
2376
+
2377
+ class ServerSimpleBackupOutputReference(
2378
+ _cdktf_9a9027ec.ComplexObject,
2379
+ metaclass=jsii.JSIIMeta,
2380
+ jsii_type="@cdktf/provider-upcloud.server.ServerSimpleBackupOutputReference",
2381
+ ):
2382
+ def __init__(
2383
+ self,
2384
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
2385
+ terraform_attribute: builtins.str,
2386
+ complex_object_index: jsii.Number,
2387
+ complex_object_is_from_set: builtins.bool,
2388
+ ) -> None:
2389
+ '''
2390
+ :param terraform_resource: The parent resource.
2391
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
2392
+ :param complex_object_index: the index of this item in the list.
2393
+ :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
2394
+ '''
2395
+ if __debug__:
2396
+ type_hints = typing.get_type_hints(_typecheckingstub__543283afc6e5dcbaed6d63b62679b76fe001c3a94535d560e5ee698bde877d12)
2397
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
2398
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
2399
+ check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
2400
+ check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
2401
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])
2402
+
2403
+ @jsii.member(jsii_name="resetPlan")
2404
+ def reset_plan(self) -> None:
2405
+ return typing.cast(None, jsii.invoke(self, "resetPlan", []))
2406
+
2407
+ @jsii.member(jsii_name="resetTime")
2408
+ def reset_time(self) -> None:
2409
+ return typing.cast(None, jsii.invoke(self, "resetTime", []))
2410
+
2411
+ @builtins.property
2412
+ @jsii.member(jsii_name="planInput")
2413
+ def plan_input(self) -> typing.Optional[builtins.str]:
2414
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "planInput"))
2415
+
2416
+ @builtins.property
2417
+ @jsii.member(jsii_name="timeInput")
2418
+ def time_input(self) -> typing.Optional[builtins.str]:
2419
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "timeInput"))
2420
+
2421
+ @builtins.property
2422
+ @jsii.member(jsii_name="plan")
2423
+ def plan(self) -> builtins.str:
2424
+ return typing.cast(builtins.str, jsii.get(self, "plan"))
2425
+
2426
+ @plan.setter
2427
+ def plan(self, value: builtins.str) -> None:
2428
+ if __debug__:
2429
+ type_hints = typing.get_type_hints(_typecheckingstub__3fcfd10d4cc42b7a124d6deb709aed8a84109c8a6ccf87e6ea1c1446e290e765)
2430
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2431
+ jsii.set(self, "plan", value) # pyright: ignore[reportArgumentType]
2432
+
2433
+ @builtins.property
2434
+ @jsii.member(jsii_name="time")
2435
+ def time(self) -> builtins.str:
2436
+ return typing.cast(builtins.str, jsii.get(self, "time"))
2437
+
2438
+ @time.setter
2439
+ def time(self, value: builtins.str) -> None:
2440
+ if __debug__:
2441
+ type_hints = typing.get_type_hints(_typecheckingstub__d2a12363cbec7f1b1136e6a05c23fd0826a6915ccf0b0b64f9f4fccc66a7b1da)
2442
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2443
+ jsii.set(self, "time", value) # pyright: ignore[reportArgumentType]
2444
+
2445
+ @builtins.property
2446
+ @jsii.member(jsii_name="internalValue")
2447
+ def internal_value(
2448
+ self,
2449
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerSimpleBackup]]:
2450
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerSimpleBackup]], jsii.get(self, "internalValue"))
2451
+
2452
+ @internal_value.setter
2453
+ def internal_value(
2454
+ self,
2455
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerSimpleBackup]],
2456
+ ) -> None:
2457
+ if __debug__:
2458
+ type_hints = typing.get_type_hints(_typecheckingstub__047ada69f3d10e42273140f60146f8fdf26e9f7c5b02497edf7ff0b3533062bd)
2304
2459
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2305
2460
  jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
2306
2461
 
@@ -2309,9 +2464,9 @@ class ServerSimpleBackupOutputReference(
2309
2464
  jsii_type="@cdktf/provider-upcloud.server.ServerStorageDevices",
2310
2465
  jsii_struct_bases=[],
2311
2466
  name_mapping={
2312
- "storage": "storage",
2313
2467
  "address": "address",
2314
2468
  "address_position": "addressPosition",
2469
+ "storage": "storage",
2315
2470
  "type": "type",
2316
2471
  },
2317
2472
  )
@@ -2319,50 +2474,40 @@ class ServerStorageDevices:
2319
2474
  def __init__(
2320
2475
  self,
2321
2476
  *,
2322
- storage: builtins.str,
2323
2477
  address: typing.Optional[builtins.str] = None,
2324
2478
  address_position: typing.Optional[builtins.str] = None,
2479
+ storage: typing.Optional[builtins.str] = None,
2325
2480
  type: typing.Optional[builtins.str] = None,
2326
2481
  ) -> None:
2327
2482
  '''
2328
- :param storage: A valid storage UUID. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#storage Server#storage}
2329
- :param address: The device address the storage will be attached to (``scsi``|``virtio``|``ide``). Leave ``address_position`` field empty to auto-select next available address from that bus. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#address Server#address}
2330
- :param address_position: The device position in the given bus (defined via field ``address``). Valid values for address ``virtio`` are ``0-15`` (``0``, for example). Valid values for ``scsi`` or ``ide`` are ``0-1:0-1`` (``0:0``, for example). Leave empty to auto-select next available address in the given bus. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#address_position Server#address_position}
2331
- :param type: The device type the storage will be attached as. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#type Server#type}
2483
+ :param address: The device address the storage will be attached to (``scsi``|``virtio``|``ide``). Leave ``address_position`` field empty to auto-select next available address from that bus. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#address Server#address}
2484
+ :param address_position: The device position in the given bus (defined via field ``address``). Valid values for address ``virtio`` are ``0-15`` (``0``, for example). Valid values for ``scsi`` or ``ide`` are ``0-1:0-1`` (``0:0``, for example). Leave empty to auto-select next available address in the given bus. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#address_position Server#address_position}
2485
+ :param storage: The UUID of the storage to attach to the server. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#storage Server#storage}
2486
+ :param type: The device type the storage will be attached as. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#type Server#type}
2332
2487
  '''
2333
2488
  if __debug__:
2334
2489
  type_hints = typing.get_type_hints(_typecheckingstub__deefc3ca26ddd4529dd49d665d0a7e4d178ed9e318d7a6ed318fe000f57713ea)
2335
- check_type(argname="argument storage", value=storage, expected_type=type_hints["storage"])
2336
2490
  check_type(argname="argument address", value=address, expected_type=type_hints["address"])
2337
2491
  check_type(argname="argument address_position", value=address_position, expected_type=type_hints["address_position"])
2492
+ check_type(argname="argument storage", value=storage, expected_type=type_hints["storage"])
2338
2493
  check_type(argname="argument type", value=type, expected_type=type_hints["type"])
2339
- self._values: typing.Dict[builtins.str, typing.Any] = {
2340
- "storage": storage,
2341
- }
2494
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2342
2495
  if address is not None:
2343
2496
  self._values["address"] = address
2344
2497
  if address_position is not None:
2345
2498
  self._values["address_position"] = address_position
2499
+ if storage is not None:
2500
+ self._values["storage"] = storage
2346
2501
  if type is not None:
2347
2502
  self._values["type"] = type
2348
2503
 
2349
- @builtins.property
2350
- def storage(self) -> builtins.str:
2351
- '''A valid storage UUID.
2352
-
2353
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#storage Server#storage}
2354
- '''
2355
- result = self._values.get("storage")
2356
- assert result is not None, "Required property 'storage' is missing"
2357
- return typing.cast(builtins.str, result)
2358
-
2359
2504
  @builtins.property
2360
2505
  def address(self) -> typing.Optional[builtins.str]:
2361
2506
  '''The device address the storage will be attached to (``scsi``|``virtio``|``ide``).
2362
2507
 
2363
2508
  Leave ``address_position`` field empty to auto-select next available address from that bus.
2364
2509
 
2365
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#address Server#address}
2510
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#address Server#address}
2366
2511
  '''
2367
2512
  result = self._values.get("address")
2368
2513
  return typing.cast(typing.Optional[builtins.str], result)
@@ -2373,16 +2518,25 @@ class ServerStorageDevices:
2373
2518
 
2374
2519
  Valid values for address ``virtio`` are ``0-15`` (``0``, for example). Valid values for ``scsi`` or ``ide`` are ``0-1:0-1`` (``0:0``, for example). Leave empty to auto-select next available address in the given bus.
2375
2520
 
2376
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#address_position Server#address_position}
2521
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#address_position Server#address_position}
2377
2522
  '''
2378
2523
  result = self._values.get("address_position")
2379
2524
  return typing.cast(typing.Optional[builtins.str], result)
2380
2525
 
2526
+ @builtins.property
2527
+ def storage(self) -> typing.Optional[builtins.str]:
2528
+ '''The UUID of the storage to attach to the server.
2529
+
2530
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#storage Server#storage}
2531
+ '''
2532
+ result = self._values.get("storage")
2533
+ return typing.cast(typing.Optional[builtins.str], result)
2534
+
2381
2535
  @builtins.property
2382
2536
  def type(self) -> typing.Optional[builtins.str]:
2383
2537
  '''The device type the storage will be attached as.
2384
2538
 
2385
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#type Server#type}
2539
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#type Server#type}
2386
2540
  '''
2387
2541
  result = self._values.get("type")
2388
2542
  return typing.cast(typing.Optional[builtins.str], result)
@@ -2523,6 +2677,10 @@ class ServerStorageDevicesOutputReference(
2523
2677
  def reset_address_position(self) -> None:
2524
2678
  return typing.cast(None, jsii.invoke(self, "resetAddressPosition", []))
2525
2679
 
2680
+ @jsii.member(jsii_name="resetStorage")
2681
+ def reset_storage(self) -> None:
2682
+ return typing.cast(None, jsii.invoke(self, "resetStorage", []))
2683
+
2526
2684
  @jsii.member(jsii_name="resetType")
2527
2685
  def reset_type(self) -> None:
2528
2686
  return typing.cast(None, jsii.invoke(self, "resetType", []))
@@ -2617,7 +2775,6 @@ class ServerStorageDevicesOutputReference(
2617
2775
  jsii_type="@cdktf/provider-upcloud.server.ServerTemplate",
2618
2776
  jsii_struct_bases=[],
2619
2777
  name_mapping={
2620
- "storage": "storage",
2621
2778
  "address": "address",
2622
2779
  "address_position": "addressPosition",
2623
2780
  "backup_rule": "backupRule",
@@ -2625,6 +2782,8 @@ class ServerStorageDevicesOutputReference(
2625
2782
  "encrypt": "encrypt",
2626
2783
  "filesystem_autoresize": "filesystemAutoresize",
2627
2784
  "size": "size",
2785
+ "storage": "storage",
2786
+ "tier": "tier",
2628
2787
  "title": "title",
2629
2788
  },
2630
2789
  )
@@ -2632,32 +2791,31 @@ class ServerTemplate:
2632
2791
  def __init__(
2633
2792
  self,
2634
2793
  *,
2635
- storage: builtins.str,
2636
2794
  address: typing.Optional[builtins.str] = None,
2637
2795
  address_position: typing.Optional[builtins.str] = None,
2638
- backup_rule: typing.Optional[typing.Union["ServerTemplateBackupRule", typing.Dict[builtins.str, typing.Any]]] = None,
2796
+ backup_rule: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ServerTemplateBackupRule", typing.Dict[builtins.str, typing.Any]]]]] = None,
2639
2797
  delete_autoresize_backup: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
2640
2798
  encrypt: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
2641
2799
  filesystem_autoresize: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
2642
2800
  size: typing.Optional[jsii.Number] = None,
2801
+ storage: typing.Optional[builtins.str] = None,
2802
+ tier: typing.Optional[builtins.str] = None,
2643
2803
  title: typing.Optional[builtins.str] = None,
2644
2804
  ) -> None:
2645
2805
  '''
2646
- :param storage: A valid storage UUID or template name. You can list available public templates with ``upctl storage list --public --template`` and available private templates with ``upctl storage list --template``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#storage Server#storage}
2647
- :param address: The device address the storage will be attached to (``scsi``|``virtio``|``ide``). Leave ``address_position`` field empty to auto-select next available address from that bus. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#address Server#address}
2648
- :param address_position: The device position in the given bus (defined via field ``address``). For example ``0:0``, or ``0``. Leave empty to auto-select next available address in the given bus. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#address_position Server#address_position}
2649
- :param backup_rule: backup_rule block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#backup_rule Server#backup_rule}
2650
- :param delete_autoresize_backup: If set to true, the backup taken before the partition and filesystem resize attempt will be deleted immediately after success. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#delete_autoresize_backup Server#delete_autoresize_backup}
2651
- :param encrypt: Sets if the storage is encrypted at rest. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#encrypt Server#encrypt}
2652
- :param filesystem_autoresize: If set to true, provider will attempt to resize partition and filesystem when the size of template storage changes. Please note that before the resize attempt is made, backup of the storage will be taken. If the resize attempt fails, the backup will be used to restore the storage and then deleted. If the resize attempt succeeds, backup will be kept (unless delete_autoresize_backup option is set to true). Taking and keeping backups incure costs. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#filesystem_autoresize Server#filesystem_autoresize}
2653
- :param size: The size of the storage in gigabytes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#size Server#size}
2654
- :param title: A short, informative description. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#title Server#title}
2806
+ :param address: The device address the storage will be attached to (``scsi``|``virtio``|``ide``). Leave ``address_position`` field empty to auto-select next available address from that bus. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#address Server#address}
2807
+ :param address_position: The device position in the given bus (defined via field ``address``). For example ``0:0``, or ``0``. Leave empty to auto-select next available address in the given bus. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#address_position Server#address_position}
2808
+ :param backup_rule: backup_rule block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#backup_rule Server#backup_rule}
2809
+ :param delete_autoresize_backup: If set to true, the backup taken before the partition and filesystem resize attempt will be deleted immediately after success. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#delete_autoresize_backup Server#delete_autoresize_backup}
2810
+ :param encrypt: Sets if the storage is encrypted at rest. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#encrypt Server#encrypt}
2811
+ :param filesystem_autoresize: If set to true, provider will attempt to resize partition and filesystem when the size of template storage changes. Please note that before the resize attempt is made, backup of the storage will be taken. If the resize attempt fails, the backup will be used to restore the storage and then deleted. If the resize attempt succeeds, backup will be kept (unless delete_autoresize_backup option is set to true). Taking and keeping backups incure costs. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#filesystem_autoresize Server#filesystem_autoresize}
2812
+ :param size: The size of the storage in gigabytes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#size Server#size}
2813
+ :param storage: A valid storage UUID or template name. You can list available public templates with ``upctl storage list --public --template`` and available private templates with ``upctl storage list --template``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#storage Server#storage}
2814
+ :param tier: The storage tier to use. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#tier Server#tier}
2815
+ :param title: A short, informative description. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#title Server#title}
2655
2816
  '''
2656
- if isinstance(backup_rule, dict):
2657
- backup_rule = ServerTemplateBackupRule(**backup_rule)
2658
2817
  if __debug__:
2659
2818
  type_hints = typing.get_type_hints(_typecheckingstub__2a85c384316c005f9127a81fcbc356ef71508b188a9b9433bf88b08a22e08cad)
2660
- check_type(argname="argument storage", value=storage, expected_type=type_hints["storage"])
2661
2819
  check_type(argname="argument address", value=address, expected_type=type_hints["address"])
2662
2820
  check_type(argname="argument address_position", value=address_position, expected_type=type_hints["address_position"])
2663
2821
  check_type(argname="argument backup_rule", value=backup_rule, expected_type=type_hints["backup_rule"])
@@ -2665,10 +2823,10 @@ class ServerTemplate:
2665
2823
  check_type(argname="argument encrypt", value=encrypt, expected_type=type_hints["encrypt"])
2666
2824
  check_type(argname="argument filesystem_autoresize", value=filesystem_autoresize, expected_type=type_hints["filesystem_autoresize"])
2667
2825
  check_type(argname="argument size", value=size, expected_type=type_hints["size"])
2826
+ check_type(argname="argument storage", value=storage, expected_type=type_hints["storage"])
2827
+ check_type(argname="argument tier", value=tier, expected_type=type_hints["tier"])
2668
2828
  check_type(argname="argument title", value=title, expected_type=type_hints["title"])
2669
- self._values: typing.Dict[builtins.str, typing.Any] = {
2670
- "storage": storage,
2671
- }
2829
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2672
2830
  if address is not None:
2673
2831
  self._values["address"] = address
2674
2832
  if address_position is not None:
@@ -2683,28 +2841,20 @@ class ServerTemplate:
2683
2841
  self._values["filesystem_autoresize"] = filesystem_autoresize
2684
2842
  if size is not None:
2685
2843
  self._values["size"] = size
2844
+ if storage is not None:
2845
+ self._values["storage"] = storage
2846
+ if tier is not None:
2847
+ self._values["tier"] = tier
2686
2848
  if title is not None:
2687
2849
  self._values["title"] = title
2688
2850
 
2689
- @builtins.property
2690
- def storage(self) -> builtins.str:
2691
- '''A valid storage UUID or template name.
2692
-
2693
- You can list available public templates with ``upctl storage list --public --template`` and available private templates with ``upctl storage list --template``.
2694
-
2695
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#storage Server#storage}
2696
- '''
2697
- result = self._values.get("storage")
2698
- assert result is not None, "Required property 'storage' is missing"
2699
- return typing.cast(builtins.str, result)
2700
-
2701
2851
  @builtins.property
2702
2852
  def address(self) -> typing.Optional[builtins.str]:
2703
2853
  '''The device address the storage will be attached to (``scsi``|``virtio``|``ide``).
2704
2854
 
2705
2855
  Leave ``address_position`` field empty to auto-select next available address from that bus.
2706
2856
 
2707
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#address Server#address}
2857
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#address Server#address}
2708
2858
  '''
2709
2859
  result = self._values.get("address")
2710
2860
  return typing.cast(typing.Optional[builtins.str], result)
@@ -2715,19 +2865,21 @@ class ServerTemplate:
2715
2865
 
2716
2866
  For example ``0:0``, or ``0``. Leave empty to auto-select next available address in the given bus.
2717
2867
 
2718
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#address_position Server#address_position}
2868
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#address_position Server#address_position}
2719
2869
  '''
2720
2870
  result = self._values.get("address_position")
2721
2871
  return typing.cast(typing.Optional[builtins.str], result)
2722
2872
 
2723
2873
  @builtins.property
2724
- def backup_rule(self) -> typing.Optional["ServerTemplateBackupRule"]:
2874
+ def backup_rule(
2875
+ self,
2876
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerTemplateBackupRule"]]]:
2725
2877
  '''backup_rule block.
2726
2878
 
2727
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#backup_rule Server#backup_rule}
2879
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#backup_rule Server#backup_rule}
2728
2880
  '''
2729
2881
  result = self._values.get("backup_rule")
2730
- return typing.cast(typing.Optional["ServerTemplateBackupRule"], result)
2882
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ServerTemplateBackupRule"]]], result)
2731
2883
 
2732
2884
  @builtins.property
2733
2885
  def delete_autoresize_backup(
@@ -2735,7 +2887,7 @@ class ServerTemplate:
2735
2887
  ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
2736
2888
  '''If set to true, the backup taken before the partition and filesystem resize attempt will be deleted immediately after success.
2737
2889
 
2738
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#delete_autoresize_backup Server#delete_autoresize_backup}
2890
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#delete_autoresize_backup Server#delete_autoresize_backup}
2739
2891
  '''
2740
2892
  result = self._values.get("delete_autoresize_backup")
2741
2893
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
@@ -2746,7 +2898,7 @@ class ServerTemplate:
2746
2898
  ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
2747
2899
  '''Sets if the storage is encrypted at rest.
2748
2900
 
2749
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#encrypt Server#encrypt}
2901
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#encrypt Server#encrypt}
2750
2902
  '''
2751
2903
  result = self._values.get("encrypt")
2752
2904
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
@@ -2761,7 +2913,7 @@ class ServerTemplate:
2761
2913
  to restore the storage and then deleted. If the resize attempt succeeds, backup will be kept (unless delete_autoresize_backup option is set to true).
2762
2914
  Taking and keeping backups incure costs.
2763
2915
 
2764
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#filesystem_autoresize Server#filesystem_autoresize}
2916
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#filesystem_autoresize Server#filesystem_autoresize}
2765
2917
  '''
2766
2918
  result = self._values.get("filesystem_autoresize")
2767
2919
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
@@ -2770,16 +2922,36 @@ class ServerTemplate:
2770
2922
  def size(self) -> typing.Optional[jsii.Number]:
2771
2923
  '''The size of the storage in gigabytes.
2772
2924
 
2773
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#size Server#size}
2925
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#size Server#size}
2774
2926
  '''
2775
2927
  result = self._values.get("size")
2776
2928
  return typing.cast(typing.Optional[jsii.Number], result)
2777
2929
 
2930
+ @builtins.property
2931
+ def storage(self) -> typing.Optional[builtins.str]:
2932
+ '''A valid storage UUID or template name.
2933
+
2934
+ You can list available public templates with ``upctl storage list --public --template`` and available private templates with ``upctl storage list --template``.
2935
+
2936
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#storage Server#storage}
2937
+ '''
2938
+ result = self._values.get("storage")
2939
+ return typing.cast(typing.Optional[builtins.str], result)
2940
+
2941
+ @builtins.property
2942
+ def tier(self) -> typing.Optional[builtins.str]:
2943
+ '''The storage tier to use.
2944
+
2945
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#tier Server#tier}
2946
+ '''
2947
+ result = self._values.get("tier")
2948
+ return typing.cast(typing.Optional[builtins.str], result)
2949
+
2778
2950
  @builtins.property
2779
2951
  def title(self) -> typing.Optional[builtins.str]:
2780
2952
  '''A short, informative description.
2781
2953
 
2782
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#title Server#title}
2954
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#title Server#title}
2783
2955
  '''
2784
2956
  result = self._values.get("title")
2785
2957
  return typing.cast(typing.Optional[builtins.str], result)
@@ -2810,9 +2982,9 @@ class ServerTemplateBackupRule:
2810
2982
  time: builtins.str,
2811
2983
  ) -> None:
2812
2984
  '''
2813
- :param interval: The weekday when the backup is created. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#interval Server#interval}
2814
- :param retention: The number of days before a backup is automatically deleted. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#retention Server#retention}
2815
- :param time: The time of day when the backup is created. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#time Server#time}
2985
+ :param interval: The weekday when the backup is created. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#interval Server#interval}
2986
+ :param retention: The number of days before a backup is automatically deleted. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#retention Server#retention}
2987
+ :param time: The time of day when the backup is created. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#time Server#time}
2816
2988
  '''
2817
2989
  if __debug__:
2818
2990
  type_hints = typing.get_type_hints(_typecheckingstub__0da849dc75d0030fd1866a13a6da5cd60acc32df054d4b38c21875c14c699895)
@@ -2829,7 +3001,7 @@ class ServerTemplateBackupRule:
2829
3001
  def interval(self) -> builtins.str:
2830
3002
  '''The weekday when the backup is created.
2831
3003
 
2832
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#interval Server#interval}
3004
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#interval Server#interval}
2833
3005
  '''
2834
3006
  result = self._values.get("interval")
2835
3007
  assert result is not None, "Required property 'interval' is missing"
@@ -2839,7 +3011,7 @@ class ServerTemplateBackupRule:
2839
3011
  def retention(self) -> jsii.Number:
2840
3012
  '''The number of days before a backup is automatically deleted.
2841
3013
 
2842
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#retention Server#retention}
3014
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#retention Server#retention}
2843
3015
  '''
2844
3016
  result = self._values.get("retention")
2845
3017
  assert result is not None, "Required property 'retention' is missing"
@@ -2849,7 +3021,7 @@ class ServerTemplateBackupRule:
2849
3021
  def time(self) -> builtins.str:
2850
3022
  '''The time of day when the backup is created.
2851
3023
 
2852
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#time Server#time}
3024
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.18.0/docs/resources/server#time Server#time}
2853
3025
  '''
2854
3026
  result = self._values.get("time")
2855
3027
  assert result is not None, "Required property 'time' is missing"
@@ -2867,6 +3039,96 @@ class ServerTemplateBackupRule:
2867
3039
  )
2868
3040
 
2869
3041
 
3042
+ class ServerTemplateBackupRuleList(
3043
+ _cdktf_9a9027ec.ComplexList,
3044
+ metaclass=jsii.JSIIMeta,
3045
+ jsii_type="@cdktf/provider-upcloud.server.ServerTemplateBackupRuleList",
3046
+ ):
3047
+ def __init__(
3048
+ self,
3049
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
3050
+ terraform_attribute: builtins.str,
3051
+ wraps_set: builtins.bool,
3052
+ ) -> None:
3053
+ '''
3054
+ :param terraform_resource: The parent resource.
3055
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
3056
+ :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
3057
+ '''
3058
+ if __debug__:
3059
+ type_hints = typing.get_type_hints(_typecheckingstub__188550760ed568ed6581febedc871d4f68c536a0ef956d28240ed9bda458adf5)
3060
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
3061
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
3062
+ check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
3063
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])
3064
+
3065
+ @jsii.member(jsii_name="get")
3066
+ def get(self, index: jsii.Number) -> "ServerTemplateBackupRuleOutputReference":
3067
+ '''
3068
+ :param index: the index of the item to return.
3069
+ '''
3070
+ if __debug__:
3071
+ type_hints = typing.get_type_hints(_typecheckingstub__4cae08414d6ad18bf638d6afb49fc2b40fd3c15819052470c3bcf3963c2d2581)
3072
+ check_type(argname="argument index", value=index, expected_type=type_hints["index"])
3073
+ return typing.cast("ServerTemplateBackupRuleOutputReference", jsii.invoke(self, "get", [index]))
3074
+
3075
+ @builtins.property
3076
+ @jsii.member(jsii_name="terraformAttribute")
3077
+ def _terraform_attribute(self) -> builtins.str:
3078
+ '''The attribute on the parent resource this class is referencing.'''
3079
+ return typing.cast(builtins.str, jsii.get(self, "terraformAttribute"))
3080
+
3081
+ @_terraform_attribute.setter
3082
+ def _terraform_attribute(self, value: builtins.str) -> None:
3083
+ if __debug__:
3084
+ type_hints = typing.get_type_hints(_typecheckingstub__8712aabf4c6c876b1bd5cc8dfc44ae5e5381459120c477489bea27b5fd254cb6)
3085
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3086
+ jsii.set(self, "terraformAttribute", value) # pyright: ignore[reportArgumentType]
3087
+
3088
+ @builtins.property
3089
+ @jsii.member(jsii_name="terraformResource")
3090
+ def _terraform_resource(self) -> _cdktf_9a9027ec.IInterpolatingParent:
3091
+ '''The parent resource.'''
3092
+ return typing.cast(_cdktf_9a9027ec.IInterpolatingParent, jsii.get(self, "terraformResource"))
3093
+
3094
+ @_terraform_resource.setter
3095
+ def _terraform_resource(self, value: _cdktf_9a9027ec.IInterpolatingParent) -> None:
3096
+ if __debug__:
3097
+ type_hints = typing.get_type_hints(_typecheckingstub__e3480c301bba6d4069388fbc33f3a3999c09b4323f2b7f61ac8041430042f58b)
3098
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3099
+ jsii.set(self, "terraformResource", value) # pyright: ignore[reportArgumentType]
3100
+
3101
+ @builtins.property
3102
+ @jsii.member(jsii_name="wrapsSet")
3103
+ def _wraps_set(self) -> builtins.bool:
3104
+ '''whether the list is wrapping a set (will add tolist() to be able to access an item via an index).'''
3105
+ return typing.cast(builtins.bool, jsii.get(self, "wrapsSet"))
3106
+
3107
+ @_wraps_set.setter
3108
+ def _wraps_set(self, value: builtins.bool) -> None:
3109
+ if __debug__:
3110
+ type_hints = typing.get_type_hints(_typecheckingstub__4f05d9321f6f3ed2cecfeadeb0e457ca65dbf7f22081d204c4892ddf9b06b90c)
3111
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3112
+ jsii.set(self, "wrapsSet", value) # pyright: ignore[reportArgumentType]
3113
+
3114
+ @builtins.property
3115
+ @jsii.member(jsii_name="internalValue")
3116
+ def internal_value(
3117
+ self,
3118
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerTemplateBackupRule]]]:
3119
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerTemplateBackupRule]]], jsii.get(self, "internalValue"))
3120
+
3121
+ @internal_value.setter
3122
+ def internal_value(
3123
+ self,
3124
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerTemplateBackupRule]]],
3125
+ ) -> None:
3126
+ if __debug__:
3127
+ type_hints = typing.get_type_hints(_typecheckingstub__4fa1dc014c8c00cf951ae6beb492e38cf32c74b273e59788ba20cfe1640394af)
3128
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3129
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
3130
+
3131
+
2870
3132
  class ServerTemplateBackupRuleOutputReference(
2871
3133
  _cdktf_9a9027ec.ComplexObject,
2872
3134
  metaclass=jsii.JSIIMeta,
@@ -2876,16 +3138,22 @@ class ServerTemplateBackupRuleOutputReference(
2876
3138
  self,
2877
3139
  terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
2878
3140
  terraform_attribute: builtins.str,
3141
+ complex_object_index: jsii.Number,
3142
+ complex_object_is_from_set: builtins.bool,
2879
3143
  ) -> None:
2880
3144
  '''
2881
3145
  :param terraform_resource: The parent resource.
2882
3146
  :param terraform_attribute: The attribute on the parent resource this class is referencing.
3147
+ :param complex_object_index: the index of this item in the list.
3148
+ :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
2883
3149
  '''
2884
3150
  if __debug__:
2885
3151
  type_hints = typing.get_type_hints(_typecheckingstub__8f25fb81968507d7e0b08a8dae5389ce95f026c45c28659add975e29c3404498)
2886
3152
  check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
2887
3153
  check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
2888
- jsii.create(self.__class__, self, [terraform_resource, terraform_attribute])
3154
+ check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
3155
+ check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
3156
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])
2889
3157
 
2890
3158
  @builtins.property
2891
3159
  @jsii.member(jsii_name="intervalInput")
@@ -2940,17 +3208,112 @@ class ServerTemplateBackupRuleOutputReference(
2940
3208
 
2941
3209
  @builtins.property
2942
3210
  @jsii.member(jsii_name="internalValue")
2943
- def internal_value(self) -> typing.Optional[ServerTemplateBackupRule]:
2944
- return typing.cast(typing.Optional[ServerTemplateBackupRule], jsii.get(self, "internalValue"))
3211
+ def internal_value(
3212
+ self,
3213
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerTemplateBackupRule]]:
3214
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerTemplateBackupRule]], jsii.get(self, "internalValue"))
2945
3215
 
2946
3216
  @internal_value.setter
2947
- def internal_value(self, value: typing.Optional[ServerTemplateBackupRule]) -> None:
3217
+ def internal_value(
3218
+ self,
3219
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerTemplateBackupRule]],
3220
+ ) -> None:
2948
3221
  if __debug__:
2949
3222
  type_hints = typing.get_type_hints(_typecheckingstub__68c5ccec377ad7d0ea9393f2fef6f5c45854a0e7848329cc404b17ecd5b941f9)
2950
3223
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2951
3224
  jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
2952
3225
 
2953
3226
 
3227
+ class ServerTemplateList(
3228
+ _cdktf_9a9027ec.ComplexList,
3229
+ metaclass=jsii.JSIIMeta,
3230
+ jsii_type="@cdktf/provider-upcloud.server.ServerTemplateList",
3231
+ ):
3232
+ def __init__(
3233
+ self,
3234
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
3235
+ terraform_attribute: builtins.str,
3236
+ wraps_set: builtins.bool,
3237
+ ) -> None:
3238
+ '''
3239
+ :param terraform_resource: The parent resource.
3240
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
3241
+ :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
3242
+ '''
3243
+ if __debug__:
3244
+ type_hints = typing.get_type_hints(_typecheckingstub__417531aeef2efb16462b20737a95db9cf042fa662b8fcaab769ff0b9d1b8e25c)
3245
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
3246
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
3247
+ check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
3248
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])
3249
+
3250
+ @jsii.member(jsii_name="get")
3251
+ def get(self, index: jsii.Number) -> "ServerTemplateOutputReference":
3252
+ '''
3253
+ :param index: the index of the item to return.
3254
+ '''
3255
+ if __debug__:
3256
+ type_hints = typing.get_type_hints(_typecheckingstub__be7be5804c6a532923fd092f0105ff836482807352e9ef15bdfea4809505500c)
3257
+ check_type(argname="argument index", value=index, expected_type=type_hints["index"])
3258
+ return typing.cast("ServerTemplateOutputReference", jsii.invoke(self, "get", [index]))
3259
+
3260
+ @builtins.property
3261
+ @jsii.member(jsii_name="terraformAttribute")
3262
+ def _terraform_attribute(self) -> builtins.str:
3263
+ '''The attribute on the parent resource this class is referencing.'''
3264
+ return typing.cast(builtins.str, jsii.get(self, "terraformAttribute"))
3265
+
3266
+ @_terraform_attribute.setter
3267
+ def _terraform_attribute(self, value: builtins.str) -> None:
3268
+ if __debug__:
3269
+ type_hints = typing.get_type_hints(_typecheckingstub__2600ed34b9a4305987d9b76ebc785d4e17796b3e6537dea345e153dbbc18670e)
3270
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3271
+ jsii.set(self, "terraformAttribute", value) # pyright: ignore[reportArgumentType]
3272
+
3273
+ @builtins.property
3274
+ @jsii.member(jsii_name="terraformResource")
3275
+ def _terraform_resource(self) -> _cdktf_9a9027ec.IInterpolatingParent:
3276
+ '''The parent resource.'''
3277
+ return typing.cast(_cdktf_9a9027ec.IInterpolatingParent, jsii.get(self, "terraformResource"))
3278
+
3279
+ @_terraform_resource.setter
3280
+ def _terraform_resource(self, value: _cdktf_9a9027ec.IInterpolatingParent) -> None:
3281
+ if __debug__:
3282
+ type_hints = typing.get_type_hints(_typecheckingstub__daa1e25262a44ca2ec305ebd7cb9f554dfd57e76e7c67078c6d0556bdc5b73b8)
3283
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3284
+ jsii.set(self, "terraformResource", value) # pyright: ignore[reportArgumentType]
3285
+
3286
+ @builtins.property
3287
+ @jsii.member(jsii_name="wrapsSet")
3288
+ def _wraps_set(self) -> builtins.bool:
3289
+ '''whether the list is wrapping a set (will add tolist() to be able to access an item via an index).'''
3290
+ return typing.cast(builtins.bool, jsii.get(self, "wrapsSet"))
3291
+
3292
+ @_wraps_set.setter
3293
+ def _wraps_set(self, value: builtins.bool) -> None:
3294
+ if __debug__:
3295
+ type_hints = typing.get_type_hints(_typecheckingstub__32caa1859dfb31f793d3ea44c65797e580c134f31f7d4fdc81805112038a081a)
3296
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3297
+ jsii.set(self, "wrapsSet", value) # pyright: ignore[reportArgumentType]
3298
+
3299
+ @builtins.property
3300
+ @jsii.member(jsii_name="internalValue")
3301
+ def internal_value(
3302
+ self,
3303
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerTemplate]]]:
3304
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerTemplate]]], jsii.get(self, "internalValue"))
3305
+
3306
+ @internal_value.setter
3307
+ def internal_value(
3308
+ self,
3309
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerTemplate]]],
3310
+ ) -> None:
3311
+ if __debug__:
3312
+ type_hints = typing.get_type_hints(_typecheckingstub__55370e3d07092c716ffd4a14cfd85c84f24c38da0da15bac2a9dec92ace6bd3c)
3313
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3314
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
3315
+
3316
+
2954
3317
  class ServerTemplateOutputReference(
2955
3318
  _cdktf_9a9027ec.ComplexObject,
2956
3319
  metaclass=jsii.JSIIMeta,
@@ -2960,34 +3323,34 @@ class ServerTemplateOutputReference(
2960
3323
  self,
2961
3324
  terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
2962
3325
  terraform_attribute: builtins.str,
3326
+ complex_object_index: jsii.Number,
3327
+ complex_object_is_from_set: builtins.bool,
2963
3328
  ) -> None:
2964
3329
  '''
2965
3330
  :param terraform_resource: The parent resource.
2966
3331
  :param terraform_attribute: The attribute on the parent resource this class is referencing.
3332
+ :param complex_object_index: the index of this item in the list.
3333
+ :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
2967
3334
  '''
2968
3335
  if __debug__:
2969
3336
  type_hints = typing.get_type_hints(_typecheckingstub__3c497b3f58769bfb15770786b38a0d3cab824f167e30d427dd79147063221ef9)
2970
3337
  check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
2971
3338
  check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
2972
- jsii.create(self.__class__, self, [terraform_resource, terraform_attribute])
3339
+ check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
3340
+ check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
3341
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])
2973
3342
 
2974
3343
  @jsii.member(jsii_name="putBackupRule")
2975
3344
  def put_backup_rule(
2976
3345
  self,
2977
- *,
2978
- interval: builtins.str,
2979
- retention: jsii.Number,
2980
- time: builtins.str,
3346
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerTemplateBackupRule, typing.Dict[builtins.str, typing.Any]]]],
2981
3347
  ) -> None:
2982
3348
  '''
2983
- :param interval: The weekday when the backup is created. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#interval Server#interval}
2984
- :param retention: The number of days before a backup is automatically deleted. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#retention Server#retention}
2985
- :param time: The time of day when the backup is created. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.16.0/docs/resources/server#time Server#time}
3349
+ :param value: -
2986
3350
  '''
2987
- value = ServerTemplateBackupRule(
2988
- interval=interval, retention=retention, time=time
2989
- )
2990
-
3351
+ if __debug__:
3352
+ type_hints = typing.get_type_hints(_typecheckingstub__9697a227422e7b8f90588127fa3e2f505574b7f312f1cf50ff023104102a0644)
3353
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2991
3354
  return typing.cast(None, jsii.invoke(self, "putBackupRule", [value]))
2992
3355
 
2993
3356
  @jsii.member(jsii_name="resetAddress")
@@ -3018,25 +3381,28 @@ class ServerTemplateOutputReference(
3018
3381
  def reset_size(self) -> None:
3019
3382
  return typing.cast(None, jsii.invoke(self, "resetSize", []))
3020
3383
 
3384
+ @jsii.member(jsii_name="resetStorage")
3385
+ def reset_storage(self) -> None:
3386
+ return typing.cast(None, jsii.invoke(self, "resetStorage", []))
3387
+
3388
+ @jsii.member(jsii_name="resetTier")
3389
+ def reset_tier(self) -> None:
3390
+ return typing.cast(None, jsii.invoke(self, "resetTier", []))
3391
+
3021
3392
  @jsii.member(jsii_name="resetTitle")
3022
3393
  def reset_title(self) -> None:
3023
3394
  return typing.cast(None, jsii.invoke(self, "resetTitle", []))
3024
3395
 
3025
3396
  @builtins.property
3026
3397
  @jsii.member(jsii_name="backupRule")
3027
- def backup_rule(self) -> ServerTemplateBackupRuleOutputReference:
3028
- return typing.cast(ServerTemplateBackupRuleOutputReference, jsii.get(self, "backupRule"))
3398
+ def backup_rule(self) -> ServerTemplateBackupRuleList:
3399
+ return typing.cast(ServerTemplateBackupRuleList, jsii.get(self, "backupRule"))
3029
3400
 
3030
3401
  @builtins.property
3031
3402
  @jsii.member(jsii_name="id")
3032
3403
  def id(self) -> builtins.str:
3033
3404
  return typing.cast(builtins.str, jsii.get(self, "id"))
3034
3405
 
3035
- @builtins.property
3036
- @jsii.member(jsii_name="tier")
3037
- def tier(self) -> builtins.str:
3038
- return typing.cast(builtins.str, jsii.get(self, "tier"))
3039
-
3040
3406
  @builtins.property
3041
3407
  @jsii.member(jsii_name="addressInput")
3042
3408
  def address_input(self) -> typing.Optional[builtins.str]:
@@ -3049,8 +3415,10 @@ class ServerTemplateOutputReference(
3049
3415
 
3050
3416
  @builtins.property
3051
3417
  @jsii.member(jsii_name="backupRuleInput")
3052
- def backup_rule_input(self) -> typing.Optional[ServerTemplateBackupRule]:
3053
- return typing.cast(typing.Optional[ServerTemplateBackupRule], jsii.get(self, "backupRuleInput"))
3418
+ def backup_rule_input(
3419
+ self,
3420
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerTemplateBackupRule]]]:
3421
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerTemplateBackupRule]]], jsii.get(self, "backupRuleInput"))
3054
3422
 
3055
3423
  @builtins.property
3056
3424
  @jsii.member(jsii_name="deleteAutoresizeBackupInput")
@@ -3083,6 +3451,11 @@ class ServerTemplateOutputReference(
3083
3451
  def storage_input(self) -> typing.Optional[builtins.str]:
3084
3452
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "storageInput"))
3085
3453
 
3454
+ @builtins.property
3455
+ @jsii.member(jsii_name="tierInput")
3456
+ def tier_input(self) -> typing.Optional[builtins.str]:
3457
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "tierInput"))
3458
+
3086
3459
  @builtins.property
3087
3460
  @jsii.member(jsii_name="titleInput")
3088
3461
  def title_input(self) -> typing.Optional[builtins.str]:
@@ -3185,6 +3558,18 @@ class ServerTemplateOutputReference(
3185
3558
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3186
3559
  jsii.set(self, "storage", value) # pyright: ignore[reportArgumentType]
3187
3560
 
3561
+ @builtins.property
3562
+ @jsii.member(jsii_name="tier")
3563
+ def tier(self) -> builtins.str:
3564
+ return typing.cast(builtins.str, jsii.get(self, "tier"))
3565
+
3566
+ @tier.setter
3567
+ def tier(self, value: builtins.str) -> None:
3568
+ if __debug__:
3569
+ type_hints = typing.get_type_hints(_typecheckingstub__1abf053442c468a52b84325f2d8c37de69edd47be641ca350e5f89c8292757ee)
3570
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3571
+ jsii.set(self, "tier", value) # pyright: ignore[reportArgumentType]
3572
+
3188
3573
  @builtins.property
3189
3574
  @jsii.member(jsii_name="title")
3190
3575
  def title(self) -> builtins.str:
@@ -3199,11 +3584,16 @@ class ServerTemplateOutputReference(
3199
3584
 
3200
3585
  @builtins.property
3201
3586
  @jsii.member(jsii_name="internalValue")
3202
- def internal_value(self) -> typing.Optional[ServerTemplate]:
3203
- return typing.cast(typing.Optional[ServerTemplate], jsii.get(self, "internalValue"))
3587
+ def internal_value(
3588
+ self,
3589
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerTemplate]]:
3590
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerTemplate]], jsii.get(self, "internalValue"))
3204
3591
 
3205
3592
  @internal_value.setter
3206
- def internal_value(self, value: typing.Optional[ServerTemplate]) -> None:
3593
+ def internal_value(
3594
+ self,
3595
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerTemplate]],
3596
+ ) -> None:
3207
3597
  if __debug__:
3208
3598
  type_hints = typing.get_type_hints(_typecheckingstub__cd8f4ccfba9e26748588ee2d5a223525d90da38d9c2cb1de9bf069079f9853f4)
3209
3599
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
@@ -3214,6 +3604,7 @@ __all__ = [
3214
3604
  "Server",
3215
3605
  "ServerConfig",
3216
3606
  "ServerLogin",
3607
+ "ServerLoginList",
3217
3608
  "ServerLoginOutputReference",
3218
3609
  "ServerNetworkInterface",
3219
3610
  "ServerNetworkInterfaceAdditionalIpAddress",
@@ -3222,13 +3613,16 @@ __all__ = [
3222
3613
  "ServerNetworkInterfaceList",
3223
3614
  "ServerNetworkInterfaceOutputReference",
3224
3615
  "ServerSimpleBackup",
3616
+ "ServerSimpleBackupList",
3225
3617
  "ServerSimpleBackupOutputReference",
3226
3618
  "ServerStorageDevices",
3227
3619
  "ServerStorageDevicesList",
3228
3620
  "ServerStorageDevicesOutputReference",
3229
3621
  "ServerTemplate",
3230
3622
  "ServerTemplateBackupRule",
3623
+ "ServerTemplateBackupRuleList",
3231
3624
  "ServerTemplateBackupRuleOutputReference",
3625
+ "ServerTemplateList",
3232
3626
  "ServerTemplateOutputReference",
3233
3627
  ]
3234
3628
 
@@ -3236,27 +3630,26 @@ publication.publish()
3236
3630
 
3237
3631
  def _typecheckingstub__6b83690e478f8730a1b183dfb2bf71b179dc55ba8028fd8cc73841eff54172a9(
3238
3632
  scope: _constructs_77d1e7e8.Construct,
3239
- id_: builtins.str,
3633
+ id: builtins.str,
3240
3634
  *,
3241
3635
  hostname: builtins.str,
3242
- network_interface: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerNetworkInterface, typing.Dict[builtins.str, typing.Any]]]],
3243
3636
  zone: builtins.str,
3244
3637
  boot_order: typing.Optional[builtins.str] = None,
3245
3638
  cpu: typing.Optional[jsii.Number] = None,
3246
3639
  firewall: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
3247
3640
  host: typing.Optional[jsii.Number] = None,
3248
- id: typing.Optional[builtins.str] = None,
3249
3641
  labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
3250
- login: typing.Optional[typing.Union[ServerLogin, typing.Dict[builtins.str, typing.Any]]] = None,
3642
+ login: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerLogin, typing.Dict[builtins.str, typing.Any]]]]] = None,
3251
3643
  mem: typing.Optional[jsii.Number] = None,
3252
3644
  metadata: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
3645
+ network_interface: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerNetworkInterface, typing.Dict[builtins.str, typing.Any]]]]] = None,
3253
3646
  nic_model: typing.Optional[builtins.str] = None,
3254
3647
  plan: typing.Optional[builtins.str] = None,
3255
3648
  server_group: typing.Optional[builtins.str] = None,
3256
- simple_backup: typing.Optional[typing.Union[ServerSimpleBackup, typing.Dict[builtins.str, typing.Any]]] = None,
3649
+ simple_backup: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerSimpleBackup, typing.Dict[builtins.str, typing.Any]]]]] = None,
3257
3650
  storage_devices: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerStorageDevices, typing.Dict[builtins.str, typing.Any]]]]] = None,
3258
3651
  tags: typing.Optional[typing.Sequence[builtins.str]] = None,
3259
- template: typing.Optional[typing.Union[ServerTemplate, typing.Dict[builtins.str, typing.Any]]] = None,
3652
+ template: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerTemplate, typing.Dict[builtins.str, typing.Any]]]]] = None,
3260
3653
  timezone: typing.Optional[builtins.str] = None,
3261
3654
  title: typing.Optional[builtins.str] = None,
3262
3655
  user_data: typing.Optional[builtins.str] = None,
@@ -3281,18 +3674,36 @@ def _typecheckingstub__28c7cee3cc840d65b6bc102d95f2931d82b3aefb8a79339458a82e6bd
3281
3674
  """Type checking stubs"""
3282
3675
  pass
3283
3676
 
3677
+ def _typecheckingstub__490f22a0cad848cb278fe5943c1379db07f317157bbed237d4a276b686019b4f(
3678
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerLogin, typing.Dict[builtins.str, typing.Any]]]],
3679
+ ) -> None:
3680
+ """Type checking stubs"""
3681
+ pass
3682
+
3284
3683
  def _typecheckingstub__2784a2f8e61298bcd760c00280858e93027365e3107df743c65e925390d065ff(
3285
3684
  value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerNetworkInterface, typing.Dict[builtins.str, typing.Any]]]],
3286
3685
  ) -> None:
3287
3686
  """Type checking stubs"""
3288
3687
  pass
3289
3688
 
3689
+ def _typecheckingstub__2473c5d20588446793f53015ab62c61ad46df9fac03399584f460799254ecaef(
3690
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerSimpleBackup, typing.Dict[builtins.str, typing.Any]]]],
3691
+ ) -> None:
3692
+ """Type checking stubs"""
3693
+ pass
3694
+
3290
3695
  def _typecheckingstub__e2c4cd707e662e8744252abfd6f62940a96bcdfc90c7389a218eb5a2acab2006(
3291
3696
  value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerStorageDevices, typing.Dict[builtins.str, typing.Any]]]],
3292
3697
  ) -> None:
3293
3698
  """Type checking stubs"""
3294
3699
  pass
3295
3700
 
3701
+ def _typecheckingstub__8e6618d82a6e3f04079510015b7e45ddc3974b7b3a19e932ef378e303678b595(
3702
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerTemplate, typing.Dict[builtins.str, typing.Any]]]],
3703
+ ) -> None:
3704
+ """Type checking stubs"""
3705
+ pass
3706
+
3296
3707
  def _typecheckingstub__f3c840f2e6e25ab81a562249038283c68d1c9227ca4e4942e8d91d710b04c5bf(
3297
3708
  value: builtins.str,
3298
3709
  ) -> None:
@@ -3323,12 +3734,6 @@ def _typecheckingstub__f4bd72ca4af6dd9b479c0262e490984bdbd3191d9b6e06c6924b98a95
3323
3734
  """Type checking stubs"""
3324
3735
  pass
3325
3736
 
3326
- def _typecheckingstub__a84cfa579ab88830b19af88519f30728d1a5668fda89bc3e98d7b7cb076e00cc(
3327
- value: builtins.str,
3328
- ) -> None:
3329
- """Type checking stubs"""
3330
- pass
3331
-
3332
3737
  def _typecheckingstub__3a7892fe5de8b838249765679a48d6de643cd5ca2b10527938954d152ae696ef(
3333
3738
  value: typing.Mapping[builtins.str, builtins.str],
3334
3739
  ) -> None:
@@ -3411,24 +3816,23 @@ def _typecheckingstub__ea0c30195fdb4e86d473d86dcc3b49fe1de4f105b946dcc2035464e29
3411
3816
  provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
3412
3817
  provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktf_9a9027ec.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
3413
3818
  hostname: builtins.str,
3414
- network_interface: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerNetworkInterface, typing.Dict[builtins.str, typing.Any]]]],
3415
3819
  zone: builtins.str,
3416
3820
  boot_order: typing.Optional[builtins.str] = None,
3417
3821
  cpu: typing.Optional[jsii.Number] = None,
3418
3822
  firewall: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
3419
3823
  host: typing.Optional[jsii.Number] = None,
3420
- id: typing.Optional[builtins.str] = None,
3421
3824
  labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
3422
- login: typing.Optional[typing.Union[ServerLogin, typing.Dict[builtins.str, typing.Any]]] = None,
3825
+ login: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerLogin, typing.Dict[builtins.str, typing.Any]]]]] = None,
3423
3826
  mem: typing.Optional[jsii.Number] = None,
3424
3827
  metadata: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
3828
+ network_interface: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerNetworkInterface, typing.Dict[builtins.str, typing.Any]]]]] = None,
3425
3829
  nic_model: typing.Optional[builtins.str] = None,
3426
3830
  plan: typing.Optional[builtins.str] = None,
3427
3831
  server_group: typing.Optional[builtins.str] = None,
3428
- simple_backup: typing.Optional[typing.Union[ServerSimpleBackup, typing.Dict[builtins.str, typing.Any]]] = None,
3832
+ simple_backup: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerSimpleBackup, typing.Dict[builtins.str, typing.Any]]]]] = None,
3429
3833
  storage_devices: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerStorageDevices, typing.Dict[builtins.str, typing.Any]]]]] = None,
3430
3834
  tags: typing.Optional[typing.Sequence[builtins.str]] = None,
3431
- template: typing.Optional[typing.Union[ServerTemplate, typing.Dict[builtins.str, typing.Any]]] = None,
3835
+ template: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerTemplate, typing.Dict[builtins.str, typing.Any]]]]] = None,
3432
3836
  timezone: typing.Optional[builtins.str] = None,
3433
3837
  title: typing.Optional[builtins.str] = None,
3434
3838
  user_data: typing.Optional[builtins.str] = None,
@@ -3447,9 +3851,49 @@ def _typecheckingstub__ba39a2ee1d911b76fb74554613ea114a5a572a0bf44aae12941ef4644
3447
3851
  """Type checking stubs"""
3448
3852
  pass
3449
3853
 
3854
+ def _typecheckingstub__fb03a79d03ab141be1cadd4f8b35544e42fdf474cb721eaceed4d99cd543137a(
3855
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
3856
+ terraform_attribute: builtins.str,
3857
+ wraps_set: builtins.bool,
3858
+ ) -> None:
3859
+ """Type checking stubs"""
3860
+ pass
3861
+
3862
+ def _typecheckingstub__d0481abc20ad310759cbe2f28f10c094b5a5d751a61674ea1910af4cd52a0553(
3863
+ index: jsii.Number,
3864
+ ) -> None:
3865
+ """Type checking stubs"""
3866
+ pass
3867
+
3868
+ def _typecheckingstub__f132c1614c9b5ba1ba5b19ab717b2469460fa2427499b457d6df94a3ecd32ad3(
3869
+ value: builtins.str,
3870
+ ) -> None:
3871
+ """Type checking stubs"""
3872
+ pass
3873
+
3874
+ def _typecheckingstub__19fbe734a6b0e38e5289cc8fe824275160a50fb2585cf0d51ef68b976dea61c6(
3875
+ value: _cdktf_9a9027ec.IInterpolatingParent,
3876
+ ) -> None:
3877
+ """Type checking stubs"""
3878
+ pass
3879
+
3880
+ def _typecheckingstub__eaeef62da438caf9575e9c49eef5839c2d85d328d845ce461169c3db3d91756e(
3881
+ value: builtins.bool,
3882
+ ) -> None:
3883
+ """Type checking stubs"""
3884
+ pass
3885
+
3886
+ def _typecheckingstub__e67a467069e4676293f1f5918b73243b8eb7133d888bd7f11cebf870f3426f49(
3887
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerLogin]]],
3888
+ ) -> None:
3889
+ """Type checking stubs"""
3890
+ pass
3891
+
3450
3892
  def _typecheckingstub__cb37b4e00c78f37c38cbba42c725d341426cd4846a37328a858efbce8e63b347(
3451
3893
  terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
3452
3894
  terraform_attribute: builtins.str,
3895
+ complex_object_index: jsii.Number,
3896
+ complex_object_is_from_set: builtins.bool,
3453
3897
  ) -> None:
3454
3898
  """Type checking stubs"""
3455
3899
  pass
@@ -3479,7 +3923,7 @@ def _typecheckingstub__f5428294ae30fe53a9c3e6f59c5d7345c00077d52ca2969ca46d13b15
3479
3923
  pass
3480
3924
 
3481
3925
  def _typecheckingstub__c5a2e407880016cbd5838a509393761434aa730eb60add2b4b29eadad0776d3b(
3482
- value: typing.Optional[ServerLogin],
3926
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerLogin]],
3483
3927
  ) -> None:
3484
3928
  """Type checking stubs"""
3485
3929
  pass
@@ -3674,8 +4118,46 @@ def _typecheckingstub__8653f81da3a79a9a2fd0667eb122024a0e78b7183d06eaf233aa6b039
3674
4118
 
3675
4119
  def _typecheckingstub__e0bd20cac4bdde3b91171ae0bf44e53e9583617261eaf0793a175a7d8da3cee3(
3676
4120
  *,
3677
- plan: builtins.str,
3678
- time: builtins.str,
4121
+ plan: typing.Optional[builtins.str] = None,
4122
+ time: typing.Optional[builtins.str] = None,
4123
+ ) -> None:
4124
+ """Type checking stubs"""
4125
+ pass
4126
+
4127
+ def _typecheckingstub__d5bc799dd20317cd73a9978f93c9cd6a9ea8fd88acd763183b836b6eddd20d62(
4128
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
4129
+ terraform_attribute: builtins.str,
4130
+ wraps_set: builtins.bool,
4131
+ ) -> None:
4132
+ """Type checking stubs"""
4133
+ pass
4134
+
4135
+ def _typecheckingstub__c50b5bf6c21c58214becf2e9e5e6e334430c4c27c6557540fae04ae21e102c92(
4136
+ index: jsii.Number,
4137
+ ) -> None:
4138
+ """Type checking stubs"""
4139
+ pass
4140
+
4141
+ def _typecheckingstub__8ada2344e2be9cf11d5892b47601e5ccbe84e1fe73623f0fe28918eff6b656fe(
4142
+ value: builtins.str,
4143
+ ) -> None:
4144
+ """Type checking stubs"""
4145
+ pass
4146
+
4147
+ def _typecheckingstub__80ac01001775f9091e90876610cfbadfba3c0bd897bcd725fbdebf70436d1b1c(
4148
+ value: _cdktf_9a9027ec.IInterpolatingParent,
4149
+ ) -> None:
4150
+ """Type checking stubs"""
4151
+ pass
4152
+
4153
+ def _typecheckingstub__8b09a06daff97f70b9cda1eb1be8f02b060130ccbabb3a8764635911bab83554(
4154
+ value: builtins.bool,
4155
+ ) -> None:
4156
+ """Type checking stubs"""
4157
+ pass
4158
+
4159
+ def _typecheckingstub__af359ef04adfda4ddc712b398d407bb32fa5497d8f06474f907f793398e3a518(
4160
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerSimpleBackup]]],
3679
4161
  ) -> None:
3680
4162
  """Type checking stubs"""
3681
4163
  pass
@@ -3683,6 +4165,8 @@ def _typecheckingstub__e0bd20cac4bdde3b91171ae0bf44e53e9583617261eaf0793a175a7d8
3683
4165
  def _typecheckingstub__543283afc6e5dcbaed6d63b62679b76fe001c3a94535d560e5ee698bde877d12(
3684
4166
  terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
3685
4167
  terraform_attribute: builtins.str,
4168
+ complex_object_index: jsii.Number,
4169
+ complex_object_is_from_set: builtins.bool,
3686
4170
  ) -> None:
3687
4171
  """Type checking stubs"""
3688
4172
  pass
@@ -3700,16 +4184,16 @@ def _typecheckingstub__d2a12363cbec7f1b1136e6a05c23fd0826a6915ccf0b0b64f9f4fccc6
3700
4184
  pass
3701
4185
 
3702
4186
  def _typecheckingstub__047ada69f3d10e42273140f60146f8fdf26e9f7c5b02497edf7ff0b3533062bd(
3703
- value: typing.Optional[ServerSimpleBackup],
4187
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerSimpleBackup]],
3704
4188
  ) -> None:
3705
4189
  """Type checking stubs"""
3706
4190
  pass
3707
4191
 
3708
4192
  def _typecheckingstub__deefc3ca26ddd4529dd49d665d0a7e4d178ed9e318d7a6ed318fe000f57713ea(
3709
4193
  *,
3710
- storage: builtins.str,
3711
4194
  address: typing.Optional[builtins.str] = None,
3712
4195
  address_position: typing.Optional[builtins.str] = None,
4196
+ storage: typing.Optional[builtins.str] = None,
3713
4197
  type: typing.Optional[builtins.str] = None,
3714
4198
  ) -> None:
3715
4199
  """Type checking stubs"""
@@ -3794,14 +4278,15 @@ def _typecheckingstub__963c88004521ac2a561739e84d699c5d8a33bbce0a64a04986268a9ae
3794
4278
 
3795
4279
  def _typecheckingstub__2a85c384316c005f9127a81fcbc356ef71508b188a9b9433bf88b08a22e08cad(
3796
4280
  *,
3797
- storage: builtins.str,
3798
4281
  address: typing.Optional[builtins.str] = None,
3799
4282
  address_position: typing.Optional[builtins.str] = None,
3800
- backup_rule: typing.Optional[typing.Union[ServerTemplateBackupRule, typing.Dict[builtins.str, typing.Any]]] = None,
4283
+ backup_rule: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerTemplateBackupRule, typing.Dict[builtins.str, typing.Any]]]]] = None,
3801
4284
  delete_autoresize_backup: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
3802
4285
  encrypt: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
3803
4286
  filesystem_autoresize: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
3804
4287
  size: typing.Optional[jsii.Number] = None,
4288
+ storage: typing.Optional[builtins.str] = None,
4289
+ tier: typing.Optional[builtins.str] = None,
3805
4290
  title: typing.Optional[builtins.str] = None,
3806
4291
  ) -> None:
3807
4292
  """Type checking stubs"""
@@ -3816,9 +4301,49 @@ def _typecheckingstub__0da849dc75d0030fd1866a13a6da5cd60acc32df054d4b38c21875c14
3816
4301
  """Type checking stubs"""
3817
4302
  pass
3818
4303
 
4304
+ def _typecheckingstub__188550760ed568ed6581febedc871d4f68c536a0ef956d28240ed9bda458adf5(
4305
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
4306
+ terraform_attribute: builtins.str,
4307
+ wraps_set: builtins.bool,
4308
+ ) -> None:
4309
+ """Type checking stubs"""
4310
+ pass
4311
+
4312
+ def _typecheckingstub__4cae08414d6ad18bf638d6afb49fc2b40fd3c15819052470c3bcf3963c2d2581(
4313
+ index: jsii.Number,
4314
+ ) -> None:
4315
+ """Type checking stubs"""
4316
+ pass
4317
+
4318
+ def _typecheckingstub__8712aabf4c6c876b1bd5cc8dfc44ae5e5381459120c477489bea27b5fd254cb6(
4319
+ value: builtins.str,
4320
+ ) -> None:
4321
+ """Type checking stubs"""
4322
+ pass
4323
+
4324
+ def _typecheckingstub__e3480c301bba6d4069388fbc33f3a3999c09b4323f2b7f61ac8041430042f58b(
4325
+ value: _cdktf_9a9027ec.IInterpolatingParent,
4326
+ ) -> None:
4327
+ """Type checking stubs"""
4328
+ pass
4329
+
4330
+ def _typecheckingstub__4f05d9321f6f3ed2cecfeadeb0e457ca65dbf7f22081d204c4892ddf9b06b90c(
4331
+ value: builtins.bool,
4332
+ ) -> None:
4333
+ """Type checking stubs"""
4334
+ pass
4335
+
4336
+ def _typecheckingstub__4fa1dc014c8c00cf951ae6beb492e38cf32c74b273e59788ba20cfe1640394af(
4337
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerTemplateBackupRule]]],
4338
+ ) -> None:
4339
+ """Type checking stubs"""
4340
+ pass
4341
+
3819
4342
  def _typecheckingstub__8f25fb81968507d7e0b08a8dae5389ce95f026c45c28659add975e29c3404498(
3820
4343
  terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
3821
4344
  terraform_attribute: builtins.str,
4345
+ complex_object_index: jsii.Number,
4346
+ complex_object_is_from_set: builtins.bool,
3822
4347
  ) -> None:
3823
4348
  """Type checking stubs"""
3824
4349
  pass
@@ -3842,7 +4367,45 @@ def _typecheckingstub__42394eda9846bee43e13e31d1369893420594a1dbd33748f0f779d28b
3842
4367
  pass
3843
4368
 
3844
4369
  def _typecheckingstub__68c5ccec377ad7d0ea9393f2fef6f5c45854a0e7848329cc404b17ecd5b941f9(
3845
- value: typing.Optional[ServerTemplateBackupRule],
4370
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerTemplateBackupRule]],
4371
+ ) -> None:
4372
+ """Type checking stubs"""
4373
+ pass
4374
+
4375
+ def _typecheckingstub__417531aeef2efb16462b20737a95db9cf042fa662b8fcaab769ff0b9d1b8e25c(
4376
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
4377
+ terraform_attribute: builtins.str,
4378
+ wraps_set: builtins.bool,
4379
+ ) -> None:
4380
+ """Type checking stubs"""
4381
+ pass
4382
+
4383
+ def _typecheckingstub__be7be5804c6a532923fd092f0105ff836482807352e9ef15bdfea4809505500c(
4384
+ index: jsii.Number,
4385
+ ) -> None:
4386
+ """Type checking stubs"""
4387
+ pass
4388
+
4389
+ def _typecheckingstub__2600ed34b9a4305987d9b76ebc785d4e17796b3e6537dea345e153dbbc18670e(
4390
+ value: builtins.str,
4391
+ ) -> None:
4392
+ """Type checking stubs"""
4393
+ pass
4394
+
4395
+ def _typecheckingstub__daa1e25262a44ca2ec305ebd7cb9f554dfd57e76e7c67078c6d0556bdc5b73b8(
4396
+ value: _cdktf_9a9027ec.IInterpolatingParent,
4397
+ ) -> None:
4398
+ """Type checking stubs"""
4399
+ pass
4400
+
4401
+ def _typecheckingstub__32caa1859dfb31f793d3ea44c65797e580c134f31f7d4fdc81805112038a081a(
4402
+ value: builtins.bool,
4403
+ ) -> None:
4404
+ """Type checking stubs"""
4405
+ pass
4406
+
4407
+ def _typecheckingstub__55370e3d07092c716ffd4a14cfd85c84f24c38da0da15bac2a9dec92ace6bd3c(
4408
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ServerTemplate]]],
3846
4409
  ) -> None:
3847
4410
  """Type checking stubs"""
3848
4411
  pass
@@ -3850,6 +4413,14 @@ def _typecheckingstub__68c5ccec377ad7d0ea9393f2fef6f5c45854a0e7848329cc404b17ecd
3850
4413
  def _typecheckingstub__3c497b3f58769bfb15770786b38a0d3cab824f167e30d427dd79147063221ef9(
3851
4414
  terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
3852
4415
  terraform_attribute: builtins.str,
4416
+ complex_object_index: jsii.Number,
4417
+ complex_object_is_from_set: builtins.bool,
4418
+ ) -> None:
4419
+ """Type checking stubs"""
4420
+ pass
4421
+
4422
+ def _typecheckingstub__9697a227422e7b8f90588127fa3e2f505574b7f312f1cf50ff023104102a0644(
4423
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ServerTemplateBackupRule, typing.Dict[builtins.str, typing.Any]]]],
3853
4424
  ) -> None:
3854
4425
  """Type checking stubs"""
3855
4426
  pass
@@ -3896,6 +4467,12 @@ def _typecheckingstub__0f908c7d0cd75d51f9555bfd6ab8e64de276cac6a09657d4f952345bc
3896
4467
  """Type checking stubs"""
3897
4468
  pass
3898
4469
 
4470
+ def _typecheckingstub__1abf053442c468a52b84325f2d8c37de69edd47be641ca350e5f89c8292757ee(
4471
+ value: builtins.str,
4472
+ ) -> None:
4473
+ """Type checking stubs"""
4474
+ pass
4475
+
3899
4476
  def _typecheckingstub__64f0d7019cf74d0117aacc7a12f88f6a61c491221ba27a95745ec4a01a80eec4(
3900
4477
  value: builtins.str,
3901
4478
  ) -> None:
@@ -3903,7 +4480,7 @@ def _typecheckingstub__64f0d7019cf74d0117aacc7a12f88f6a61c491221ba27a95745ec4a01
3903
4480
  pass
3904
4481
 
3905
4482
  def _typecheckingstub__cd8f4ccfba9e26748588ee2d5a223525d90da38d9c2cb1de9bf069079f9853f4(
3906
- value: typing.Optional[ServerTemplate],
4483
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ServerTemplate]],
3907
4484
  ) -> None:
3908
4485
  """Type checking stubs"""
3909
4486
  pass