cdktf-cdktf-provider-upcloud 14.21.0__py3-none-any.whl → 15.0.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 +5 -3
  2. cdktf_cdktf_provider_upcloud/_jsii/__init__.py +2 -2
  3. cdktf_cdktf_provider_upcloud/_jsii/provider-upcloud@15.0.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 +41 -41
  21. cdktf_cdktf_provider_upcloud/floating_ip_address/__init__.py +16 -16
  22. cdktf_cdktf_provider_upcloud/gateway/__init__.py +37 -37
  23. cdktf_cdktf_provider_upcloud/gateway_connection/__init__.py +34 -34
  24. cdktf_cdktf_provider_upcloud/gateway_connection_tunnel/__init__.py +61 -61
  25. cdktf_cdktf_provider_upcloud/kubernetes_cluster/__init__.py +82 -31
  26. cdktf_cdktf_provider_upcloud/kubernetes_node_group/__init__.py +58 -58
  27. cdktf_cdktf_provider_upcloud/loadbalancer/__init__.py +39 -39
  28. cdktf_cdktf_provider_upcloud/loadbalancer_backend/__init__.py +46 -46
  29. cdktf_cdktf_provider_upcloud/loadbalancer_backend_tls_config/__init__.py +13 -13
  30. cdktf_cdktf_provider_upcloud/loadbalancer_dynamic_backend_member/__init__.py +25 -25
  31. cdktf_cdktf_provider_upcloud/loadbalancer_dynamic_certificate_bundle/__init__.py +13 -13
  32. cdktf_cdktf_provider_upcloud/loadbalancer_frontend/__init__.py +33 -33
  33. cdktf_cdktf_provider_upcloud/loadbalancer_frontend_rule/__init__.py +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 +201 -201
  40. cdktf_cdktf_provider_upcloud/managed_database_opensearch/__init__.py +555 -555
  41. cdktf_cdktf_provider_upcloud/managed_database_postgresql/__init__.py +360 -360
  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 +33 -33
  53. cdktf_cdktf_provider_upcloud/network_peering/__init__.py +23 -23
  54. cdktf_cdktf_provider_upcloud/object_storage/__init__.py +30 -30
  55. cdktf_cdktf_provider_upcloud/provider/__init__.py +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 +483 -0
  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-14.21.0.dist-info → cdktf_cdktf_provider_upcloud-15.0.0.dist-info}/METADATA +6 -6
  64. cdktf_cdktf_provider_upcloud-15.0.0.dist-info/RECORD +68 -0
  65. cdktf_cdktf_provider_upcloud/_jsii/provider-upcloud@14.21.0.jsii.tgz +0 -0
  66. cdktf_cdktf_provider_upcloud-14.21.0.dist-info/RECORD +0 -67
  67. {cdktf_cdktf_provider_upcloud-14.21.0.dist-info → cdktf_cdktf_provider_upcloud-15.0.0.dist-info}/LICENSE +0 -0
  68. {cdktf_cdktf_provider_upcloud-14.21.0.dist-info → cdktf_cdktf_provider_upcloud-15.0.0.dist-info}/WHEEL +0 -0
  69. {cdktf_cdktf_provider_upcloud-14.21.0.dist-info → cdktf_cdktf_provider_upcloud-15.0.0.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  r'''
2
2
  # `upcloud_kubernetes_cluster`
3
3
 
4
- Refer to the Terraform Registry for docs: [`upcloud_kubernetes_cluster`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster).
4
+ Refer to the Terraform Registry for docs: [`upcloud_kubernetes_cluster`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster).
5
5
  '''
6
6
  from pkgutil import extend_path
7
7
  __path__ = extend_path(__path__, __name__)
@@ -44,7 +44,7 @@ class KubernetesCluster(
44
44
  metaclass=jsii.JSIIMeta,
45
45
  jsii_type="@cdktf/provider-upcloud.kubernetesCluster.KubernetesCluster",
46
46
  ):
47
- '''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster upcloud_kubernetes_cluster}.'''
47
+ '''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster upcloud_kubernetes_cluster}.'''
48
48
 
49
49
  def __init__(
50
50
  self,
@@ -59,6 +59,7 @@ class KubernetesCluster(
59
59
  plan: typing.Optional[builtins.str] = None,
60
60
  private_node_groups: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
61
61
  storage_encryption: typing.Optional[builtins.str] = None,
62
+ upgrade_strategy_type: typing.Optional[builtins.str] = None,
62
63
  version: typing.Optional[builtins.str] = None,
63
64
  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
65
  count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
@@ -68,19 +69,20 @@ class KubernetesCluster(
68
69
  provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
69
70
  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
71
  ) -> None:
71
- '''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster upcloud_kubernetes_cluster} Resource.
72
+ '''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster upcloud_kubernetes_cluster} Resource.
72
73
 
73
74
  :param scope: The scope in which to define this construct.
74
75
  :param id: The scoped construct ID. Must be unique amongst siblings in the same scope
75
- :param control_plane_ip_filter: IP addresses or IP ranges in CIDR format which are allowed to access the cluster control plane. To allow access from any source, use ``["0.0.0.0/0"]``. To deny access from all sources, use ``[]``. Values set here do not restrict access to node groups or exposed Kubernetes services. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#control_plane_ip_filter KubernetesCluster#control_plane_ip_filter}
76
- :param name: Cluster name. Needs to be unique within the account. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#name KubernetesCluster#name}
77
- :param network: Network ID for the cluster to run in. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#network KubernetesCluster#network}
78
- :param zone: Zone in which the Kubernetes cluster will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#zone KubernetesCluster#zone}
79
- :param labels: User defined key-value pairs to classify the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#labels KubernetesCluster#labels}
80
- :param plan: The pricing plan used for the cluster. You can list available plans with ``upctl kubernetes plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#plan KubernetesCluster#plan}
81
- :param private_node_groups: Enable private node groups. Private node groups requires a network that is routed through NAT gateway. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#private_node_groups KubernetesCluster#private_node_groups}
82
- :param storage_encryption: Set default storage encryption strategy for all nodes in the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#storage_encryption KubernetesCluster#storage_encryption}
83
- :param version: Kubernetes version ID, e.g. ``1.31``. You can list available version IDs with ``upctl kubernetes versions``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#version KubernetesCluster#version}
76
+ :param control_plane_ip_filter: IP addresses or IP ranges in CIDR format which are allowed to access the cluster control plane. To allow access from any source, use ``["0.0.0.0/0"]``. To deny access from all sources, use ``[]``. Values set here do not restrict access to node groups or exposed Kubernetes services. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#control_plane_ip_filter KubernetesCluster#control_plane_ip_filter}
77
+ :param name: Cluster name. Needs to be unique within the account. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#name KubernetesCluster#name}
78
+ :param network: Network ID for the cluster to run in. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#network KubernetesCluster#network}
79
+ :param zone: Zone in which the Kubernetes cluster will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#zone KubernetesCluster#zone}
80
+ :param labels: User defined key-value pairs to classify the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#labels KubernetesCluster#labels}
81
+ :param plan: The pricing plan used for the cluster. You can list available plans with ``upctl kubernetes plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#plan KubernetesCluster#plan}
82
+ :param private_node_groups: Enable private node groups. Private node groups requires a network that is routed through NAT gateway. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#private_node_groups KubernetesCluster#private_node_groups}
83
+ :param storage_encryption: Set default storage encryption strategy for all nodes in the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#storage_encryption KubernetesCluster#storage_encryption}
84
+ :param upgrade_strategy_type: The upgrade strategy to use when changing the cluster ``version``. If not set, ``manual`` strategy will be used by default. When using ``manual`` strategy, you must replace the existing node-groups to update them. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#upgrade_strategy_type KubernetesCluster#upgrade_strategy_type}
85
+ :param version: Kubernetes version ID, e.g. ``1.31``. You can list available version IDs with ``upctl kubernetes versions``. Note that when changing the cluster version, ``upgrade_strategy`` will be taken into account. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#version KubernetesCluster#version}
84
86
  :param connection:
85
87
  :param count:
86
88
  :param depends_on:
@@ -102,6 +104,7 @@ class KubernetesCluster(
102
104
  plan=plan,
103
105
  private_node_groups=private_node_groups,
104
106
  storage_encryption=storage_encryption,
107
+ upgrade_strategy_type=upgrade_strategy_type,
105
108
  version=version,
106
109
  connection=connection,
107
110
  count=count,
@@ -127,7 +130,7 @@ class KubernetesCluster(
127
130
 
128
131
  :param scope: The scope in which to define this construct.
129
132
  :param import_to_id: The construct id used in the generated config for the KubernetesCluster to import.
130
- :param import_from_id: The id of the existing KubernetesCluster that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#import import section} in the documentation of this resource for the id to use
133
+ :param import_from_id: The id of the existing KubernetesCluster that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#import import section} in the documentation of this resource for the id to use
131
134
  :param provider: ? Optional instance of the provider where the KubernetesCluster to import is found.
132
135
  '''
133
136
  if __debug__:
@@ -154,6 +157,10 @@ class KubernetesCluster(
154
157
  def reset_storage_encryption(self) -> None:
155
158
  return typing.cast(None, jsii.invoke(self, "resetStorageEncryption", []))
156
159
 
160
+ @jsii.member(jsii_name="resetUpgradeStrategyType")
161
+ def reset_upgrade_strategy_type(self) -> None:
162
+ return typing.cast(None, jsii.invoke(self, "resetUpgradeStrategyType", []))
163
+
157
164
  @jsii.member(jsii_name="resetVersion")
158
165
  def reset_version(self) -> None:
159
166
  return typing.cast(None, jsii.invoke(self, "resetVersion", []))
@@ -232,6 +239,11 @@ class KubernetesCluster(
232
239
  def storage_encryption_input(self) -> typing.Optional[builtins.str]:
233
240
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "storageEncryptionInput"))
234
241
 
242
+ @builtins.property
243
+ @jsii.member(jsii_name="upgradeStrategyTypeInput")
244
+ def upgrade_strategy_type_input(self) -> typing.Optional[builtins.str]:
245
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "upgradeStrategyTypeInput"))
246
+
235
247
  @builtins.property
236
248
  @jsii.member(jsii_name="versionInput")
237
249
  def version_input(self) -> typing.Optional[builtins.str]:
@@ -331,6 +343,18 @@ class KubernetesCluster(
331
343
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
332
344
  jsii.set(self, "storageEncryption", value) # pyright: ignore[reportArgumentType]
333
345
 
346
+ @builtins.property
347
+ @jsii.member(jsii_name="upgradeStrategyType")
348
+ def upgrade_strategy_type(self) -> builtins.str:
349
+ return typing.cast(builtins.str, jsii.get(self, "upgradeStrategyType"))
350
+
351
+ @upgrade_strategy_type.setter
352
+ def upgrade_strategy_type(self, value: builtins.str) -> None:
353
+ if __debug__:
354
+ type_hints = typing.get_type_hints(_typecheckingstub__39381f85985080b338f976b7fa444c5a767a6551ec022d808ec631b10e994809)
355
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
356
+ jsii.set(self, "upgradeStrategyType", value) # pyright: ignore[reportArgumentType]
357
+
334
358
  @builtins.property
335
359
  @jsii.member(jsii_name="version")
336
360
  def version(self) -> builtins.str:
@@ -375,6 +399,7 @@ class KubernetesCluster(
375
399
  "plan": "plan",
376
400
  "private_node_groups": "privateNodeGroups",
377
401
  "storage_encryption": "storageEncryption",
402
+ "upgrade_strategy_type": "upgradeStrategyType",
378
403
  "version": "version",
379
404
  },
380
405
  )
@@ -397,6 +422,7 @@ class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
397
422
  plan: typing.Optional[builtins.str] = None,
398
423
  private_node_groups: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
399
424
  storage_encryption: typing.Optional[builtins.str] = None,
425
+ upgrade_strategy_type: typing.Optional[builtins.str] = None,
400
426
  version: typing.Optional[builtins.str] = None,
401
427
  ) -> None:
402
428
  '''
@@ -407,15 +433,16 @@ class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
407
433
  :param lifecycle:
408
434
  :param provider:
409
435
  :param provisioners:
410
- :param control_plane_ip_filter: IP addresses or IP ranges in CIDR format which are allowed to access the cluster control plane. To allow access from any source, use ``["0.0.0.0/0"]``. To deny access from all sources, use ``[]``. Values set here do not restrict access to node groups or exposed Kubernetes services. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#control_plane_ip_filter KubernetesCluster#control_plane_ip_filter}
411
- :param name: Cluster name. Needs to be unique within the account. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#name KubernetesCluster#name}
412
- :param network: Network ID for the cluster to run in. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#network KubernetesCluster#network}
413
- :param zone: Zone in which the Kubernetes cluster will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#zone KubernetesCluster#zone}
414
- :param labels: User defined key-value pairs to classify the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#labels KubernetesCluster#labels}
415
- :param plan: The pricing plan used for the cluster. You can list available plans with ``upctl kubernetes plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#plan KubernetesCluster#plan}
416
- :param private_node_groups: Enable private node groups. Private node groups requires a network that is routed through NAT gateway. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#private_node_groups KubernetesCluster#private_node_groups}
417
- :param storage_encryption: Set default storage encryption strategy for all nodes in the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#storage_encryption KubernetesCluster#storage_encryption}
418
- :param version: Kubernetes version ID, e.g. ``1.31``. You can list available version IDs with ``upctl kubernetes versions``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#version KubernetesCluster#version}
436
+ :param control_plane_ip_filter: IP addresses or IP ranges in CIDR format which are allowed to access the cluster control plane. To allow access from any source, use ``["0.0.0.0/0"]``. To deny access from all sources, use ``[]``. Values set here do not restrict access to node groups or exposed Kubernetes services. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#control_plane_ip_filter KubernetesCluster#control_plane_ip_filter}
437
+ :param name: Cluster name. Needs to be unique within the account. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#name KubernetesCluster#name}
438
+ :param network: Network ID for the cluster to run in. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#network KubernetesCluster#network}
439
+ :param zone: Zone in which the Kubernetes cluster will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#zone KubernetesCluster#zone}
440
+ :param labels: User defined key-value pairs to classify the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#labels KubernetesCluster#labels}
441
+ :param plan: The pricing plan used for the cluster. You can list available plans with ``upctl kubernetes plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#plan KubernetesCluster#plan}
442
+ :param private_node_groups: Enable private node groups. Private node groups requires a network that is routed through NAT gateway. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#private_node_groups KubernetesCluster#private_node_groups}
443
+ :param storage_encryption: Set default storage encryption strategy for all nodes in the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#storage_encryption KubernetesCluster#storage_encryption}
444
+ :param upgrade_strategy_type: The upgrade strategy to use when changing the cluster ``version``. If not set, ``manual`` strategy will be used by default. When using ``manual`` strategy, you must replace the existing node-groups to update them. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#upgrade_strategy_type KubernetesCluster#upgrade_strategy_type}
445
+ :param version: Kubernetes version ID, e.g. ``1.31``. You can list available version IDs with ``upctl kubernetes versions``. Note that when changing the cluster version, ``upgrade_strategy`` will be taken into account. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#version KubernetesCluster#version}
419
446
  '''
420
447
  if isinstance(lifecycle, dict):
421
448
  lifecycle = _cdktf_9a9027ec.TerraformResourceLifecycle(**lifecycle)
@@ -436,6 +463,7 @@ class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
436
463
  check_type(argname="argument plan", value=plan, expected_type=type_hints["plan"])
437
464
  check_type(argname="argument private_node_groups", value=private_node_groups, expected_type=type_hints["private_node_groups"])
438
465
  check_type(argname="argument storage_encryption", value=storage_encryption, expected_type=type_hints["storage_encryption"])
466
+ check_type(argname="argument upgrade_strategy_type", value=upgrade_strategy_type, expected_type=type_hints["upgrade_strategy_type"])
439
467
  check_type(argname="argument version", value=version, expected_type=type_hints["version"])
440
468
  self._values: typing.Dict[builtins.str, typing.Any] = {
441
469
  "control_plane_ip_filter": control_plane_ip_filter,
@@ -465,6 +493,8 @@ class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
465
493
  self._values["private_node_groups"] = private_node_groups
466
494
  if storage_encryption is not None:
467
495
  self._values["storage_encryption"] = storage_encryption
496
+ if upgrade_strategy_type is not None:
497
+ self._values["upgrade_strategy_type"] = upgrade_strategy_type
468
498
  if version is not None:
469
499
  self._values["version"] = version
470
500
 
@@ -538,7 +568,7 @@ class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
538
568
 
539
569
  To allow access from any source, use ``["0.0.0.0/0"]``. To deny access from all sources, use ``[]``. Values set here do not restrict access to node groups or exposed Kubernetes services.
540
570
 
541
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#control_plane_ip_filter KubernetesCluster#control_plane_ip_filter}
571
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#control_plane_ip_filter KubernetesCluster#control_plane_ip_filter}
542
572
  '''
543
573
  result = self._values.get("control_plane_ip_filter")
544
574
  assert result is not None, "Required property 'control_plane_ip_filter' is missing"
@@ -548,7 +578,7 @@ class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
548
578
  def name(self) -> builtins.str:
549
579
  '''Cluster name. Needs to be unique within the account.
550
580
 
551
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#name KubernetesCluster#name}
581
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#name KubernetesCluster#name}
552
582
  '''
553
583
  result = self._values.get("name")
554
584
  assert result is not None, "Required property 'name' is missing"
@@ -558,7 +588,7 @@ class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
558
588
  def network(self) -> builtins.str:
559
589
  '''Network ID for the cluster to run in.
560
590
 
561
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#network KubernetesCluster#network}
591
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#network KubernetesCluster#network}
562
592
  '''
563
593
  result = self._values.get("network")
564
594
  assert result is not None, "Required property 'network' is missing"
@@ -568,7 +598,7 @@ class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
568
598
  def zone(self) -> builtins.str:
569
599
  '''Zone in which the Kubernetes cluster will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``.
570
600
 
571
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#zone KubernetesCluster#zone}
601
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#zone KubernetesCluster#zone}
572
602
  '''
573
603
  result = self._values.get("zone")
574
604
  assert result is not None, "Required property 'zone' is missing"
@@ -578,7 +608,7 @@ class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
578
608
  def labels(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
579
609
  '''User defined key-value pairs to classify the cluster.
580
610
 
581
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#labels KubernetesCluster#labels}
611
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#labels KubernetesCluster#labels}
582
612
  '''
583
613
  result = self._values.get("labels")
584
614
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
@@ -587,7 +617,7 @@ class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
587
617
  def plan(self) -> typing.Optional[builtins.str]:
588
618
  '''The pricing plan used for the cluster. You can list available plans with ``upctl kubernetes plans``.
589
619
 
590
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#plan KubernetesCluster#plan}
620
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#plan KubernetesCluster#plan}
591
621
  '''
592
622
  result = self._values.get("plan")
593
623
  return typing.cast(typing.Optional[builtins.str], result)
@@ -598,7 +628,7 @@ class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
598
628
  ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
599
629
  '''Enable private node groups. Private node groups requires a network that is routed through NAT gateway.
600
630
 
601
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#private_node_groups KubernetesCluster#private_node_groups}
631
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#private_node_groups KubernetesCluster#private_node_groups}
602
632
  '''
603
633
  result = self._values.get("private_node_groups")
604
634
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
@@ -607,16 +637,29 @@ class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
607
637
  def storage_encryption(self) -> typing.Optional[builtins.str]:
608
638
  '''Set default storage encryption strategy for all nodes in the cluster.
609
639
 
610
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#storage_encryption KubernetesCluster#storage_encryption}
640
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#storage_encryption KubernetesCluster#storage_encryption}
611
641
  '''
612
642
  result = self._values.get("storage_encryption")
613
643
  return typing.cast(typing.Optional[builtins.str], result)
614
644
 
645
+ @builtins.property
646
+ def upgrade_strategy_type(self) -> typing.Optional[builtins.str]:
647
+ '''The upgrade strategy to use when changing the cluster ``version``.
648
+
649
+ If not set, ``manual`` strategy will be used by default. When using ``manual`` strategy, you must replace the existing node-groups to update them.
650
+
651
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#upgrade_strategy_type KubernetesCluster#upgrade_strategy_type}
652
+ '''
653
+ result = self._values.get("upgrade_strategy_type")
654
+ return typing.cast(typing.Optional[builtins.str], result)
655
+
615
656
  @builtins.property
616
657
  def version(self) -> typing.Optional[builtins.str]:
617
658
  '''Kubernetes version ID, e.g. ``1.31``. You can list available version IDs with ``upctl kubernetes versions``.
618
659
 
619
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.21.0/docs/resources/kubernetes_cluster#version KubernetesCluster#version}
660
+ Note that when changing the cluster version, ``upgrade_strategy`` will be taken into account.
661
+
662
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.22.0/docs/resources/kubernetes_cluster#version KubernetesCluster#version}
620
663
  '''
621
664
  result = self._values.get("version")
622
665
  return typing.cast(typing.Optional[builtins.str], result)
@@ -652,6 +695,7 @@ def _typecheckingstub__8a9b711fc0d4f95af1581b8c47ef51571908b57197927d077ddbf475a
652
695
  plan: typing.Optional[builtins.str] = None,
653
696
  private_node_groups: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
654
697
  storage_encryption: typing.Optional[builtins.str] = None,
698
+ upgrade_strategy_type: typing.Optional[builtins.str] = None,
655
699
  version: typing.Optional[builtins.str] = None,
656
700
  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,
657
701
  count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
@@ -715,6 +759,12 @@ def _typecheckingstub__cedce06cdd644121d16e8723f1b12d6b73c8a3982cac05b297172fec8
715
759
  """Type checking stubs"""
716
760
  pass
717
761
 
762
+ def _typecheckingstub__39381f85985080b338f976b7fa444c5a767a6551ec022d808ec631b10e994809(
763
+ value: builtins.str,
764
+ ) -> None:
765
+ """Type checking stubs"""
766
+ pass
767
+
718
768
  def _typecheckingstub__776ba3ef3b832d50876fe4a1d205b0bbe70e283570bc607f5f3709b3061f153f(
719
769
  value: builtins.str,
720
770
  ) -> None:
@@ -744,6 +794,7 @@ def _typecheckingstub__e268687db9e34ae4b03f85f7b2bdf19564690fdaacf69cdb2c9bd3f76
744
794
  plan: typing.Optional[builtins.str] = None,
745
795
  private_node_groups: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
746
796
  storage_encryption: typing.Optional[builtins.str] = None,
797
+ upgrade_strategy_type: typing.Optional[builtins.str] = None,
747
798
  version: typing.Optional[builtins.str] = None,
748
799
  ) -> None:
749
800
  """Type checking stubs"""