cdktf-cdktf-provider-upcloud 15.3.0__py3-none-any.whl → 15.4.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (69) hide show
  1. cdktf_cdktf_provider_upcloud/__init__.py +3 -3
  2. cdktf_cdktf_provider_upcloud/_jsii/__init__.py +2 -2
  3. cdktf_cdktf_provider_upcloud/_jsii/provider-upcloud@15.4.0.jsii.tgz +0 -0
  4. cdktf_cdktf_provider_upcloud/data_upcloud_hosts/__init__.py +9 -9
  5. cdktf_cdktf_provider_upcloud/data_upcloud_ip_addresses/__init__.py +7 -7
  6. cdktf_cdktf_provider_upcloud/data_upcloud_kubernetes_cluster/__init__.py +7 -7
  7. cdktf_cdktf_provider_upcloud/data_upcloud_load_balancer_dns_challenge_domain/__init__.py +4 -4
  8. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_mysql_sessions/__init__.py +22 -22
  9. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_opensearch_indices/__init__.py +13 -13
  10. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_postgresql_sessions/__init__.py +30 -30
  11. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_redis_sessions/__init__.py +22 -22
  12. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_valkey_sessions/__init__.py +22 -22
  13. cdktf_cdktf_provider_upcloud/data_upcloud_managed_object_storage_policies/__init__.py +10 -10
  14. cdktf_cdktf_provider_upcloud/data_upcloud_managed_object_storage_regions/__init__.py +7 -7
  15. cdktf_cdktf_provider_upcloud/data_upcloud_networks/__init__.py +13 -13
  16. cdktf_cdktf_provider_upcloud/data_upcloud_storage/__init__.py +28 -28
  17. cdktf_cdktf_provider_upcloud/data_upcloud_tags/__init__.py +7 -7
  18. cdktf_cdktf_provider_upcloud/data_upcloud_zone/__init__.py +10 -10
  19. cdktf_cdktf_provider_upcloud/data_upcloud_zones/__init__.py +7 -7
  20. cdktf_cdktf_provider_upcloud/firewall_rules/__init__.py +38 -38
  21. cdktf_cdktf_provider_upcloud/floating_ip_address/__init__.py +19 -19
  22. cdktf_cdktf_provider_upcloud/gateway/__init__.py +37 -37
  23. cdktf_cdktf_provider_upcloud/gateway_connection/__init__.py +34 -34
  24. cdktf_cdktf_provider_upcloud/gateway_connection_tunnel/__init__.py +61 -61
  25. cdktf_cdktf_provider_upcloud/kubernetes_cluster/__init__.py +35 -35
  26. cdktf_cdktf_provider_upcloud/kubernetes_node_group/__init__.py +73 -73
  27. cdktf_cdktf_provider_upcloud/loadbalancer/__init__.py +46 -46
  28. cdktf_cdktf_provider_upcloud/loadbalancer_backend/__init__.py +46 -46
  29. cdktf_cdktf_provider_upcloud/loadbalancer_backend_tls_config/__init__.py +13 -13
  30. cdktf_cdktf_provider_upcloud/loadbalancer_dynamic_backend_member/__init__.py +25 -25
  31. cdktf_cdktf_provider_upcloud/loadbalancer_dynamic_certificate_bundle/__init__.py +13 -13
  32. cdktf_cdktf_provider_upcloud/loadbalancer_frontend/__init__.py +33 -33
  33. cdktf_cdktf_provider_upcloud/loadbalancer_frontend_rule/__init__.py +228 -228
  34. cdktf_cdktf_provider_upcloud/loadbalancer_frontend_tls_config/__init__.py +13 -13
  35. cdktf_cdktf_provider_upcloud/loadbalancer_manual_certificate_bundle/__init__.py +16 -16
  36. cdktf_cdktf_provider_upcloud/loadbalancer_resolver/__init__.py +28 -28
  37. cdktf_cdktf_provider_upcloud/loadbalancer_static_backend_member/__init__.py +25 -25
  38. cdktf_cdktf_provider_upcloud/managed_database_logical_database/__init__.py +19 -19
  39. cdktf_cdktf_provider_upcloud/managed_database_mysql/__init__.py +210 -210
  40. cdktf_cdktf_provider_upcloud/managed_database_opensearch/__init__.py +694 -600
  41. cdktf_cdktf_provider_upcloud/managed_database_postgresql/__init__.py +401 -383
  42. cdktf_cdktf_provider_upcloud/managed_database_redis/__init__.py +132 -132
  43. cdktf_cdktf_provider_upcloud/managed_database_user/__init__.py +65 -65
  44. cdktf_cdktf_provider_upcloud/managed_database_valkey/__init__.py +135 -135
  45. cdktf_cdktf_provider_upcloud/managed_object_storage/__init__.py +30 -30
  46. cdktf_cdktf_provider_upcloud/managed_object_storage_bucket/__init__.py +10 -10
  47. cdktf_cdktf_provider_upcloud/managed_object_storage_custom_domain/__init__.py +13 -13
  48. cdktf_cdktf_provider_upcloud/managed_object_storage_policy/__init__.py +16 -16
  49. cdktf_cdktf_provider_upcloud/managed_object_storage_user/__init__.py +13 -13
  50. cdktf_cdktf_provider_upcloud/managed_object_storage_user_access_key/__init__.py +16 -16
  51. cdktf_cdktf_provider_upcloud/managed_object_storage_user_policy/__init__.py +16 -16
  52. cdktf_cdktf_provider_upcloud/network/__init__.py +501 -33
  53. cdktf_cdktf_provider_upcloud/network_peering/__init__.py +23 -23
  54. cdktf_cdktf_provider_upcloud/object_storage/__init__.py +30 -30
  55. cdktf_cdktf_provider_upcloud/provider/__init__.py +28 -28
  56. cdktf_cdktf_provider_upcloud/router/__init__.py +19 -19
  57. cdktf_cdktf_provider_upcloud/server/__init__.py +139 -139
  58. cdktf_cdktf_provider_upcloud/server_group/__init__.py +19 -19
  59. cdktf_cdktf_provider_upcloud/storage/__init__.py +51 -51
  60. cdktf_cdktf_provider_upcloud/storage_backup/__init__.py +13 -13
  61. cdktf_cdktf_provider_upcloud/storage_template/__init__.py +13 -13
  62. cdktf_cdktf_provider_upcloud/tag/__init__.py +16 -16
  63. {cdktf_cdktf_provider_upcloud-15.3.0.dist-info → cdktf_cdktf_provider_upcloud-15.4.0.dist-info}/METADATA +4 -4
  64. cdktf_cdktf_provider_upcloud-15.4.0.dist-info/RECORD +68 -0
  65. cdktf_cdktf_provider_upcloud/_jsii/provider-upcloud@15.3.0.jsii.tgz +0 -0
  66. cdktf_cdktf_provider_upcloud-15.3.0.dist-info/RECORD +0 -68
  67. {cdktf_cdktf_provider_upcloud-15.3.0.dist-info → cdktf_cdktf_provider_upcloud-15.4.0.dist-info}/LICENSE +0 -0
  68. {cdktf_cdktf_provider_upcloud-15.3.0.dist-info → cdktf_cdktf_provider_upcloud-15.4.0.dist-info}/WHEEL +0 -0
  69. {cdktf_cdktf_provider_upcloud-15.3.0.dist-info → cdktf_cdktf_provider_upcloud-15.4.0.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  r'''
2
2
  # `upcloud_network`
3
3
 
4
- Refer to the Terraform Registry for docs: [`upcloud_network`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network).
4
+ Refer to the Terraform Registry for docs: [`upcloud_network`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network).
5
5
  '''
6
6
  from pkgutil import extend_path
7
7
  __path__ = extend_path(__path__, __name__)
@@ -44,7 +44,7 @@ class Network(
44
44
  metaclass=jsii.JSIIMeta,
45
45
  jsii_type="@cdktf/provider-upcloud.network.Network",
46
46
  ):
47
- '''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network upcloud_network}.'''
47
+ '''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network upcloud_network}.'''
48
48
 
49
49
  def __init__(
50
50
  self,
@@ -64,15 +64,15 @@ class Network(
64
64
  provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
65
65
  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,
66
66
  ) -> None:
67
- '''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network upcloud_network} Resource.
67
+ '''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network upcloud_network} Resource.
68
68
 
69
69
  :param scope: The scope in which to define this construct.
70
70
  :param id: The scoped construct ID. Must be unique amongst siblings in the same scope
71
- :param name: Name of the network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#name Network#name}
72
- :param zone: The zone the network is in, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#zone Network#zone}
73
- :param ip_network: ip_network block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#ip_network Network#ip_network}
74
- :param labels: User defined key-value pairs to classify the network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#labels Network#labels}
75
- :param router: UUID of a router to attach to this network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#router Network#router}
71
+ :param name: Name of the network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#name Network#name}
72
+ :param zone: The zone the network is in, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#zone Network#zone}
73
+ :param ip_network: ip_network block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#ip_network Network#ip_network}
74
+ :param labels: User defined key-value pairs to classify the network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#labels Network#labels}
75
+ :param router: UUID of a router to attach to this network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#router Network#router}
76
76
  :param connection:
77
77
  :param count:
78
78
  :param depends_on:
@@ -115,7 +115,7 @@ class Network(
115
115
 
116
116
  :param scope: The scope in which to define this construct.
117
117
  :param import_to_id: The construct id used in the generated config for the Network to import.
118
- :param import_from_id: The id of the existing Network that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#import import section} in the documentation of this resource for the id to use
118
+ :param import_from_id: The id of the existing Network that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#import import section} in the documentation of this resource for the id to use
119
119
  :param provider: ? Optional instance of the provider where the Network to import is found.
120
120
  '''
121
121
  if __debug__:
@@ -300,11 +300,11 @@ class NetworkConfig(_cdktf_9a9027ec.TerraformMetaArguments):
300
300
  :param lifecycle:
301
301
  :param provider:
302
302
  :param provisioners:
303
- :param name: Name of the network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#name Network#name}
304
- :param zone: The zone the network is in, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#zone Network#zone}
305
- :param ip_network: ip_network block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#ip_network Network#ip_network}
306
- :param labels: User defined key-value pairs to classify the network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#labels Network#labels}
307
- :param router: UUID of a router to attach to this network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#router Network#router}
303
+ :param name: Name of the network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#name Network#name}
304
+ :param zone: The zone the network is in, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#zone Network#zone}
305
+ :param ip_network: ip_network block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#ip_network Network#ip_network}
306
+ :param labels: User defined key-value pairs to classify the network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#labels Network#labels}
307
+ :param router: UUID of a router to attach to this network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#router Network#router}
308
308
  '''
309
309
  if isinstance(lifecycle, dict):
310
310
  lifecycle = _cdktf_9a9027ec.TerraformResourceLifecycle(**lifecycle)
@@ -415,7 +415,7 @@ class NetworkConfig(_cdktf_9a9027ec.TerraformMetaArguments):
415
415
  def name(self) -> builtins.str:
416
416
  '''Name of the network.
417
417
 
418
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#name Network#name}
418
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#name Network#name}
419
419
  '''
420
420
  result = self._values.get("name")
421
421
  assert result is not None, "Required property 'name' is missing"
@@ -425,7 +425,7 @@ class NetworkConfig(_cdktf_9a9027ec.TerraformMetaArguments):
425
425
  def zone(self) -> builtins.str:
426
426
  '''The zone the network is in, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``.
427
427
 
428
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#zone Network#zone}
428
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#zone Network#zone}
429
429
  '''
430
430
  result = self._values.get("zone")
431
431
  assert result is not None, "Required property 'zone' is missing"
@@ -437,7 +437,7 @@ class NetworkConfig(_cdktf_9a9027ec.TerraformMetaArguments):
437
437
  ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["NetworkIpNetwork"]]]:
438
438
  '''ip_network block.
439
439
 
440
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#ip_network Network#ip_network}
440
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#ip_network Network#ip_network}
441
441
  '''
442
442
  result = self._values.get("ip_network")
443
443
  return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["NetworkIpNetwork"]]], result)
@@ -446,7 +446,7 @@ class NetworkConfig(_cdktf_9a9027ec.TerraformMetaArguments):
446
446
  def labels(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
447
447
  '''User defined key-value pairs to classify the network.
448
448
 
449
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#labels Network#labels}
449
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#labels Network#labels}
450
450
  '''
451
451
  result = self._values.get("labels")
452
452
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
@@ -455,7 +455,7 @@ class NetworkConfig(_cdktf_9a9027ec.TerraformMetaArguments):
455
455
  def router(self) -> typing.Optional[builtins.str]:
456
456
  '''UUID of a router to attach to this network.
457
457
 
458
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#router Network#router}
458
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#router Network#router}
459
459
  '''
460
460
  result = self._values.get("router")
461
461
  return typing.cast(typing.Optional[builtins.str], result)
@@ -482,6 +482,7 @@ class NetworkConfig(_cdktf_9a9027ec.TerraformMetaArguments):
482
482
  "dhcp_default_route": "dhcpDefaultRoute",
483
483
  "dhcp_dns": "dhcpDns",
484
484
  "dhcp_routes": "dhcpRoutes",
485
+ "dhcp_routes_configuration": "dhcpRoutesConfiguration",
485
486
  "gateway": "gateway",
486
487
  },
487
488
  )
@@ -495,17 +496,21 @@ class NetworkIpNetwork:
495
496
  dhcp_default_route: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
496
497
  dhcp_dns: typing.Optional[typing.Sequence[builtins.str]] = None,
497
498
  dhcp_routes: typing.Optional[typing.Sequence[builtins.str]] = None,
499
+ dhcp_routes_configuration: typing.Optional[typing.Union["NetworkIpNetworkDhcpRoutesConfiguration", typing.Dict[builtins.str, typing.Any]]] = None,
498
500
  gateway: typing.Optional[builtins.str] = None,
499
501
  ) -> None:
500
502
  '''
501
- :param address: The CIDR range of the subnet. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#address Network#address}
502
- :param dhcp: Is DHCP enabled? Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#dhcp Network#dhcp}
503
- :param family: IP address family. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#family Network#family}
504
- :param dhcp_default_route: Is the gateway the DHCP default route? Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#dhcp_default_route Network#dhcp_default_route}
505
- :param dhcp_dns: The DNS servers given by DHCP. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#dhcp_dns Network#dhcp_dns}
506
- :param dhcp_routes: The additional DHCP classless static routes given by DHCP. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#dhcp_routes Network#dhcp_routes}
507
- :param gateway: Gateway address given by DHCP. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#gateway Network#gateway}
503
+ :param address: The CIDR range of the subnet. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#address Network#address}
504
+ :param dhcp: Is DHCP enabled? Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#dhcp Network#dhcp}
505
+ :param family: IP address family. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#family Network#family}
506
+ :param dhcp_default_route: Is the gateway the DHCP default route? Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#dhcp_default_route Network#dhcp_default_route}
507
+ :param dhcp_dns: The DNS servers given by DHCP. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#dhcp_dns Network#dhcp_dns}
508
+ :param dhcp_routes: The additional DHCP classless static routes given by DHCP. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#dhcp_routes Network#dhcp_routes}
509
+ :param dhcp_routes_configuration: DHCP routes auto-population configuration. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#dhcp_routes_configuration Network#dhcp_routes_configuration}
510
+ :param gateway: Gateway address given by DHCP. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#gateway Network#gateway}
508
511
  '''
512
+ if isinstance(dhcp_routes_configuration, dict):
513
+ dhcp_routes_configuration = NetworkIpNetworkDhcpRoutesConfiguration(**dhcp_routes_configuration)
509
514
  if __debug__:
510
515
  type_hints = typing.get_type_hints(_typecheckingstub__a0ad6fbb444600379383ae462fe5ae2d8f24c848db9a320e7d111545c9b44b65)
511
516
  check_type(argname="argument address", value=address, expected_type=type_hints["address"])
@@ -514,6 +519,7 @@ class NetworkIpNetwork:
514
519
  check_type(argname="argument dhcp_default_route", value=dhcp_default_route, expected_type=type_hints["dhcp_default_route"])
515
520
  check_type(argname="argument dhcp_dns", value=dhcp_dns, expected_type=type_hints["dhcp_dns"])
516
521
  check_type(argname="argument dhcp_routes", value=dhcp_routes, expected_type=type_hints["dhcp_routes"])
522
+ check_type(argname="argument dhcp_routes_configuration", value=dhcp_routes_configuration, expected_type=type_hints["dhcp_routes_configuration"])
517
523
  check_type(argname="argument gateway", value=gateway, expected_type=type_hints["gateway"])
518
524
  self._values: typing.Dict[builtins.str, typing.Any] = {
519
525
  "address": address,
@@ -526,6 +532,8 @@ class NetworkIpNetwork:
526
532
  self._values["dhcp_dns"] = dhcp_dns
527
533
  if dhcp_routes is not None:
528
534
  self._values["dhcp_routes"] = dhcp_routes
535
+ if dhcp_routes_configuration is not None:
536
+ self._values["dhcp_routes_configuration"] = dhcp_routes_configuration
529
537
  if gateway is not None:
530
538
  self._values["gateway"] = gateway
531
539
 
@@ -533,7 +541,7 @@ class NetworkIpNetwork:
533
541
  def address(self) -> builtins.str:
534
542
  '''The CIDR range of the subnet.
535
543
 
536
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#address Network#address}
544
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#address Network#address}
537
545
  '''
538
546
  result = self._values.get("address")
539
547
  assert result is not None, "Required property 'address' is missing"
@@ -543,7 +551,7 @@ class NetworkIpNetwork:
543
551
  def dhcp(self) -> typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]:
544
552
  '''Is DHCP enabled?
545
553
 
546
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#dhcp Network#dhcp}
554
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#dhcp Network#dhcp}
547
555
  '''
548
556
  result = self._values.get("dhcp")
549
557
  assert result is not None, "Required property 'dhcp' is missing"
@@ -553,7 +561,7 @@ class NetworkIpNetwork:
553
561
  def family(self) -> builtins.str:
554
562
  '''IP address family.
555
563
 
556
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#family Network#family}
564
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#family Network#family}
557
565
  '''
558
566
  result = self._values.get("family")
559
567
  assert result is not None, "Required property 'family' is missing"
@@ -565,7 +573,7 @@ class NetworkIpNetwork:
565
573
  ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
566
574
  '''Is the gateway the DHCP default route?
567
575
 
568
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#dhcp_default_route Network#dhcp_default_route}
576
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#dhcp_default_route Network#dhcp_default_route}
569
577
  '''
570
578
  result = self._values.get("dhcp_default_route")
571
579
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
@@ -574,7 +582,7 @@ class NetworkIpNetwork:
574
582
  def dhcp_dns(self) -> typing.Optional[typing.List[builtins.str]]:
575
583
  '''The DNS servers given by DHCP.
576
584
 
577
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#dhcp_dns Network#dhcp_dns}
585
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#dhcp_dns Network#dhcp_dns}
578
586
  '''
579
587
  result = self._values.get("dhcp_dns")
580
588
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
@@ -583,16 +591,27 @@ class NetworkIpNetwork:
583
591
  def dhcp_routes(self) -> typing.Optional[typing.List[builtins.str]]:
584
592
  '''The additional DHCP classless static routes given by DHCP.
585
593
 
586
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#dhcp_routes Network#dhcp_routes}
594
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#dhcp_routes Network#dhcp_routes}
587
595
  '''
588
596
  result = self._values.get("dhcp_routes")
589
597
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
590
598
 
599
+ @builtins.property
600
+ def dhcp_routes_configuration(
601
+ self,
602
+ ) -> typing.Optional["NetworkIpNetworkDhcpRoutesConfiguration"]:
603
+ '''DHCP routes auto-population configuration.
604
+
605
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#dhcp_routes_configuration Network#dhcp_routes_configuration}
606
+ '''
607
+ result = self._values.get("dhcp_routes_configuration")
608
+ return typing.cast(typing.Optional["NetworkIpNetworkDhcpRoutesConfiguration"], result)
609
+
591
610
  @builtins.property
592
611
  def gateway(self) -> typing.Optional[builtins.str]:
593
612
  '''Gateway address given by DHCP.
594
613
 
595
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.25.0/docs/resources/network#gateway Network#gateway}
614
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#gateway Network#gateway}
596
615
  '''
597
616
  result = self._values.get("gateway")
598
617
  return typing.cast(typing.Optional[builtins.str], result)
@@ -609,6 +628,350 @@ class NetworkIpNetwork:
609
628
  )
610
629
 
611
630
 
631
+ @jsii.data_type(
632
+ jsii_type="@cdktf/provider-upcloud.network.NetworkIpNetworkDhcpRoutesConfiguration",
633
+ jsii_struct_bases=[],
634
+ name_mapping={"effective_routes_auto_population": "effectiveRoutesAutoPopulation"},
635
+ )
636
+ class NetworkIpNetworkDhcpRoutesConfiguration:
637
+ def __init__(
638
+ self,
639
+ *,
640
+ effective_routes_auto_population: typing.Optional[typing.Union["NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation", typing.Dict[builtins.str, typing.Any]]] = None,
641
+ ) -> None:
642
+ '''
643
+ :param effective_routes_auto_population: Automatically populate effective routes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#effective_routes_auto_population Network#effective_routes_auto_population}
644
+ '''
645
+ if isinstance(effective_routes_auto_population, dict):
646
+ effective_routes_auto_population = NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation(**effective_routes_auto_population)
647
+ if __debug__:
648
+ type_hints = typing.get_type_hints(_typecheckingstub__e093a663a7e17f847af4e4e7eae4c852310875eafb27f4a72edc8348705011fd)
649
+ check_type(argname="argument effective_routes_auto_population", value=effective_routes_auto_population, expected_type=type_hints["effective_routes_auto_population"])
650
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
651
+ if effective_routes_auto_population is not None:
652
+ self._values["effective_routes_auto_population"] = effective_routes_auto_population
653
+
654
+ @builtins.property
655
+ def effective_routes_auto_population(
656
+ self,
657
+ ) -> typing.Optional["NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation"]:
658
+ '''Automatically populate effective routes.
659
+
660
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#effective_routes_auto_population Network#effective_routes_auto_population}
661
+ '''
662
+ result = self._values.get("effective_routes_auto_population")
663
+ return typing.cast(typing.Optional["NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation"], result)
664
+
665
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
666
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
667
+
668
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
669
+ return not (rhs == self)
670
+
671
+ def __repr__(self) -> str:
672
+ return "NetworkIpNetworkDhcpRoutesConfiguration(%s)" % ", ".join(
673
+ k + "=" + repr(v) for k, v in self._values.items()
674
+ )
675
+
676
+
677
+ @jsii.data_type(
678
+ jsii_type="@cdktf/provider-upcloud.network.NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation",
679
+ jsii_struct_bases=[],
680
+ name_mapping={
681
+ "enabled": "enabled",
682
+ "exclude_by_source": "excludeBySource",
683
+ "filter_by_destination": "filterByDestination",
684
+ "filter_by_route_type": "filterByRouteType",
685
+ },
686
+ )
687
+ class NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation:
688
+ def __init__(
689
+ self,
690
+ *,
691
+ enabled: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
692
+ exclude_by_source: typing.Optional[typing.Sequence[builtins.str]] = None,
693
+ filter_by_destination: typing.Optional[typing.Sequence[builtins.str]] = None,
694
+ filter_by_route_type: typing.Optional[typing.Sequence[builtins.str]] = None,
695
+ ) -> None:
696
+ '''
697
+ :param enabled: Enable or disable route auto-population. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#enabled Network#enabled}
698
+ :param exclude_by_source: Exclude routes coming from specific sources (router-connected-networks, static-route). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#exclude_by_source Network#exclude_by_source}
699
+ :param filter_by_destination: CIDR destinations to include when auto-populating routes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#filter_by_destination Network#filter_by_destination}
700
+ :param filter_by_route_type: Include only routes of given types (service, user). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#filter_by_route_type Network#filter_by_route_type}
701
+ '''
702
+ if __debug__:
703
+ type_hints = typing.get_type_hints(_typecheckingstub__a6023eec1db2445dd43f37ead4e02235e6ec46568998841c16890561375dd178)
704
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
705
+ check_type(argname="argument exclude_by_source", value=exclude_by_source, expected_type=type_hints["exclude_by_source"])
706
+ check_type(argname="argument filter_by_destination", value=filter_by_destination, expected_type=type_hints["filter_by_destination"])
707
+ check_type(argname="argument filter_by_route_type", value=filter_by_route_type, expected_type=type_hints["filter_by_route_type"])
708
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
709
+ if enabled is not None:
710
+ self._values["enabled"] = enabled
711
+ if exclude_by_source is not None:
712
+ self._values["exclude_by_source"] = exclude_by_source
713
+ if filter_by_destination is not None:
714
+ self._values["filter_by_destination"] = filter_by_destination
715
+ if filter_by_route_type is not None:
716
+ self._values["filter_by_route_type"] = filter_by_route_type
717
+
718
+ @builtins.property
719
+ def enabled(
720
+ self,
721
+ ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
722
+ '''Enable or disable route auto-population.
723
+
724
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#enabled Network#enabled}
725
+ '''
726
+ result = self._values.get("enabled")
727
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
728
+
729
+ @builtins.property
730
+ def exclude_by_source(self) -> typing.Optional[typing.List[builtins.str]]:
731
+ '''Exclude routes coming from specific sources (router-connected-networks, static-route).
732
+
733
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#exclude_by_source Network#exclude_by_source}
734
+ '''
735
+ result = self._values.get("exclude_by_source")
736
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
737
+
738
+ @builtins.property
739
+ def filter_by_destination(self) -> typing.Optional[typing.List[builtins.str]]:
740
+ '''CIDR destinations to include when auto-populating routes.
741
+
742
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#filter_by_destination Network#filter_by_destination}
743
+ '''
744
+ result = self._values.get("filter_by_destination")
745
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
746
+
747
+ @builtins.property
748
+ def filter_by_route_type(self) -> typing.Optional[typing.List[builtins.str]]:
749
+ '''Include only routes of given types (service, user).
750
+
751
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#filter_by_route_type Network#filter_by_route_type}
752
+ '''
753
+ result = self._values.get("filter_by_route_type")
754
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
755
+
756
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
757
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
758
+
759
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
760
+ return not (rhs == self)
761
+
762
+ def __repr__(self) -> str:
763
+ return "NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation(%s)" % ", ".join(
764
+ k + "=" + repr(v) for k, v in self._values.items()
765
+ )
766
+
767
+
768
+ class NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationOutputReference(
769
+ _cdktf_9a9027ec.ComplexObject,
770
+ metaclass=jsii.JSIIMeta,
771
+ jsii_type="@cdktf/provider-upcloud.network.NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationOutputReference",
772
+ ):
773
+ def __init__(
774
+ self,
775
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
776
+ terraform_attribute: builtins.str,
777
+ ) -> None:
778
+ '''
779
+ :param terraform_resource: The parent resource.
780
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
781
+ '''
782
+ if __debug__:
783
+ type_hints = typing.get_type_hints(_typecheckingstub__5154725e134af25091da6fe15aec50b950f3ec115b4275a8daaf555f42d7bef3)
784
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
785
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
786
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute])
787
+
788
+ @jsii.member(jsii_name="resetEnabled")
789
+ def reset_enabled(self) -> None:
790
+ return typing.cast(None, jsii.invoke(self, "resetEnabled", []))
791
+
792
+ @jsii.member(jsii_name="resetExcludeBySource")
793
+ def reset_exclude_by_source(self) -> None:
794
+ return typing.cast(None, jsii.invoke(self, "resetExcludeBySource", []))
795
+
796
+ @jsii.member(jsii_name="resetFilterByDestination")
797
+ def reset_filter_by_destination(self) -> None:
798
+ return typing.cast(None, jsii.invoke(self, "resetFilterByDestination", []))
799
+
800
+ @jsii.member(jsii_name="resetFilterByRouteType")
801
+ def reset_filter_by_route_type(self) -> None:
802
+ return typing.cast(None, jsii.invoke(self, "resetFilterByRouteType", []))
803
+
804
+ @builtins.property
805
+ @jsii.member(jsii_name="enabledInput")
806
+ def enabled_input(
807
+ self,
808
+ ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
809
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], jsii.get(self, "enabledInput"))
810
+
811
+ @builtins.property
812
+ @jsii.member(jsii_name="excludeBySourceInput")
813
+ def exclude_by_source_input(self) -> typing.Optional[typing.List[builtins.str]]:
814
+ return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "excludeBySourceInput"))
815
+
816
+ @builtins.property
817
+ @jsii.member(jsii_name="filterByDestinationInput")
818
+ def filter_by_destination_input(self) -> typing.Optional[typing.List[builtins.str]]:
819
+ return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "filterByDestinationInput"))
820
+
821
+ @builtins.property
822
+ @jsii.member(jsii_name="filterByRouteTypeInput")
823
+ def filter_by_route_type_input(self) -> typing.Optional[typing.List[builtins.str]]:
824
+ return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "filterByRouteTypeInput"))
825
+
826
+ @builtins.property
827
+ @jsii.member(jsii_name="enabled")
828
+ def enabled(self) -> typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]:
829
+ return typing.cast(typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable], jsii.get(self, "enabled"))
830
+
831
+ @enabled.setter
832
+ def enabled(
833
+ self,
834
+ value: typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable],
835
+ ) -> None:
836
+ if __debug__:
837
+ type_hints = typing.get_type_hints(_typecheckingstub__eb632c0e7bc51fc09c3c5a300ef5673385f19718a84dd01eb25d5d086d85129b)
838
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
839
+ jsii.set(self, "enabled", value) # pyright: ignore[reportArgumentType]
840
+
841
+ @builtins.property
842
+ @jsii.member(jsii_name="excludeBySource")
843
+ def exclude_by_source(self) -> typing.List[builtins.str]:
844
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "excludeBySource"))
845
+
846
+ @exclude_by_source.setter
847
+ def exclude_by_source(self, value: typing.List[builtins.str]) -> None:
848
+ if __debug__:
849
+ type_hints = typing.get_type_hints(_typecheckingstub__d1b462c5215dd6903264ae102fcffcffe99df9fcc2f60b855c473ce63f0a6db0)
850
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
851
+ jsii.set(self, "excludeBySource", value) # pyright: ignore[reportArgumentType]
852
+
853
+ @builtins.property
854
+ @jsii.member(jsii_name="filterByDestination")
855
+ def filter_by_destination(self) -> typing.List[builtins.str]:
856
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "filterByDestination"))
857
+
858
+ @filter_by_destination.setter
859
+ def filter_by_destination(self, value: typing.List[builtins.str]) -> None:
860
+ if __debug__:
861
+ type_hints = typing.get_type_hints(_typecheckingstub__729ada18fe84088b56efb0dc585bbe0cd533f9fca0b15a0a000cd56d4867e75f)
862
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
863
+ jsii.set(self, "filterByDestination", value) # pyright: ignore[reportArgumentType]
864
+
865
+ @builtins.property
866
+ @jsii.member(jsii_name="filterByRouteType")
867
+ def filter_by_route_type(self) -> typing.List[builtins.str]:
868
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "filterByRouteType"))
869
+
870
+ @filter_by_route_type.setter
871
+ def filter_by_route_type(self, value: typing.List[builtins.str]) -> None:
872
+ if __debug__:
873
+ type_hints = typing.get_type_hints(_typecheckingstub__0ea604314bfdc380cb27e6f1e43132d5e390385ac5a57746a6aa96e64b75482c)
874
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
875
+ jsii.set(self, "filterByRouteType", value) # pyright: ignore[reportArgumentType]
876
+
877
+ @builtins.property
878
+ @jsii.member(jsii_name="internalValue")
879
+ def internal_value(
880
+ self,
881
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation]]:
882
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation]], jsii.get(self, "internalValue"))
883
+
884
+ @internal_value.setter
885
+ def internal_value(
886
+ self,
887
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation]],
888
+ ) -> None:
889
+ if __debug__:
890
+ type_hints = typing.get_type_hints(_typecheckingstub__6b09fc8a571d92e94a092e6c95e332bfd1bf3163485b318f9949b0ffc4190f93)
891
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
892
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
893
+
894
+
895
+ class NetworkIpNetworkDhcpRoutesConfigurationOutputReference(
896
+ _cdktf_9a9027ec.ComplexObject,
897
+ metaclass=jsii.JSIIMeta,
898
+ jsii_type="@cdktf/provider-upcloud.network.NetworkIpNetworkDhcpRoutesConfigurationOutputReference",
899
+ ):
900
+ def __init__(
901
+ self,
902
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
903
+ terraform_attribute: builtins.str,
904
+ ) -> None:
905
+ '''
906
+ :param terraform_resource: The parent resource.
907
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
908
+ '''
909
+ if __debug__:
910
+ type_hints = typing.get_type_hints(_typecheckingstub__0e4f8479329456b927c893ac19827b372c450c70ba1fc959464d32e247c375a1)
911
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
912
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
913
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute])
914
+
915
+ @jsii.member(jsii_name="putEffectiveRoutesAutoPopulation")
916
+ def put_effective_routes_auto_population(
917
+ self,
918
+ *,
919
+ enabled: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
920
+ exclude_by_source: typing.Optional[typing.Sequence[builtins.str]] = None,
921
+ filter_by_destination: typing.Optional[typing.Sequence[builtins.str]] = None,
922
+ filter_by_route_type: typing.Optional[typing.Sequence[builtins.str]] = None,
923
+ ) -> None:
924
+ '''
925
+ :param enabled: Enable or disable route auto-population. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#enabled Network#enabled}
926
+ :param exclude_by_source: Exclude routes coming from specific sources (router-connected-networks, static-route). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#exclude_by_source Network#exclude_by_source}
927
+ :param filter_by_destination: CIDR destinations to include when auto-populating routes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#filter_by_destination Network#filter_by_destination}
928
+ :param filter_by_route_type: Include only routes of given types (service, user). Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#filter_by_route_type Network#filter_by_route_type}
929
+ '''
930
+ value = NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation(
931
+ enabled=enabled,
932
+ exclude_by_source=exclude_by_source,
933
+ filter_by_destination=filter_by_destination,
934
+ filter_by_route_type=filter_by_route_type,
935
+ )
936
+
937
+ return typing.cast(None, jsii.invoke(self, "putEffectiveRoutesAutoPopulation", [value]))
938
+
939
+ @jsii.member(jsii_name="resetEffectiveRoutesAutoPopulation")
940
+ def reset_effective_routes_auto_population(self) -> None:
941
+ return typing.cast(None, jsii.invoke(self, "resetEffectiveRoutesAutoPopulation", []))
942
+
943
+ @builtins.property
944
+ @jsii.member(jsii_name="effectiveRoutesAutoPopulation")
945
+ def effective_routes_auto_population(
946
+ self,
947
+ ) -> NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationOutputReference:
948
+ return typing.cast(NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationOutputReference, jsii.get(self, "effectiveRoutesAutoPopulation"))
949
+
950
+ @builtins.property
951
+ @jsii.member(jsii_name="effectiveRoutesAutoPopulationInput")
952
+ def effective_routes_auto_population_input(
953
+ self,
954
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation]]:
955
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation]], jsii.get(self, "effectiveRoutesAutoPopulationInput"))
956
+
957
+ @builtins.property
958
+ @jsii.member(jsii_name="internalValue")
959
+ def internal_value(
960
+ self,
961
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, NetworkIpNetworkDhcpRoutesConfiguration]]:
962
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, NetworkIpNetworkDhcpRoutesConfiguration]], jsii.get(self, "internalValue"))
963
+
964
+ @internal_value.setter
965
+ def internal_value(
966
+ self,
967
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, NetworkIpNetworkDhcpRoutesConfiguration]],
968
+ ) -> None:
969
+ if __debug__:
970
+ type_hints = typing.get_type_hints(_typecheckingstub__aec9916471abe705733f917c52d9aa147f3905fe68e15f94c8dfeea2115a2f87)
971
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
972
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
973
+
974
+
612
975
  class NetworkIpNetworkList(
613
976
  _cdktf_9a9027ec.ComplexList,
614
977
  metaclass=jsii.JSIIMeta,
@@ -725,6 +1088,21 @@ class NetworkIpNetworkOutputReference(
725
1088
  check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
726
1089
  jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])
727
1090
 
1091
+ @jsii.member(jsii_name="putDhcpRoutesConfiguration")
1092
+ def put_dhcp_routes_configuration(
1093
+ self,
1094
+ *,
1095
+ effective_routes_auto_population: typing.Optional[typing.Union[NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation, typing.Dict[builtins.str, typing.Any]]] = None,
1096
+ ) -> None:
1097
+ '''
1098
+ :param effective_routes_auto_population: Automatically populate effective routes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.27.0/docs/resources/network#effective_routes_auto_population Network#effective_routes_auto_population}
1099
+ '''
1100
+ value = NetworkIpNetworkDhcpRoutesConfiguration(
1101
+ effective_routes_auto_population=effective_routes_auto_population
1102
+ )
1103
+
1104
+ return typing.cast(None, jsii.invoke(self, "putDhcpRoutesConfiguration", [value]))
1105
+
728
1106
  @jsii.member(jsii_name="resetDhcpDefaultRoute")
729
1107
  def reset_dhcp_default_route(self) -> None:
730
1108
  return typing.cast(None, jsii.invoke(self, "resetDhcpDefaultRoute", []))
@@ -737,10 +1115,21 @@ class NetworkIpNetworkOutputReference(
737
1115
  def reset_dhcp_routes(self) -> None:
738
1116
  return typing.cast(None, jsii.invoke(self, "resetDhcpRoutes", []))
739
1117
 
1118
+ @jsii.member(jsii_name="resetDhcpRoutesConfiguration")
1119
+ def reset_dhcp_routes_configuration(self) -> None:
1120
+ return typing.cast(None, jsii.invoke(self, "resetDhcpRoutesConfiguration", []))
1121
+
740
1122
  @jsii.member(jsii_name="resetGateway")
741
1123
  def reset_gateway(self) -> None:
742
1124
  return typing.cast(None, jsii.invoke(self, "resetGateway", []))
743
1125
 
1126
+ @builtins.property
1127
+ @jsii.member(jsii_name="dhcpRoutesConfiguration")
1128
+ def dhcp_routes_configuration(
1129
+ self,
1130
+ ) -> NetworkIpNetworkDhcpRoutesConfigurationOutputReference:
1131
+ return typing.cast(NetworkIpNetworkDhcpRoutesConfigurationOutputReference, jsii.get(self, "dhcpRoutesConfiguration"))
1132
+
744
1133
  @builtins.property
745
1134
  @jsii.member(jsii_name="addressInput")
746
1135
  def address_input(self) -> typing.Optional[builtins.str]:
@@ -765,6 +1154,13 @@ class NetworkIpNetworkOutputReference(
765
1154
  ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
766
1155
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], jsii.get(self, "dhcpInput"))
767
1156
 
1157
+ @builtins.property
1158
+ @jsii.member(jsii_name="dhcpRoutesConfigurationInput")
1159
+ def dhcp_routes_configuration_input(
1160
+ self,
1161
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, NetworkIpNetworkDhcpRoutesConfiguration]]:
1162
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, NetworkIpNetworkDhcpRoutesConfiguration]], jsii.get(self, "dhcpRoutesConfigurationInput"))
1163
+
768
1164
  @builtins.property
769
1165
  @jsii.member(jsii_name="dhcpRoutesInput")
770
1166
  def dhcp_routes_input(self) -> typing.Optional[typing.List[builtins.str]]:
@@ -894,6 +1290,10 @@ __all__ = [
894
1290
  "Network",
895
1291
  "NetworkConfig",
896
1292
  "NetworkIpNetwork",
1293
+ "NetworkIpNetworkDhcpRoutesConfiguration",
1294
+ "NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation",
1295
+ "NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationOutputReference",
1296
+ "NetworkIpNetworkDhcpRoutesConfigurationOutputReference",
897
1297
  "NetworkIpNetworkList",
898
1298
  "NetworkIpNetworkOutputReference",
899
1299
  ]
@@ -985,11 +1385,79 @@ def _typecheckingstub__a0ad6fbb444600379383ae462fe5ae2d8f24c848db9a320e7d111545c
985
1385
  dhcp_default_route: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
986
1386
  dhcp_dns: typing.Optional[typing.Sequence[builtins.str]] = None,
987
1387
  dhcp_routes: typing.Optional[typing.Sequence[builtins.str]] = None,
1388
+ dhcp_routes_configuration: typing.Optional[typing.Union[NetworkIpNetworkDhcpRoutesConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
988
1389
  gateway: typing.Optional[builtins.str] = None,
989
1390
  ) -> None:
990
1391
  """Type checking stubs"""
991
1392
  pass
992
1393
 
1394
+ def _typecheckingstub__e093a663a7e17f847af4e4e7eae4c852310875eafb27f4a72edc8348705011fd(
1395
+ *,
1396
+ effective_routes_auto_population: typing.Optional[typing.Union[NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation, typing.Dict[builtins.str, typing.Any]]] = None,
1397
+ ) -> None:
1398
+ """Type checking stubs"""
1399
+ pass
1400
+
1401
+ def _typecheckingstub__a6023eec1db2445dd43f37ead4e02235e6ec46568998841c16890561375dd178(
1402
+ *,
1403
+ enabled: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
1404
+ exclude_by_source: typing.Optional[typing.Sequence[builtins.str]] = None,
1405
+ filter_by_destination: typing.Optional[typing.Sequence[builtins.str]] = None,
1406
+ filter_by_route_type: typing.Optional[typing.Sequence[builtins.str]] = None,
1407
+ ) -> None:
1408
+ """Type checking stubs"""
1409
+ pass
1410
+
1411
+ def _typecheckingstub__5154725e134af25091da6fe15aec50b950f3ec115b4275a8daaf555f42d7bef3(
1412
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1413
+ terraform_attribute: builtins.str,
1414
+ ) -> None:
1415
+ """Type checking stubs"""
1416
+ pass
1417
+
1418
+ def _typecheckingstub__eb632c0e7bc51fc09c3c5a300ef5673385f19718a84dd01eb25d5d086d85129b(
1419
+ value: typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable],
1420
+ ) -> None:
1421
+ """Type checking stubs"""
1422
+ pass
1423
+
1424
+ def _typecheckingstub__d1b462c5215dd6903264ae102fcffcffe99df9fcc2f60b855c473ce63f0a6db0(
1425
+ value: typing.List[builtins.str],
1426
+ ) -> None:
1427
+ """Type checking stubs"""
1428
+ pass
1429
+
1430
+ def _typecheckingstub__729ada18fe84088b56efb0dc585bbe0cd533f9fca0b15a0a000cd56d4867e75f(
1431
+ value: typing.List[builtins.str],
1432
+ ) -> None:
1433
+ """Type checking stubs"""
1434
+ pass
1435
+
1436
+ def _typecheckingstub__0ea604314bfdc380cb27e6f1e43132d5e390385ac5a57746a6aa96e64b75482c(
1437
+ value: typing.List[builtins.str],
1438
+ ) -> None:
1439
+ """Type checking stubs"""
1440
+ pass
1441
+
1442
+ def _typecheckingstub__6b09fc8a571d92e94a092e6c95e332bfd1bf3163485b318f9949b0ffc4190f93(
1443
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation]],
1444
+ ) -> None:
1445
+ """Type checking stubs"""
1446
+ pass
1447
+
1448
+ def _typecheckingstub__0e4f8479329456b927c893ac19827b372c450c70ba1fc959464d32e247c375a1(
1449
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1450
+ terraform_attribute: builtins.str,
1451
+ ) -> None:
1452
+ """Type checking stubs"""
1453
+ pass
1454
+
1455
+ def _typecheckingstub__aec9916471abe705733f917c52d9aa147f3905fe68e15f94c8dfeea2115a2f87(
1456
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, NetworkIpNetworkDhcpRoutesConfiguration]],
1457
+ ) -> None:
1458
+ """Type checking stubs"""
1459
+ pass
1460
+
993
1461
  def _typecheckingstub__d075c5e124ac073e3ebfbc4057a65313dec6e4845a13341f7cf80b6c0d2c183c(
994
1462
  terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
995
1463
  terraform_attribute: builtins.str,