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,1167 @@
1
+ r'''
2
+ # `upcloud_gateway`
3
+
4
+ Refer to the Terraform Registry for docs: [`upcloud_gateway`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway).
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 Gateway(
43
+ _cdktf_9a9027ec.TerraformResource,
44
+ metaclass=jsii.JSIIMeta,
45
+ jsii_type="@cdktf/provider-upcloud.gateway.Gateway",
46
+ ):
47
+ '''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway upcloud_gateway}.'''
48
+
49
+ def __init__(
50
+ self,
51
+ scope: _constructs_77d1e7e8.Construct,
52
+ id_: builtins.str,
53
+ *,
54
+ features: typing.Sequence[builtins.str],
55
+ name: builtins.str,
56
+ router: typing.Union["GatewayRouter", typing.Dict[builtins.str, typing.Any]],
57
+ zone: builtins.str,
58
+ address: typing.Optional[typing.Union["GatewayAddress", typing.Dict[builtins.str, typing.Any]]] = None,
59
+ configured_status: typing.Optional[builtins.str] = None,
60
+ id: typing.Optional[builtins.str] = None,
61
+ labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
62
+ plan: typing.Optional[builtins.str] = None,
63
+ 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,
64
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
65
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
66
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
67
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
68
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
69
+ 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,
70
+ ) -> None:
71
+ '''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway upcloud_gateway} Resource.
72
+
73
+ :param scope: The scope in which to define this construct.
74
+ :param id_: The scoped construct ID. Must be unique amongst siblings in the same scope
75
+ :param features: Features enabled for the gateway. For more details, see `documentation <https://upcloud.com/resources/docs/networking#nat-and-vpn-gateways>`_. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#features Gateway#features}
76
+ :param name: Gateway name. Needs to be unique within the account. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#name Gateway#name}
77
+ :param router: router block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#router Gateway#router}
78
+ :param zone: Zone in which the gateway will be hosted, e.g. ``de-fra1``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#zone Gateway#zone}
79
+ :param address: address block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#address Gateway#address}
80
+ :param configured_status: The service configured status indicates the service's current intended status. Managed by the customer. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#configured_status Gateway#configured_status}
81
+ :param id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#id Gateway#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.
82
+ :param labels: User defined key-value pairs to classify the network gateway. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#labels Gateway#labels}
83
+ :param plan: Gateway pricing plan. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#plan Gateway#plan}
84
+ :param connection:
85
+ :param count:
86
+ :param depends_on:
87
+ :param for_each:
88
+ :param lifecycle:
89
+ :param provider:
90
+ :param provisioners:
91
+ '''
92
+ if __debug__:
93
+ type_hints = typing.get_type_hints(_typecheckingstub__b5004a2546e9442c11e1ddc6c725e44f286815709779966f78ab5b098792aa65)
94
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
95
+ check_type(argname="argument id_", value=id_, expected_type=type_hints["id_"])
96
+ config = GatewayConfig(
97
+ features=features,
98
+ name=name,
99
+ router=router,
100
+ zone=zone,
101
+ address=address,
102
+ configured_status=configured_status,
103
+ id=id,
104
+ labels=labels,
105
+ plan=plan,
106
+ connection=connection,
107
+ count=count,
108
+ depends_on=depends_on,
109
+ for_each=for_each,
110
+ lifecycle=lifecycle,
111
+ provider=provider,
112
+ provisioners=provisioners,
113
+ )
114
+
115
+ jsii.create(self.__class__, self, [scope, id_, config])
116
+
117
+ @jsii.member(jsii_name="generateConfigForImport")
118
+ @builtins.classmethod
119
+ def generate_config_for_import(
120
+ cls,
121
+ scope: _constructs_77d1e7e8.Construct,
122
+ import_to_id: builtins.str,
123
+ import_from_id: builtins.str,
124
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
125
+ ) -> _cdktf_9a9027ec.ImportableResource:
126
+ '''Generates CDKTF code for importing a Gateway resource upon running "cdktf plan ".
127
+
128
+ :param scope: The scope in which to define this construct.
129
+ :param import_to_id: The construct id used in the generated config for the Gateway to import.
130
+ :param import_from_id: The id of the existing Gateway that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#import import section} in the documentation of this resource for the id to use
131
+ :param provider: ? Optional instance of the provider where the Gateway to import is found.
132
+ '''
133
+ if __debug__:
134
+ type_hints = typing.get_type_hints(_typecheckingstub__58ec4ae5d2aeef41343bcf180a130eb7e0761cca174344d25c3fd10423398bc8)
135
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
136
+ check_type(argname="argument import_to_id", value=import_to_id, expected_type=type_hints["import_to_id"])
137
+ check_type(argname="argument import_from_id", value=import_from_id, expected_type=type_hints["import_from_id"])
138
+ check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
139
+ return typing.cast(_cdktf_9a9027ec.ImportableResource, jsii.sinvoke(cls, "generateConfigForImport", [scope, import_to_id, import_from_id, provider]))
140
+
141
+ @jsii.member(jsii_name="putAddress")
142
+ def put_address(self, *, name: typing.Optional[builtins.str] = None) -> None:
143
+ '''
144
+ :param name: Name of the IP address. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#name Gateway#name}
145
+ '''
146
+ value = GatewayAddress(name=name)
147
+
148
+ return typing.cast(None, jsii.invoke(self, "putAddress", [value]))
149
+
150
+ @jsii.member(jsii_name="putRouter")
151
+ def put_router(self, *, id: builtins.str) -> None:
152
+ '''
153
+ :param id: ID of the router attached to the gateway. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#id Gateway#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.
154
+ '''
155
+ value = GatewayRouter(id=id)
156
+
157
+ return typing.cast(None, jsii.invoke(self, "putRouter", [value]))
158
+
159
+ @jsii.member(jsii_name="resetAddress")
160
+ def reset_address(self) -> None:
161
+ return typing.cast(None, jsii.invoke(self, "resetAddress", []))
162
+
163
+ @jsii.member(jsii_name="resetConfiguredStatus")
164
+ def reset_configured_status(self) -> None:
165
+ return typing.cast(None, jsii.invoke(self, "resetConfiguredStatus", []))
166
+
167
+ @jsii.member(jsii_name="resetId")
168
+ def reset_id(self) -> None:
169
+ return typing.cast(None, jsii.invoke(self, "resetId", []))
170
+
171
+ @jsii.member(jsii_name="resetLabels")
172
+ def reset_labels(self) -> None:
173
+ return typing.cast(None, jsii.invoke(self, "resetLabels", []))
174
+
175
+ @jsii.member(jsii_name="resetPlan")
176
+ def reset_plan(self) -> None:
177
+ return typing.cast(None, jsii.invoke(self, "resetPlan", []))
178
+
179
+ @jsii.member(jsii_name="synthesizeAttributes")
180
+ def _synthesize_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
181
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeAttributes", []))
182
+
183
+ @jsii.member(jsii_name="synthesizeHclAttributes")
184
+ def _synthesize_hcl_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
185
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeHclAttributes", []))
186
+
187
+ @jsii.python.classproperty
188
+ @jsii.member(jsii_name="tfResourceType")
189
+ def TF_RESOURCE_TYPE(cls) -> builtins.str:
190
+ return typing.cast(builtins.str, jsii.sget(cls, "tfResourceType"))
191
+
192
+ @builtins.property
193
+ @jsii.member(jsii_name="address")
194
+ def address(self) -> "GatewayAddressOutputReference":
195
+ return typing.cast("GatewayAddressOutputReference", jsii.get(self, "address"))
196
+
197
+ @builtins.property
198
+ @jsii.member(jsii_name="addresses")
199
+ def addresses(self) -> "GatewayAddressesList":
200
+ return typing.cast("GatewayAddressesList", jsii.get(self, "addresses"))
201
+
202
+ @builtins.property
203
+ @jsii.member(jsii_name="connections")
204
+ def connections(self) -> typing.List[builtins.str]:
205
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "connections"))
206
+
207
+ @builtins.property
208
+ @jsii.member(jsii_name="operationalState")
209
+ def operational_state(self) -> builtins.str:
210
+ return typing.cast(builtins.str, jsii.get(self, "operationalState"))
211
+
212
+ @builtins.property
213
+ @jsii.member(jsii_name="router")
214
+ def router(self) -> "GatewayRouterOutputReference":
215
+ return typing.cast("GatewayRouterOutputReference", jsii.get(self, "router"))
216
+
217
+ @builtins.property
218
+ @jsii.member(jsii_name="addressInput")
219
+ def address_input(self) -> typing.Optional["GatewayAddress"]:
220
+ return typing.cast(typing.Optional["GatewayAddress"], jsii.get(self, "addressInput"))
221
+
222
+ @builtins.property
223
+ @jsii.member(jsii_name="configuredStatusInput")
224
+ def configured_status_input(self) -> typing.Optional[builtins.str]:
225
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "configuredStatusInput"))
226
+
227
+ @builtins.property
228
+ @jsii.member(jsii_name="featuresInput")
229
+ def features_input(self) -> typing.Optional[typing.List[builtins.str]]:
230
+ return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "featuresInput"))
231
+
232
+ @builtins.property
233
+ @jsii.member(jsii_name="idInput")
234
+ def id_input(self) -> typing.Optional[builtins.str]:
235
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "idInput"))
236
+
237
+ @builtins.property
238
+ @jsii.member(jsii_name="labelsInput")
239
+ def labels_input(
240
+ self,
241
+ ) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
242
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], jsii.get(self, "labelsInput"))
243
+
244
+ @builtins.property
245
+ @jsii.member(jsii_name="nameInput")
246
+ def name_input(self) -> typing.Optional[builtins.str]:
247
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "nameInput"))
248
+
249
+ @builtins.property
250
+ @jsii.member(jsii_name="planInput")
251
+ def plan_input(self) -> typing.Optional[builtins.str]:
252
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "planInput"))
253
+
254
+ @builtins.property
255
+ @jsii.member(jsii_name="routerInput")
256
+ def router_input(self) -> typing.Optional["GatewayRouter"]:
257
+ return typing.cast(typing.Optional["GatewayRouter"], jsii.get(self, "routerInput"))
258
+
259
+ @builtins.property
260
+ @jsii.member(jsii_name="zoneInput")
261
+ def zone_input(self) -> typing.Optional[builtins.str]:
262
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "zoneInput"))
263
+
264
+ @builtins.property
265
+ @jsii.member(jsii_name="configuredStatus")
266
+ def configured_status(self) -> builtins.str:
267
+ return typing.cast(builtins.str, jsii.get(self, "configuredStatus"))
268
+
269
+ @configured_status.setter
270
+ def configured_status(self, value: builtins.str) -> None:
271
+ if __debug__:
272
+ type_hints = typing.get_type_hints(_typecheckingstub__3d3ceb8da63fedf803a33c0cf4042706436095bd185585fd4f2d4066c2d42301)
273
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
274
+ jsii.set(self, "configuredStatus", value) # pyright: ignore[reportArgumentType]
275
+
276
+ @builtins.property
277
+ @jsii.member(jsii_name="features")
278
+ def features(self) -> typing.List[builtins.str]:
279
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "features"))
280
+
281
+ @features.setter
282
+ def features(self, value: typing.List[builtins.str]) -> None:
283
+ if __debug__:
284
+ type_hints = typing.get_type_hints(_typecheckingstub__94599dd299b053c9fa4e3585542fed3e0f4de6c6b2f699988f736c808ca5676f)
285
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
286
+ jsii.set(self, "features", value) # pyright: ignore[reportArgumentType]
287
+
288
+ @builtins.property
289
+ @jsii.member(jsii_name="id")
290
+ def id(self) -> builtins.str:
291
+ return typing.cast(builtins.str, jsii.get(self, "id"))
292
+
293
+ @id.setter
294
+ def id(self, value: builtins.str) -> None:
295
+ if __debug__:
296
+ type_hints = typing.get_type_hints(_typecheckingstub__fabe7cabf8280b56c20218b44521e645d89fea5bdd72f3d3dfba3489da1a0f04)
297
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
298
+ jsii.set(self, "id", value) # pyright: ignore[reportArgumentType]
299
+
300
+ @builtins.property
301
+ @jsii.member(jsii_name="labels")
302
+ def labels(self) -> typing.Mapping[builtins.str, builtins.str]:
303
+ return typing.cast(typing.Mapping[builtins.str, builtins.str], jsii.get(self, "labels"))
304
+
305
+ @labels.setter
306
+ def labels(self, value: typing.Mapping[builtins.str, builtins.str]) -> None:
307
+ if __debug__:
308
+ type_hints = typing.get_type_hints(_typecheckingstub__28caa4359433feaa3e11ba0a3a5ad925b8f03afe2a5a2997cb8b61c0f9bd4275)
309
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
310
+ jsii.set(self, "labels", value) # pyright: ignore[reportArgumentType]
311
+
312
+ @builtins.property
313
+ @jsii.member(jsii_name="name")
314
+ def name(self) -> builtins.str:
315
+ return typing.cast(builtins.str, jsii.get(self, "name"))
316
+
317
+ @name.setter
318
+ def name(self, value: builtins.str) -> None:
319
+ if __debug__:
320
+ type_hints = typing.get_type_hints(_typecheckingstub__d2c5d28159ca3dac2ea92e9af2bb081a4326b986cc12ca65061f2a279603b82d)
321
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
322
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
323
+
324
+ @builtins.property
325
+ @jsii.member(jsii_name="plan")
326
+ def plan(self) -> builtins.str:
327
+ return typing.cast(builtins.str, jsii.get(self, "plan"))
328
+
329
+ @plan.setter
330
+ def plan(self, value: builtins.str) -> None:
331
+ if __debug__:
332
+ type_hints = typing.get_type_hints(_typecheckingstub__0b307de78f154fe1e545a75dde145014f3ed8f0b7beb3bd3d29a86cc3c0e8bfd)
333
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
334
+ jsii.set(self, "plan", value) # pyright: ignore[reportArgumentType]
335
+
336
+ @builtins.property
337
+ @jsii.member(jsii_name="zone")
338
+ def zone(self) -> builtins.str:
339
+ return typing.cast(builtins.str, jsii.get(self, "zone"))
340
+
341
+ @zone.setter
342
+ def zone(self, value: builtins.str) -> None:
343
+ if __debug__:
344
+ type_hints = typing.get_type_hints(_typecheckingstub__bb73e8f0fe354e887808b5bf127fd5ac0c6707e04487d3c8585afb386405ed4b)
345
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
346
+ jsii.set(self, "zone", value) # pyright: ignore[reportArgumentType]
347
+
348
+
349
+ @jsii.data_type(
350
+ jsii_type="@cdktf/provider-upcloud.gateway.GatewayAddress",
351
+ jsii_struct_bases=[],
352
+ name_mapping={"name": "name"},
353
+ )
354
+ class GatewayAddress:
355
+ def __init__(self, *, name: typing.Optional[builtins.str] = None) -> None:
356
+ '''
357
+ :param name: Name of the IP address. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#name Gateway#name}
358
+ '''
359
+ if __debug__:
360
+ type_hints = typing.get_type_hints(_typecheckingstub__771f5bc182e7c8b4585492ead620a0562968d48a1a3c37c3e8d87c925e630939)
361
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
362
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
363
+ if name is not None:
364
+ self._values["name"] = name
365
+
366
+ @builtins.property
367
+ def name(self) -> typing.Optional[builtins.str]:
368
+ '''Name of the IP address.
369
+
370
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#name Gateway#name}
371
+ '''
372
+ result = self._values.get("name")
373
+ return typing.cast(typing.Optional[builtins.str], result)
374
+
375
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
376
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
377
+
378
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
379
+ return not (rhs == self)
380
+
381
+ def __repr__(self) -> str:
382
+ return "GatewayAddress(%s)" % ", ".join(
383
+ k + "=" + repr(v) for k, v in self._values.items()
384
+ )
385
+
386
+
387
+ class GatewayAddressOutputReference(
388
+ _cdktf_9a9027ec.ComplexObject,
389
+ metaclass=jsii.JSIIMeta,
390
+ jsii_type="@cdktf/provider-upcloud.gateway.GatewayAddressOutputReference",
391
+ ):
392
+ def __init__(
393
+ self,
394
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
395
+ terraform_attribute: builtins.str,
396
+ ) -> None:
397
+ '''
398
+ :param terraform_resource: The parent resource.
399
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
400
+ '''
401
+ if __debug__:
402
+ type_hints = typing.get_type_hints(_typecheckingstub__2f0cb1fb5d87562b9ef4d57d6e06da990dabd09abdf9c31b58b20f617c495c94)
403
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
404
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
405
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute])
406
+
407
+ @jsii.member(jsii_name="resetName")
408
+ def reset_name(self) -> None:
409
+ return typing.cast(None, jsii.invoke(self, "resetName", []))
410
+
411
+ @builtins.property
412
+ @jsii.member(jsii_name="address")
413
+ def address(self) -> builtins.str:
414
+ return typing.cast(builtins.str, jsii.get(self, "address"))
415
+
416
+ @builtins.property
417
+ @jsii.member(jsii_name="nameInput")
418
+ def name_input(self) -> typing.Optional[builtins.str]:
419
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "nameInput"))
420
+
421
+ @builtins.property
422
+ @jsii.member(jsii_name="name")
423
+ def name(self) -> builtins.str:
424
+ return typing.cast(builtins.str, jsii.get(self, "name"))
425
+
426
+ @name.setter
427
+ def name(self, value: builtins.str) -> None:
428
+ if __debug__:
429
+ type_hints = typing.get_type_hints(_typecheckingstub__ab397d75aad46c35582789ea34fa8c898a72a9b2c3bd4525a1a8e9d3c9baaeb1)
430
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
431
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
432
+
433
+ @builtins.property
434
+ @jsii.member(jsii_name="internalValue")
435
+ def internal_value(self) -> typing.Optional[GatewayAddress]:
436
+ return typing.cast(typing.Optional[GatewayAddress], jsii.get(self, "internalValue"))
437
+
438
+ @internal_value.setter
439
+ def internal_value(self, value: typing.Optional[GatewayAddress]) -> None:
440
+ if __debug__:
441
+ type_hints = typing.get_type_hints(_typecheckingstub__9fe26c4b704801525f4075b39ca3419c91aabb081864ed410607de7a61bafaab)
442
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
443
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
444
+
445
+
446
+ @jsii.data_type(
447
+ jsii_type="@cdktf/provider-upcloud.gateway.GatewayAddresses",
448
+ jsii_struct_bases=[],
449
+ name_mapping={},
450
+ )
451
+ class GatewayAddresses:
452
+ def __init__(self) -> None:
453
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
454
+
455
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
456
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
457
+
458
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
459
+ return not (rhs == self)
460
+
461
+ def __repr__(self) -> str:
462
+ return "GatewayAddresses(%s)" % ", ".join(
463
+ k + "=" + repr(v) for k, v in self._values.items()
464
+ )
465
+
466
+
467
+ class GatewayAddressesList(
468
+ _cdktf_9a9027ec.ComplexList,
469
+ metaclass=jsii.JSIIMeta,
470
+ jsii_type="@cdktf/provider-upcloud.gateway.GatewayAddressesList",
471
+ ):
472
+ def __init__(
473
+ self,
474
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
475
+ terraform_attribute: builtins.str,
476
+ wraps_set: builtins.bool,
477
+ ) -> None:
478
+ '''
479
+ :param terraform_resource: The parent resource.
480
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
481
+ :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
482
+ '''
483
+ if __debug__:
484
+ type_hints = typing.get_type_hints(_typecheckingstub__f1d0cc19fe0fbb739150a268fc316ea4ea3c90096e2bb07765df6d733b0448e1)
485
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
486
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
487
+ check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
488
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])
489
+
490
+ @jsii.member(jsii_name="get")
491
+ def get(self, index: jsii.Number) -> "GatewayAddressesOutputReference":
492
+ '''
493
+ :param index: the index of the item to return.
494
+ '''
495
+ if __debug__:
496
+ type_hints = typing.get_type_hints(_typecheckingstub__150b807b18306765d8c7d184d172c354940936eab7dd0118478ca0afc9b88143)
497
+ check_type(argname="argument index", value=index, expected_type=type_hints["index"])
498
+ return typing.cast("GatewayAddressesOutputReference", jsii.invoke(self, "get", [index]))
499
+
500
+ @builtins.property
501
+ @jsii.member(jsii_name="terraformAttribute")
502
+ def _terraform_attribute(self) -> builtins.str:
503
+ '''The attribute on the parent resource this class is referencing.'''
504
+ return typing.cast(builtins.str, jsii.get(self, "terraformAttribute"))
505
+
506
+ @_terraform_attribute.setter
507
+ def _terraform_attribute(self, value: builtins.str) -> None:
508
+ if __debug__:
509
+ type_hints = typing.get_type_hints(_typecheckingstub__881da4aae65110169cf40cf3d72c6fd7ca25a054ac3e9fb815ff935a1aca2aac)
510
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
511
+ jsii.set(self, "terraformAttribute", value) # pyright: ignore[reportArgumentType]
512
+
513
+ @builtins.property
514
+ @jsii.member(jsii_name="terraformResource")
515
+ def _terraform_resource(self) -> _cdktf_9a9027ec.IInterpolatingParent:
516
+ '''The parent resource.'''
517
+ return typing.cast(_cdktf_9a9027ec.IInterpolatingParent, jsii.get(self, "terraformResource"))
518
+
519
+ @_terraform_resource.setter
520
+ def _terraform_resource(self, value: _cdktf_9a9027ec.IInterpolatingParent) -> None:
521
+ if __debug__:
522
+ type_hints = typing.get_type_hints(_typecheckingstub__ec228c313da4859bb0407ecc1d54539463f7cbe0224c7db6465b63a548b6266a)
523
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
524
+ jsii.set(self, "terraformResource", value) # pyright: ignore[reportArgumentType]
525
+
526
+ @builtins.property
527
+ @jsii.member(jsii_name="wrapsSet")
528
+ def _wraps_set(self) -> builtins.bool:
529
+ '''whether the list is wrapping a set (will add tolist() to be able to access an item via an index).'''
530
+ return typing.cast(builtins.bool, jsii.get(self, "wrapsSet"))
531
+
532
+ @_wraps_set.setter
533
+ def _wraps_set(self, value: builtins.bool) -> None:
534
+ if __debug__:
535
+ type_hints = typing.get_type_hints(_typecheckingstub__0bbca24c8b00350a58081307be54995d6b4d12ccab55177b40aeef8e9bea87f4)
536
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
537
+ jsii.set(self, "wrapsSet", value) # pyright: ignore[reportArgumentType]
538
+
539
+
540
+ class GatewayAddressesOutputReference(
541
+ _cdktf_9a9027ec.ComplexObject,
542
+ metaclass=jsii.JSIIMeta,
543
+ jsii_type="@cdktf/provider-upcloud.gateway.GatewayAddressesOutputReference",
544
+ ):
545
+ def __init__(
546
+ self,
547
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
548
+ terraform_attribute: builtins.str,
549
+ complex_object_index: jsii.Number,
550
+ complex_object_is_from_set: builtins.bool,
551
+ ) -> None:
552
+ '''
553
+ :param terraform_resource: The parent resource.
554
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
555
+ :param complex_object_index: the index of this item in the list.
556
+ :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).
557
+ '''
558
+ if __debug__:
559
+ type_hints = typing.get_type_hints(_typecheckingstub__16f6d5a5123231eb5c7104d782860d67a473c1b6db479da0967f59d0d76ccf51)
560
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
561
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
562
+ check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
563
+ check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
564
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])
565
+
566
+ @builtins.property
567
+ @jsii.member(jsii_name="address")
568
+ def address(self) -> builtins.str:
569
+ return typing.cast(builtins.str, jsii.get(self, "address"))
570
+
571
+ @builtins.property
572
+ @jsii.member(jsii_name="name")
573
+ def name(self) -> builtins.str:
574
+ return typing.cast(builtins.str, jsii.get(self, "name"))
575
+
576
+ @builtins.property
577
+ @jsii.member(jsii_name="internalValue")
578
+ def internal_value(self) -> typing.Optional[GatewayAddresses]:
579
+ return typing.cast(typing.Optional[GatewayAddresses], jsii.get(self, "internalValue"))
580
+
581
+ @internal_value.setter
582
+ def internal_value(self, value: typing.Optional[GatewayAddresses]) -> None:
583
+ if __debug__:
584
+ type_hints = typing.get_type_hints(_typecheckingstub__9ea2977f9234ac6d2bd8346d7a53966d6453d37348278d58da54f7c683d9b386)
585
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
586
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
587
+
588
+
589
+ @jsii.data_type(
590
+ jsii_type="@cdktf/provider-upcloud.gateway.GatewayConfig",
591
+ jsii_struct_bases=[_cdktf_9a9027ec.TerraformMetaArguments],
592
+ name_mapping={
593
+ "connection": "connection",
594
+ "count": "count",
595
+ "depends_on": "dependsOn",
596
+ "for_each": "forEach",
597
+ "lifecycle": "lifecycle",
598
+ "provider": "provider",
599
+ "provisioners": "provisioners",
600
+ "features": "features",
601
+ "name": "name",
602
+ "router": "router",
603
+ "zone": "zone",
604
+ "address": "address",
605
+ "configured_status": "configuredStatus",
606
+ "id": "id",
607
+ "labels": "labels",
608
+ "plan": "plan",
609
+ },
610
+ )
611
+ class GatewayConfig(_cdktf_9a9027ec.TerraformMetaArguments):
612
+ def __init__(
613
+ self,
614
+ *,
615
+ 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,
616
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
617
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
618
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
619
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
620
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
621
+ 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,
622
+ features: typing.Sequence[builtins.str],
623
+ name: builtins.str,
624
+ router: typing.Union["GatewayRouter", typing.Dict[builtins.str, typing.Any]],
625
+ zone: builtins.str,
626
+ address: typing.Optional[typing.Union[GatewayAddress, typing.Dict[builtins.str, typing.Any]]] = None,
627
+ configured_status: typing.Optional[builtins.str] = None,
628
+ id: typing.Optional[builtins.str] = None,
629
+ labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
630
+ plan: typing.Optional[builtins.str] = None,
631
+ ) -> None:
632
+ '''
633
+ :param connection:
634
+ :param count:
635
+ :param depends_on:
636
+ :param for_each:
637
+ :param lifecycle:
638
+ :param provider:
639
+ :param provisioners:
640
+ :param features: Features enabled for the gateway. For more details, see `documentation <https://upcloud.com/resources/docs/networking#nat-and-vpn-gateways>`_. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#features Gateway#features}
641
+ :param name: Gateway name. Needs to be unique within the account. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#name Gateway#name}
642
+ :param router: router block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#router Gateway#router}
643
+ :param zone: Zone in which the gateway will be hosted, e.g. ``de-fra1``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#zone Gateway#zone}
644
+ :param address: address block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#address Gateway#address}
645
+ :param configured_status: The service configured status indicates the service's current intended status. Managed by the customer. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#configured_status Gateway#configured_status}
646
+ :param id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#id Gateway#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.
647
+ :param labels: User defined key-value pairs to classify the network gateway. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#labels Gateway#labels}
648
+ :param plan: Gateway pricing plan. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#plan Gateway#plan}
649
+ '''
650
+ if isinstance(lifecycle, dict):
651
+ lifecycle = _cdktf_9a9027ec.TerraformResourceLifecycle(**lifecycle)
652
+ if isinstance(router, dict):
653
+ router = GatewayRouter(**router)
654
+ if isinstance(address, dict):
655
+ address = GatewayAddress(**address)
656
+ if __debug__:
657
+ type_hints = typing.get_type_hints(_typecheckingstub__c5913e78f6a79aa5b74134144999cbeb9af7af46d3a269c9af3928cc7b7b6bf8)
658
+ check_type(argname="argument connection", value=connection, expected_type=type_hints["connection"])
659
+ check_type(argname="argument count", value=count, expected_type=type_hints["count"])
660
+ check_type(argname="argument depends_on", value=depends_on, expected_type=type_hints["depends_on"])
661
+ check_type(argname="argument for_each", value=for_each, expected_type=type_hints["for_each"])
662
+ check_type(argname="argument lifecycle", value=lifecycle, expected_type=type_hints["lifecycle"])
663
+ check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
664
+ check_type(argname="argument provisioners", value=provisioners, expected_type=type_hints["provisioners"])
665
+ check_type(argname="argument features", value=features, expected_type=type_hints["features"])
666
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
667
+ check_type(argname="argument router", value=router, expected_type=type_hints["router"])
668
+ check_type(argname="argument zone", value=zone, expected_type=type_hints["zone"])
669
+ check_type(argname="argument address", value=address, expected_type=type_hints["address"])
670
+ check_type(argname="argument configured_status", value=configured_status, expected_type=type_hints["configured_status"])
671
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
672
+ check_type(argname="argument labels", value=labels, expected_type=type_hints["labels"])
673
+ check_type(argname="argument plan", value=plan, expected_type=type_hints["plan"])
674
+ self._values: typing.Dict[builtins.str, typing.Any] = {
675
+ "features": features,
676
+ "name": name,
677
+ "router": router,
678
+ "zone": zone,
679
+ }
680
+ if connection is not None:
681
+ self._values["connection"] = connection
682
+ if count is not None:
683
+ self._values["count"] = count
684
+ if depends_on is not None:
685
+ self._values["depends_on"] = depends_on
686
+ if for_each is not None:
687
+ self._values["for_each"] = for_each
688
+ if lifecycle is not None:
689
+ self._values["lifecycle"] = lifecycle
690
+ if provider is not None:
691
+ self._values["provider"] = provider
692
+ if provisioners is not None:
693
+ self._values["provisioners"] = provisioners
694
+ if address is not None:
695
+ self._values["address"] = address
696
+ if configured_status is not None:
697
+ self._values["configured_status"] = configured_status
698
+ if id is not None:
699
+ self._values["id"] = id
700
+ if labels is not None:
701
+ self._values["labels"] = labels
702
+ if plan is not None:
703
+ self._values["plan"] = plan
704
+
705
+ @builtins.property
706
+ def connection(
707
+ self,
708
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, _cdktf_9a9027ec.WinrmProvisionerConnection]]:
709
+ '''
710
+ :stability: experimental
711
+ '''
712
+ result = self._values.get("connection")
713
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, _cdktf_9a9027ec.WinrmProvisionerConnection]], result)
714
+
715
+ @builtins.property
716
+ def count(
717
+ self,
718
+ ) -> typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]]:
719
+ '''
720
+ :stability: experimental
721
+ '''
722
+ result = self._values.get("count")
723
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]], result)
724
+
725
+ @builtins.property
726
+ def depends_on(
727
+ self,
728
+ ) -> typing.Optional[typing.List[_cdktf_9a9027ec.ITerraformDependable]]:
729
+ '''
730
+ :stability: experimental
731
+ '''
732
+ result = self._values.get("depends_on")
733
+ return typing.cast(typing.Optional[typing.List[_cdktf_9a9027ec.ITerraformDependable]], result)
734
+
735
+ @builtins.property
736
+ def for_each(self) -> typing.Optional[_cdktf_9a9027ec.ITerraformIterator]:
737
+ '''
738
+ :stability: experimental
739
+ '''
740
+ result = self._values.get("for_each")
741
+ return typing.cast(typing.Optional[_cdktf_9a9027ec.ITerraformIterator], result)
742
+
743
+ @builtins.property
744
+ def lifecycle(self) -> typing.Optional[_cdktf_9a9027ec.TerraformResourceLifecycle]:
745
+ '''
746
+ :stability: experimental
747
+ '''
748
+ result = self._values.get("lifecycle")
749
+ return typing.cast(typing.Optional[_cdktf_9a9027ec.TerraformResourceLifecycle], result)
750
+
751
+ @builtins.property
752
+ def provider(self) -> typing.Optional[_cdktf_9a9027ec.TerraformProvider]:
753
+ '''
754
+ :stability: experimental
755
+ '''
756
+ result = self._values.get("provider")
757
+ return typing.cast(typing.Optional[_cdktf_9a9027ec.TerraformProvider], result)
758
+
759
+ @builtins.property
760
+ def provisioners(
761
+ self,
762
+ ) -> typing.Optional[typing.List[typing.Union[_cdktf_9a9027ec.FileProvisioner, _cdktf_9a9027ec.LocalExecProvisioner, _cdktf_9a9027ec.RemoteExecProvisioner]]]:
763
+ '''
764
+ :stability: experimental
765
+ '''
766
+ result = self._values.get("provisioners")
767
+ return typing.cast(typing.Optional[typing.List[typing.Union[_cdktf_9a9027ec.FileProvisioner, _cdktf_9a9027ec.LocalExecProvisioner, _cdktf_9a9027ec.RemoteExecProvisioner]]], result)
768
+
769
+ @builtins.property
770
+ def features(self) -> typing.List[builtins.str]:
771
+ '''Features enabled for the gateway. For more details, see `documentation <https://upcloud.com/resources/docs/networking#nat-and-vpn-gateways>`_.
772
+
773
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#features Gateway#features}
774
+ '''
775
+ result = self._values.get("features")
776
+ assert result is not None, "Required property 'features' is missing"
777
+ return typing.cast(typing.List[builtins.str], result)
778
+
779
+ @builtins.property
780
+ def name(self) -> builtins.str:
781
+ '''Gateway name. Needs to be unique within the account.
782
+
783
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#name Gateway#name}
784
+ '''
785
+ result = self._values.get("name")
786
+ assert result is not None, "Required property 'name' is missing"
787
+ return typing.cast(builtins.str, result)
788
+
789
+ @builtins.property
790
+ def router(self) -> "GatewayRouter":
791
+ '''router block.
792
+
793
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#router Gateway#router}
794
+ '''
795
+ result = self._values.get("router")
796
+ assert result is not None, "Required property 'router' is missing"
797
+ return typing.cast("GatewayRouter", result)
798
+
799
+ @builtins.property
800
+ def zone(self) -> builtins.str:
801
+ '''Zone in which the gateway will be hosted, e.g. ``de-fra1``.
802
+
803
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#zone Gateway#zone}
804
+ '''
805
+ result = self._values.get("zone")
806
+ assert result is not None, "Required property 'zone' is missing"
807
+ return typing.cast(builtins.str, result)
808
+
809
+ @builtins.property
810
+ def address(self) -> typing.Optional[GatewayAddress]:
811
+ '''address block.
812
+
813
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#address Gateway#address}
814
+ '''
815
+ result = self._values.get("address")
816
+ return typing.cast(typing.Optional[GatewayAddress], result)
817
+
818
+ @builtins.property
819
+ def configured_status(self) -> typing.Optional[builtins.str]:
820
+ '''The service configured status indicates the service's current intended status. Managed by the customer.
821
+
822
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#configured_status Gateway#configured_status}
823
+ '''
824
+ result = self._values.get("configured_status")
825
+ return typing.cast(typing.Optional[builtins.str], result)
826
+
827
+ @builtins.property
828
+ def id(self) -> typing.Optional[builtins.str]:
829
+ '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#id Gateway#id}.
830
+
831
+ Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
832
+ 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.
833
+ '''
834
+ result = self._values.get("id")
835
+ return typing.cast(typing.Optional[builtins.str], result)
836
+
837
+ @builtins.property
838
+ def labels(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
839
+ '''User defined key-value pairs to classify the network gateway.
840
+
841
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#labels Gateway#labels}
842
+ '''
843
+ result = self._values.get("labels")
844
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
845
+
846
+ @builtins.property
847
+ def plan(self) -> typing.Optional[builtins.str]:
848
+ '''Gateway pricing plan.
849
+
850
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#plan Gateway#plan}
851
+ '''
852
+ result = self._values.get("plan")
853
+ return typing.cast(typing.Optional[builtins.str], result)
854
+
855
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
856
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
857
+
858
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
859
+ return not (rhs == self)
860
+
861
+ def __repr__(self) -> str:
862
+ return "GatewayConfig(%s)" % ", ".join(
863
+ k + "=" + repr(v) for k, v in self._values.items()
864
+ )
865
+
866
+
867
+ @jsii.data_type(
868
+ jsii_type="@cdktf/provider-upcloud.gateway.GatewayRouter",
869
+ jsii_struct_bases=[],
870
+ name_mapping={"id": "id"},
871
+ )
872
+ class GatewayRouter:
873
+ def __init__(self, *, id: builtins.str) -> None:
874
+ '''
875
+ :param id: ID of the router attached to the gateway. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#id Gateway#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.
876
+ '''
877
+ if __debug__:
878
+ type_hints = typing.get_type_hints(_typecheckingstub__ec6d5ccf3e805f30e341a3cd9f4f396b1b94f09fded4ca2733934ac1d447f38b)
879
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
880
+ self._values: typing.Dict[builtins.str, typing.Any] = {
881
+ "id": id,
882
+ }
883
+
884
+ @builtins.property
885
+ def id(self) -> builtins.str:
886
+ '''ID of the router attached to the gateway.
887
+
888
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/gateway#id Gateway#id}
889
+
890
+ Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
891
+ 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.
892
+ '''
893
+ result = self._values.get("id")
894
+ assert result is not None, "Required property 'id' is missing"
895
+ return typing.cast(builtins.str, result)
896
+
897
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
898
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
899
+
900
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
901
+ return not (rhs == self)
902
+
903
+ def __repr__(self) -> str:
904
+ return "GatewayRouter(%s)" % ", ".join(
905
+ k + "=" + repr(v) for k, v in self._values.items()
906
+ )
907
+
908
+
909
+ class GatewayRouterOutputReference(
910
+ _cdktf_9a9027ec.ComplexObject,
911
+ metaclass=jsii.JSIIMeta,
912
+ jsii_type="@cdktf/provider-upcloud.gateway.GatewayRouterOutputReference",
913
+ ):
914
+ def __init__(
915
+ self,
916
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
917
+ terraform_attribute: builtins.str,
918
+ ) -> None:
919
+ '''
920
+ :param terraform_resource: The parent resource.
921
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
922
+ '''
923
+ if __debug__:
924
+ type_hints = typing.get_type_hints(_typecheckingstub__39cde6c30f5264645bf5e4ec2389eef0e33f665a768766f6f399789cd2aeebf6)
925
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
926
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
927
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute])
928
+
929
+ @builtins.property
930
+ @jsii.member(jsii_name="idInput")
931
+ def id_input(self) -> typing.Optional[builtins.str]:
932
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "idInput"))
933
+
934
+ @builtins.property
935
+ @jsii.member(jsii_name="id")
936
+ def id(self) -> builtins.str:
937
+ return typing.cast(builtins.str, jsii.get(self, "id"))
938
+
939
+ @id.setter
940
+ def id(self, value: builtins.str) -> None:
941
+ if __debug__:
942
+ type_hints = typing.get_type_hints(_typecheckingstub__ab5ca3b00171a73e17cc382cbf956dd56828d5e5c1e4b79a39bb69f998be7b21)
943
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
944
+ jsii.set(self, "id", value) # pyright: ignore[reportArgumentType]
945
+
946
+ @builtins.property
947
+ @jsii.member(jsii_name="internalValue")
948
+ def internal_value(self) -> typing.Optional[GatewayRouter]:
949
+ return typing.cast(typing.Optional[GatewayRouter], jsii.get(self, "internalValue"))
950
+
951
+ @internal_value.setter
952
+ def internal_value(self, value: typing.Optional[GatewayRouter]) -> None:
953
+ if __debug__:
954
+ type_hints = typing.get_type_hints(_typecheckingstub__5af2000bc2111ed75c0613b13003d2b17d86ab5ae8b1253df886868176e2553f)
955
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
956
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
957
+
958
+
959
+ __all__ = [
960
+ "Gateway",
961
+ "GatewayAddress",
962
+ "GatewayAddressOutputReference",
963
+ "GatewayAddresses",
964
+ "GatewayAddressesList",
965
+ "GatewayAddressesOutputReference",
966
+ "GatewayConfig",
967
+ "GatewayRouter",
968
+ "GatewayRouterOutputReference",
969
+ ]
970
+
971
+ publication.publish()
972
+
973
+ def _typecheckingstub__b5004a2546e9442c11e1ddc6c725e44f286815709779966f78ab5b098792aa65(
974
+ scope: _constructs_77d1e7e8.Construct,
975
+ id_: builtins.str,
976
+ *,
977
+ features: typing.Sequence[builtins.str],
978
+ name: builtins.str,
979
+ router: typing.Union[GatewayRouter, typing.Dict[builtins.str, typing.Any]],
980
+ zone: builtins.str,
981
+ address: typing.Optional[typing.Union[GatewayAddress, typing.Dict[builtins.str, typing.Any]]] = None,
982
+ configured_status: typing.Optional[builtins.str] = None,
983
+ id: typing.Optional[builtins.str] = None,
984
+ labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
985
+ plan: typing.Optional[builtins.str] = None,
986
+ 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,
987
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
988
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
989
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
990
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
991
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
992
+ 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,
993
+ ) -> None:
994
+ """Type checking stubs"""
995
+ pass
996
+
997
+ def _typecheckingstub__58ec4ae5d2aeef41343bcf180a130eb7e0761cca174344d25c3fd10423398bc8(
998
+ scope: _constructs_77d1e7e8.Construct,
999
+ import_to_id: builtins.str,
1000
+ import_from_id: builtins.str,
1001
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
1002
+ ) -> None:
1003
+ """Type checking stubs"""
1004
+ pass
1005
+
1006
+ def _typecheckingstub__3d3ceb8da63fedf803a33c0cf4042706436095bd185585fd4f2d4066c2d42301(
1007
+ value: builtins.str,
1008
+ ) -> None:
1009
+ """Type checking stubs"""
1010
+ pass
1011
+
1012
+ def _typecheckingstub__94599dd299b053c9fa4e3585542fed3e0f4de6c6b2f699988f736c808ca5676f(
1013
+ value: typing.List[builtins.str],
1014
+ ) -> None:
1015
+ """Type checking stubs"""
1016
+ pass
1017
+
1018
+ def _typecheckingstub__fabe7cabf8280b56c20218b44521e645d89fea5bdd72f3d3dfba3489da1a0f04(
1019
+ value: builtins.str,
1020
+ ) -> None:
1021
+ """Type checking stubs"""
1022
+ pass
1023
+
1024
+ def _typecheckingstub__28caa4359433feaa3e11ba0a3a5ad925b8f03afe2a5a2997cb8b61c0f9bd4275(
1025
+ value: typing.Mapping[builtins.str, builtins.str],
1026
+ ) -> None:
1027
+ """Type checking stubs"""
1028
+ pass
1029
+
1030
+ def _typecheckingstub__d2c5d28159ca3dac2ea92e9af2bb081a4326b986cc12ca65061f2a279603b82d(
1031
+ value: builtins.str,
1032
+ ) -> None:
1033
+ """Type checking stubs"""
1034
+ pass
1035
+
1036
+ def _typecheckingstub__0b307de78f154fe1e545a75dde145014f3ed8f0b7beb3bd3d29a86cc3c0e8bfd(
1037
+ value: builtins.str,
1038
+ ) -> None:
1039
+ """Type checking stubs"""
1040
+ pass
1041
+
1042
+ def _typecheckingstub__bb73e8f0fe354e887808b5bf127fd5ac0c6707e04487d3c8585afb386405ed4b(
1043
+ value: builtins.str,
1044
+ ) -> None:
1045
+ """Type checking stubs"""
1046
+ pass
1047
+
1048
+ def _typecheckingstub__771f5bc182e7c8b4585492ead620a0562968d48a1a3c37c3e8d87c925e630939(
1049
+ *,
1050
+ name: typing.Optional[builtins.str] = None,
1051
+ ) -> None:
1052
+ """Type checking stubs"""
1053
+ pass
1054
+
1055
+ def _typecheckingstub__2f0cb1fb5d87562b9ef4d57d6e06da990dabd09abdf9c31b58b20f617c495c94(
1056
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1057
+ terraform_attribute: builtins.str,
1058
+ ) -> None:
1059
+ """Type checking stubs"""
1060
+ pass
1061
+
1062
+ def _typecheckingstub__ab397d75aad46c35582789ea34fa8c898a72a9b2c3bd4525a1a8e9d3c9baaeb1(
1063
+ value: builtins.str,
1064
+ ) -> None:
1065
+ """Type checking stubs"""
1066
+ pass
1067
+
1068
+ def _typecheckingstub__9fe26c4b704801525f4075b39ca3419c91aabb081864ed410607de7a61bafaab(
1069
+ value: typing.Optional[GatewayAddress],
1070
+ ) -> None:
1071
+ """Type checking stubs"""
1072
+ pass
1073
+
1074
+ def _typecheckingstub__f1d0cc19fe0fbb739150a268fc316ea4ea3c90096e2bb07765df6d733b0448e1(
1075
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1076
+ terraform_attribute: builtins.str,
1077
+ wraps_set: builtins.bool,
1078
+ ) -> None:
1079
+ """Type checking stubs"""
1080
+ pass
1081
+
1082
+ def _typecheckingstub__150b807b18306765d8c7d184d172c354940936eab7dd0118478ca0afc9b88143(
1083
+ index: jsii.Number,
1084
+ ) -> None:
1085
+ """Type checking stubs"""
1086
+ pass
1087
+
1088
+ def _typecheckingstub__881da4aae65110169cf40cf3d72c6fd7ca25a054ac3e9fb815ff935a1aca2aac(
1089
+ value: builtins.str,
1090
+ ) -> None:
1091
+ """Type checking stubs"""
1092
+ pass
1093
+
1094
+ def _typecheckingstub__ec228c313da4859bb0407ecc1d54539463f7cbe0224c7db6465b63a548b6266a(
1095
+ value: _cdktf_9a9027ec.IInterpolatingParent,
1096
+ ) -> None:
1097
+ """Type checking stubs"""
1098
+ pass
1099
+
1100
+ def _typecheckingstub__0bbca24c8b00350a58081307be54995d6b4d12ccab55177b40aeef8e9bea87f4(
1101
+ value: builtins.bool,
1102
+ ) -> None:
1103
+ """Type checking stubs"""
1104
+ pass
1105
+
1106
+ def _typecheckingstub__16f6d5a5123231eb5c7104d782860d67a473c1b6db479da0967f59d0d76ccf51(
1107
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1108
+ terraform_attribute: builtins.str,
1109
+ complex_object_index: jsii.Number,
1110
+ complex_object_is_from_set: builtins.bool,
1111
+ ) -> None:
1112
+ """Type checking stubs"""
1113
+ pass
1114
+
1115
+ def _typecheckingstub__9ea2977f9234ac6d2bd8346d7a53966d6453d37348278d58da54f7c683d9b386(
1116
+ value: typing.Optional[GatewayAddresses],
1117
+ ) -> None:
1118
+ """Type checking stubs"""
1119
+ pass
1120
+
1121
+ def _typecheckingstub__c5913e78f6a79aa5b74134144999cbeb9af7af46d3a269c9af3928cc7b7b6bf8(
1122
+ *,
1123
+ 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,
1124
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
1125
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
1126
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
1127
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
1128
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
1129
+ 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,
1130
+ features: typing.Sequence[builtins.str],
1131
+ name: builtins.str,
1132
+ router: typing.Union[GatewayRouter, typing.Dict[builtins.str, typing.Any]],
1133
+ zone: builtins.str,
1134
+ address: typing.Optional[typing.Union[GatewayAddress, typing.Dict[builtins.str, typing.Any]]] = None,
1135
+ configured_status: typing.Optional[builtins.str] = None,
1136
+ id: typing.Optional[builtins.str] = None,
1137
+ labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1138
+ plan: typing.Optional[builtins.str] = None,
1139
+ ) -> None:
1140
+ """Type checking stubs"""
1141
+ pass
1142
+
1143
+ def _typecheckingstub__ec6d5ccf3e805f30e341a3cd9f4f396b1b94f09fded4ca2733934ac1d447f38b(
1144
+ *,
1145
+ id: builtins.str,
1146
+ ) -> None:
1147
+ """Type checking stubs"""
1148
+ pass
1149
+
1150
+ def _typecheckingstub__39cde6c30f5264645bf5e4ec2389eef0e33f665a768766f6f399789cd2aeebf6(
1151
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1152
+ terraform_attribute: builtins.str,
1153
+ ) -> None:
1154
+ """Type checking stubs"""
1155
+ pass
1156
+
1157
+ def _typecheckingstub__ab5ca3b00171a73e17cc382cbf956dd56828d5e5c1e4b79a39bb69f998be7b21(
1158
+ value: builtins.str,
1159
+ ) -> None:
1160
+ """Type checking stubs"""
1161
+ pass
1162
+
1163
+ def _typecheckingstub__5af2000bc2111ed75c0613b13003d2b17d86ab5ae8b1253df886868176e2553f(
1164
+ value: typing.Optional[GatewayRouter],
1165
+ ) -> None:
1166
+ """Type checking stubs"""
1167
+ pass