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,478 @@
1
+ r'''
2
+ # `upcloud_storage_template`
3
+
4
+ Refer to the Terraform Registry for docs: [`upcloud_storage_template`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage_template).
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 StorageTemplate(
43
+ _cdktf_9a9027ec.TerraformResource,
44
+ metaclass=jsii.JSIIMeta,
45
+ jsii_type="@cdktf/provider-upcloud.storageTemplate.StorageTemplate",
46
+ ):
47
+ '''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage_template upcloud_storage_template}.'''
48
+
49
+ def __init__(
50
+ self,
51
+ scope: _constructs_77d1e7e8.Construct,
52
+ id: builtins.str,
53
+ *,
54
+ source_storage: builtins.str,
55
+ title: builtins.str,
56
+ labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
57
+ 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,
58
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
59
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
60
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
61
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
62
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
63
+ 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,
64
+ ) -> None:
65
+ '''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage_template upcloud_storage_template} Resource.
66
+
67
+ :param scope: The scope in which to define this construct.
68
+ :param id: The scoped construct ID. Must be unique amongst siblings in the same scope
69
+ :param source_storage: The source storage that is used as a base for this storage template. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage_template#source_storage StorageTemplate#source_storage}
70
+ :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_template#title StorageTemplate#title}
71
+ :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_template#labels StorageTemplate#labels}
72
+ :param connection:
73
+ :param count:
74
+ :param depends_on:
75
+ :param for_each:
76
+ :param lifecycle:
77
+ :param provider:
78
+ :param provisioners:
79
+ '''
80
+ if __debug__:
81
+ type_hints = typing.get_type_hints(_typecheckingstub__84adbb402f96863c3b7f1919a261aab20d039c7d2bf144539d11017d13dd741f)
82
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
83
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
84
+ config = StorageTemplateConfig(
85
+ source_storage=source_storage,
86
+ title=title,
87
+ labels=labels,
88
+ connection=connection,
89
+ count=count,
90
+ depends_on=depends_on,
91
+ for_each=for_each,
92
+ lifecycle=lifecycle,
93
+ provider=provider,
94
+ provisioners=provisioners,
95
+ )
96
+
97
+ jsii.create(self.__class__, self, [scope, id, config])
98
+
99
+ @jsii.member(jsii_name="generateConfigForImport")
100
+ @builtins.classmethod
101
+ def generate_config_for_import(
102
+ cls,
103
+ scope: _constructs_77d1e7e8.Construct,
104
+ import_to_id: builtins.str,
105
+ import_from_id: builtins.str,
106
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
107
+ ) -> _cdktf_9a9027ec.ImportableResource:
108
+ '''Generates CDKTF code for importing a StorageTemplate resource upon running "cdktf plan ".
109
+
110
+ :param scope: The scope in which to define this construct.
111
+ :param import_to_id: The construct id used in the generated config for the StorageTemplate to import.
112
+ :param import_from_id: The id of the existing StorageTemplate that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage_template#import import section} in the documentation of this resource for the id to use
113
+ :param provider: ? Optional instance of the provider where the StorageTemplate to import is found.
114
+ '''
115
+ if __debug__:
116
+ type_hints = typing.get_type_hints(_typecheckingstub__841ec53d6dea5151334d99247fc89c94572a1177384a71f5357c32e863ea764f)
117
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
118
+ check_type(argname="argument import_to_id", value=import_to_id, expected_type=type_hints["import_to_id"])
119
+ check_type(argname="argument import_from_id", value=import_from_id, expected_type=type_hints["import_from_id"])
120
+ check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
121
+ return typing.cast(_cdktf_9a9027ec.ImportableResource, jsii.sinvoke(cls, "generateConfigForImport", [scope, import_to_id, import_from_id, provider]))
122
+
123
+ @jsii.member(jsii_name="resetLabels")
124
+ def reset_labels(self) -> None:
125
+ return typing.cast(None, jsii.invoke(self, "resetLabels", []))
126
+
127
+ @jsii.member(jsii_name="synthesizeAttributes")
128
+ def _synthesize_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
129
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeAttributes", []))
130
+
131
+ @jsii.member(jsii_name="synthesizeHclAttributes")
132
+ def _synthesize_hcl_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
133
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeHclAttributes", []))
134
+
135
+ @jsii.python.classproperty
136
+ @jsii.member(jsii_name="tfResourceType")
137
+ def TF_RESOURCE_TYPE(cls) -> builtins.str:
138
+ return typing.cast(builtins.str, jsii.sget(cls, "tfResourceType"))
139
+
140
+ @builtins.property
141
+ @jsii.member(jsii_name="encrypt")
142
+ def encrypt(self) -> _cdktf_9a9027ec.IResolvable:
143
+ return typing.cast(_cdktf_9a9027ec.IResolvable, jsii.get(self, "encrypt"))
144
+
145
+ @builtins.property
146
+ @jsii.member(jsii_name="id")
147
+ def id(self) -> builtins.str:
148
+ return typing.cast(builtins.str, jsii.get(self, "id"))
149
+
150
+ @builtins.property
151
+ @jsii.member(jsii_name="size")
152
+ def size(self) -> jsii.Number:
153
+ return typing.cast(jsii.Number, jsii.get(self, "size"))
154
+
155
+ @builtins.property
156
+ @jsii.member(jsii_name="systemLabels")
157
+ def system_labels(self) -> _cdktf_9a9027ec.StringMap:
158
+ return typing.cast(_cdktf_9a9027ec.StringMap, jsii.get(self, "systemLabels"))
159
+
160
+ @builtins.property
161
+ @jsii.member(jsii_name="tier")
162
+ def tier(self) -> builtins.str:
163
+ return typing.cast(builtins.str, jsii.get(self, "tier"))
164
+
165
+ @builtins.property
166
+ @jsii.member(jsii_name="type")
167
+ def type(self) -> builtins.str:
168
+ return typing.cast(builtins.str, jsii.get(self, "type"))
169
+
170
+ @builtins.property
171
+ @jsii.member(jsii_name="zone")
172
+ def zone(self) -> builtins.str:
173
+ return typing.cast(builtins.str, jsii.get(self, "zone"))
174
+
175
+ @builtins.property
176
+ @jsii.member(jsii_name="labelsInput")
177
+ def labels_input(
178
+ self,
179
+ ) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
180
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], jsii.get(self, "labelsInput"))
181
+
182
+ @builtins.property
183
+ @jsii.member(jsii_name="sourceStorageInput")
184
+ def source_storage_input(self) -> typing.Optional[builtins.str]:
185
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "sourceStorageInput"))
186
+
187
+ @builtins.property
188
+ @jsii.member(jsii_name="titleInput")
189
+ def title_input(self) -> typing.Optional[builtins.str]:
190
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "titleInput"))
191
+
192
+ @builtins.property
193
+ @jsii.member(jsii_name="labels")
194
+ def labels(self) -> typing.Mapping[builtins.str, builtins.str]:
195
+ return typing.cast(typing.Mapping[builtins.str, builtins.str], jsii.get(self, "labels"))
196
+
197
+ @labels.setter
198
+ def labels(self, value: typing.Mapping[builtins.str, builtins.str]) -> None:
199
+ if __debug__:
200
+ type_hints = typing.get_type_hints(_typecheckingstub__8dc34e4ef354a9c685afad467dd1e5012592555b77aed09edb76dd5f3731f97f)
201
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
202
+ jsii.set(self, "labels", value) # pyright: ignore[reportArgumentType]
203
+
204
+ @builtins.property
205
+ @jsii.member(jsii_name="sourceStorage")
206
+ def source_storage(self) -> builtins.str:
207
+ return typing.cast(builtins.str, jsii.get(self, "sourceStorage"))
208
+
209
+ @source_storage.setter
210
+ def source_storage(self, value: builtins.str) -> None:
211
+ if __debug__:
212
+ type_hints = typing.get_type_hints(_typecheckingstub__87efd2f025de647c21944df941ffbd5bae1a7e3e42a5e0bfab1bbfeda8a1e60e)
213
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
214
+ jsii.set(self, "sourceStorage", value) # pyright: ignore[reportArgumentType]
215
+
216
+ @builtins.property
217
+ @jsii.member(jsii_name="title")
218
+ def title(self) -> builtins.str:
219
+ return typing.cast(builtins.str, jsii.get(self, "title"))
220
+
221
+ @title.setter
222
+ def title(self, value: builtins.str) -> None:
223
+ if __debug__:
224
+ type_hints = typing.get_type_hints(_typecheckingstub__750e43e34d963bb79f84b7897051f5440bf6e265f4aa260ed1f6ed98a37c7ea7)
225
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
226
+ jsii.set(self, "title", value) # pyright: ignore[reportArgumentType]
227
+
228
+
229
+ @jsii.data_type(
230
+ jsii_type="@cdktf/provider-upcloud.storageTemplate.StorageTemplateConfig",
231
+ jsii_struct_bases=[_cdktf_9a9027ec.TerraformMetaArguments],
232
+ name_mapping={
233
+ "connection": "connection",
234
+ "count": "count",
235
+ "depends_on": "dependsOn",
236
+ "for_each": "forEach",
237
+ "lifecycle": "lifecycle",
238
+ "provider": "provider",
239
+ "provisioners": "provisioners",
240
+ "source_storage": "sourceStorage",
241
+ "title": "title",
242
+ "labels": "labels",
243
+ },
244
+ )
245
+ class StorageTemplateConfig(_cdktf_9a9027ec.TerraformMetaArguments):
246
+ def __init__(
247
+ self,
248
+ *,
249
+ 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,
250
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
251
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
252
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
253
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
254
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
255
+ 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,
256
+ source_storage: builtins.str,
257
+ title: builtins.str,
258
+ labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
259
+ ) -> None:
260
+ '''
261
+ :param connection:
262
+ :param count:
263
+ :param depends_on:
264
+ :param for_each:
265
+ :param lifecycle:
266
+ :param provider:
267
+ :param provisioners:
268
+ :param source_storage: The source storage that is used as a base for this storage template. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage_template#source_storage StorageTemplate#source_storage}
269
+ :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_template#title StorageTemplate#title}
270
+ :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_template#labels StorageTemplate#labels}
271
+ '''
272
+ if isinstance(lifecycle, dict):
273
+ lifecycle = _cdktf_9a9027ec.TerraformResourceLifecycle(**lifecycle)
274
+ if __debug__:
275
+ type_hints = typing.get_type_hints(_typecheckingstub__178a6bfa1909de8f638e7d39583d3c1e81cf3109f496ec6bc3942a5849135a2f)
276
+ check_type(argname="argument connection", value=connection, expected_type=type_hints["connection"])
277
+ check_type(argname="argument count", value=count, expected_type=type_hints["count"])
278
+ check_type(argname="argument depends_on", value=depends_on, expected_type=type_hints["depends_on"])
279
+ check_type(argname="argument for_each", value=for_each, expected_type=type_hints["for_each"])
280
+ check_type(argname="argument lifecycle", value=lifecycle, expected_type=type_hints["lifecycle"])
281
+ check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
282
+ check_type(argname="argument provisioners", value=provisioners, expected_type=type_hints["provisioners"])
283
+ check_type(argname="argument source_storage", value=source_storage, expected_type=type_hints["source_storage"])
284
+ check_type(argname="argument title", value=title, expected_type=type_hints["title"])
285
+ check_type(argname="argument labels", value=labels, expected_type=type_hints["labels"])
286
+ self._values: typing.Dict[builtins.str, typing.Any] = {
287
+ "source_storage": source_storage,
288
+ "title": title,
289
+ }
290
+ if connection is not None:
291
+ self._values["connection"] = connection
292
+ if count is not None:
293
+ self._values["count"] = count
294
+ if depends_on is not None:
295
+ self._values["depends_on"] = depends_on
296
+ if for_each is not None:
297
+ self._values["for_each"] = for_each
298
+ if lifecycle is not None:
299
+ self._values["lifecycle"] = lifecycle
300
+ if provider is not None:
301
+ self._values["provider"] = provider
302
+ if provisioners is not None:
303
+ self._values["provisioners"] = provisioners
304
+ if labels is not None:
305
+ self._values["labels"] = labels
306
+
307
+ @builtins.property
308
+ def connection(
309
+ self,
310
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, _cdktf_9a9027ec.WinrmProvisionerConnection]]:
311
+ '''
312
+ :stability: experimental
313
+ '''
314
+ result = self._values.get("connection")
315
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, _cdktf_9a9027ec.WinrmProvisionerConnection]], result)
316
+
317
+ @builtins.property
318
+ def count(
319
+ self,
320
+ ) -> typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]]:
321
+ '''
322
+ :stability: experimental
323
+ '''
324
+ result = self._values.get("count")
325
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]], result)
326
+
327
+ @builtins.property
328
+ def depends_on(
329
+ self,
330
+ ) -> typing.Optional[typing.List[_cdktf_9a9027ec.ITerraformDependable]]:
331
+ '''
332
+ :stability: experimental
333
+ '''
334
+ result = self._values.get("depends_on")
335
+ return typing.cast(typing.Optional[typing.List[_cdktf_9a9027ec.ITerraformDependable]], result)
336
+
337
+ @builtins.property
338
+ def for_each(self) -> typing.Optional[_cdktf_9a9027ec.ITerraformIterator]:
339
+ '''
340
+ :stability: experimental
341
+ '''
342
+ result = self._values.get("for_each")
343
+ return typing.cast(typing.Optional[_cdktf_9a9027ec.ITerraformIterator], result)
344
+
345
+ @builtins.property
346
+ def lifecycle(self) -> typing.Optional[_cdktf_9a9027ec.TerraformResourceLifecycle]:
347
+ '''
348
+ :stability: experimental
349
+ '''
350
+ result = self._values.get("lifecycle")
351
+ return typing.cast(typing.Optional[_cdktf_9a9027ec.TerraformResourceLifecycle], result)
352
+
353
+ @builtins.property
354
+ def provider(self) -> typing.Optional[_cdktf_9a9027ec.TerraformProvider]:
355
+ '''
356
+ :stability: experimental
357
+ '''
358
+ result = self._values.get("provider")
359
+ return typing.cast(typing.Optional[_cdktf_9a9027ec.TerraformProvider], result)
360
+
361
+ @builtins.property
362
+ def provisioners(
363
+ self,
364
+ ) -> typing.Optional[typing.List[typing.Union[_cdktf_9a9027ec.FileProvisioner, _cdktf_9a9027ec.LocalExecProvisioner, _cdktf_9a9027ec.RemoteExecProvisioner]]]:
365
+ '''
366
+ :stability: experimental
367
+ '''
368
+ result = self._values.get("provisioners")
369
+ return typing.cast(typing.Optional[typing.List[typing.Union[_cdktf_9a9027ec.FileProvisioner, _cdktf_9a9027ec.LocalExecProvisioner, _cdktf_9a9027ec.RemoteExecProvisioner]]], result)
370
+
371
+ @builtins.property
372
+ def source_storage(self) -> builtins.str:
373
+ '''The source storage that is used as a base for this storage template.
374
+
375
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage_template#source_storage StorageTemplate#source_storage}
376
+ '''
377
+ result = self._values.get("source_storage")
378
+ assert result is not None, "Required property 'source_storage' is missing"
379
+ return typing.cast(builtins.str, result)
380
+
381
+ @builtins.property
382
+ def title(self) -> builtins.str:
383
+ '''The title of the storage.
384
+
385
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage_template#title StorageTemplate#title}
386
+ '''
387
+ result = self._values.get("title")
388
+ assert result is not None, "Required property 'title' is missing"
389
+ return typing.cast(builtins.str, result)
390
+
391
+ @builtins.property
392
+ def labels(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
393
+ '''User defined key-value pairs to classify the storage.
394
+
395
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/storage_template#labels StorageTemplate#labels}
396
+ '''
397
+ result = self._values.get("labels")
398
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
399
+
400
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
401
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
402
+
403
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
404
+ return not (rhs == self)
405
+
406
+ def __repr__(self) -> str:
407
+ return "StorageTemplateConfig(%s)" % ", ".join(
408
+ k + "=" + repr(v) for k, v in self._values.items()
409
+ )
410
+
411
+
412
+ __all__ = [
413
+ "StorageTemplate",
414
+ "StorageTemplateConfig",
415
+ ]
416
+
417
+ publication.publish()
418
+
419
+ def _typecheckingstub__84adbb402f96863c3b7f1919a261aab20d039c7d2bf144539d11017d13dd741f(
420
+ scope: _constructs_77d1e7e8.Construct,
421
+ id: builtins.str,
422
+ *,
423
+ source_storage: builtins.str,
424
+ title: builtins.str,
425
+ labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
426
+ 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,
427
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
428
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
429
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
430
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
431
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
432
+ 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,
433
+ ) -> None:
434
+ """Type checking stubs"""
435
+ pass
436
+
437
+ def _typecheckingstub__841ec53d6dea5151334d99247fc89c94572a1177384a71f5357c32e863ea764f(
438
+ scope: _constructs_77d1e7e8.Construct,
439
+ import_to_id: builtins.str,
440
+ import_from_id: builtins.str,
441
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
442
+ ) -> None:
443
+ """Type checking stubs"""
444
+ pass
445
+
446
+ def _typecheckingstub__8dc34e4ef354a9c685afad467dd1e5012592555b77aed09edb76dd5f3731f97f(
447
+ value: typing.Mapping[builtins.str, builtins.str],
448
+ ) -> None:
449
+ """Type checking stubs"""
450
+ pass
451
+
452
+ def _typecheckingstub__87efd2f025de647c21944df941ffbd5bae1a7e3e42a5e0bfab1bbfeda8a1e60e(
453
+ value: builtins.str,
454
+ ) -> None:
455
+ """Type checking stubs"""
456
+ pass
457
+
458
+ def _typecheckingstub__750e43e34d963bb79f84b7897051f5440bf6e265f4aa260ed1f6ed98a37c7ea7(
459
+ value: builtins.str,
460
+ ) -> None:
461
+ """Type checking stubs"""
462
+ pass
463
+
464
+ def _typecheckingstub__178a6bfa1909de8f638e7d39583d3c1e81cf3109f496ec6bc3942a5849135a2f(
465
+ *,
466
+ 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,
467
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
468
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
469
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
470
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
471
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
472
+ 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,
473
+ source_storage: builtins.str,
474
+ title: builtins.str,
475
+ labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
476
+ ) -> None:
477
+ """Type checking stubs"""
478
+ pass