cdktf-cdktf-provider-upcloud 15.1.3__py3-none-any.whl → 15.2.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.2.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 +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 +34 -34
  26. cdktf_cdktf_provider_upcloud/kubernetes_node_group/__init__.py +808 -75
  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 +210 -210
  40. cdktf_cdktf_provider_upcloud/managed_database_opensearch/__init__.py +594 -594
  41. cdktf_cdktf_provider_upcloud/managed_database_postgresql/__init__.py +366 -366
  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 +140 -140
  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.1.3.dist-info → cdktf_cdktf_provider_upcloud-15.2.0.dist-info}/METADATA +4 -4
  64. cdktf_cdktf_provider_upcloud-15.2.0.dist-info/RECORD +68 -0
  65. cdktf_cdktf_provider_upcloud/_jsii/provider-upcloud@15.1.3.jsii.tgz +0 -0
  66. cdktf_cdktf_provider_upcloud-15.1.3.dist-info/RECORD +0 -68
  67. {cdktf_cdktf_provider_upcloud-15.1.3.dist-info → cdktf_cdktf_provider_upcloud-15.2.0.dist-info}/LICENSE +0 -0
  68. {cdktf_cdktf_provider_upcloud-15.1.3.dist-info → cdktf_cdktf_provider_upcloud-15.2.0.dist-info}/WHEEL +0 -0
  69. {cdktf_cdktf_provider_upcloud-15.1.3.dist-info → cdktf_cdktf_provider_upcloud-15.2.0.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  r'''
2
2
  # `upcloud_kubernetes_node_group`
3
3
 
4
- Refer to the Terraform Registry for docs: [`upcloud_kubernetes_node_group`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group).
4
+ Refer to the Terraform Registry for docs: [`upcloud_kubernetes_node_group`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group).
5
5
  '''
6
6
  from pkgutil import extend_path
7
7
  __path__ = extend_path(__path__, __name__)
@@ -44,7 +44,7 @@ class KubernetesNodeGroup(
44
44
  metaclass=jsii.JSIIMeta,
45
45
  jsii_type="@cdktf/provider-upcloud.kubernetesNodeGroup.KubernetesNodeGroup",
46
46
  ):
47
- '''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group upcloud_kubernetes_node_group}.'''
47
+ '''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group upcloud_kubernetes_node_group}.'''
48
48
 
49
49
  def __init__(
50
50
  self,
@@ -56,7 +56,9 @@ class KubernetesNodeGroup(
56
56
  node_count: jsii.Number,
57
57
  plan: builtins.str,
58
58
  anti_affinity: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
59
+ cloud_native_plan: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["KubernetesNodeGroupCloudNativePlan", typing.Dict[builtins.str, typing.Any]]]]] = None,
59
60
  custom_plan: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["KubernetesNodeGroupCustomPlan", typing.Dict[builtins.str, typing.Any]]]]] = None,
61
+ gpu_plan: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["KubernetesNodeGroupGpuPlan", typing.Dict[builtins.str, typing.Any]]]]] = None,
60
62
  kubelet_args: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["KubernetesNodeGroupKubeletArgs", typing.Dict[builtins.str, typing.Any]]]]] = None,
61
63
  labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
62
64
  ssh_keys: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -71,22 +73,24 @@ class KubernetesNodeGroup(
71
73
  provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
72
74
  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,
73
75
  ) -> None:
74
- '''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group upcloud_kubernetes_node_group} Resource.
76
+ '''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group upcloud_kubernetes_node_group} Resource.
75
77
 
76
78
  :param scope: The scope in which to define this construct.
77
79
  :param id: The scoped construct ID. Must be unique amongst siblings in the same scope
78
- :param cluster: UUID of the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#cluster KubernetesNodeGroup#cluster}
79
- :param name: The name of the node group. Needs to be unique within a cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#name KubernetesNodeGroup#name}
80
- :param node_count: Amount of nodes to provision in the node group. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#node_count KubernetesNodeGroup#node_count}
81
- :param plan: The server plan used for the node group. You can list available plans with ``upctl server plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#plan KubernetesNodeGroup#plan}
82
- :param anti_affinity: If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#anti_affinity KubernetesNodeGroup#anti_affinity}
83
- :param custom_plan: custom_plan block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#custom_plan KubernetesNodeGroup#custom_plan}
84
- :param kubelet_args: kubelet_args block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#kubelet_args KubernetesNodeGroup#kubelet_args}
85
- :param labels: User defined key-value pairs to classify the node_group. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#labels KubernetesNodeGroup#labels}
86
- :param ssh_keys: You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#ssh_keys KubernetesNodeGroup#ssh_keys}
87
- :param storage_encryption: The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#storage_encryption KubernetesNodeGroup#storage_encryption}
88
- :param taint: taint block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#taint KubernetesNodeGroup#taint}
89
- :param utility_network_access: If set to false, nodes in this group will not have access to utility network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#utility_network_access KubernetesNodeGroup#utility_network_access}
80
+ :param cluster: UUID of the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#cluster KubernetesNodeGroup#cluster}
81
+ :param name: The name of the node group. Needs to be unique within a cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#name KubernetesNodeGroup#name}
82
+ :param node_count: Amount of nodes to provision in the node group. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#node_count KubernetesNodeGroup#node_count}
83
+ :param plan: The server plan used for the node group. You can list available plans with ``upctl server plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#plan KubernetesNodeGroup#plan}
84
+ :param anti_affinity: If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#anti_affinity KubernetesNodeGroup#anti_affinity}
85
+ :param cloud_native_plan: cloud_native_plan block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#cloud_native_plan KubernetesNodeGroup#cloud_native_plan}
86
+ :param custom_plan: custom_plan block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#custom_plan KubernetesNodeGroup#custom_plan}
87
+ :param gpu_plan: gpu_plan block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#gpu_plan KubernetesNodeGroup#gpu_plan}
88
+ :param kubelet_args: kubelet_args block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#kubelet_args KubernetesNodeGroup#kubelet_args}
89
+ :param labels: User defined key-value pairs to classify the node_group. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#labels KubernetesNodeGroup#labels}
90
+ :param ssh_keys: You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#ssh_keys KubernetesNodeGroup#ssh_keys}
91
+ :param storage_encryption: The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_encryption KubernetesNodeGroup#storage_encryption}
92
+ :param taint: taint block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#taint KubernetesNodeGroup#taint}
93
+ :param utility_network_access: If set to false, nodes in this group will not have access to utility network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#utility_network_access KubernetesNodeGroup#utility_network_access}
90
94
  :param connection:
91
95
  :param count:
92
96
  :param depends_on:
@@ -105,7 +109,9 @@ class KubernetesNodeGroup(
105
109
  node_count=node_count,
106
110
  plan=plan,
107
111
  anti_affinity=anti_affinity,
112
+ cloud_native_plan=cloud_native_plan,
108
113
  custom_plan=custom_plan,
114
+ gpu_plan=gpu_plan,
109
115
  kubelet_args=kubelet_args,
110
116
  labels=labels,
111
117
  ssh_keys=ssh_keys,
@@ -136,7 +142,7 @@ class KubernetesNodeGroup(
136
142
 
137
143
  :param scope: The scope in which to define this construct.
138
144
  :param import_to_id: The construct id used in the generated config for the KubernetesNodeGroup to import.
139
- :param import_from_id: The id of the existing KubernetesNodeGroup that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#import import section} in the documentation of this resource for the id to use
145
+ :param import_from_id: The id of the existing KubernetesNodeGroup that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#import import section} in the documentation of this resource for the id to use
140
146
  :param provider: ? Optional instance of the provider where the KubernetesNodeGroup to import is found.
141
147
  '''
142
148
  if __debug__:
@@ -147,6 +153,19 @@ class KubernetesNodeGroup(
147
153
  check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
148
154
  return typing.cast(_cdktf_9a9027ec.ImportableResource, jsii.sinvoke(cls, "generateConfigForImport", [scope, import_to_id, import_from_id, provider]))
149
155
 
156
+ @jsii.member(jsii_name="putCloudNativePlan")
157
+ def put_cloud_native_plan(
158
+ self,
159
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["KubernetesNodeGroupCloudNativePlan", typing.Dict[builtins.str, typing.Any]]]],
160
+ ) -> None:
161
+ '''
162
+ :param value: -
163
+ '''
164
+ if __debug__:
165
+ type_hints = typing.get_type_hints(_typecheckingstub__ac2f10d642c0079d30e463561c2878e59777f101807a48a08ccb9a8933285e30)
166
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
167
+ return typing.cast(None, jsii.invoke(self, "putCloudNativePlan", [value]))
168
+
150
169
  @jsii.member(jsii_name="putCustomPlan")
151
170
  def put_custom_plan(
152
171
  self,
@@ -160,6 +179,19 @@ class KubernetesNodeGroup(
160
179
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
161
180
  return typing.cast(None, jsii.invoke(self, "putCustomPlan", [value]))
162
181
 
182
+ @jsii.member(jsii_name="putGpuPlan")
183
+ def put_gpu_plan(
184
+ self,
185
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["KubernetesNodeGroupGpuPlan", typing.Dict[builtins.str, typing.Any]]]],
186
+ ) -> None:
187
+ '''
188
+ :param value: -
189
+ '''
190
+ if __debug__:
191
+ type_hints = typing.get_type_hints(_typecheckingstub__c17e1903eed937df8e22fb46de08949295493fcc3197086a410959cf85bd4e98)
192
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
193
+ return typing.cast(None, jsii.invoke(self, "putGpuPlan", [value]))
194
+
163
195
  @jsii.member(jsii_name="putKubeletArgs")
164
196
  def put_kubelet_args(
165
197
  self,
@@ -190,10 +222,18 @@ class KubernetesNodeGroup(
190
222
  def reset_anti_affinity(self) -> None:
191
223
  return typing.cast(None, jsii.invoke(self, "resetAntiAffinity", []))
192
224
 
225
+ @jsii.member(jsii_name="resetCloudNativePlan")
226
+ def reset_cloud_native_plan(self) -> None:
227
+ return typing.cast(None, jsii.invoke(self, "resetCloudNativePlan", []))
228
+
193
229
  @jsii.member(jsii_name="resetCustomPlan")
194
230
  def reset_custom_plan(self) -> None:
195
231
  return typing.cast(None, jsii.invoke(self, "resetCustomPlan", []))
196
232
 
233
+ @jsii.member(jsii_name="resetGpuPlan")
234
+ def reset_gpu_plan(self) -> None:
235
+ return typing.cast(None, jsii.invoke(self, "resetGpuPlan", []))
236
+
197
237
  @jsii.member(jsii_name="resetKubeletArgs")
198
238
  def reset_kubelet_args(self) -> None:
199
239
  return typing.cast(None, jsii.invoke(self, "resetKubeletArgs", []))
@@ -231,11 +271,21 @@ class KubernetesNodeGroup(
231
271
  def TF_RESOURCE_TYPE(cls) -> builtins.str:
232
272
  return typing.cast(builtins.str, jsii.sget(cls, "tfResourceType"))
233
273
 
274
+ @builtins.property
275
+ @jsii.member(jsii_name="cloudNativePlan")
276
+ def cloud_native_plan(self) -> "KubernetesNodeGroupCloudNativePlanList":
277
+ return typing.cast("KubernetesNodeGroupCloudNativePlanList", jsii.get(self, "cloudNativePlan"))
278
+
234
279
  @builtins.property
235
280
  @jsii.member(jsii_name="customPlan")
236
281
  def custom_plan(self) -> "KubernetesNodeGroupCustomPlanList":
237
282
  return typing.cast("KubernetesNodeGroupCustomPlanList", jsii.get(self, "customPlan"))
238
283
 
284
+ @builtins.property
285
+ @jsii.member(jsii_name="gpuPlan")
286
+ def gpu_plan(self) -> "KubernetesNodeGroupGpuPlanList":
287
+ return typing.cast("KubernetesNodeGroupGpuPlanList", jsii.get(self, "gpuPlan"))
288
+
239
289
  @builtins.property
240
290
  @jsii.member(jsii_name="id")
241
291
  def id(self) -> builtins.str:
@@ -258,6 +308,13 @@ class KubernetesNodeGroup(
258
308
  ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
259
309
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], jsii.get(self, "antiAffinityInput"))
260
310
 
311
+ @builtins.property
312
+ @jsii.member(jsii_name="cloudNativePlanInput")
313
+ def cloud_native_plan_input(
314
+ self,
315
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupCloudNativePlan"]]]:
316
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupCloudNativePlan"]]], jsii.get(self, "cloudNativePlanInput"))
317
+
261
318
  @builtins.property
262
319
  @jsii.member(jsii_name="clusterInput")
263
320
  def cluster_input(self) -> typing.Optional[builtins.str]:
@@ -270,6 +327,13 @@ class KubernetesNodeGroup(
270
327
  ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupCustomPlan"]]]:
271
328
  return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupCustomPlan"]]], jsii.get(self, "customPlanInput"))
272
329
 
330
+ @builtins.property
331
+ @jsii.member(jsii_name="gpuPlanInput")
332
+ def gpu_plan_input(
333
+ self,
334
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupGpuPlan"]]]:
335
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupGpuPlan"]]], jsii.get(self, "gpuPlanInput"))
336
+
273
337
  @builtins.property
274
338
  @jsii.member(jsii_name="kubeletArgsInput")
275
339
  def kubelet_args_input(
@@ -440,6 +504,241 @@ class KubernetesNodeGroup(
440
504
  jsii.set(self, "utilityNetworkAccess", value) # pyright: ignore[reportArgumentType]
441
505
 
442
506
 
507
+ @jsii.data_type(
508
+ jsii_type="@cdktf/provider-upcloud.kubernetesNodeGroup.KubernetesNodeGroupCloudNativePlan",
509
+ jsii_struct_bases=[],
510
+ name_mapping={"storage_size": "storageSize", "storage_tier": "storageTier"},
511
+ )
512
+ class KubernetesNodeGroupCloudNativePlan:
513
+ def __init__(
514
+ self,
515
+ *,
516
+ storage_size: typing.Optional[jsii.Number] = None,
517
+ storage_tier: typing.Optional[builtins.str] = None,
518
+ ) -> None:
519
+ '''
520
+ :param storage_size: The size of the storage device in gigabytes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_size KubernetesNodeGroup#storage_size}
521
+ :param storage_tier: The storage tier to use. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_tier KubernetesNodeGroup#storage_tier}
522
+ '''
523
+ if __debug__:
524
+ type_hints = typing.get_type_hints(_typecheckingstub__5438388f4032834938f080084c7ae0430cf33858715d18b4e84c3c8b7d99c583)
525
+ check_type(argname="argument storage_size", value=storage_size, expected_type=type_hints["storage_size"])
526
+ check_type(argname="argument storage_tier", value=storage_tier, expected_type=type_hints["storage_tier"])
527
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
528
+ if storage_size is not None:
529
+ self._values["storage_size"] = storage_size
530
+ if storage_tier is not None:
531
+ self._values["storage_tier"] = storage_tier
532
+
533
+ @builtins.property
534
+ def storage_size(self) -> typing.Optional[jsii.Number]:
535
+ '''The size of the storage device in gigabytes.
536
+
537
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_size KubernetesNodeGroup#storage_size}
538
+ '''
539
+ result = self._values.get("storage_size")
540
+ return typing.cast(typing.Optional[jsii.Number], result)
541
+
542
+ @builtins.property
543
+ def storage_tier(self) -> typing.Optional[builtins.str]:
544
+ '''The storage tier to use.
545
+
546
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_tier KubernetesNodeGroup#storage_tier}
547
+ '''
548
+ result = self._values.get("storage_tier")
549
+ return typing.cast(typing.Optional[builtins.str], result)
550
+
551
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
552
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
553
+
554
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
555
+ return not (rhs == self)
556
+
557
+ def __repr__(self) -> str:
558
+ return "KubernetesNodeGroupCloudNativePlan(%s)" % ", ".join(
559
+ k + "=" + repr(v) for k, v in self._values.items()
560
+ )
561
+
562
+
563
+ class KubernetesNodeGroupCloudNativePlanList(
564
+ _cdktf_9a9027ec.ComplexList,
565
+ metaclass=jsii.JSIIMeta,
566
+ jsii_type="@cdktf/provider-upcloud.kubernetesNodeGroup.KubernetesNodeGroupCloudNativePlanList",
567
+ ):
568
+ def __init__(
569
+ self,
570
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
571
+ terraform_attribute: builtins.str,
572
+ wraps_set: builtins.bool,
573
+ ) -> None:
574
+ '''
575
+ :param terraform_resource: The parent resource.
576
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
577
+ :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
578
+ '''
579
+ if __debug__:
580
+ type_hints = typing.get_type_hints(_typecheckingstub__8a5a3a16968d45ac84e9b283e63c8c906bd70e1a328640d5e7126d46a1c1fdd1)
581
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
582
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
583
+ check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
584
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])
585
+
586
+ @jsii.member(jsii_name="get")
587
+ def get(
588
+ self,
589
+ index: jsii.Number,
590
+ ) -> "KubernetesNodeGroupCloudNativePlanOutputReference":
591
+ '''
592
+ :param index: the index of the item to return.
593
+ '''
594
+ if __debug__:
595
+ type_hints = typing.get_type_hints(_typecheckingstub__2fe0c17e964827460fc66444ceb9d46776f4128115267f70dfc0ed4bfcb85920)
596
+ check_type(argname="argument index", value=index, expected_type=type_hints["index"])
597
+ return typing.cast("KubernetesNodeGroupCloudNativePlanOutputReference", jsii.invoke(self, "get", [index]))
598
+
599
+ @builtins.property
600
+ @jsii.member(jsii_name="terraformAttribute")
601
+ def _terraform_attribute(self) -> builtins.str:
602
+ '''The attribute on the parent resource this class is referencing.'''
603
+ return typing.cast(builtins.str, jsii.get(self, "terraformAttribute"))
604
+
605
+ @_terraform_attribute.setter
606
+ def _terraform_attribute(self, value: builtins.str) -> None:
607
+ if __debug__:
608
+ type_hints = typing.get_type_hints(_typecheckingstub__0d97187bd0b82a71876e431a81398d9cc1dc821d2610692158cc56a31a863789)
609
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
610
+ jsii.set(self, "terraformAttribute", value) # pyright: ignore[reportArgumentType]
611
+
612
+ @builtins.property
613
+ @jsii.member(jsii_name="terraformResource")
614
+ def _terraform_resource(self) -> _cdktf_9a9027ec.IInterpolatingParent:
615
+ '''The parent resource.'''
616
+ return typing.cast(_cdktf_9a9027ec.IInterpolatingParent, jsii.get(self, "terraformResource"))
617
+
618
+ @_terraform_resource.setter
619
+ def _terraform_resource(self, value: _cdktf_9a9027ec.IInterpolatingParent) -> None:
620
+ if __debug__:
621
+ type_hints = typing.get_type_hints(_typecheckingstub__ae893d1d0df821f4f21d426fa80e3eb1d46fa1bbbc724b73e68a3bde2309032c)
622
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
623
+ jsii.set(self, "terraformResource", value) # pyright: ignore[reportArgumentType]
624
+
625
+ @builtins.property
626
+ @jsii.member(jsii_name="wrapsSet")
627
+ def _wraps_set(self) -> builtins.bool:
628
+ '''whether the list is wrapping a set (will add tolist() to be able to access an item via an index).'''
629
+ return typing.cast(builtins.bool, jsii.get(self, "wrapsSet"))
630
+
631
+ @_wraps_set.setter
632
+ def _wraps_set(self, value: builtins.bool) -> None:
633
+ if __debug__:
634
+ type_hints = typing.get_type_hints(_typecheckingstub__beb64ca1f717b4814637a6a29fa9ec5a455b360ac7185bac86f30c38c43272e8)
635
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
636
+ jsii.set(self, "wrapsSet", value) # pyright: ignore[reportArgumentType]
637
+
638
+ @builtins.property
639
+ @jsii.member(jsii_name="internalValue")
640
+ def internal_value(
641
+ self,
642
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[KubernetesNodeGroupCloudNativePlan]]]:
643
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[KubernetesNodeGroupCloudNativePlan]]], jsii.get(self, "internalValue"))
644
+
645
+ @internal_value.setter
646
+ def internal_value(
647
+ self,
648
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[KubernetesNodeGroupCloudNativePlan]]],
649
+ ) -> None:
650
+ if __debug__:
651
+ type_hints = typing.get_type_hints(_typecheckingstub__d82a371178e1731f4d1566a0c16e13ea3970cdd9188d838221dcd62f32757793)
652
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
653
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
654
+
655
+
656
+ class KubernetesNodeGroupCloudNativePlanOutputReference(
657
+ _cdktf_9a9027ec.ComplexObject,
658
+ metaclass=jsii.JSIIMeta,
659
+ jsii_type="@cdktf/provider-upcloud.kubernetesNodeGroup.KubernetesNodeGroupCloudNativePlanOutputReference",
660
+ ):
661
+ def __init__(
662
+ self,
663
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
664
+ terraform_attribute: builtins.str,
665
+ complex_object_index: jsii.Number,
666
+ complex_object_is_from_set: builtins.bool,
667
+ ) -> None:
668
+ '''
669
+ :param terraform_resource: The parent resource.
670
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
671
+ :param complex_object_index: the index of this item in the list.
672
+ :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).
673
+ '''
674
+ if __debug__:
675
+ type_hints = typing.get_type_hints(_typecheckingstub__5aaf5281cf9fc6a97d4533c0769d0346349b54e0f7716d35e13101df78d13b1d)
676
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
677
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
678
+ check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
679
+ check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
680
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])
681
+
682
+ @jsii.member(jsii_name="resetStorageSize")
683
+ def reset_storage_size(self) -> None:
684
+ return typing.cast(None, jsii.invoke(self, "resetStorageSize", []))
685
+
686
+ @jsii.member(jsii_name="resetStorageTier")
687
+ def reset_storage_tier(self) -> None:
688
+ return typing.cast(None, jsii.invoke(self, "resetStorageTier", []))
689
+
690
+ @builtins.property
691
+ @jsii.member(jsii_name="storageSizeInput")
692
+ def storage_size_input(self) -> typing.Optional[jsii.Number]:
693
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "storageSizeInput"))
694
+
695
+ @builtins.property
696
+ @jsii.member(jsii_name="storageTierInput")
697
+ def storage_tier_input(self) -> typing.Optional[builtins.str]:
698
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "storageTierInput"))
699
+
700
+ @builtins.property
701
+ @jsii.member(jsii_name="storageSize")
702
+ def storage_size(self) -> jsii.Number:
703
+ return typing.cast(jsii.Number, jsii.get(self, "storageSize"))
704
+
705
+ @storage_size.setter
706
+ def storage_size(self, value: jsii.Number) -> None:
707
+ if __debug__:
708
+ type_hints = typing.get_type_hints(_typecheckingstub__27f7ff508be8287499998f03c15d925e630d2e4e2a70ed3d542615d30fa9bf2d)
709
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
710
+ jsii.set(self, "storageSize", value) # pyright: ignore[reportArgumentType]
711
+
712
+ @builtins.property
713
+ @jsii.member(jsii_name="storageTier")
714
+ def storage_tier(self) -> builtins.str:
715
+ return typing.cast(builtins.str, jsii.get(self, "storageTier"))
716
+
717
+ @storage_tier.setter
718
+ def storage_tier(self, value: builtins.str) -> None:
719
+ if __debug__:
720
+ type_hints = typing.get_type_hints(_typecheckingstub__38df547be63e43097329d5785a3b9c86f9f334cd3b597e3faffc1473e6c3087c)
721
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
722
+ jsii.set(self, "storageTier", value) # pyright: ignore[reportArgumentType]
723
+
724
+ @builtins.property
725
+ @jsii.member(jsii_name="internalValue")
726
+ def internal_value(
727
+ self,
728
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, KubernetesNodeGroupCloudNativePlan]]:
729
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, KubernetesNodeGroupCloudNativePlan]], jsii.get(self, "internalValue"))
730
+
731
+ @internal_value.setter
732
+ def internal_value(
733
+ self,
734
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, KubernetesNodeGroupCloudNativePlan]],
735
+ ) -> None:
736
+ if __debug__:
737
+ type_hints = typing.get_type_hints(_typecheckingstub__fb41ddc5a5a4d49616d4a8b63583841ac403b22e7f09d2806b25388722eb66a5)
738
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
739
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
740
+
741
+
443
742
  @jsii.data_type(
444
743
  jsii_type="@cdktf/provider-upcloud.kubernetesNodeGroup.KubernetesNodeGroupConfig",
445
744
  jsii_struct_bases=[_cdktf_9a9027ec.TerraformMetaArguments],
@@ -456,7 +755,9 @@ class KubernetesNodeGroup(
456
755
  "node_count": "nodeCount",
457
756
  "plan": "plan",
458
757
  "anti_affinity": "antiAffinity",
758
+ "cloud_native_plan": "cloudNativePlan",
459
759
  "custom_plan": "customPlan",
760
+ "gpu_plan": "gpuPlan",
460
761
  "kubelet_args": "kubeletArgs",
461
762
  "labels": "labels",
462
763
  "ssh_keys": "sshKeys",
@@ -481,7 +782,9 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
481
782
  node_count: jsii.Number,
482
783
  plan: builtins.str,
483
784
  anti_affinity: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
785
+ cloud_native_plan: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupCloudNativePlan, typing.Dict[builtins.str, typing.Any]]]]] = None,
484
786
  custom_plan: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["KubernetesNodeGroupCustomPlan", typing.Dict[builtins.str, typing.Any]]]]] = None,
787
+ gpu_plan: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["KubernetesNodeGroupGpuPlan", typing.Dict[builtins.str, typing.Any]]]]] = None,
485
788
  kubelet_args: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["KubernetesNodeGroupKubeletArgs", typing.Dict[builtins.str, typing.Any]]]]] = None,
486
789
  labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
487
790
  ssh_keys: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -497,18 +800,20 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
497
800
  :param lifecycle:
498
801
  :param provider:
499
802
  :param provisioners:
500
- :param cluster: UUID of the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#cluster KubernetesNodeGroup#cluster}
501
- :param name: The name of the node group. Needs to be unique within a cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#name KubernetesNodeGroup#name}
502
- :param node_count: Amount of nodes to provision in the node group. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#node_count KubernetesNodeGroup#node_count}
503
- :param plan: The server plan used for the node group. You can list available plans with ``upctl server plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#plan KubernetesNodeGroup#plan}
504
- :param anti_affinity: If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#anti_affinity KubernetesNodeGroup#anti_affinity}
505
- :param custom_plan: custom_plan block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#custom_plan KubernetesNodeGroup#custom_plan}
506
- :param kubelet_args: kubelet_args block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#kubelet_args KubernetesNodeGroup#kubelet_args}
507
- :param labels: User defined key-value pairs to classify the node_group. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#labels KubernetesNodeGroup#labels}
508
- :param ssh_keys: You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#ssh_keys KubernetesNodeGroup#ssh_keys}
509
- :param storage_encryption: The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#storage_encryption KubernetesNodeGroup#storage_encryption}
510
- :param taint: taint block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#taint KubernetesNodeGroup#taint}
511
- :param utility_network_access: If set to false, nodes in this group will not have access to utility network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#utility_network_access KubernetesNodeGroup#utility_network_access}
803
+ :param cluster: UUID of the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#cluster KubernetesNodeGroup#cluster}
804
+ :param name: The name of the node group. Needs to be unique within a cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#name KubernetesNodeGroup#name}
805
+ :param node_count: Amount of nodes to provision in the node group. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#node_count KubernetesNodeGroup#node_count}
806
+ :param plan: The server plan used for the node group. You can list available plans with ``upctl server plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#plan KubernetesNodeGroup#plan}
807
+ :param anti_affinity: If set to true, nodes in this group will be placed on separate compute hosts. Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#anti_affinity KubernetesNodeGroup#anti_affinity}
808
+ :param cloud_native_plan: cloud_native_plan block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#cloud_native_plan KubernetesNodeGroup#cloud_native_plan}
809
+ :param custom_plan: custom_plan block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#custom_plan KubernetesNodeGroup#custom_plan}
810
+ :param gpu_plan: gpu_plan block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#gpu_plan KubernetesNodeGroup#gpu_plan}
811
+ :param kubelet_args: kubelet_args block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#kubelet_args KubernetesNodeGroup#kubelet_args}
812
+ :param labels: User defined key-value pairs to classify the node_group. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#labels KubernetesNodeGroup#labels}
813
+ :param ssh_keys: You can optionally select SSH keys to be added as authorized keys to the nodes in this node group. This allows you to connect to the nodes via SSH once they are running. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#ssh_keys KubernetesNodeGroup#ssh_keys}
814
+ :param storage_encryption: The storage encryption strategy to use for the nodes in this group. If not set, the cluster's storage encryption strategy will be used, if applicable. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_encryption KubernetesNodeGroup#storage_encryption}
815
+ :param taint: taint block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#taint KubernetesNodeGroup#taint}
816
+ :param utility_network_access: If set to false, nodes in this group will not have access to utility network. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#utility_network_access KubernetesNodeGroup#utility_network_access}
512
817
  '''
513
818
  if isinstance(lifecycle, dict):
514
819
  lifecycle = _cdktf_9a9027ec.TerraformResourceLifecycle(**lifecycle)
@@ -526,7 +831,9 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
526
831
  check_type(argname="argument node_count", value=node_count, expected_type=type_hints["node_count"])
527
832
  check_type(argname="argument plan", value=plan, expected_type=type_hints["plan"])
528
833
  check_type(argname="argument anti_affinity", value=anti_affinity, expected_type=type_hints["anti_affinity"])
834
+ check_type(argname="argument cloud_native_plan", value=cloud_native_plan, expected_type=type_hints["cloud_native_plan"])
529
835
  check_type(argname="argument custom_plan", value=custom_plan, expected_type=type_hints["custom_plan"])
836
+ check_type(argname="argument gpu_plan", value=gpu_plan, expected_type=type_hints["gpu_plan"])
530
837
  check_type(argname="argument kubelet_args", value=kubelet_args, expected_type=type_hints["kubelet_args"])
531
838
  check_type(argname="argument labels", value=labels, expected_type=type_hints["labels"])
532
839
  check_type(argname="argument ssh_keys", value=ssh_keys, expected_type=type_hints["ssh_keys"])
@@ -555,8 +862,12 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
555
862
  self._values["provisioners"] = provisioners
556
863
  if anti_affinity is not None:
557
864
  self._values["anti_affinity"] = anti_affinity
865
+ if cloud_native_plan is not None:
866
+ self._values["cloud_native_plan"] = cloud_native_plan
558
867
  if custom_plan is not None:
559
868
  self._values["custom_plan"] = custom_plan
869
+ if gpu_plan is not None:
870
+ self._values["gpu_plan"] = gpu_plan
560
871
  if kubelet_args is not None:
561
872
  self._values["kubelet_args"] = kubelet_args
562
873
  if labels is not None:
@@ -638,7 +949,7 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
638
949
  def cluster(self) -> builtins.str:
639
950
  '''UUID of the cluster.
640
951
 
641
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#cluster KubernetesNodeGroup#cluster}
952
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#cluster KubernetesNodeGroup#cluster}
642
953
  '''
643
954
  result = self._values.get("cluster")
644
955
  assert result is not None, "Required property 'cluster' is missing"
@@ -648,7 +959,7 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
648
959
  def name(self) -> builtins.str:
649
960
  '''The name of the node group. Needs to be unique within a cluster.
650
961
 
651
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#name KubernetesNodeGroup#name}
962
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#name KubernetesNodeGroup#name}
652
963
  '''
653
964
  result = self._values.get("name")
654
965
  assert result is not None, "Required property 'name' is missing"
@@ -658,7 +969,7 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
658
969
  def node_count(self) -> jsii.Number:
659
970
  '''Amount of nodes to provision in the node group.
660
971
 
661
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#node_count KubernetesNodeGroup#node_count}
972
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#node_count KubernetesNodeGroup#node_count}
662
973
  '''
663
974
  result = self._values.get("node_count")
664
975
  assert result is not None, "Required property 'node_count' is missing"
@@ -668,7 +979,7 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
668
979
  def plan(self) -> builtins.str:
669
980
  '''The server plan used for the node group. You can list available plans with ``upctl server plans``.
670
981
 
671
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#plan KubernetesNodeGroup#plan}
982
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#plan KubernetesNodeGroup#plan}
672
983
  '''
673
984
  result = self._values.get("plan")
674
985
  assert result is not None, "Required property 'plan' is missing"
@@ -682,29 +993,51 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
682
993
 
683
994
  Please note that anti-affinity policy is considered 'best effort' and enabling it does not fully guarantee that the nodes will end up on different hardware.
684
995
 
685
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#anti_affinity KubernetesNodeGroup#anti_affinity}
996
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#anti_affinity KubernetesNodeGroup#anti_affinity}
686
997
  '''
687
998
  result = self._values.get("anti_affinity")
688
999
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
689
1000
 
1001
+ @builtins.property
1002
+ def cloud_native_plan(
1003
+ self,
1004
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[KubernetesNodeGroupCloudNativePlan]]]:
1005
+ '''cloud_native_plan block.
1006
+
1007
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#cloud_native_plan KubernetesNodeGroup#cloud_native_plan}
1008
+ '''
1009
+ result = self._values.get("cloud_native_plan")
1010
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[KubernetesNodeGroupCloudNativePlan]]], result)
1011
+
690
1012
  @builtins.property
691
1013
  def custom_plan(
692
1014
  self,
693
1015
  ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupCustomPlan"]]]:
694
1016
  '''custom_plan block.
695
1017
 
696
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#custom_plan KubernetesNodeGroup#custom_plan}
1018
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#custom_plan KubernetesNodeGroup#custom_plan}
697
1019
  '''
698
1020
  result = self._values.get("custom_plan")
699
1021
  return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupCustomPlan"]]], result)
700
1022
 
1023
+ @builtins.property
1024
+ def gpu_plan(
1025
+ self,
1026
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupGpuPlan"]]]:
1027
+ '''gpu_plan block.
1028
+
1029
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#gpu_plan KubernetesNodeGroup#gpu_plan}
1030
+ '''
1031
+ result = self._values.get("gpu_plan")
1032
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupGpuPlan"]]], result)
1033
+
701
1034
  @builtins.property
702
1035
  def kubelet_args(
703
1036
  self,
704
1037
  ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupKubeletArgs"]]]:
705
1038
  '''kubelet_args block.
706
1039
 
707
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#kubelet_args KubernetesNodeGroup#kubelet_args}
1040
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#kubelet_args KubernetesNodeGroup#kubelet_args}
708
1041
  '''
709
1042
  result = self._values.get("kubelet_args")
710
1043
  return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupKubeletArgs"]]], result)
@@ -713,7 +1046,7 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
713
1046
  def labels(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
714
1047
  '''User defined key-value pairs to classify the node_group.
715
1048
 
716
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#labels KubernetesNodeGroup#labels}
1049
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#labels KubernetesNodeGroup#labels}
717
1050
  '''
718
1051
  result = self._values.get("labels")
719
1052
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
@@ -724,7 +1057,7 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
724
1057
 
725
1058
  This allows you to connect to the nodes via SSH once they are running.
726
1059
 
727
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#ssh_keys KubernetesNodeGroup#ssh_keys}
1060
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#ssh_keys KubernetesNodeGroup#ssh_keys}
728
1061
  '''
729
1062
  result = self._values.get("ssh_keys")
730
1063
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
@@ -735,7 +1068,7 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
735
1068
 
736
1069
  If not set, the cluster's storage encryption strategy will be used, if applicable.
737
1070
 
738
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#storage_encryption KubernetesNodeGroup#storage_encryption}
1071
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_encryption KubernetesNodeGroup#storage_encryption}
739
1072
  '''
740
1073
  result = self._values.get("storage_encryption")
741
1074
  return typing.cast(typing.Optional[builtins.str], result)
@@ -746,7 +1079,7 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
746
1079
  ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupTaint"]]]:
747
1080
  '''taint block.
748
1081
 
749
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#taint KubernetesNodeGroup#taint}
1082
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#taint KubernetesNodeGroup#taint}
750
1083
  '''
751
1084
  result = self._values.get("taint")
752
1085
  return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["KubernetesNodeGroupTaint"]]], result)
@@ -757,7 +1090,7 @@ class KubernetesNodeGroupConfig(_cdktf_9a9027ec.TerraformMetaArguments):
757
1090
  ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
758
1091
  '''If set to false, nodes in this group will not have access to utility network.
759
1092
 
760
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#utility_network_access KubernetesNodeGroup#utility_network_access}
1093
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#utility_network_access KubernetesNodeGroup#utility_network_access}
761
1094
  '''
762
1095
  result = self._values.get("utility_network_access")
763
1096
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
@@ -794,10 +1127,10 @@ class KubernetesNodeGroupCustomPlan:
794
1127
  storage_tier: typing.Optional[builtins.str] = None,
795
1128
  ) -> None:
796
1129
  '''
797
- :param cores: The number of CPU cores dedicated to individual node group nodes when using custom plan. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#cores KubernetesNodeGroup#cores}
798
- :param memory: The amount of memory in megabytes to assign to individual node group node when using custom plan. Value needs to be divisible by 1024. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#memory KubernetesNodeGroup#memory}
799
- :param storage_size: The size of the storage device in gigabytes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#storage_size KubernetesNodeGroup#storage_size}
800
- :param storage_tier: The storage tier to use. Defaults to maxiops. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#storage_tier KubernetesNodeGroup#storage_tier}
1130
+ :param cores: The number of CPU cores dedicated to individual node group nodes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#cores KubernetesNodeGroup#cores}
1131
+ :param memory: The amount of memory in megabytes to assign to individual node group node. Value needs to be divisible by 1024. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#memory KubernetesNodeGroup#memory}
1132
+ :param storage_size: The size of the storage device in gigabytes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_size KubernetesNodeGroup#storage_size}
1133
+ :param storage_tier: The storage tier to use. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_tier KubernetesNodeGroup#storage_tier}
801
1134
  '''
802
1135
  if __debug__:
803
1136
  type_hints = typing.get_type_hints(_typecheckingstub__73a7225f6a5b39ce9f22f470a4b39f4020d9c2babc3a4001d90f5a255e45917c)
@@ -815,9 +1148,9 @@ class KubernetesNodeGroupCustomPlan:
815
1148
 
816
1149
  @builtins.property
817
1150
  def cores(self) -> jsii.Number:
818
- '''The number of CPU cores dedicated to individual node group nodes when using custom plan.
1151
+ '''The number of CPU cores dedicated to individual node group nodes.
819
1152
 
820
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#cores KubernetesNodeGroup#cores}
1153
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#cores KubernetesNodeGroup#cores}
821
1154
  '''
822
1155
  result = self._values.get("cores")
823
1156
  assert result is not None, "Required property 'cores' is missing"
@@ -825,11 +1158,11 @@ class KubernetesNodeGroupCustomPlan:
825
1158
 
826
1159
  @builtins.property
827
1160
  def memory(self) -> jsii.Number:
828
- '''The amount of memory in megabytes to assign to individual node group node when using custom plan.
1161
+ '''The amount of memory in megabytes to assign to individual node group node.
829
1162
 
830
1163
  Value needs to be divisible by 1024.
831
1164
 
832
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#memory KubernetesNodeGroup#memory}
1165
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#memory KubernetesNodeGroup#memory}
833
1166
  '''
834
1167
  result = self._values.get("memory")
835
1168
  assert result is not None, "Required property 'memory' is missing"
@@ -839,7 +1172,7 @@ class KubernetesNodeGroupCustomPlan:
839
1172
  def storage_size(self) -> jsii.Number:
840
1173
  '''The size of the storage device in gigabytes.
841
1174
 
842
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#storage_size KubernetesNodeGroup#storage_size}
1175
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_size KubernetesNodeGroup#storage_size}
843
1176
  '''
844
1177
  result = self._values.get("storage_size")
845
1178
  assert result is not None, "Required property 'storage_size' is missing"
@@ -847,9 +1180,9 @@ class KubernetesNodeGroupCustomPlan:
847
1180
 
848
1181
  @builtins.property
849
1182
  def storage_tier(self) -> typing.Optional[builtins.str]:
850
- '''The storage tier to use. Defaults to maxiops.
1183
+ '''The storage tier to use.
851
1184
 
852
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#storage_tier KubernetesNodeGroup#storage_tier}
1185
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_tier KubernetesNodeGroup#storage_tier}
853
1186
  '''
854
1187
  result = self._values.get("storage_tier")
855
1188
  return typing.cast(typing.Optional[builtins.str], result)
@@ -1073,32 +1406,264 @@ class KubernetesNodeGroupCustomPlanOutputReference(
1073
1406
 
1074
1407
 
1075
1408
  @jsii.data_type(
1076
- jsii_type="@cdktf/provider-upcloud.kubernetesNodeGroup.KubernetesNodeGroupKubeletArgs",
1409
+ jsii_type="@cdktf/provider-upcloud.kubernetesNodeGroup.KubernetesNodeGroupGpuPlan",
1077
1410
  jsii_struct_bases=[],
1078
- name_mapping={"key": "key", "value": "value"},
1411
+ name_mapping={"storage_size": "storageSize", "storage_tier": "storageTier"},
1079
1412
  )
1080
- class KubernetesNodeGroupKubeletArgs:
1081
- def __init__(self, *, key: builtins.str, value: builtins.str) -> None:
1413
+ class KubernetesNodeGroupGpuPlan:
1414
+ def __init__(
1415
+ self,
1416
+ *,
1417
+ storage_size: typing.Optional[jsii.Number] = None,
1418
+ storage_tier: typing.Optional[builtins.str] = None,
1419
+ ) -> None:
1082
1420
  '''
1083
- :param key: Kubelet argument key. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#key KubernetesNodeGroup#key}
1084
- :param value: Kubelet argument value. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#value KubernetesNodeGroup#value}
1421
+ :param storage_size: The size of the storage device in gigabytes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_size KubernetesNodeGroup#storage_size}
1422
+ :param storage_tier: The storage tier to use. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_tier KubernetesNodeGroup#storage_tier}
1085
1423
  '''
1086
1424
  if __debug__:
1087
- type_hints = typing.get_type_hints(_typecheckingstub__842da686c29c5adfe37f8e21bb7186ee26ad8d4d70cd1e8579de468f13543803)
1088
- check_type(argname="argument key", value=key, expected_type=type_hints["key"])
1089
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1090
- self._values: typing.Dict[builtins.str, typing.Any] = {
1091
- "key": key,
1092
- "value": value,
1093
- }
1425
+ type_hints = typing.get_type_hints(_typecheckingstub__2fa7e5803de5175f0817ac85027aef2f8dcff8f820ba557a589bd58117442345)
1426
+ check_type(argname="argument storage_size", value=storage_size, expected_type=type_hints["storage_size"])
1427
+ check_type(argname="argument storage_tier", value=storage_tier, expected_type=type_hints["storage_tier"])
1428
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1429
+ if storage_size is not None:
1430
+ self._values["storage_size"] = storage_size
1431
+ if storage_tier is not None:
1432
+ self._values["storage_tier"] = storage_tier
1094
1433
 
1095
1434
  @builtins.property
1096
- def key(self) -> builtins.str:
1097
- '''Kubelet argument key.
1435
+ def storage_size(self) -> typing.Optional[jsii.Number]:
1436
+ '''The size of the storage device in gigabytes.
1098
1437
 
1099
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#key KubernetesNodeGroup#key}
1438
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_size KubernetesNodeGroup#storage_size}
1100
1439
  '''
1101
- result = self._values.get("key")
1440
+ result = self._values.get("storage_size")
1441
+ return typing.cast(typing.Optional[jsii.Number], result)
1442
+
1443
+ @builtins.property
1444
+ def storage_tier(self) -> typing.Optional[builtins.str]:
1445
+ '''The storage tier to use.
1446
+
1447
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#storage_tier KubernetesNodeGroup#storage_tier}
1448
+ '''
1449
+ result = self._values.get("storage_tier")
1450
+ return typing.cast(typing.Optional[builtins.str], result)
1451
+
1452
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1453
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1454
+
1455
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1456
+ return not (rhs == self)
1457
+
1458
+ def __repr__(self) -> str:
1459
+ return "KubernetesNodeGroupGpuPlan(%s)" % ", ".join(
1460
+ k + "=" + repr(v) for k, v in self._values.items()
1461
+ )
1462
+
1463
+
1464
+ class KubernetesNodeGroupGpuPlanList(
1465
+ _cdktf_9a9027ec.ComplexList,
1466
+ metaclass=jsii.JSIIMeta,
1467
+ jsii_type="@cdktf/provider-upcloud.kubernetesNodeGroup.KubernetesNodeGroupGpuPlanList",
1468
+ ):
1469
+ def __init__(
1470
+ self,
1471
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1472
+ terraform_attribute: builtins.str,
1473
+ wraps_set: builtins.bool,
1474
+ ) -> None:
1475
+ '''
1476
+ :param terraform_resource: The parent resource.
1477
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
1478
+ :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
1479
+ '''
1480
+ if __debug__:
1481
+ type_hints = typing.get_type_hints(_typecheckingstub__7b1116523b1a8f7cf2e4f21456b1e8c24a959cc22b4d33b2606bac63063972ed)
1482
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
1483
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
1484
+ check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
1485
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])
1486
+
1487
+ @jsii.member(jsii_name="get")
1488
+ def get(self, index: jsii.Number) -> "KubernetesNodeGroupGpuPlanOutputReference":
1489
+ '''
1490
+ :param index: the index of the item to return.
1491
+ '''
1492
+ if __debug__:
1493
+ type_hints = typing.get_type_hints(_typecheckingstub__3bd2c3bdaf3a8a8a1c8bde2bae997a172480ee2fd03a9886261c781f02bd8511)
1494
+ check_type(argname="argument index", value=index, expected_type=type_hints["index"])
1495
+ return typing.cast("KubernetesNodeGroupGpuPlanOutputReference", jsii.invoke(self, "get", [index]))
1496
+
1497
+ @builtins.property
1498
+ @jsii.member(jsii_name="terraformAttribute")
1499
+ def _terraform_attribute(self) -> builtins.str:
1500
+ '''The attribute on the parent resource this class is referencing.'''
1501
+ return typing.cast(builtins.str, jsii.get(self, "terraformAttribute"))
1502
+
1503
+ @_terraform_attribute.setter
1504
+ def _terraform_attribute(self, value: builtins.str) -> None:
1505
+ if __debug__:
1506
+ type_hints = typing.get_type_hints(_typecheckingstub__a6d3362daab3ef72b55a53261618f6b4143936663c170097004850acc51fc7ba)
1507
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1508
+ jsii.set(self, "terraformAttribute", value) # pyright: ignore[reportArgumentType]
1509
+
1510
+ @builtins.property
1511
+ @jsii.member(jsii_name="terraformResource")
1512
+ def _terraform_resource(self) -> _cdktf_9a9027ec.IInterpolatingParent:
1513
+ '''The parent resource.'''
1514
+ return typing.cast(_cdktf_9a9027ec.IInterpolatingParent, jsii.get(self, "terraformResource"))
1515
+
1516
+ @_terraform_resource.setter
1517
+ def _terraform_resource(self, value: _cdktf_9a9027ec.IInterpolatingParent) -> None:
1518
+ if __debug__:
1519
+ type_hints = typing.get_type_hints(_typecheckingstub__96ed86b311e36730c9fc332c1931b6642d6014d1fb2b09cb9ca90a24a941f6d7)
1520
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1521
+ jsii.set(self, "terraformResource", value) # pyright: ignore[reportArgumentType]
1522
+
1523
+ @builtins.property
1524
+ @jsii.member(jsii_name="wrapsSet")
1525
+ def _wraps_set(self) -> builtins.bool:
1526
+ '''whether the list is wrapping a set (will add tolist() to be able to access an item via an index).'''
1527
+ return typing.cast(builtins.bool, jsii.get(self, "wrapsSet"))
1528
+
1529
+ @_wraps_set.setter
1530
+ def _wraps_set(self, value: builtins.bool) -> None:
1531
+ if __debug__:
1532
+ type_hints = typing.get_type_hints(_typecheckingstub__0c6b4a7ed698dfe86f81922561ac8dfd3e04fb00556732cbd2db190868c8f559)
1533
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1534
+ jsii.set(self, "wrapsSet", value) # pyright: ignore[reportArgumentType]
1535
+
1536
+ @builtins.property
1537
+ @jsii.member(jsii_name="internalValue")
1538
+ def internal_value(
1539
+ self,
1540
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[KubernetesNodeGroupGpuPlan]]]:
1541
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[KubernetesNodeGroupGpuPlan]]], jsii.get(self, "internalValue"))
1542
+
1543
+ @internal_value.setter
1544
+ def internal_value(
1545
+ self,
1546
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[KubernetesNodeGroupGpuPlan]]],
1547
+ ) -> None:
1548
+ if __debug__:
1549
+ type_hints = typing.get_type_hints(_typecheckingstub__56435d3f02cd0ef23c6f01ed04f7701d16a65a25ab90cce603c19e6145a084f6)
1550
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1551
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
1552
+
1553
+
1554
+ class KubernetesNodeGroupGpuPlanOutputReference(
1555
+ _cdktf_9a9027ec.ComplexObject,
1556
+ metaclass=jsii.JSIIMeta,
1557
+ jsii_type="@cdktf/provider-upcloud.kubernetesNodeGroup.KubernetesNodeGroupGpuPlanOutputReference",
1558
+ ):
1559
+ def __init__(
1560
+ self,
1561
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1562
+ terraform_attribute: builtins.str,
1563
+ complex_object_index: jsii.Number,
1564
+ complex_object_is_from_set: builtins.bool,
1565
+ ) -> None:
1566
+ '''
1567
+ :param terraform_resource: The parent resource.
1568
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
1569
+ :param complex_object_index: the index of this item in the list.
1570
+ :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).
1571
+ '''
1572
+ if __debug__:
1573
+ type_hints = typing.get_type_hints(_typecheckingstub__4f1b7b6a41a17a31b8f915354ea57f1454e9ab1791768481ef8af39e44c85950)
1574
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
1575
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
1576
+ check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
1577
+ check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
1578
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])
1579
+
1580
+ @jsii.member(jsii_name="resetStorageSize")
1581
+ def reset_storage_size(self) -> None:
1582
+ return typing.cast(None, jsii.invoke(self, "resetStorageSize", []))
1583
+
1584
+ @jsii.member(jsii_name="resetStorageTier")
1585
+ def reset_storage_tier(self) -> None:
1586
+ return typing.cast(None, jsii.invoke(self, "resetStorageTier", []))
1587
+
1588
+ @builtins.property
1589
+ @jsii.member(jsii_name="storageSizeInput")
1590
+ def storage_size_input(self) -> typing.Optional[jsii.Number]:
1591
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "storageSizeInput"))
1592
+
1593
+ @builtins.property
1594
+ @jsii.member(jsii_name="storageTierInput")
1595
+ def storage_tier_input(self) -> typing.Optional[builtins.str]:
1596
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "storageTierInput"))
1597
+
1598
+ @builtins.property
1599
+ @jsii.member(jsii_name="storageSize")
1600
+ def storage_size(self) -> jsii.Number:
1601
+ return typing.cast(jsii.Number, jsii.get(self, "storageSize"))
1602
+
1603
+ @storage_size.setter
1604
+ def storage_size(self, value: jsii.Number) -> None:
1605
+ if __debug__:
1606
+ type_hints = typing.get_type_hints(_typecheckingstub__12bc49b7146309b28c7a7a7d7b2bb4d9dd5dd90208d75989bac24002fa035032)
1607
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1608
+ jsii.set(self, "storageSize", value) # pyright: ignore[reportArgumentType]
1609
+
1610
+ @builtins.property
1611
+ @jsii.member(jsii_name="storageTier")
1612
+ def storage_tier(self) -> builtins.str:
1613
+ return typing.cast(builtins.str, jsii.get(self, "storageTier"))
1614
+
1615
+ @storage_tier.setter
1616
+ def storage_tier(self, value: builtins.str) -> None:
1617
+ if __debug__:
1618
+ type_hints = typing.get_type_hints(_typecheckingstub__31a5992622b650da62b9685feb2241ec0c685dd517de9ef9205aa8049a237604)
1619
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1620
+ jsii.set(self, "storageTier", value) # pyright: ignore[reportArgumentType]
1621
+
1622
+ @builtins.property
1623
+ @jsii.member(jsii_name="internalValue")
1624
+ def internal_value(
1625
+ self,
1626
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, KubernetesNodeGroupGpuPlan]]:
1627
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, KubernetesNodeGroupGpuPlan]], jsii.get(self, "internalValue"))
1628
+
1629
+ @internal_value.setter
1630
+ def internal_value(
1631
+ self,
1632
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, KubernetesNodeGroupGpuPlan]],
1633
+ ) -> None:
1634
+ if __debug__:
1635
+ type_hints = typing.get_type_hints(_typecheckingstub__f1e103e18c79ba9829a5353d403edb5702433cfe99ad39fe8da3d311d8c22dd0)
1636
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1637
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
1638
+
1639
+
1640
+ @jsii.data_type(
1641
+ jsii_type="@cdktf/provider-upcloud.kubernetesNodeGroup.KubernetesNodeGroupKubeletArgs",
1642
+ jsii_struct_bases=[],
1643
+ name_mapping={"key": "key", "value": "value"},
1644
+ )
1645
+ class KubernetesNodeGroupKubeletArgs:
1646
+ def __init__(self, *, key: builtins.str, value: builtins.str) -> None:
1647
+ '''
1648
+ :param key: Kubelet argument key. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#key KubernetesNodeGroup#key}
1649
+ :param value: Kubelet argument value. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#value KubernetesNodeGroup#value}
1650
+ '''
1651
+ if __debug__:
1652
+ type_hints = typing.get_type_hints(_typecheckingstub__842da686c29c5adfe37f8e21bb7186ee26ad8d4d70cd1e8579de468f13543803)
1653
+ check_type(argname="argument key", value=key, expected_type=type_hints["key"])
1654
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1655
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1656
+ "key": key,
1657
+ "value": value,
1658
+ }
1659
+
1660
+ @builtins.property
1661
+ def key(self) -> builtins.str:
1662
+ '''Kubelet argument key.
1663
+
1664
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#key KubernetesNodeGroup#key}
1665
+ '''
1666
+ result = self._values.get("key")
1102
1667
  assert result is not None, "Required property 'key' is missing"
1103
1668
  return typing.cast(builtins.str, result)
1104
1669
 
@@ -1106,7 +1671,7 @@ class KubernetesNodeGroupKubeletArgs:
1106
1671
  def value(self) -> builtins.str:
1107
1672
  '''Kubelet argument value.
1108
1673
 
1109
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#value KubernetesNodeGroup#value}
1674
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#value KubernetesNodeGroup#value}
1110
1675
  '''
1111
1676
  result = self._values.get("value")
1112
1677
  assert result is not None, "Required property 'value' is missing"
@@ -1309,9 +1874,9 @@ class KubernetesNodeGroupTaint:
1309
1874
  value: builtins.str,
1310
1875
  ) -> None:
1311
1876
  '''
1312
- :param effect: Taint effect. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#effect KubernetesNodeGroup#effect}
1313
- :param key: Taint key. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#key KubernetesNodeGroup#key}
1314
- :param value: Taint value. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#value KubernetesNodeGroup#value}
1877
+ :param effect: Taint effect. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#effect KubernetesNodeGroup#effect}
1878
+ :param key: Taint key. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#key KubernetesNodeGroup#key}
1879
+ :param value: Taint value. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#value KubernetesNodeGroup#value}
1315
1880
  '''
1316
1881
  if __debug__:
1317
1882
  type_hints = typing.get_type_hints(_typecheckingstub__ea59ebf2232eca6d3573e469ce94ebcc61818a93352ae4370837428874ad8b8e)
@@ -1328,7 +1893,7 @@ class KubernetesNodeGroupTaint:
1328
1893
  def effect(self) -> builtins.str:
1329
1894
  '''Taint effect.
1330
1895
 
1331
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#effect KubernetesNodeGroup#effect}
1896
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#effect KubernetesNodeGroup#effect}
1332
1897
  '''
1333
1898
  result = self._values.get("effect")
1334
1899
  assert result is not None, "Required property 'effect' is missing"
@@ -1338,7 +1903,7 @@ class KubernetesNodeGroupTaint:
1338
1903
  def key(self) -> builtins.str:
1339
1904
  '''Taint key.
1340
1905
 
1341
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#key KubernetesNodeGroup#key}
1906
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#key KubernetesNodeGroup#key}
1342
1907
  '''
1343
1908
  result = self._values.get("key")
1344
1909
  assert result is not None, "Required property 'key' is missing"
@@ -1348,7 +1913,7 @@ class KubernetesNodeGroupTaint:
1348
1913
  def value(self) -> builtins.str:
1349
1914
  '''Taint value.
1350
1915
 
1351
- Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/kubernetes_node_group#value KubernetesNodeGroup#value}
1916
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.24.0/docs/resources/kubernetes_node_group#value KubernetesNodeGroup#value}
1352
1917
  '''
1353
1918
  result = self._values.get("value")
1354
1919
  assert result is not None, "Required property 'value' is missing"
@@ -1553,10 +2118,16 @@ class KubernetesNodeGroupTaintOutputReference(
1553
2118
 
1554
2119
  __all__ = [
1555
2120
  "KubernetesNodeGroup",
2121
+ "KubernetesNodeGroupCloudNativePlan",
2122
+ "KubernetesNodeGroupCloudNativePlanList",
2123
+ "KubernetesNodeGroupCloudNativePlanOutputReference",
1556
2124
  "KubernetesNodeGroupConfig",
1557
2125
  "KubernetesNodeGroupCustomPlan",
1558
2126
  "KubernetesNodeGroupCustomPlanList",
1559
2127
  "KubernetesNodeGroupCustomPlanOutputReference",
2128
+ "KubernetesNodeGroupGpuPlan",
2129
+ "KubernetesNodeGroupGpuPlanList",
2130
+ "KubernetesNodeGroupGpuPlanOutputReference",
1560
2131
  "KubernetesNodeGroupKubeletArgs",
1561
2132
  "KubernetesNodeGroupKubeletArgsList",
1562
2133
  "KubernetesNodeGroupKubeletArgsOutputReference",
@@ -1576,7 +2147,9 @@ def _typecheckingstub__8bbcd241d9ab4cfd557f0a030c928c51f93c7d6d9f343e0bcdbdda3cb
1576
2147
  node_count: jsii.Number,
1577
2148
  plan: builtins.str,
1578
2149
  anti_affinity: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
2150
+ cloud_native_plan: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupCloudNativePlan, typing.Dict[builtins.str, typing.Any]]]]] = None,
1579
2151
  custom_plan: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupCustomPlan, typing.Dict[builtins.str, typing.Any]]]]] = None,
2152
+ gpu_plan: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupGpuPlan, typing.Dict[builtins.str, typing.Any]]]]] = None,
1580
2153
  kubelet_args: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupKubeletArgs, typing.Dict[builtins.str, typing.Any]]]]] = None,
1581
2154
  labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1582
2155
  ssh_keys: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -1603,12 +2176,24 @@ def _typecheckingstub__8e4418f3bc7d50550f1d889edee827b87fd9884602972643c6b82f110
1603
2176
  """Type checking stubs"""
1604
2177
  pass
1605
2178
 
2179
+ def _typecheckingstub__ac2f10d642c0079d30e463561c2878e59777f101807a48a08ccb9a8933285e30(
2180
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupCloudNativePlan, typing.Dict[builtins.str, typing.Any]]]],
2181
+ ) -> None:
2182
+ """Type checking stubs"""
2183
+ pass
2184
+
1606
2185
  def _typecheckingstub__710eeb24e681bc1abd473c02c09c72cd25116f5c53784cd07b46e161d215c56f(
1607
2186
  value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupCustomPlan, typing.Dict[builtins.str, typing.Any]]]],
1608
2187
  ) -> None:
1609
2188
  """Type checking stubs"""
1610
2189
  pass
1611
2190
 
2191
+ def _typecheckingstub__c17e1903eed937df8e22fb46de08949295493fcc3197086a410959cf85bd4e98(
2192
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupGpuPlan, typing.Dict[builtins.str, typing.Any]]]],
2193
+ ) -> None:
2194
+ """Type checking stubs"""
2195
+ pass
2196
+
1612
2197
  def _typecheckingstub__32e3828076130e1cbd29ccb900f4d6ed322c27ffe5fa92f4dab04d41c7227a1f(
1613
2198
  value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupKubeletArgs, typing.Dict[builtins.str, typing.Any]]]],
1614
2199
  ) -> None:
@@ -1675,6 +2260,79 @@ def _typecheckingstub__1c2a3afca29e180734047644aa682bae1b7fbd5aacc3d234ed7616ba4
1675
2260
  """Type checking stubs"""
1676
2261
  pass
1677
2262
 
2263
+ def _typecheckingstub__5438388f4032834938f080084c7ae0430cf33858715d18b4e84c3c8b7d99c583(
2264
+ *,
2265
+ storage_size: typing.Optional[jsii.Number] = None,
2266
+ storage_tier: typing.Optional[builtins.str] = None,
2267
+ ) -> None:
2268
+ """Type checking stubs"""
2269
+ pass
2270
+
2271
+ def _typecheckingstub__8a5a3a16968d45ac84e9b283e63c8c906bd70e1a328640d5e7126d46a1c1fdd1(
2272
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
2273
+ terraform_attribute: builtins.str,
2274
+ wraps_set: builtins.bool,
2275
+ ) -> None:
2276
+ """Type checking stubs"""
2277
+ pass
2278
+
2279
+ def _typecheckingstub__2fe0c17e964827460fc66444ceb9d46776f4128115267f70dfc0ed4bfcb85920(
2280
+ index: jsii.Number,
2281
+ ) -> None:
2282
+ """Type checking stubs"""
2283
+ pass
2284
+
2285
+ def _typecheckingstub__0d97187bd0b82a71876e431a81398d9cc1dc821d2610692158cc56a31a863789(
2286
+ value: builtins.str,
2287
+ ) -> None:
2288
+ """Type checking stubs"""
2289
+ pass
2290
+
2291
+ def _typecheckingstub__ae893d1d0df821f4f21d426fa80e3eb1d46fa1bbbc724b73e68a3bde2309032c(
2292
+ value: _cdktf_9a9027ec.IInterpolatingParent,
2293
+ ) -> None:
2294
+ """Type checking stubs"""
2295
+ pass
2296
+
2297
+ def _typecheckingstub__beb64ca1f717b4814637a6a29fa9ec5a455b360ac7185bac86f30c38c43272e8(
2298
+ value: builtins.bool,
2299
+ ) -> None:
2300
+ """Type checking stubs"""
2301
+ pass
2302
+
2303
+ def _typecheckingstub__d82a371178e1731f4d1566a0c16e13ea3970cdd9188d838221dcd62f32757793(
2304
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[KubernetesNodeGroupCloudNativePlan]]],
2305
+ ) -> None:
2306
+ """Type checking stubs"""
2307
+ pass
2308
+
2309
+ def _typecheckingstub__5aaf5281cf9fc6a97d4533c0769d0346349b54e0f7716d35e13101df78d13b1d(
2310
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
2311
+ terraform_attribute: builtins.str,
2312
+ complex_object_index: jsii.Number,
2313
+ complex_object_is_from_set: builtins.bool,
2314
+ ) -> None:
2315
+ """Type checking stubs"""
2316
+ pass
2317
+
2318
+ def _typecheckingstub__27f7ff508be8287499998f03c15d925e630d2e4e2a70ed3d542615d30fa9bf2d(
2319
+ value: jsii.Number,
2320
+ ) -> None:
2321
+ """Type checking stubs"""
2322
+ pass
2323
+
2324
+ def _typecheckingstub__38df547be63e43097329d5785a3b9c86f9f334cd3b597e3faffc1473e6c3087c(
2325
+ value: builtins.str,
2326
+ ) -> None:
2327
+ """Type checking stubs"""
2328
+ pass
2329
+
2330
+ def _typecheckingstub__fb41ddc5a5a4d49616d4a8b63583841ac403b22e7f09d2806b25388722eb66a5(
2331
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, KubernetesNodeGroupCloudNativePlan]],
2332
+ ) -> None:
2333
+ """Type checking stubs"""
2334
+ pass
2335
+
1678
2336
  def _typecheckingstub__2489ae5bd3c17ee9de104387734150d3686d0bce3df0c0db5244751c51da43c4(
1679
2337
  *,
1680
2338
  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,
@@ -1689,7 +2347,9 @@ def _typecheckingstub__2489ae5bd3c17ee9de104387734150d3686d0bce3df0c0db5244751c5
1689
2347
  node_count: jsii.Number,
1690
2348
  plan: builtins.str,
1691
2349
  anti_affinity: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
2350
+ cloud_native_plan: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupCloudNativePlan, typing.Dict[builtins.str, typing.Any]]]]] = None,
1692
2351
  custom_plan: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupCustomPlan, typing.Dict[builtins.str, typing.Any]]]]] = None,
2352
+ gpu_plan: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupGpuPlan, typing.Dict[builtins.str, typing.Any]]]]] = None,
1693
2353
  kubelet_args: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[KubernetesNodeGroupKubeletArgs, typing.Dict[builtins.str, typing.Any]]]]] = None,
1694
2354
  labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1695
2355
  ssh_keys: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -1787,6 +2447,79 @@ def _typecheckingstub__c7a11f561e4b919a685206286a7eed09483e309fbeeea066dff67583e
1787
2447
  """Type checking stubs"""
1788
2448
  pass
1789
2449
 
2450
+ def _typecheckingstub__2fa7e5803de5175f0817ac85027aef2f8dcff8f820ba557a589bd58117442345(
2451
+ *,
2452
+ storage_size: typing.Optional[jsii.Number] = None,
2453
+ storage_tier: typing.Optional[builtins.str] = None,
2454
+ ) -> None:
2455
+ """Type checking stubs"""
2456
+ pass
2457
+
2458
+ def _typecheckingstub__7b1116523b1a8f7cf2e4f21456b1e8c24a959cc22b4d33b2606bac63063972ed(
2459
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
2460
+ terraform_attribute: builtins.str,
2461
+ wraps_set: builtins.bool,
2462
+ ) -> None:
2463
+ """Type checking stubs"""
2464
+ pass
2465
+
2466
+ def _typecheckingstub__3bd2c3bdaf3a8a8a1c8bde2bae997a172480ee2fd03a9886261c781f02bd8511(
2467
+ index: jsii.Number,
2468
+ ) -> None:
2469
+ """Type checking stubs"""
2470
+ pass
2471
+
2472
+ def _typecheckingstub__a6d3362daab3ef72b55a53261618f6b4143936663c170097004850acc51fc7ba(
2473
+ value: builtins.str,
2474
+ ) -> None:
2475
+ """Type checking stubs"""
2476
+ pass
2477
+
2478
+ def _typecheckingstub__96ed86b311e36730c9fc332c1931b6642d6014d1fb2b09cb9ca90a24a941f6d7(
2479
+ value: _cdktf_9a9027ec.IInterpolatingParent,
2480
+ ) -> None:
2481
+ """Type checking stubs"""
2482
+ pass
2483
+
2484
+ def _typecheckingstub__0c6b4a7ed698dfe86f81922561ac8dfd3e04fb00556732cbd2db190868c8f559(
2485
+ value: builtins.bool,
2486
+ ) -> None:
2487
+ """Type checking stubs"""
2488
+ pass
2489
+
2490
+ def _typecheckingstub__56435d3f02cd0ef23c6f01ed04f7701d16a65a25ab90cce603c19e6145a084f6(
2491
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[KubernetesNodeGroupGpuPlan]]],
2492
+ ) -> None:
2493
+ """Type checking stubs"""
2494
+ pass
2495
+
2496
+ def _typecheckingstub__4f1b7b6a41a17a31b8f915354ea57f1454e9ab1791768481ef8af39e44c85950(
2497
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
2498
+ terraform_attribute: builtins.str,
2499
+ complex_object_index: jsii.Number,
2500
+ complex_object_is_from_set: builtins.bool,
2501
+ ) -> None:
2502
+ """Type checking stubs"""
2503
+ pass
2504
+
2505
+ def _typecheckingstub__12bc49b7146309b28c7a7a7d7b2bb4d9dd5dd90208d75989bac24002fa035032(
2506
+ value: jsii.Number,
2507
+ ) -> None:
2508
+ """Type checking stubs"""
2509
+ pass
2510
+
2511
+ def _typecheckingstub__31a5992622b650da62b9685feb2241ec0c685dd517de9ef9205aa8049a237604(
2512
+ value: builtins.str,
2513
+ ) -> None:
2514
+ """Type checking stubs"""
2515
+ pass
2516
+
2517
+ def _typecheckingstub__f1e103e18c79ba9829a5353d403edb5702433cfe99ad39fe8da3d311d8c22dd0(
2518
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, KubernetesNodeGroupGpuPlan]],
2519
+ ) -> None:
2520
+ """Type checking stubs"""
2521
+ pass
2522
+
1790
2523
  def _typecheckingstub__842da686c29c5adfe37f8e21bb7186ee26ad8d4d70cd1e8579de468f13543803(
1791
2524
  *,
1792
2525
  key: builtins.str,