cdktf-cdktf-provider-upcloud 15.8.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. cdktf_cdktf_provider_upcloud/__init__.py +247 -0
  2. cdktf_cdktf_provider_upcloud/_jsii/__init__.py +45 -0
  3. cdktf_cdktf_provider_upcloud/_jsii/provider-upcloud@15.8.0.jsii.tgz +0 -0
  4. cdktf_cdktf_provider_upcloud/data_upcloud_hosts/__init__.py +894 -0
  5. cdktf_cdktf_provider_upcloud/data_upcloud_ip_addresses/__init__.py +633 -0
  6. cdktf_cdktf_provider_upcloud/data_upcloud_kubernetes_cluster/__init__.py +384 -0
  7. cdktf_cdktf_provider_upcloud/data_upcloud_load_balancer_dns_challenge_domain/__init__.py +319 -0
  8. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_mysql_sessions/__init__.py +853 -0
  9. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_opensearch_indices/__init__.py +717 -0
  10. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_postgresql_sessions/__init__.py +1084 -0
  11. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_valkey_sessions/__init__.py +898 -0
  12. cdktf_cdktf_provider_upcloud/data_upcloud_managed_object_storage_policies/__init__.py +647 -0
  13. cdktf_cdktf_provider_upcloud/data_upcloud_managed_object_storage_regions/__init__.py +600 -0
  14. cdktf_cdktf_provider_upcloud/data_upcloud_networks/__init__.py +1093 -0
  15. cdktf_cdktf_provider_upcloud/data_upcloud_storage/__init__.py +725 -0
  16. cdktf_cdktf_provider_upcloud/data_upcloud_tags/__init__.py +558 -0
  17. cdktf_cdktf_provider_upcloud/data_upcloud_zone/__init__.py +421 -0
  18. cdktf_cdktf_provider_upcloud/data_upcloud_zones/__init__.py +364 -0
  19. cdktf_cdktf_provider_upcloud/file_storage/__init__.py +1683 -0
  20. cdktf_cdktf_provider_upcloud/firewall_rules/__init__.py +1233 -0
  21. cdktf_cdktf_provider_upcloud/floating_ip_address/__init__.py +552 -0
  22. cdktf_cdktf_provider_upcloud/gateway/__init__.py +1167 -0
  23. cdktf_cdktf_provider_upcloud/gateway_connection/__init__.py +1299 -0
  24. cdktf_cdktf_provider_upcloud/gateway_connection_tunnel/__init__.py +1357 -0
  25. cdktf_cdktf_provider_upcloud/kubernetes_cluster/__init__.py +801 -0
  26. cdktf_cdktf_provider_upcloud/kubernetes_node_group/__init__.py +2674 -0
  27. cdktf_cdktf_provider_upcloud/loadbalancer/__init__.py +2113 -0
  28. cdktf_cdktf_provider_upcloud/loadbalancer_backend/__init__.py +1426 -0
  29. cdktf_cdktf_provider_upcloud/loadbalancer_backend_tls_config/__init__.py +442 -0
  30. cdktf_cdktf_provider_upcloud/loadbalancer_dynamic_backend_member/__init__.py +633 -0
  31. cdktf_cdktf_provider_upcloud/loadbalancer_dynamic_certificate_bundle/__init__.py +459 -0
  32. cdktf_cdktf_provider_upcloud/loadbalancer_frontend/__init__.py +1290 -0
  33. cdktf_cdktf_provider_upcloud/loadbalancer_frontend_rule/__init__.py +11486 -0
  34. cdktf_cdktf_provider_upcloud/loadbalancer_frontend_tls_config/__init__.py +442 -0
  35. cdktf_cdktf_provider_upcloud/loadbalancer_manual_certificate_bundle/__init__.py +504 -0
  36. cdktf_cdktf_provider_upcloud/loadbalancer_resolver/__init__.py +659 -0
  37. cdktf_cdktf_provider_upcloud/loadbalancer_static_backend_member/__init__.py +633 -0
  38. cdktf_cdktf_provider_upcloud/managed_database_logical_database/__init__.py +536 -0
  39. cdktf_cdktf_provider_upcloud/managed_database_mysql/__init__.py +4644 -0
  40. cdktf_cdktf_provider_upcloud/managed_database_opensearch/__init__.py +13812 -0
  41. cdktf_cdktf_provider_upcloud/managed_database_postgresql/__init__.py +7734 -0
  42. cdktf_cdktf_provider_upcloud/managed_database_user/__init__.py +1541 -0
  43. cdktf_cdktf_provider_upcloud/managed_database_valkey/__init__.py +3355 -0
  44. cdktf_cdktf_provider_upcloud/managed_object_storage/__init__.py +1198 -0
  45. cdktf_cdktf_provider_upcloud/managed_object_storage_bucket/__init__.py +409 -0
  46. cdktf_cdktf_provider_upcloud/managed_object_storage_custom_domain/__init__.py +446 -0
  47. cdktf_cdktf_provider_upcloud/managed_object_storage_policy/__init__.py +521 -0
  48. cdktf_cdktf_provider_upcloud/managed_object_storage_user/__init__.py +454 -0
  49. cdktf_cdktf_provider_upcloud/managed_object_storage_user_access_key/__init__.py +505 -0
  50. cdktf_cdktf_provider_upcloud/managed_object_storage_user_policy/__init__.py +485 -0
  51. cdktf_cdktf_provider_upcloud/network/__init__.py +1554 -0
  52. cdktf_cdktf_provider_upcloud/network_peering/__init__.py +1084 -0
  53. cdktf_cdktf_provider_upcloud/provider/__init__.py +544 -0
  54. cdktf_cdktf_provider_upcloud/py.typed +1 -0
  55. cdktf_cdktf_provider_upcloud/router/__init__.py +1030 -0
  56. cdktf_cdktf_provider_upcloud/server/__init__.py +4542 -0
  57. cdktf_cdktf_provider_upcloud/server_group/__init__.py +571 -0
  58. cdktf_cdktf_provider_upcloud/storage/__init__.py +1850 -0
  59. cdktf_cdktf_provider_upcloud/storage_backup/__init__.py +483 -0
  60. cdktf_cdktf_provider_upcloud/storage_template/__init__.py +478 -0
  61. cdktf_cdktf_provider_upcloud/tag/__init__.py +493 -0
  62. cdktf_cdktf_provider_upcloud-15.8.0.dist-info/LICENSE +355 -0
  63. cdktf_cdktf_provider_upcloud-15.8.0.dist-info/METADATA +120 -0
  64. cdktf_cdktf_provider_upcloud-15.8.0.dist-info/RECORD +66 -0
  65. cdktf_cdktf_provider_upcloud-15.8.0.dist-info/WHEEL +5 -0
  66. cdktf_cdktf_provider_upcloud-15.8.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1850 @@
1
+ r'''
2
+ # `upcloud_storage`
3
+
4
+ Refer to the Terraform Registry for docs: [`upcloud_storage`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage).
5
+ '''
6
+ from pkgutil import extend_path
7
+ __path__ = extend_path(__path__, __name__)
8
+
9
+ import abc
10
+ import builtins
11
+ import datetime
12
+ import enum
13
+ import typing
14
+
15
+ import jsii
16
+ import publication
17
+ import typing_extensions
18
+
19
+ import typeguard
20
+ from importlib.metadata import version as _metadata_package_version
21
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
22
+
23
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
24
+ if TYPEGUARD_MAJOR_VERSION <= 2:
25
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
26
+ else:
27
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
28
+ pass
29
+ else:
30
+ if TYPEGUARD_MAJOR_VERSION == 3:
31
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
32
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
33
+ else:
34
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
35
+
36
+ from .._jsii import *
37
+
38
+ import cdktf as _cdktf_9a9027ec
39
+ import constructs as _constructs_77d1e7e8
40
+
41
+
42
+ class Storage(
43
+ _cdktf_9a9027ec.TerraformResource,
44
+ metaclass=jsii.JSIIMeta,
45
+ jsii_type="@cdktf/provider-upcloud.storage.Storage",
46
+ ):
47
+ '''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage upcloud_storage}.'''
48
+
49
+ def __init__(
50
+ self,
51
+ scope: _constructs_77d1e7e8.Construct,
52
+ id: builtins.str,
53
+ *,
54
+ size: jsii.Number,
55
+ title: builtins.str,
56
+ zone: builtins.str,
57
+ backup_rule: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["StorageBackupRule", typing.Dict[builtins.str, typing.Any]]]]] = None,
58
+ clone: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["StorageClone", typing.Dict[builtins.str, typing.Any]]]]] = None,
59
+ delete_autoresize_backup: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
60
+ encrypt: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
61
+ filesystem_autoresize: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
62
+ import_: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["StorageImport", typing.Dict[builtins.str, typing.Any]]]]] = None,
63
+ labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
64
+ tier: typing.Optional[builtins.str] = None,
65
+ connection: typing.Optional[typing.Union[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
66
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
67
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
68
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
69
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
70
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
71
+ 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,
72
+ ) -> None:
73
+ '''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage upcloud_storage} Resource.
74
+
75
+ :param scope: The scope in which to define this construct.
76
+ :param id: The scoped construct ID. Must be unique amongst siblings in the same scope
77
+ :param size: The size of the storage in gigabytes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#size Storage#size}
78
+ :param title: The title of the storage. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#title Storage#title}
79
+ :param zone: The zone the storage is in, 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.31.0/docs/resources/storage#zone Storage#zone}
80
+ :param backup_rule: backup_rule block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#backup_rule Storage#backup_rule}
81
+ :param clone: clone block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#clone Storage#clone}
82
+ :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.31.0/docs/resources/storage#delete_autoresize_backup Storage#delete_autoresize_backup}
83
+ :param encrypt: Sets if the storage is encrypted at rest. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#encrypt Storage#encrypt}
84
+ :param filesystem_autoresize: If set to true, provider will attempt to resize partition and filesystem when the size of the 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.31.0/docs/resources/storage#filesystem_autoresize Storage#filesystem_autoresize}
85
+ :param import_: import block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#import Storage#import}
86
+ :param labels: User defined key-value pairs to classify the storage. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#labels Storage#labels}
87
+ :param tier: The tier of the storage. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#tier Storage#tier}
88
+ :param connection:
89
+ :param count:
90
+ :param depends_on:
91
+ :param for_each:
92
+ :param lifecycle:
93
+ :param provider:
94
+ :param provisioners:
95
+ '''
96
+ if __debug__:
97
+ type_hints = typing.get_type_hints(_typecheckingstub__9bd49f2a434a513b68a524662cb122923af8f05e089aa4ea48c714fcf072d8f7)
98
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
99
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
100
+ config = StorageConfig(
101
+ size=size,
102
+ title=title,
103
+ zone=zone,
104
+ backup_rule=backup_rule,
105
+ clone=clone,
106
+ delete_autoresize_backup=delete_autoresize_backup,
107
+ encrypt=encrypt,
108
+ filesystem_autoresize=filesystem_autoresize,
109
+ import_=import_,
110
+ labels=labels,
111
+ tier=tier,
112
+ connection=connection,
113
+ count=count,
114
+ depends_on=depends_on,
115
+ for_each=for_each,
116
+ lifecycle=lifecycle,
117
+ provider=provider,
118
+ provisioners=provisioners,
119
+ )
120
+
121
+ jsii.create(self.__class__, self, [scope, id, config])
122
+
123
+ @jsii.member(jsii_name="generateConfigForImport")
124
+ @builtins.classmethod
125
+ def generate_config_for_import(
126
+ cls,
127
+ scope: _constructs_77d1e7e8.Construct,
128
+ import_to_id: builtins.str,
129
+ import_from_id: builtins.str,
130
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
131
+ ) -> _cdktf_9a9027ec.ImportableResource:
132
+ '''Generates CDKTF code for importing a Storage resource upon running "cdktf plan ".
133
+
134
+ :param scope: The scope in which to define this construct.
135
+ :param import_to_id: The construct id used in the generated config for the Storage to import.
136
+ :param import_from_id: The id of the existing Storage that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#import import section} in the documentation of this resource for the id to use
137
+ :param provider: ? Optional instance of the provider where the Storage to import is found.
138
+ '''
139
+ if __debug__:
140
+ type_hints = typing.get_type_hints(_typecheckingstub__481856d5d7a7d582fe4a338e67bf071e997c3576553d68c41274459376725919)
141
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
142
+ check_type(argname="argument import_to_id", value=import_to_id, expected_type=type_hints["import_to_id"])
143
+ check_type(argname="argument import_from_id", value=import_from_id, expected_type=type_hints["import_from_id"])
144
+ check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
145
+ return typing.cast(_cdktf_9a9027ec.ImportableResource, jsii.sinvoke(cls, "generateConfigForImport", [scope, import_to_id, import_from_id, provider]))
146
+
147
+ @jsii.member(jsii_name="putBackupRule")
148
+ def put_backup_rule(
149
+ self,
150
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["StorageBackupRule", typing.Dict[builtins.str, typing.Any]]]],
151
+ ) -> None:
152
+ '''
153
+ :param value: -
154
+ '''
155
+ if __debug__:
156
+ type_hints = typing.get_type_hints(_typecheckingstub__bbe3cb3b69b7cc1723d7cf5578484737fc29a4a5ee5059d3c155fcb8375b8b7e)
157
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
158
+ return typing.cast(None, jsii.invoke(self, "putBackupRule", [value]))
159
+
160
+ @jsii.member(jsii_name="putClone")
161
+ def put_clone(
162
+ self,
163
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["StorageClone", typing.Dict[builtins.str, typing.Any]]]],
164
+ ) -> None:
165
+ '''
166
+ :param value: -
167
+ '''
168
+ if __debug__:
169
+ type_hints = typing.get_type_hints(_typecheckingstub__cb04c88ad09e546f98d281efb2dc693ef336d727deb1ae509156aa6dfd05092f)
170
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
171
+ return typing.cast(None, jsii.invoke(self, "putClone", [value]))
172
+
173
+ @jsii.member(jsii_name="putImport")
174
+ def put_import(
175
+ self,
176
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["StorageImport", typing.Dict[builtins.str, typing.Any]]]],
177
+ ) -> None:
178
+ '''
179
+ :param value: -
180
+ '''
181
+ if __debug__:
182
+ type_hints = typing.get_type_hints(_typecheckingstub__47ebccc41ede87ea1bf2ebb142a2f8e12f68702e19b94bb4f7d6cd617b9bfe69)
183
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
184
+ return typing.cast(None, jsii.invoke(self, "putImport", [value]))
185
+
186
+ @jsii.member(jsii_name="resetBackupRule")
187
+ def reset_backup_rule(self) -> None:
188
+ return typing.cast(None, jsii.invoke(self, "resetBackupRule", []))
189
+
190
+ @jsii.member(jsii_name="resetClone")
191
+ def reset_clone(self) -> None:
192
+ return typing.cast(None, jsii.invoke(self, "resetClone", []))
193
+
194
+ @jsii.member(jsii_name="resetDeleteAutoresizeBackup")
195
+ def reset_delete_autoresize_backup(self) -> None:
196
+ return typing.cast(None, jsii.invoke(self, "resetDeleteAutoresizeBackup", []))
197
+
198
+ @jsii.member(jsii_name="resetEncrypt")
199
+ def reset_encrypt(self) -> None:
200
+ return typing.cast(None, jsii.invoke(self, "resetEncrypt", []))
201
+
202
+ @jsii.member(jsii_name="resetFilesystemAutoresize")
203
+ def reset_filesystem_autoresize(self) -> None:
204
+ return typing.cast(None, jsii.invoke(self, "resetFilesystemAutoresize", []))
205
+
206
+ @jsii.member(jsii_name="resetImport")
207
+ def reset_import(self) -> None:
208
+ return typing.cast(None, jsii.invoke(self, "resetImport", []))
209
+
210
+ @jsii.member(jsii_name="resetLabels")
211
+ def reset_labels(self) -> None:
212
+ return typing.cast(None, jsii.invoke(self, "resetLabels", []))
213
+
214
+ @jsii.member(jsii_name="resetTier")
215
+ def reset_tier(self) -> None:
216
+ return typing.cast(None, jsii.invoke(self, "resetTier", []))
217
+
218
+ @jsii.member(jsii_name="synthesizeAttributes")
219
+ def _synthesize_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
220
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeAttributes", []))
221
+
222
+ @jsii.member(jsii_name="synthesizeHclAttributes")
223
+ def _synthesize_hcl_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
224
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeHclAttributes", []))
225
+
226
+ @jsii.python.classproperty
227
+ @jsii.member(jsii_name="tfResourceType")
228
+ def TF_RESOURCE_TYPE(cls) -> builtins.str:
229
+ return typing.cast(builtins.str, jsii.sget(cls, "tfResourceType"))
230
+
231
+ @builtins.property
232
+ @jsii.member(jsii_name="backupRule")
233
+ def backup_rule(self) -> "StorageBackupRuleList":
234
+ return typing.cast("StorageBackupRuleList", jsii.get(self, "backupRule"))
235
+
236
+ @builtins.property
237
+ @jsii.member(jsii_name="clone")
238
+ def clone(self) -> "StorageCloneList":
239
+ return typing.cast("StorageCloneList", jsii.get(self, "clone"))
240
+
241
+ @builtins.property
242
+ @jsii.member(jsii_name="id")
243
+ def id(self) -> builtins.str:
244
+ return typing.cast(builtins.str, jsii.get(self, "id"))
245
+
246
+ @builtins.property
247
+ @jsii.member(jsii_name="import")
248
+ def import_(self) -> "StorageImportList":
249
+ return typing.cast("StorageImportList", jsii.get(self, "import"))
250
+
251
+ @builtins.property
252
+ @jsii.member(jsii_name="systemLabels")
253
+ def system_labels(self) -> _cdktf_9a9027ec.StringMap:
254
+ return typing.cast(_cdktf_9a9027ec.StringMap, jsii.get(self, "systemLabels"))
255
+
256
+ @builtins.property
257
+ @jsii.member(jsii_name="type")
258
+ def type(self) -> builtins.str:
259
+ return typing.cast(builtins.str, jsii.get(self, "type"))
260
+
261
+ @builtins.property
262
+ @jsii.member(jsii_name="backupRuleInput")
263
+ def backup_rule_input(
264
+ self,
265
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["StorageBackupRule"]]]:
266
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["StorageBackupRule"]]], jsii.get(self, "backupRuleInput"))
267
+
268
+ @builtins.property
269
+ @jsii.member(jsii_name="cloneInput")
270
+ def clone_input(
271
+ self,
272
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["StorageClone"]]]:
273
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["StorageClone"]]], jsii.get(self, "cloneInput"))
274
+
275
+ @builtins.property
276
+ @jsii.member(jsii_name="deleteAutoresizeBackupInput")
277
+ def delete_autoresize_backup_input(
278
+ self,
279
+ ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
280
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], jsii.get(self, "deleteAutoresizeBackupInput"))
281
+
282
+ @builtins.property
283
+ @jsii.member(jsii_name="encryptInput")
284
+ def encrypt_input(
285
+ self,
286
+ ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
287
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], jsii.get(self, "encryptInput"))
288
+
289
+ @builtins.property
290
+ @jsii.member(jsii_name="filesystemAutoresizeInput")
291
+ def filesystem_autoresize_input(
292
+ self,
293
+ ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
294
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], jsii.get(self, "filesystemAutoresizeInput"))
295
+
296
+ @builtins.property
297
+ @jsii.member(jsii_name="importInput")
298
+ def import_input(
299
+ self,
300
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["StorageImport"]]]:
301
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["StorageImport"]]], jsii.get(self, "importInput"))
302
+
303
+ @builtins.property
304
+ @jsii.member(jsii_name="labelsInput")
305
+ def labels_input(
306
+ self,
307
+ ) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
308
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], jsii.get(self, "labelsInput"))
309
+
310
+ @builtins.property
311
+ @jsii.member(jsii_name="sizeInput")
312
+ def size_input(self) -> typing.Optional[jsii.Number]:
313
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "sizeInput"))
314
+
315
+ @builtins.property
316
+ @jsii.member(jsii_name="tierInput")
317
+ def tier_input(self) -> typing.Optional[builtins.str]:
318
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "tierInput"))
319
+
320
+ @builtins.property
321
+ @jsii.member(jsii_name="titleInput")
322
+ def title_input(self) -> typing.Optional[builtins.str]:
323
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "titleInput"))
324
+
325
+ @builtins.property
326
+ @jsii.member(jsii_name="zoneInput")
327
+ def zone_input(self) -> typing.Optional[builtins.str]:
328
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "zoneInput"))
329
+
330
+ @builtins.property
331
+ @jsii.member(jsii_name="deleteAutoresizeBackup")
332
+ def delete_autoresize_backup(
333
+ self,
334
+ ) -> typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]:
335
+ return typing.cast(typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable], jsii.get(self, "deleteAutoresizeBackup"))
336
+
337
+ @delete_autoresize_backup.setter
338
+ def delete_autoresize_backup(
339
+ self,
340
+ value: typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable],
341
+ ) -> None:
342
+ if __debug__:
343
+ type_hints = typing.get_type_hints(_typecheckingstub__82e9c6a5507cc90cebc8ac472e9dd0232026b4603054a7c2ecb59c00a7a6785a)
344
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
345
+ jsii.set(self, "deleteAutoresizeBackup", value) # pyright: ignore[reportArgumentType]
346
+
347
+ @builtins.property
348
+ @jsii.member(jsii_name="encrypt")
349
+ def encrypt(self) -> typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]:
350
+ return typing.cast(typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable], jsii.get(self, "encrypt"))
351
+
352
+ @encrypt.setter
353
+ def encrypt(
354
+ self,
355
+ value: typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable],
356
+ ) -> None:
357
+ if __debug__:
358
+ type_hints = typing.get_type_hints(_typecheckingstub__9423d56b30aea9f7c9f8a42e7560f55ab8f7fefb2677f3c32db186974c6dfda5)
359
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
360
+ jsii.set(self, "encrypt", value) # pyright: ignore[reportArgumentType]
361
+
362
+ @builtins.property
363
+ @jsii.member(jsii_name="filesystemAutoresize")
364
+ def filesystem_autoresize(
365
+ self,
366
+ ) -> typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]:
367
+ return typing.cast(typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable], jsii.get(self, "filesystemAutoresize"))
368
+
369
+ @filesystem_autoresize.setter
370
+ def filesystem_autoresize(
371
+ self,
372
+ value: typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable],
373
+ ) -> None:
374
+ if __debug__:
375
+ type_hints = typing.get_type_hints(_typecheckingstub__173705963bc967a175d1c32d3e8bff20d51685b6cd3b830c105292ade27e0ee4)
376
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
377
+ jsii.set(self, "filesystemAutoresize", value) # pyright: ignore[reportArgumentType]
378
+
379
+ @builtins.property
380
+ @jsii.member(jsii_name="labels")
381
+ def labels(self) -> typing.Mapping[builtins.str, builtins.str]:
382
+ return typing.cast(typing.Mapping[builtins.str, builtins.str], jsii.get(self, "labels"))
383
+
384
+ @labels.setter
385
+ def labels(self, value: typing.Mapping[builtins.str, builtins.str]) -> None:
386
+ if __debug__:
387
+ type_hints = typing.get_type_hints(_typecheckingstub__20d3dfd55ef351b29bb2ba1eee1a561904ac469c103e66161683ebe461589f4f)
388
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
389
+ jsii.set(self, "labels", value) # pyright: ignore[reportArgumentType]
390
+
391
+ @builtins.property
392
+ @jsii.member(jsii_name="size")
393
+ def size(self) -> jsii.Number:
394
+ return typing.cast(jsii.Number, jsii.get(self, "size"))
395
+
396
+ @size.setter
397
+ def size(self, value: jsii.Number) -> None:
398
+ if __debug__:
399
+ type_hints = typing.get_type_hints(_typecheckingstub__e90e54b6086008cfb4adfd33d71b831c83e9aa464e8928f90f0141f6747c7652)
400
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
401
+ jsii.set(self, "size", value) # pyright: ignore[reportArgumentType]
402
+
403
+ @builtins.property
404
+ @jsii.member(jsii_name="tier")
405
+ def tier(self) -> builtins.str:
406
+ return typing.cast(builtins.str, jsii.get(self, "tier"))
407
+
408
+ @tier.setter
409
+ def tier(self, value: builtins.str) -> None:
410
+ if __debug__:
411
+ type_hints = typing.get_type_hints(_typecheckingstub__1bc0958a936359d8e89681154815d1e2fafbdb46733b21e242919953e6da083c)
412
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
413
+ jsii.set(self, "tier", value) # pyright: ignore[reportArgumentType]
414
+
415
+ @builtins.property
416
+ @jsii.member(jsii_name="title")
417
+ def title(self) -> builtins.str:
418
+ return typing.cast(builtins.str, jsii.get(self, "title"))
419
+
420
+ @title.setter
421
+ def title(self, value: builtins.str) -> None:
422
+ if __debug__:
423
+ type_hints = typing.get_type_hints(_typecheckingstub__9a0cb7a03c806326027f6913ae7e4bdde28dc451e1f2c45d161e8f748ee05f4f)
424
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
425
+ jsii.set(self, "title", value) # pyright: ignore[reportArgumentType]
426
+
427
+ @builtins.property
428
+ @jsii.member(jsii_name="zone")
429
+ def zone(self) -> builtins.str:
430
+ return typing.cast(builtins.str, jsii.get(self, "zone"))
431
+
432
+ @zone.setter
433
+ def zone(self, value: builtins.str) -> None:
434
+ if __debug__:
435
+ type_hints = typing.get_type_hints(_typecheckingstub__ff4ca5ef13e3110c770fdaa26583bbb37d48f93a54ecb79b35ce9a4d07e9662a)
436
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
437
+ jsii.set(self, "zone", value) # pyright: ignore[reportArgumentType]
438
+
439
+
440
+ @jsii.data_type(
441
+ jsii_type="@cdktf/provider-upcloud.storage.StorageBackupRule",
442
+ jsii_struct_bases=[],
443
+ name_mapping={"interval": "interval", "retention": "retention", "time": "time"},
444
+ )
445
+ class StorageBackupRule:
446
+ def __init__(
447
+ self,
448
+ *,
449
+ interval: builtins.str,
450
+ retention: jsii.Number,
451
+ time: builtins.str,
452
+ ) -> None:
453
+ '''
454
+ :param interval: The weekday when the backup is created. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#interval Storage#interval}
455
+ :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.31.0/docs/resources/storage#retention Storage#retention}
456
+ :param time: The time of day (UTC) when the backup is created. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#time Storage#time}
457
+ '''
458
+ if __debug__:
459
+ type_hints = typing.get_type_hints(_typecheckingstub__eee27a48ad2ef9945a89867effeeb18fc1f477a3f16c16ee7e3dc286b6d8319e)
460
+ check_type(argname="argument interval", value=interval, expected_type=type_hints["interval"])
461
+ check_type(argname="argument retention", value=retention, expected_type=type_hints["retention"])
462
+ check_type(argname="argument time", value=time, expected_type=type_hints["time"])
463
+ self._values: typing.Dict[builtins.str, typing.Any] = {
464
+ "interval": interval,
465
+ "retention": retention,
466
+ "time": time,
467
+ }
468
+
469
+ @builtins.property
470
+ def interval(self) -> builtins.str:
471
+ '''The weekday when the backup is created.
472
+
473
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#interval Storage#interval}
474
+ '''
475
+ result = self._values.get("interval")
476
+ assert result is not None, "Required property 'interval' is missing"
477
+ return typing.cast(builtins.str, result)
478
+
479
+ @builtins.property
480
+ def retention(self) -> jsii.Number:
481
+ '''The number of days before a backup is automatically deleted.
482
+
483
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#retention Storage#retention}
484
+ '''
485
+ result = self._values.get("retention")
486
+ assert result is not None, "Required property 'retention' is missing"
487
+ return typing.cast(jsii.Number, result)
488
+
489
+ @builtins.property
490
+ def time(self) -> builtins.str:
491
+ '''The time of day (UTC) when the backup is created.
492
+
493
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#time Storage#time}
494
+ '''
495
+ result = self._values.get("time")
496
+ assert result is not None, "Required property 'time' is missing"
497
+ return typing.cast(builtins.str, result)
498
+
499
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
500
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
501
+
502
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
503
+ return not (rhs == self)
504
+
505
+ def __repr__(self) -> str:
506
+ return "StorageBackupRule(%s)" % ", ".join(
507
+ k + "=" + repr(v) for k, v in self._values.items()
508
+ )
509
+
510
+
511
+ class StorageBackupRuleList(
512
+ _cdktf_9a9027ec.ComplexList,
513
+ metaclass=jsii.JSIIMeta,
514
+ jsii_type="@cdktf/provider-upcloud.storage.StorageBackupRuleList",
515
+ ):
516
+ def __init__(
517
+ self,
518
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
519
+ terraform_attribute: builtins.str,
520
+ wraps_set: builtins.bool,
521
+ ) -> None:
522
+ '''
523
+ :param terraform_resource: The parent resource.
524
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
525
+ :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
526
+ '''
527
+ if __debug__:
528
+ type_hints = typing.get_type_hints(_typecheckingstub__f47d9ab94c4382c477a1aa316bcdd00822de95cb10df64665e2bc7f56c218f2d)
529
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
530
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
531
+ check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
532
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])
533
+
534
+ @jsii.member(jsii_name="get")
535
+ def get(self, index: jsii.Number) -> "StorageBackupRuleOutputReference":
536
+ '''
537
+ :param index: the index of the item to return.
538
+ '''
539
+ if __debug__:
540
+ type_hints = typing.get_type_hints(_typecheckingstub__3dee83383344a5591cad62812b43dab07f02c2c39fabf01927fe0b1c6d816c52)
541
+ check_type(argname="argument index", value=index, expected_type=type_hints["index"])
542
+ return typing.cast("StorageBackupRuleOutputReference", jsii.invoke(self, "get", [index]))
543
+
544
+ @builtins.property
545
+ @jsii.member(jsii_name="terraformAttribute")
546
+ def _terraform_attribute(self) -> builtins.str:
547
+ '''The attribute on the parent resource this class is referencing.'''
548
+ return typing.cast(builtins.str, jsii.get(self, "terraformAttribute"))
549
+
550
+ @_terraform_attribute.setter
551
+ def _terraform_attribute(self, value: builtins.str) -> None:
552
+ if __debug__:
553
+ type_hints = typing.get_type_hints(_typecheckingstub__ffde3d50c7b42ff58c2dd00db7597cf9e4b6b47d8b7b2f9a5ec3868fc469204d)
554
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
555
+ jsii.set(self, "terraformAttribute", value) # pyright: ignore[reportArgumentType]
556
+
557
+ @builtins.property
558
+ @jsii.member(jsii_name="terraformResource")
559
+ def _terraform_resource(self) -> _cdktf_9a9027ec.IInterpolatingParent:
560
+ '''The parent resource.'''
561
+ return typing.cast(_cdktf_9a9027ec.IInterpolatingParent, jsii.get(self, "terraformResource"))
562
+
563
+ @_terraform_resource.setter
564
+ def _terraform_resource(self, value: _cdktf_9a9027ec.IInterpolatingParent) -> None:
565
+ if __debug__:
566
+ type_hints = typing.get_type_hints(_typecheckingstub__da123e115b8d338a479ed772d561e4469918b96cc2afdefdf8123c6e89440b5c)
567
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
568
+ jsii.set(self, "terraformResource", value) # pyright: ignore[reportArgumentType]
569
+
570
+ @builtins.property
571
+ @jsii.member(jsii_name="wrapsSet")
572
+ def _wraps_set(self) -> builtins.bool:
573
+ '''whether the list is wrapping a set (will add tolist() to be able to access an item via an index).'''
574
+ return typing.cast(builtins.bool, jsii.get(self, "wrapsSet"))
575
+
576
+ @_wraps_set.setter
577
+ def _wraps_set(self, value: builtins.bool) -> None:
578
+ if __debug__:
579
+ type_hints = typing.get_type_hints(_typecheckingstub__327c3ab237400f24965f6aa3d10ba75bd2c14546c770a96a40afb528010ff56e)
580
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
581
+ jsii.set(self, "wrapsSet", value) # pyright: ignore[reportArgumentType]
582
+
583
+ @builtins.property
584
+ @jsii.member(jsii_name="internalValue")
585
+ def internal_value(
586
+ self,
587
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageBackupRule]]]:
588
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageBackupRule]]], jsii.get(self, "internalValue"))
589
+
590
+ @internal_value.setter
591
+ def internal_value(
592
+ self,
593
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageBackupRule]]],
594
+ ) -> None:
595
+ if __debug__:
596
+ type_hints = typing.get_type_hints(_typecheckingstub__2cd7f72f81f09e4eb7a5aa0cb1228d30c0aa55a016667f6c8329a4312310a68c)
597
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
598
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
599
+
600
+
601
+ class StorageBackupRuleOutputReference(
602
+ _cdktf_9a9027ec.ComplexObject,
603
+ metaclass=jsii.JSIIMeta,
604
+ jsii_type="@cdktf/provider-upcloud.storage.StorageBackupRuleOutputReference",
605
+ ):
606
+ def __init__(
607
+ self,
608
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
609
+ terraform_attribute: builtins.str,
610
+ complex_object_index: jsii.Number,
611
+ complex_object_is_from_set: builtins.bool,
612
+ ) -> None:
613
+ '''
614
+ :param terraform_resource: The parent resource.
615
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
616
+ :param complex_object_index: the index of this item in the list.
617
+ :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).
618
+ '''
619
+ if __debug__:
620
+ type_hints = typing.get_type_hints(_typecheckingstub__79acd1f0570acd41d1d30a9b059d7a1f28492cd95c21fa3cfd1f76b8f6dae979)
621
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
622
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
623
+ check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
624
+ check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
625
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])
626
+
627
+ @builtins.property
628
+ @jsii.member(jsii_name="intervalInput")
629
+ def interval_input(self) -> typing.Optional[builtins.str]:
630
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "intervalInput"))
631
+
632
+ @builtins.property
633
+ @jsii.member(jsii_name="retentionInput")
634
+ def retention_input(self) -> typing.Optional[jsii.Number]:
635
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "retentionInput"))
636
+
637
+ @builtins.property
638
+ @jsii.member(jsii_name="timeInput")
639
+ def time_input(self) -> typing.Optional[builtins.str]:
640
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "timeInput"))
641
+
642
+ @builtins.property
643
+ @jsii.member(jsii_name="interval")
644
+ def interval(self) -> builtins.str:
645
+ return typing.cast(builtins.str, jsii.get(self, "interval"))
646
+
647
+ @interval.setter
648
+ def interval(self, value: builtins.str) -> None:
649
+ if __debug__:
650
+ type_hints = typing.get_type_hints(_typecheckingstub__12c79b42b164203699296f0a1cd95267dee0fe0495ed1e4519ae7c361d9a72c8)
651
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
652
+ jsii.set(self, "interval", value) # pyright: ignore[reportArgumentType]
653
+
654
+ @builtins.property
655
+ @jsii.member(jsii_name="retention")
656
+ def retention(self) -> jsii.Number:
657
+ return typing.cast(jsii.Number, jsii.get(self, "retention"))
658
+
659
+ @retention.setter
660
+ def retention(self, value: jsii.Number) -> None:
661
+ if __debug__:
662
+ type_hints = typing.get_type_hints(_typecheckingstub__0abbc2d9b44e2dac6884b784fc28bbe08ae39e6a8373595b7a9834d6bcb01917)
663
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
664
+ jsii.set(self, "retention", value) # pyright: ignore[reportArgumentType]
665
+
666
+ @builtins.property
667
+ @jsii.member(jsii_name="time")
668
+ def time(self) -> builtins.str:
669
+ return typing.cast(builtins.str, jsii.get(self, "time"))
670
+
671
+ @time.setter
672
+ def time(self, value: builtins.str) -> None:
673
+ if __debug__:
674
+ type_hints = typing.get_type_hints(_typecheckingstub__9c52c078d21af8542570c2817d5b08637de26e42882b63544611277d31048275)
675
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
676
+ jsii.set(self, "time", value) # pyright: ignore[reportArgumentType]
677
+
678
+ @builtins.property
679
+ @jsii.member(jsii_name="internalValue")
680
+ def internal_value(
681
+ self,
682
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, StorageBackupRule]]:
683
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, StorageBackupRule]], jsii.get(self, "internalValue"))
684
+
685
+ @internal_value.setter
686
+ def internal_value(
687
+ self,
688
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, StorageBackupRule]],
689
+ ) -> None:
690
+ if __debug__:
691
+ type_hints = typing.get_type_hints(_typecheckingstub__9d4ff67358f7c246d5a3d3ab8a0cf15d38ffc63d05743333016fbd20dd59ab0a)
692
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
693
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
694
+
695
+
696
+ @jsii.data_type(
697
+ jsii_type="@cdktf/provider-upcloud.storage.StorageClone",
698
+ jsii_struct_bases=[],
699
+ name_mapping={"id": "id"},
700
+ )
701
+ class StorageClone:
702
+ def __init__(self, *, id: builtins.str) -> None:
703
+ '''
704
+ :param id: The unique identifier of the storage/template to clone. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#id Storage#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.
705
+ '''
706
+ if __debug__:
707
+ type_hints = typing.get_type_hints(_typecheckingstub__efe8b26017a7929b77162de356dd088dc3adf3b5cf8edbcdd06aee07e255d1e2)
708
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
709
+ self._values: typing.Dict[builtins.str, typing.Any] = {
710
+ "id": id,
711
+ }
712
+
713
+ @builtins.property
714
+ def id(self) -> builtins.str:
715
+ '''The unique identifier of the storage/template to clone.
716
+
717
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#id Storage#id}
718
+
719
+ Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
720
+ 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.
721
+ '''
722
+ result = self._values.get("id")
723
+ assert result is not None, "Required property 'id' is missing"
724
+ return typing.cast(builtins.str, result)
725
+
726
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
727
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
728
+
729
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
730
+ return not (rhs == self)
731
+
732
+ def __repr__(self) -> str:
733
+ return "StorageClone(%s)" % ", ".join(
734
+ k + "=" + repr(v) for k, v in self._values.items()
735
+ )
736
+
737
+
738
+ class StorageCloneList(
739
+ _cdktf_9a9027ec.ComplexList,
740
+ metaclass=jsii.JSIIMeta,
741
+ jsii_type="@cdktf/provider-upcloud.storage.StorageCloneList",
742
+ ):
743
+ def __init__(
744
+ self,
745
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
746
+ terraform_attribute: builtins.str,
747
+ wraps_set: builtins.bool,
748
+ ) -> None:
749
+ '''
750
+ :param terraform_resource: The parent resource.
751
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
752
+ :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
753
+ '''
754
+ if __debug__:
755
+ type_hints = typing.get_type_hints(_typecheckingstub__0f38f5f8d5521f6b71b773a08b50a096a8f7d3253675891119594a3f9fb013f2)
756
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
757
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
758
+ check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
759
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])
760
+
761
+ @jsii.member(jsii_name="get")
762
+ def get(self, index: jsii.Number) -> "StorageCloneOutputReference":
763
+ '''
764
+ :param index: the index of the item to return.
765
+ '''
766
+ if __debug__:
767
+ type_hints = typing.get_type_hints(_typecheckingstub__afde7eb7a2c0af1baeeb182a0e2cf1790614ed9b179298f959d04d068d7d87d5)
768
+ check_type(argname="argument index", value=index, expected_type=type_hints["index"])
769
+ return typing.cast("StorageCloneOutputReference", jsii.invoke(self, "get", [index]))
770
+
771
+ @builtins.property
772
+ @jsii.member(jsii_name="terraformAttribute")
773
+ def _terraform_attribute(self) -> builtins.str:
774
+ '''The attribute on the parent resource this class is referencing.'''
775
+ return typing.cast(builtins.str, jsii.get(self, "terraformAttribute"))
776
+
777
+ @_terraform_attribute.setter
778
+ def _terraform_attribute(self, value: builtins.str) -> None:
779
+ if __debug__:
780
+ type_hints = typing.get_type_hints(_typecheckingstub__ee4175e30e831b4edf16aa42064977c04ebc99158e1696005b7c715e7edd784c)
781
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
782
+ jsii.set(self, "terraformAttribute", value) # pyright: ignore[reportArgumentType]
783
+
784
+ @builtins.property
785
+ @jsii.member(jsii_name="terraformResource")
786
+ def _terraform_resource(self) -> _cdktf_9a9027ec.IInterpolatingParent:
787
+ '''The parent resource.'''
788
+ return typing.cast(_cdktf_9a9027ec.IInterpolatingParent, jsii.get(self, "terraformResource"))
789
+
790
+ @_terraform_resource.setter
791
+ def _terraform_resource(self, value: _cdktf_9a9027ec.IInterpolatingParent) -> None:
792
+ if __debug__:
793
+ type_hints = typing.get_type_hints(_typecheckingstub__d9878c018103688badf2535c86a16dffc6728afcce231df9d5a66bddf7eb6d15)
794
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
795
+ jsii.set(self, "terraformResource", value) # pyright: ignore[reportArgumentType]
796
+
797
+ @builtins.property
798
+ @jsii.member(jsii_name="wrapsSet")
799
+ def _wraps_set(self) -> builtins.bool:
800
+ '''whether the list is wrapping a set (will add tolist() to be able to access an item via an index).'''
801
+ return typing.cast(builtins.bool, jsii.get(self, "wrapsSet"))
802
+
803
+ @_wraps_set.setter
804
+ def _wraps_set(self, value: builtins.bool) -> None:
805
+ if __debug__:
806
+ type_hints = typing.get_type_hints(_typecheckingstub__af41c5f871642f7cbfe951cbc16c36889204cb9428a90f9e08eaf548618ae48d)
807
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
808
+ jsii.set(self, "wrapsSet", value) # pyright: ignore[reportArgumentType]
809
+
810
+ @builtins.property
811
+ @jsii.member(jsii_name="internalValue")
812
+ def internal_value(
813
+ self,
814
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageClone]]]:
815
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageClone]]], jsii.get(self, "internalValue"))
816
+
817
+ @internal_value.setter
818
+ def internal_value(
819
+ self,
820
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageClone]]],
821
+ ) -> None:
822
+ if __debug__:
823
+ type_hints = typing.get_type_hints(_typecheckingstub__3ba9bf556d399bfff171c442a9b57d9e0aab55fc5300d7e2fa41cd5360ddcc44)
824
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
825
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
826
+
827
+
828
+ class StorageCloneOutputReference(
829
+ _cdktf_9a9027ec.ComplexObject,
830
+ metaclass=jsii.JSIIMeta,
831
+ jsii_type="@cdktf/provider-upcloud.storage.StorageCloneOutputReference",
832
+ ):
833
+ def __init__(
834
+ self,
835
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
836
+ terraform_attribute: builtins.str,
837
+ complex_object_index: jsii.Number,
838
+ complex_object_is_from_set: builtins.bool,
839
+ ) -> None:
840
+ '''
841
+ :param terraform_resource: The parent resource.
842
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
843
+ :param complex_object_index: the index of this item in the list.
844
+ :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).
845
+ '''
846
+ if __debug__:
847
+ type_hints = typing.get_type_hints(_typecheckingstub__48239a57eb75b22f505aac257715fcde0bbf96174431e3bee760b056e7444804)
848
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
849
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
850
+ check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
851
+ check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
852
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])
853
+
854
+ @builtins.property
855
+ @jsii.member(jsii_name="idInput")
856
+ def id_input(self) -> typing.Optional[builtins.str]:
857
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "idInput"))
858
+
859
+ @builtins.property
860
+ @jsii.member(jsii_name="id")
861
+ def id(self) -> builtins.str:
862
+ return typing.cast(builtins.str, jsii.get(self, "id"))
863
+
864
+ @id.setter
865
+ def id(self, value: builtins.str) -> None:
866
+ if __debug__:
867
+ type_hints = typing.get_type_hints(_typecheckingstub__ca78226c75d14e1601b7fb67b274c90d7c993635ef97e10dac32118b4da56086)
868
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
869
+ jsii.set(self, "id", value) # pyright: ignore[reportArgumentType]
870
+
871
+ @builtins.property
872
+ @jsii.member(jsii_name="internalValue")
873
+ def internal_value(
874
+ self,
875
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, StorageClone]]:
876
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, StorageClone]], jsii.get(self, "internalValue"))
877
+
878
+ @internal_value.setter
879
+ def internal_value(
880
+ self,
881
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, StorageClone]],
882
+ ) -> None:
883
+ if __debug__:
884
+ type_hints = typing.get_type_hints(_typecheckingstub__685a9b10adebb6f4461de509e7d2cbfa62368d279dc21b410a145ef92ea4d003)
885
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
886
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
887
+
888
+
889
+ @jsii.data_type(
890
+ jsii_type="@cdktf/provider-upcloud.storage.StorageConfig",
891
+ jsii_struct_bases=[_cdktf_9a9027ec.TerraformMetaArguments],
892
+ name_mapping={
893
+ "connection": "connection",
894
+ "count": "count",
895
+ "depends_on": "dependsOn",
896
+ "for_each": "forEach",
897
+ "lifecycle": "lifecycle",
898
+ "provider": "provider",
899
+ "provisioners": "provisioners",
900
+ "size": "size",
901
+ "title": "title",
902
+ "zone": "zone",
903
+ "backup_rule": "backupRule",
904
+ "clone": "clone",
905
+ "delete_autoresize_backup": "deleteAutoresizeBackup",
906
+ "encrypt": "encrypt",
907
+ "filesystem_autoresize": "filesystemAutoresize",
908
+ "import_": "import",
909
+ "labels": "labels",
910
+ "tier": "tier",
911
+ },
912
+ )
913
+ class StorageConfig(_cdktf_9a9027ec.TerraformMetaArguments):
914
+ def __init__(
915
+ self,
916
+ *,
917
+ connection: typing.Optional[typing.Union[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
918
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
919
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
920
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
921
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
922
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
923
+ 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,
924
+ size: jsii.Number,
925
+ title: builtins.str,
926
+ zone: builtins.str,
927
+ backup_rule: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[StorageBackupRule, typing.Dict[builtins.str, typing.Any]]]]] = None,
928
+ clone: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[StorageClone, typing.Dict[builtins.str, typing.Any]]]]] = None,
929
+ delete_autoresize_backup: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
930
+ encrypt: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
931
+ filesystem_autoresize: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
932
+ import_: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["StorageImport", typing.Dict[builtins.str, typing.Any]]]]] = None,
933
+ labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
934
+ tier: typing.Optional[builtins.str] = None,
935
+ ) -> None:
936
+ '''
937
+ :param connection:
938
+ :param count:
939
+ :param depends_on:
940
+ :param for_each:
941
+ :param lifecycle:
942
+ :param provider:
943
+ :param provisioners:
944
+ :param size: The size of the storage in gigabytes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#size Storage#size}
945
+ :param title: The title of the storage. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#title Storage#title}
946
+ :param zone: The zone the storage is in, 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.31.0/docs/resources/storage#zone Storage#zone}
947
+ :param backup_rule: backup_rule block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#backup_rule Storage#backup_rule}
948
+ :param clone: clone block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#clone Storage#clone}
949
+ :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.31.0/docs/resources/storage#delete_autoresize_backup Storage#delete_autoresize_backup}
950
+ :param encrypt: Sets if the storage is encrypted at rest. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#encrypt Storage#encrypt}
951
+ :param filesystem_autoresize: If set to true, provider will attempt to resize partition and filesystem when the size of the 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.31.0/docs/resources/storage#filesystem_autoresize Storage#filesystem_autoresize}
952
+ :param import_: import block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#import Storage#import}
953
+ :param labels: User defined key-value pairs to classify the storage. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#labels Storage#labels}
954
+ :param tier: The tier of the storage. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#tier Storage#tier}
955
+ '''
956
+ if isinstance(lifecycle, dict):
957
+ lifecycle = _cdktf_9a9027ec.TerraformResourceLifecycle(**lifecycle)
958
+ if __debug__:
959
+ type_hints = typing.get_type_hints(_typecheckingstub__f3b997f8c0e1ba77540ed4dbe79f9ba129f5ad571ef561c377860e938a3004f0)
960
+ check_type(argname="argument connection", value=connection, expected_type=type_hints["connection"])
961
+ check_type(argname="argument count", value=count, expected_type=type_hints["count"])
962
+ check_type(argname="argument depends_on", value=depends_on, expected_type=type_hints["depends_on"])
963
+ check_type(argname="argument for_each", value=for_each, expected_type=type_hints["for_each"])
964
+ check_type(argname="argument lifecycle", value=lifecycle, expected_type=type_hints["lifecycle"])
965
+ check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
966
+ check_type(argname="argument provisioners", value=provisioners, expected_type=type_hints["provisioners"])
967
+ check_type(argname="argument size", value=size, expected_type=type_hints["size"])
968
+ check_type(argname="argument title", value=title, expected_type=type_hints["title"])
969
+ check_type(argname="argument zone", value=zone, expected_type=type_hints["zone"])
970
+ check_type(argname="argument backup_rule", value=backup_rule, expected_type=type_hints["backup_rule"])
971
+ check_type(argname="argument clone", value=clone, expected_type=type_hints["clone"])
972
+ check_type(argname="argument delete_autoresize_backup", value=delete_autoresize_backup, expected_type=type_hints["delete_autoresize_backup"])
973
+ check_type(argname="argument encrypt", value=encrypt, expected_type=type_hints["encrypt"])
974
+ check_type(argname="argument filesystem_autoresize", value=filesystem_autoresize, expected_type=type_hints["filesystem_autoresize"])
975
+ check_type(argname="argument import_", value=import_, expected_type=type_hints["import_"])
976
+ check_type(argname="argument labels", value=labels, expected_type=type_hints["labels"])
977
+ check_type(argname="argument tier", value=tier, expected_type=type_hints["tier"])
978
+ self._values: typing.Dict[builtins.str, typing.Any] = {
979
+ "size": size,
980
+ "title": title,
981
+ "zone": zone,
982
+ }
983
+ if connection is not None:
984
+ self._values["connection"] = connection
985
+ if count is not None:
986
+ self._values["count"] = count
987
+ if depends_on is not None:
988
+ self._values["depends_on"] = depends_on
989
+ if for_each is not None:
990
+ self._values["for_each"] = for_each
991
+ if lifecycle is not None:
992
+ self._values["lifecycle"] = lifecycle
993
+ if provider is not None:
994
+ self._values["provider"] = provider
995
+ if provisioners is not None:
996
+ self._values["provisioners"] = provisioners
997
+ if backup_rule is not None:
998
+ self._values["backup_rule"] = backup_rule
999
+ if clone is not None:
1000
+ self._values["clone"] = clone
1001
+ if delete_autoresize_backup is not None:
1002
+ self._values["delete_autoresize_backup"] = delete_autoresize_backup
1003
+ if encrypt is not None:
1004
+ self._values["encrypt"] = encrypt
1005
+ if filesystem_autoresize is not None:
1006
+ self._values["filesystem_autoresize"] = filesystem_autoresize
1007
+ if import_ is not None:
1008
+ self._values["import_"] = import_
1009
+ if labels is not None:
1010
+ self._values["labels"] = labels
1011
+ if tier is not None:
1012
+ self._values["tier"] = tier
1013
+
1014
+ @builtins.property
1015
+ def connection(
1016
+ self,
1017
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, _cdktf_9a9027ec.WinrmProvisionerConnection]]:
1018
+ '''
1019
+ :stability: experimental
1020
+ '''
1021
+ result = self._values.get("connection")
1022
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, _cdktf_9a9027ec.WinrmProvisionerConnection]], result)
1023
+
1024
+ @builtins.property
1025
+ def count(
1026
+ self,
1027
+ ) -> typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]]:
1028
+ '''
1029
+ :stability: experimental
1030
+ '''
1031
+ result = self._values.get("count")
1032
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]], result)
1033
+
1034
+ @builtins.property
1035
+ def depends_on(
1036
+ self,
1037
+ ) -> typing.Optional[typing.List[_cdktf_9a9027ec.ITerraformDependable]]:
1038
+ '''
1039
+ :stability: experimental
1040
+ '''
1041
+ result = self._values.get("depends_on")
1042
+ return typing.cast(typing.Optional[typing.List[_cdktf_9a9027ec.ITerraformDependable]], result)
1043
+
1044
+ @builtins.property
1045
+ def for_each(self) -> typing.Optional[_cdktf_9a9027ec.ITerraformIterator]:
1046
+ '''
1047
+ :stability: experimental
1048
+ '''
1049
+ result = self._values.get("for_each")
1050
+ return typing.cast(typing.Optional[_cdktf_9a9027ec.ITerraformIterator], result)
1051
+
1052
+ @builtins.property
1053
+ def lifecycle(self) -> typing.Optional[_cdktf_9a9027ec.TerraformResourceLifecycle]:
1054
+ '''
1055
+ :stability: experimental
1056
+ '''
1057
+ result = self._values.get("lifecycle")
1058
+ return typing.cast(typing.Optional[_cdktf_9a9027ec.TerraformResourceLifecycle], result)
1059
+
1060
+ @builtins.property
1061
+ def provider(self) -> typing.Optional[_cdktf_9a9027ec.TerraformProvider]:
1062
+ '''
1063
+ :stability: experimental
1064
+ '''
1065
+ result = self._values.get("provider")
1066
+ return typing.cast(typing.Optional[_cdktf_9a9027ec.TerraformProvider], result)
1067
+
1068
+ @builtins.property
1069
+ def provisioners(
1070
+ self,
1071
+ ) -> typing.Optional[typing.List[typing.Union[_cdktf_9a9027ec.FileProvisioner, _cdktf_9a9027ec.LocalExecProvisioner, _cdktf_9a9027ec.RemoteExecProvisioner]]]:
1072
+ '''
1073
+ :stability: experimental
1074
+ '''
1075
+ result = self._values.get("provisioners")
1076
+ return typing.cast(typing.Optional[typing.List[typing.Union[_cdktf_9a9027ec.FileProvisioner, _cdktf_9a9027ec.LocalExecProvisioner, _cdktf_9a9027ec.RemoteExecProvisioner]]], result)
1077
+
1078
+ @builtins.property
1079
+ def size(self) -> jsii.Number:
1080
+ '''The size of the storage in gigabytes.
1081
+
1082
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#size Storage#size}
1083
+ '''
1084
+ result = self._values.get("size")
1085
+ assert result is not None, "Required property 'size' is missing"
1086
+ return typing.cast(jsii.Number, result)
1087
+
1088
+ @builtins.property
1089
+ def title(self) -> builtins.str:
1090
+ '''The title of the storage.
1091
+
1092
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#title Storage#title}
1093
+ '''
1094
+ result = self._values.get("title")
1095
+ assert result is not None, "Required property 'title' is missing"
1096
+ return typing.cast(builtins.str, result)
1097
+
1098
+ @builtins.property
1099
+ def zone(self) -> builtins.str:
1100
+ '''The zone the storage is in, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``.
1101
+
1102
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#zone Storage#zone}
1103
+ '''
1104
+ result = self._values.get("zone")
1105
+ assert result is not None, "Required property 'zone' is missing"
1106
+ return typing.cast(builtins.str, result)
1107
+
1108
+ @builtins.property
1109
+ def backup_rule(
1110
+ self,
1111
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageBackupRule]]]:
1112
+ '''backup_rule block.
1113
+
1114
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#backup_rule Storage#backup_rule}
1115
+ '''
1116
+ result = self._values.get("backup_rule")
1117
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageBackupRule]]], result)
1118
+
1119
+ @builtins.property
1120
+ def clone(
1121
+ self,
1122
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageClone]]]:
1123
+ '''clone block.
1124
+
1125
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#clone Storage#clone}
1126
+ '''
1127
+ result = self._values.get("clone")
1128
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageClone]]], result)
1129
+
1130
+ @builtins.property
1131
+ def delete_autoresize_backup(
1132
+ self,
1133
+ ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
1134
+ '''If set to true, the backup taken before the partition and filesystem resize attempt will be deleted immediately after success.
1135
+
1136
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#delete_autoresize_backup Storage#delete_autoresize_backup}
1137
+ '''
1138
+ result = self._values.get("delete_autoresize_backup")
1139
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
1140
+
1141
+ @builtins.property
1142
+ def encrypt(
1143
+ self,
1144
+ ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
1145
+ '''Sets if the storage is encrypted at rest.
1146
+
1147
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#encrypt Storage#encrypt}
1148
+ '''
1149
+ result = self._values.get("encrypt")
1150
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
1151
+
1152
+ @builtins.property
1153
+ def filesystem_autoresize(
1154
+ self,
1155
+ ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
1156
+ '''If set to true, provider will attempt to resize partition and filesystem when the size of the storage changes.
1157
+
1158
+ 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).
1159
+ Taking and keeping backups incure costs.
1160
+
1161
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#filesystem_autoresize Storage#filesystem_autoresize}
1162
+ '''
1163
+ result = self._values.get("filesystem_autoresize")
1164
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
1165
+
1166
+ @builtins.property
1167
+ def import_(
1168
+ self,
1169
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["StorageImport"]]]:
1170
+ '''import block.
1171
+
1172
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#import Storage#import}
1173
+ '''
1174
+ result = self._values.get("import_")
1175
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["StorageImport"]]], result)
1176
+
1177
+ @builtins.property
1178
+ def labels(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
1179
+ '''User defined key-value pairs to classify the storage.
1180
+
1181
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#labels Storage#labels}
1182
+ '''
1183
+ result = self._values.get("labels")
1184
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
1185
+
1186
+ @builtins.property
1187
+ def tier(self) -> typing.Optional[builtins.str]:
1188
+ '''The tier of the storage.
1189
+
1190
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#tier Storage#tier}
1191
+ '''
1192
+ result = self._values.get("tier")
1193
+ return typing.cast(typing.Optional[builtins.str], result)
1194
+
1195
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1196
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1197
+
1198
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1199
+ return not (rhs == self)
1200
+
1201
+ def __repr__(self) -> str:
1202
+ return "StorageConfig(%s)" % ", ".join(
1203
+ k + "=" + repr(v) for k, v in self._values.items()
1204
+ )
1205
+
1206
+
1207
+ @jsii.data_type(
1208
+ jsii_type="@cdktf/provider-upcloud.storage.StorageImport",
1209
+ jsii_struct_bases=[],
1210
+ name_mapping={
1211
+ "source": "source",
1212
+ "source_location": "sourceLocation",
1213
+ "source_hash": "sourceHash",
1214
+ },
1215
+ )
1216
+ class StorageImport:
1217
+ def __init__(
1218
+ self,
1219
+ *,
1220
+ source: builtins.str,
1221
+ source_location: builtins.str,
1222
+ source_hash: typing.Optional[builtins.str] = None,
1223
+ ) -> None:
1224
+ '''
1225
+ :param source: The mode of the import task. One of ``http_import`` or ``direct_upload``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#source Storage#source}
1226
+ :param source_location: The location of the file to import. For ``http_import`` an accessible URL. For ``direct_upload`` a local file. When direct uploading a compressed image, ``Content-Type`` header of the PUT request is set automatically based on the file extension (``.gz`` or ``.xz``, case-insensitive). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#source_location Storage#source_location}
1227
+ :param source_hash: SHA256 hash of the source content. This hash is used to verify the integrity of the imported data by comparing it to ``sha256sum`` after the import has completed. Possible filename is automatically removed from the hash before comparison. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#source_hash Storage#source_hash}
1228
+ '''
1229
+ if __debug__:
1230
+ type_hints = typing.get_type_hints(_typecheckingstub__57190dc28106231e6a3ad0101dea1fddce123659be23a411969999c2b12e5aef)
1231
+ check_type(argname="argument source", value=source, expected_type=type_hints["source"])
1232
+ check_type(argname="argument source_location", value=source_location, expected_type=type_hints["source_location"])
1233
+ check_type(argname="argument source_hash", value=source_hash, expected_type=type_hints["source_hash"])
1234
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1235
+ "source": source,
1236
+ "source_location": source_location,
1237
+ }
1238
+ if source_hash is not None:
1239
+ self._values["source_hash"] = source_hash
1240
+
1241
+ @builtins.property
1242
+ def source(self) -> builtins.str:
1243
+ '''The mode of the import task. One of ``http_import`` or ``direct_upload``.
1244
+
1245
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#source Storage#source}
1246
+ '''
1247
+ result = self._values.get("source")
1248
+ assert result is not None, "Required property 'source' is missing"
1249
+ return typing.cast(builtins.str, result)
1250
+
1251
+ @builtins.property
1252
+ def source_location(self) -> builtins.str:
1253
+ '''The location of the file to import.
1254
+
1255
+ For ``http_import`` an accessible URL. For ``direct_upload`` a local file. When direct uploading a compressed image, ``Content-Type`` header of the PUT request is set automatically based on the file extension (``.gz`` or ``.xz``, case-insensitive).
1256
+
1257
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#source_location Storage#source_location}
1258
+ '''
1259
+ result = self._values.get("source_location")
1260
+ assert result is not None, "Required property 'source_location' is missing"
1261
+ return typing.cast(builtins.str, result)
1262
+
1263
+ @builtins.property
1264
+ def source_hash(self) -> typing.Optional[builtins.str]:
1265
+ '''SHA256 hash of the source content.
1266
+
1267
+ This hash is used to verify the integrity of the imported data by comparing it to ``sha256sum`` after the import has completed. Possible filename is automatically removed from the hash before comparison.
1268
+
1269
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage#source_hash Storage#source_hash}
1270
+ '''
1271
+ result = self._values.get("source_hash")
1272
+ return typing.cast(typing.Optional[builtins.str], result)
1273
+
1274
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1275
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1276
+
1277
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1278
+ return not (rhs == self)
1279
+
1280
+ def __repr__(self) -> str:
1281
+ return "StorageImport(%s)" % ", ".join(
1282
+ k + "=" + repr(v) for k, v in self._values.items()
1283
+ )
1284
+
1285
+
1286
+ class StorageImportList(
1287
+ _cdktf_9a9027ec.ComplexList,
1288
+ metaclass=jsii.JSIIMeta,
1289
+ jsii_type="@cdktf/provider-upcloud.storage.StorageImportList",
1290
+ ):
1291
+ def __init__(
1292
+ self,
1293
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1294
+ terraform_attribute: builtins.str,
1295
+ wraps_set: builtins.bool,
1296
+ ) -> None:
1297
+ '''
1298
+ :param terraform_resource: The parent resource.
1299
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
1300
+ :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
1301
+ '''
1302
+ if __debug__:
1303
+ type_hints = typing.get_type_hints(_typecheckingstub__1ca036151dfe0d1afc332e267cc18a80a404d0edc171af0e383e640ebe934dfd)
1304
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
1305
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
1306
+ check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
1307
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])
1308
+
1309
+ @jsii.member(jsii_name="get")
1310
+ def get(self, index: jsii.Number) -> "StorageImportOutputReference":
1311
+ '''
1312
+ :param index: the index of the item to return.
1313
+ '''
1314
+ if __debug__:
1315
+ type_hints = typing.get_type_hints(_typecheckingstub__97c3f88fddeff4a1ea70e37124ec5871cc6be639f09ec1396b04f8073391d6fe)
1316
+ check_type(argname="argument index", value=index, expected_type=type_hints["index"])
1317
+ return typing.cast("StorageImportOutputReference", jsii.invoke(self, "get", [index]))
1318
+
1319
+ @builtins.property
1320
+ @jsii.member(jsii_name="terraformAttribute")
1321
+ def _terraform_attribute(self) -> builtins.str:
1322
+ '''The attribute on the parent resource this class is referencing.'''
1323
+ return typing.cast(builtins.str, jsii.get(self, "terraformAttribute"))
1324
+
1325
+ @_terraform_attribute.setter
1326
+ def _terraform_attribute(self, value: builtins.str) -> None:
1327
+ if __debug__:
1328
+ type_hints = typing.get_type_hints(_typecheckingstub__3625bdd7a1190cdf248cd85b30feb17e29703f68752315459ad4ac8a409d2a81)
1329
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1330
+ jsii.set(self, "terraformAttribute", value) # pyright: ignore[reportArgumentType]
1331
+
1332
+ @builtins.property
1333
+ @jsii.member(jsii_name="terraformResource")
1334
+ def _terraform_resource(self) -> _cdktf_9a9027ec.IInterpolatingParent:
1335
+ '''The parent resource.'''
1336
+ return typing.cast(_cdktf_9a9027ec.IInterpolatingParent, jsii.get(self, "terraformResource"))
1337
+
1338
+ @_terraform_resource.setter
1339
+ def _terraform_resource(self, value: _cdktf_9a9027ec.IInterpolatingParent) -> None:
1340
+ if __debug__:
1341
+ type_hints = typing.get_type_hints(_typecheckingstub__75f451e88b83e0c57b08012682304f3d80856ad199341d4902d0bc421d53f4a4)
1342
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1343
+ jsii.set(self, "terraformResource", value) # pyright: ignore[reportArgumentType]
1344
+
1345
+ @builtins.property
1346
+ @jsii.member(jsii_name="wrapsSet")
1347
+ def _wraps_set(self) -> builtins.bool:
1348
+ '''whether the list is wrapping a set (will add tolist() to be able to access an item via an index).'''
1349
+ return typing.cast(builtins.bool, jsii.get(self, "wrapsSet"))
1350
+
1351
+ @_wraps_set.setter
1352
+ def _wraps_set(self, value: builtins.bool) -> None:
1353
+ if __debug__:
1354
+ type_hints = typing.get_type_hints(_typecheckingstub__65e5caef326823348ae273036b0dae37d9a214bec9502dda62beb2a0755e5cfc)
1355
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1356
+ jsii.set(self, "wrapsSet", value) # pyright: ignore[reportArgumentType]
1357
+
1358
+ @builtins.property
1359
+ @jsii.member(jsii_name="internalValue")
1360
+ def internal_value(
1361
+ self,
1362
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageImport]]]:
1363
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageImport]]], jsii.get(self, "internalValue"))
1364
+
1365
+ @internal_value.setter
1366
+ def internal_value(
1367
+ self,
1368
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageImport]]],
1369
+ ) -> None:
1370
+ if __debug__:
1371
+ type_hints = typing.get_type_hints(_typecheckingstub__b86ab7d07c32f5565fbf5da790a2c0b162ad2bb6dadeaf1e2337dd491685b61d)
1372
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1373
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
1374
+
1375
+
1376
+ class StorageImportOutputReference(
1377
+ _cdktf_9a9027ec.ComplexObject,
1378
+ metaclass=jsii.JSIIMeta,
1379
+ jsii_type="@cdktf/provider-upcloud.storage.StorageImportOutputReference",
1380
+ ):
1381
+ def __init__(
1382
+ self,
1383
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1384
+ terraform_attribute: builtins.str,
1385
+ complex_object_index: jsii.Number,
1386
+ complex_object_is_from_set: builtins.bool,
1387
+ ) -> None:
1388
+ '''
1389
+ :param terraform_resource: The parent resource.
1390
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
1391
+ :param complex_object_index: the index of this item in the list.
1392
+ :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).
1393
+ '''
1394
+ if __debug__:
1395
+ type_hints = typing.get_type_hints(_typecheckingstub__e66a7270222364c30997f790f7f23af2502ac2e8c8763949438baad140eea0d3)
1396
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
1397
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
1398
+ check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
1399
+ check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
1400
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])
1401
+
1402
+ @jsii.member(jsii_name="resetSourceHash")
1403
+ def reset_source_hash(self) -> None:
1404
+ return typing.cast(None, jsii.invoke(self, "resetSourceHash", []))
1405
+
1406
+ @builtins.property
1407
+ @jsii.member(jsii_name="sha256Sum")
1408
+ def sha256_sum(self) -> builtins.str:
1409
+ return typing.cast(builtins.str, jsii.get(self, "sha256Sum"))
1410
+
1411
+ @builtins.property
1412
+ @jsii.member(jsii_name="writtenBytes")
1413
+ def written_bytes(self) -> jsii.Number:
1414
+ return typing.cast(jsii.Number, jsii.get(self, "writtenBytes"))
1415
+
1416
+ @builtins.property
1417
+ @jsii.member(jsii_name="sourceHashInput")
1418
+ def source_hash_input(self) -> typing.Optional[builtins.str]:
1419
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "sourceHashInput"))
1420
+
1421
+ @builtins.property
1422
+ @jsii.member(jsii_name="sourceInput")
1423
+ def source_input(self) -> typing.Optional[builtins.str]:
1424
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "sourceInput"))
1425
+
1426
+ @builtins.property
1427
+ @jsii.member(jsii_name="sourceLocationInput")
1428
+ def source_location_input(self) -> typing.Optional[builtins.str]:
1429
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "sourceLocationInput"))
1430
+
1431
+ @builtins.property
1432
+ @jsii.member(jsii_name="source")
1433
+ def source(self) -> builtins.str:
1434
+ return typing.cast(builtins.str, jsii.get(self, "source"))
1435
+
1436
+ @source.setter
1437
+ def source(self, value: builtins.str) -> None:
1438
+ if __debug__:
1439
+ type_hints = typing.get_type_hints(_typecheckingstub__c730533495c5617971a50651249ee17e8acd4f63ec3ff6bf6479594a052dd501)
1440
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1441
+ jsii.set(self, "source", value) # pyright: ignore[reportArgumentType]
1442
+
1443
+ @builtins.property
1444
+ @jsii.member(jsii_name="sourceHash")
1445
+ def source_hash(self) -> builtins.str:
1446
+ return typing.cast(builtins.str, jsii.get(self, "sourceHash"))
1447
+
1448
+ @source_hash.setter
1449
+ def source_hash(self, value: builtins.str) -> None:
1450
+ if __debug__:
1451
+ type_hints = typing.get_type_hints(_typecheckingstub__fef68c8195e592f876061da81d4ebadf0a22823296c12529d0cd37d993330828)
1452
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1453
+ jsii.set(self, "sourceHash", value) # pyright: ignore[reportArgumentType]
1454
+
1455
+ @builtins.property
1456
+ @jsii.member(jsii_name="sourceLocation")
1457
+ def source_location(self) -> builtins.str:
1458
+ return typing.cast(builtins.str, jsii.get(self, "sourceLocation"))
1459
+
1460
+ @source_location.setter
1461
+ def source_location(self, value: builtins.str) -> None:
1462
+ if __debug__:
1463
+ type_hints = typing.get_type_hints(_typecheckingstub__326f95ec068388f42e02dffa288f85df182af1ca76926619cf096ce613f47397)
1464
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1465
+ jsii.set(self, "sourceLocation", value) # pyright: ignore[reportArgumentType]
1466
+
1467
+ @builtins.property
1468
+ @jsii.member(jsii_name="internalValue")
1469
+ def internal_value(
1470
+ self,
1471
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, StorageImport]]:
1472
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, StorageImport]], jsii.get(self, "internalValue"))
1473
+
1474
+ @internal_value.setter
1475
+ def internal_value(
1476
+ self,
1477
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, StorageImport]],
1478
+ ) -> None:
1479
+ if __debug__:
1480
+ type_hints = typing.get_type_hints(_typecheckingstub__d66141771f37780cb2aa71d3bf15bb4926c76a9eea26fb0083afa9c47b8c618d)
1481
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1482
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
1483
+
1484
+
1485
+ __all__ = [
1486
+ "Storage",
1487
+ "StorageBackupRule",
1488
+ "StorageBackupRuleList",
1489
+ "StorageBackupRuleOutputReference",
1490
+ "StorageClone",
1491
+ "StorageCloneList",
1492
+ "StorageCloneOutputReference",
1493
+ "StorageConfig",
1494
+ "StorageImport",
1495
+ "StorageImportList",
1496
+ "StorageImportOutputReference",
1497
+ ]
1498
+
1499
+ publication.publish()
1500
+
1501
+ def _typecheckingstub__9bd49f2a434a513b68a524662cb122923af8f05e089aa4ea48c714fcf072d8f7(
1502
+ scope: _constructs_77d1e7e8.Construct,
1503
+ id: builtins.str,
1504
+ *,
1505
+ size: jsii.Number,
1506
+ title: builtins.str,
1507
+ zone: builtins.str,
1508
+ backup_rule: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[StorageBackupRule, typing.Dict[builtins.str, typing.Any]]]]] = None,
1509
+ clone: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[StorageClone, typing.Dict[builtins.str, typing.Any]]]]] = None,
1510
+ delete_autoresize_backup: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
1511
+ encrypt: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
1512
+ filesystem_autoresize: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
1513
+ import_: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[StorageImport, typing.Dict[builtins.str, typing.Any]]]]] = None,
1514
+ labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1515
+ tier: typing.Optional[builtins.str] = None,
1516
+ connection: typing.Optional[typing.Union[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
1517
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
1518
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
1519
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
1520
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
1521
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
1522
+ 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,
1523
+ ) -> None:
1524
+ """Type checking stubs"""
1525
+ pass
1526
+
1527
+ def _typecheckingstub__481856d5d7a7d582fe4a338e67bf071e997c3576553d68c41274459376725919(
1528
+ scope: _constructs_77d1e7e8.Construct,
1529
+ import_to_id: builtins.str,
1530
+ import_from_id: builtins.str,
1531
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
1532
+ ) -> None:
1533
+ """Type checking stubs"""
1534
+ pass
1535
+
1536
+ def _typecheckingstub__bbe3cb3b69b7cc1723d7cf5578484737fc29a4a5ee5059d3c155fcb8375b8b7e(
1537
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[StorageBackupRule, typing.Dict[builtins.str, typing.Any]]]],
1538
+ ) -> None:
1539
+ """Type checking stubs"""
1540
+ pass
1541
+
1542
+ def _typecheckingstub__cb04c88ad09e546f98d281efb2dc693ef336d727deb1ae509156aa6dfd05092f(
1543
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[StorageClone, typing.Dict[builtins.str, typing.Any]]]],
1544
+ ) -> None:
1545
+ """Type checking stubs"""
1546
+ pass
1547
+
1548
+ def _typecheckingstub__47ebccc41ede87ea1bf2ebb142a2f8e12f68702e19b94bb4f7d6cd617b9bfe69(
1549
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[StorageImport, typing.Dict[builtins.str, typing.Any]]]],
1550
+ ) -> None:
1551
+ """Type checking stubs"""
1552
+ pass
1553
+
1554
+ def _typecheckingstub__82e9c6a5507cc90cebc8ac472e9dd0232026b4603054a7c2ecb59c00a7a6785a(
1555
+ value: typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable],
1556
+ ) -> None:
1557
+ """Type checking stubs"""
1558
+ pass
1559
+
1560
+ def _typecheckingstub__9423d56b30aea9f7c9f8a42e7560f55ab8f7fefb2677f3c32db186974c6dfda5(
1561
+ value: typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable],
1562
+ ) -> None:
1563
+ """Type checking stubs"""
1564
+ pass
1565
+
1566
+ def _typecheckingstub__173705963bc967a175d1c32d3e8bff20d51685b6cd3b830c105292ade27e0ee4(
1567
+ value: typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable],
1568
+ ) -> None:
1569
+ """Type checking stubs"""
1570
+ pass
1571
+
1572
+ def _typecheckingstub__20d3dfd55ef351b29bb2ba1eee1a561904ac469c103e66161683ebe461589f4f(
1573
+ value: typing.Mapping[builtins.str, builtins.str],
1574
+ ) -> None:
1575
+ """Type checking stubs"""
1576
+ pass
1577
+
1578
+ def _typecheckingstub__e90e54b6086008cfb4adfd33d71b831c83e9aa464e8928f90f0141f6747c7652(
1579
+ value: jsii.Number,
1580
+ ) -> None:
1581
+ """Type checking stubs"""
1582
+ pass
1583
+
1584
+ def _typecheckingstub__1bc0958a936359d8e89681154815d1e2fafbdb46733b21e242919953e6da083c(
1585
+ value: builtins.str,
1586
+ ) -> None:
1587
+ """Type checking stubs"""
1588
+ pass
1589
+
1590
+ def _typecheckingstub__9a0cb7a03c806326027f6913ae7e4bdde28dc451e1f2c45d161e8f748ee05f4f(
1591
+ value: builtins.str,
1592
+ ) -> None:
1593
+ """Type checking stubs"""
1594
+ pass
1595
+
1596
+ def _typecheckingstub__ff4ca5ef13e3110c770fdaa26583bbb37d48f93a54ecb79b35ce9a4d07e9662a(
1597
+ value: builtins.str,
1598
+ ) -> None:
1599
+ """Type checking stubs"""
1600
+ pass
1601
+
1602
+ def _typecheckingstub__eee27a48ad2ef9945a89867effeeb18fc1f477a3f16c16ee7e3dc286b6d8319e(
1603
+ *,
1604
+ interval: builtins.str,
1605
+ retention: jsii.Number,
1606
+ time: builtins.str,
1607
+ ) -> None:
1608
+ """Type checking stubs"""
1609
+ pass
1610
+
1611
+ def _typecheckingstub__f47d9ab94c4382c477a1aa316bcdd00822de95cb10df64665e2bc7f56c218f2d(
1612
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1613
+ terraform_attribute: builtins.str,
1614
+ wraps_set: builtins.bool,
1615
+ ) -> None:
1616
+ """Type checking stubs"""
1617
+ pass
1618
+
1619
+ def _typecheckingstub__3dee83383344a5591cad62812b43dab07f02c2c39fabf01927fe0b1c6d816c52(
1620
+ index: jsii.Number,
1621
+ ) -> None:
1622
+ """Type checking stubs"""
1623
+ pass
1624
+
1625
+ def _typecheckingstub__ffde3d50c7b42ff58c2dd00db7597cf9e4b6b47d8b7b2f9a5ec3868fc469204d(
1626
+ value: builtins.str,
1627
+ ) -> None:
1628
+ """Type checking stubs"""
1629
+ pass
1630
+
1631
+ def _typecheckingstub__da123e115b8d338a479ed772d561e4469918b96cc2afdefdf8123c6e89440b5c(
1632
+ value: _cdktf_9a9027ec.IInterpolatingParent,
1633
+ ) -> None:
1634
+ """Type checking stubs"""
1635
+ pass
1636
+
1637
+ def _typecheckingstub__327c3ab237400f24965f6aa3d10ba75bd2c14546c770a96a40afb528010ff56e(
1638
+ value: builtins.bool,
1639
+ ) -> None:
1640
+ """Type checking stubs"""
1641
+ pass
1642
+
1643
+ def _typecheckingstub__2cd7f72f81f09e4eb7a5aa0cb1228d30c0aa55a016667f6c8329a4312310a68c(
1644
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageBackupRule]]],
1645
+ ) -> None:
1646
+ """Type checking stubs"""
1647
+ pass
1648
+
1649
+ def _typecheckingstub__79acd1f0570acd41d1d30a9b059d7a1f28492cd95c21fa3cfd1f76b8f6dae979(
1650
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1651
+ terraform_attribute: builtins.str,
1652
+ complex_object_index: jsii.Number,
1653
+ complex_object_is_from_set: builtins.bool,
1654
+ ) -> None:
1655
+ """Type checking stubs"""
1656
+ pass
1657
+
1658
+ def _typecheckingstub__12c79b42b164203699296f0a1cd95267dee0fe0495ed1e4519ae7c361d9a72c8(
1659
+ value: builtins.str,
1660
+ ) -> None:
1661
+ """Type checking stubs"""
1662
+ pass
1663
+
1664
+ def _typecheckingstub__0abbc2d9b44e2dac6884b784fc28bbe08ae39e6a8373595b7a9834d6bcb01917(
1665
+ value: jsii.Number,
1666
+ ) -> None:
1667
+ """Type checking stubs"""
1668
+ pass
1669
+
1670
+ def _typecheckingstub__9c52c078d21af8542570c2817d5b08637de26e42882b63544611277d31048275(
1671
+ value: builtins.str,
1672
+ ) -> None:
1673
+ """Type checking stubs"""
1674
+ pass
1675
+
1676
+ def _typecheckingstub__9d4ff67358f7c246d5a3d3ab8a0cf15d38ffc63d05743333016fbd20dd59ab0a(
1677
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, StorageBackupRule]],
1678
+ ) -> None:
1679
+ """Type checking stubs"""
1680
+ pass
1681
+
1682
+ def _typecheckingstub__efe8b26017a7929b77162de356dd088dc3adf3b5cf8edbcdd06aee07e255d1e2(
1683
+ *,
1684
+ id: builtins.str,
1685
+ ) -> None:
1686
+ """Type checking stubs"""
1687
+ pass
1688
+
1689
+ def _typecheckingstub__0f38f5f8d5521f6b71b773a08b50a096a8f7d3253675891119594a3f9fb013f2(
1690
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1691
+ terraform_attribute: builtins.str,
1692
+ wraps_set: builtins.bool,
1693
+ ) -> None:
1694
+ """Type checking stubs"""
1695
+ pass
1696
+
1697
+ def _typecheckingstub__afde7eb7a2c0af1baeeb182a0e2cf1790614ed9b179298f959d04d068d7d87d5(
1698
+ index: jsii.Number,
1699
+ ) -> None:
1700
+ """Type checking stubs"""
1701
+ pass
1702
+
1703
+ def _typecheckingstub__ee4175e30e831b4edf16aa42064977c04ebc99158e1696005b7c715e7edd784c(
1704
+ value: builtins.str,
1705
+ ) -> None:
1706
+ """Type checking stubs"""
1707
+ pass
1708
+
1709
+ def _typecheckingstub__d9878c018103688badf2535c86a16dffc6728afcce231df9d5a66bddf7eb6d15(
1710
+ value: _cdktf_9a9027ec.IInterpolatingParent,
1711
+ ) -> None:
1712
+ """Type checking stubs"""
1713
+ pass
1714
+
1715
+ def _typecheckingstub__af41c5f871642f7cbfe951cbc16c36889204cb9428a90f9e08eaf548618ae48d(
1716
+ value: builtins.bool,
1717
+ ) -> None:
1718
+ """Type checking stubs"""
1719
+ pass
1720
+
1721
+ def _typecheckingstub__3ba9bf556d399bfff171c442a9b57d9e0aab55fc5300d7e2fa41cd5360ddcc44(
1722
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageClone]]],
1723
+ ) -> None:
1724
+ """Type checking stubs"""
1725
+ pass
1726
+
1727
+ def _typecheckingstub__48239a57eb75b22f505aac257715fcde0bbf96174431e3bee760b056e7444804(
1728
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1729
+ terraform_attribute: builtins.str,
1730
+ complex_object_index: jsii.Number,
1731
+ complex_object_is_from_set: builtins.bool,
1732
+ ) -> None:
1733
+ """Type checking stubs"""
1734
+ pass
1735
+
1736
+ def _typecheckingstub__ca78226c75d14e1601b7fb67b274c90d7c993635ef97e10dac32118b4da56086(
1737
+ value: builtins.str,
1738
+ ) -> None:
1739
+ """Type checking stubs"""
1740
+ pass
1741
+
1742
+ def _typecheckingstub__685a9b10adebb6f4461de509e7d2cbfa62368d279dc21b410a145ef92ea4d003(
1743
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, StorageClone]],
1744
+ ) -> None:
1745
+ """Type checking stubs"""
1746
+ pass
1747
+
1748
+ def _typecheckingstub__f3b997f8c0e1ba77540ed4dbe79f9ba129f5ad571ef561c377860e938a3004f0(
1749
+ *,
1750
+ connection: typing.Optional[typing.Union[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
1751
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
1752
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
1753
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
1754
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
1755
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
1756
+ 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,
1757
+ size: jsii.Number,
1758
+ title: builtins.str,
1759
+ zone: builtins.str,
1760
+ backup_rule: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[StorageBackupRule, typing.Dict[builtins.str, typing.Any]]]]] = None,
1761
+ clone: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[StorageClone, typing.Dict[builtins.str, typing.Any]]]]] = None,
1762
+ delete_autoresize_backup: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
1763
+ encrypt: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
1764
+ filesystem_autoresize: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
1765
+ import_: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[StorageImport, typing.Dict[builtins.str, typing.Any]]]]] = None,
1766
+ labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1767
+ tier: typing.Optional[builtins.str] = None,
1768
+ ) -> None:
1769
+ """Type checking stubs"""
1770
+ pass
1771
+
1772
+ def _typecheckingstub__57190dc28106231e6a3ad0101dea1fddce123659be23a411969999c2b12e5aef(
1773
+ *,
1774
+ source: builtins.str,
1775
+ source_location: builtins.str,
1776
+ source_hash: typing.Optional[builtins.str] = None,
1777
+ ) -> None:
1778
+ """Type checking stubs"""
1779
+ pass
1780
+
1781
+ def _typecheckingstub__1ca036151dfe0d1afc332e267cc18a80a404d0edc171af0e383e640ebe934dfd(
1782
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1783
+ terraform_attribute: builtins.str,
1784
+ wraps_set: builtins.bool,
1785
+ ) -> None:
1786
+ """Type checking stubs"""
1787
+ pass
1788
+
1789
+ def _typecheckingstub__97c3f88fddeff4a1ea70e37124ec5871cc6be639f09ec1396b04f8073391d6fe(
1790
+ index: jsii.Number,
1791
+ ) -> None:
1792
+ """Type checking stubs"""
1793
+ pass
1794
+
1795
+ def _typecheckingstub__3625bdd7a1190cdf248cd85b30feb17e29703f68752315459ad4ac8a409d2a81(
1796
+ value: builtins.str,
1797
+ ) -> None:
1798
+ """Type checking stubs"""
1799
+ pass
1800
+
1801
+ def _typecheckingstub__75f451e88b83e0c57b08012682304f3d80856ad199341d4902d0bc421d53f4a4(
1802
+ value: _cdktf_9a9027ec.IInterpolatingParent,
1803
+ ) -> None:
1804
+ """Type checking stubs"""
1805
+ pass
1806
+
1807
+ def _typecheckingstub__65e5caef326823348ae273036b0dae37d9a214bec9502dda62beb2a0755e5cfc(
1808
+ value: builtins.bool,
1809
+ ) -> None:
1810
+ """Type checking stubs"""
1811
+ pass
1812
+
1813
+ def _typecheckingstub__b86ab7d07c32f5565fbf5da790a2c0b162ad2bb6dadeaf1e2337dd491685b61d(
1814
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[StorageImport]]],
1815
+ ) -> None:
1816
+ """Type checking stubs"""
1817
+ pass
1818
+
1819
+ def _typecheckingstub__e66a7270222364c30997f790f7f23af2502ac2e8c8763949438baad140eea0d3(
1820
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1821
+ terraform_attribute: builtins.str,
1822
+ complex_object_index: jsii.Number,
1823
+ complex_object_is_from_set: builtins.bool,
1824
+ ) -> None:
1825
+ """Type checking stubs"""
1826
+ pass
1827
+
1828
+ def _typecheckingstub__c730533495c5617971a50651249ee17e8acd4f63ec3ff6bf6479594a052dd501(
1829
+ value: builtins.str,
1830
+ ) -> None:
1831
+ """Type checking stubs"""
1832
+ pass
1833
+
1834
+ def _typecheckingstub__fef68c8195e592f876061da81d4ebadf0a22823296c12529d0cd37d993330828(
1835
+ value: builtins.str,
1836
+ ) -> None:
1837
+ """Type checking stubs"""
1838
+ pass
1839
+
1840
+ def _typecheckingstub__326f95ec068388f42e02dffa288f85df182af1ca76926619cf096ce613f47397(
1841
+ value: builtins.str,
1842
+ ) -> None:
1843
+ """Type checking stubs"""
1844
+ pass
1845
+
1846
+ def _typecheckingstub__d66141771f37780cb2aa71d3bf15bb4926c76a9eea26fb0083afa9c47b8c618d(
1847
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, StorageImport]],
1848
+ ) -> None:
1849
+ """Type checking stubs"""
1850
+ pass