Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.azure.containerservice.kotlin.inputs.KubernetesClusterDefaultNodePoolArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azure.containerservice.kotlin.inputs
import com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Deprecated
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
*
* @property capacityReservationGroupId Specifies the ID of the Capacity Reservation Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
* @property customCaTrustEnabled Specifies whether to trust a Custom CA.
* > **Note:** This requires that the Preview Feature `Microsoft.ContainerService/CustomCATrustPreview` is enabled and the Resource Provider is re-registered, see [the documentation](https://learn.microsoft.com/en-us/azure/aks/custom-certificate-authority) for more information.
* @property enableAutoScaling Should [the Kubernetes Auto Scaler](https://docs.microsoft.com/azure/aks/cluster-autoscaler) be enabled for this Node Pool?
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets`.
* > **Note:** If you're using AutoScaling, you may wish to use [`ignoreChanges` functionality](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to ignore changes to the `node_count` field.
* @property enableHostEncryption Should the nodes in the Default Node Pool have host encryption enabled? `temporary_name_for_rotation` must be specified when changing this property.
* > **Note:** This requires that the Feature `Microsoft.ContainerService/EnableEncryptionAtHost` is enabled and the Resource Provider is registered.
* @property enableNodePublicIp Should nodes in this Node Pool have a Public IP Address? `temporary_name_for_rotation` must be specified when changing this property.
* @property fipsEnabled Should the nodes in this Node Pool have Federal Information Processing Standard enabled? `temporary_name_for_rotation` must be specified when changing this block. Changing this forces a new resource to be created.
* @property gpuInstance Specifies the GPU MIG instance profile for supported GPU VM SKU. The allowed values are `MIG1g`, `MIG2g`, `MIG3g`, `MIG4g` and `MIG7g`. Changing this forces a new resource to be created.
* @property hostGroupId Specifies the ID of the Host Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
* @property kubeletConfig A `kubelet_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
* @property kubeletDiskType The type of disk used by kubelet. Possible values are `OS` and `Temporary`.
* @property linuxOsConfig A `linux_os_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
* @property maxCount
* @property maxPods The maximum number of pods that can run on each agent. `temporary_name_for_rotation` must be specified when changing this property.
* @property messageOfTheDay A base64-encoded string which will be written to /etc/motd after decoding. This allows customization of the message of the day for Linux nodes. It cannot be specified for Windows nodes and must be a static string (i.e. will be printed raw and not executed as a script). Changing this forces a new resource to be created.
* @property minCount
* @property name The name which should be used for the default Kubernetes Node Pool.
* @property nodeCount
* @property nodeLabels A map of Kubernetes labels which should be applied to nodes in the Default Node Pool.
* @property nodeNetworkProfile A `node_network_profile` block as documented below.
* @property nodePublicIpPrefixId Resource ID for the Public IP Addresses Prefix for the nodes in this Node Pool. `enable_node_public_ip` should be `true`. Changing this forces a new resource to be created.
* @property nodeTaints
* @property onlyCriticalAddonsEnabled Enabling this option will taint default node pool with `CriticalAddonsOnly=true:NoSchedule` taint. `temporary_name_for_rotation` must be specified when changing this property.
* @property orchestratorVersion Version of Kubernetes used for the Agents. If not specified, the default node pool will be created with the version specified by `kubernetes_version`. If both are unspecified, the latest recommended version will be used at provisioning time (but won't auto-upgrade). AKS does not require an exact patch version to be specified, minor version aliases such as `1.22` are also supported. - The minor version's latest GA patch is automatically chosen in that case. More details can be found in [the documentation](https://docs.microsoft.com/en-us/azure/aks/supported-kubernetes-versions?tabs=azure-cli#alias-minor-version).
* > **Note:** This version must be supported by the Kubernetes Cluster - as such the version of Kubernetes used on the Cluster/Control Plane may need to be upgraded first.
* @property osDiskSizeGb The size of the OS Disk which should be used for each agent in the Node Pool. `temporary_name_for_rotation` must be specified when attempting a change.
* @property osDiskType The type of disk which should be used for the Operating System. Possible values are `Ephemeral` and `Managed`. Defaults to `Managed`. `temporary_name_for_rotation` must be specified when attempting a change.
* @property osSku Specifies the OS SKU used by the agent pool. Possible values are `AzureLinux`, `Ubuntu`, `Windows2019` and `Windows2022`. If not specified, the default is `Ubuntu` if OSType=Linux or `Windows2019` if OSType=Windows. And the default Windows OSSKU will be changed to `Windows2022` after Windows2019 is deprecated. `temporary_name_for_rotation` must be specified when attempting a change.
* @property podSubnetId The ID of the Subnet where the pods in the default Node Pool should exist.
* @property proximityPlacementGroupId The ID of the Proximity Placement Group. Changing this forces a new resource to be created.
* @property scaleDownMode Specifies the autoscaling behaviour of the Kubernetes Cluster. Allowed values are `Delete` and `Deallocate`. Defaults to `Delete`.
* @property snapshotId The ID of the Snapshot which should be used to create this default Node Pool. `temporary_name_for_rotation` must be specified when changing this property.
* @property tags A mapping of tags to assign to the Node Pool.
* > At this time there's a bug in the AKS API where Tags for a Node Pool are not stored in the correct case - you may wish to use `ignore_changes` functionality to ignore changes to the casing until this is fixed in the AKS API.
* @property temporaryNameForRotation Specifies the name of the temporary node pool used to cycle the default node pool for VM resizing.
* @property type The type of Node Pool which should be created. Possible values are `AvailabilitySet` and `VirtualMachineScaleSets`. Defaults to `VirtualMachineScaleSets`. Changing this forces a new resource to be created.
* > **Note:** When creating a cluster that supports multiple node pools, the cluster must use `VirtualMachineScaleSets`. For more information on the limitations of clusters using multiple node pools see [the documentation](https://learn.microsoft.com/en-us/azure/aks/use-multiple-node-pools#limitations).
* @property ultraSsdEnabled Used to specify whether the UltraSSD is enabled in the Default Node Pool. Defaults to `false`. See [the documentation](https://docs.microsoft.com/azure/aks/use-ultra-disks) for more information. `temporary_name_for_rotation` must be specified when attempting a change.
* @property upgradeSettings A `upgrade_settings` block as documented below.
* @property vmSize The size of the Virtual Machine, such as `Standard_DS2_v2`. `temporary_name_for_rotation` must be specified when attempting a resize.
* @property vnetSubnetId The ID of a Subnet where the Kubernetes Node Pool should exist.
* > **Note:** A Route Table must be configured on this Subnet.
* @property workloadRuntime Specifies the workload runtime used by the node pool. Possible values are `OCIContainer` and `KataMshvVmIsolation`.
* > **Note:** Pod Sandboxing / KataVM Isolation node pools are in Public Preview - more information and details on how to opt into the preview can be found in [this article](https://learn.microsoft.com/azure/aks/use-pod-sandboxing)
* @property zones Specifies a list of Availability Zones in which this Kubernetes Cluster should be located. `temporary_name_for_rotation` must be specified when changing this property.
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets` and that `load_balancer_sku` is set to `standard`.
*/
public data class KubernetesClusterDefaultNodePoolArgs(
public val capacityReservationGroupId: Output? = null,
public val customCaTrustEnabled: Output? = null,
public val enableAutoScaling: Output? = null,
public val enableHostEncryption: Output? = null,
public val enableNodePublicIp: Output? = null,
public val fipsEnabled: Output? = null,
public val gpuInstance: Output? = null,
public val hostGroupId: Output? = null,
public val kubeletConfig: Output? = null,
public val kubeletDiskType: Output? = null,
public val linuxOsConfig: Output? = null,
public val maxCount: Output? = null,
public val maxPods: Output? = null,
public val messageOfTheDay: Output? = null,
public val minCount: Output? = null,
public val name: Output,
public val nodeCount: Output? = null,
public val nodeLabels: Output>? = null,
public val nodeNetworkProfile: Output? =
null,
public val nodePublicIpPrefixId: Output? = null,
@Deprecated(
message = """
This field will be removed in v4.0 of the Azure Provider since the AKS API doesn't allow arbitrary
node taints on the default node pool
""",
)
public val nodeTaints: Output>? = null,
public val onlyCriticalAddonsEnabled: Output? = null,
public val orchestratorVersion: Output? = null,
public val osDiskSizeGb: Output? = null,
public val osDiskType: Output? = null,
public val osSku: Output? = null,
public val podSubnetId: Output? = null,
public val proximityPlacementGroupId: Output? = null,
public val scaleDownMode: Output? = null,
public val snapshotId: Output? = null,
public val tags: Output>? = null,
public val temporaryNameForRotation: Output? = null,
public val type: Output? = null,
public val ultraSsdEnabled: Output? = null,
public val upgradeSettings: Output? = null,
public val vmSize: Output,
public val vnetSubnetId: Output? = null,
public val workloadRuntime: Output? = null,
public val zones: Output>? = null,
) : ConvertibleToJava {
override fun toJava():
com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolArgs =
com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolArgs.builder()
.capacityReservationGroupId(capacityReservationGroupId?.applyValue({ args0 -> args0 }))
.customCaTrustEnabled(customCaTrustEnabled?.applyValue({ args0 -> args0 }))
.enableAutoScaling(enableAutoScaling?.applyValue({ args0 -> args0 }))
.enableHostEncryption(enableHostEncryption?.applyValue({ args0 -> args0 }))
.enableNodePublicIp(enableNodePublicIp?.applyValue({ args0 -> args0 }))
.fipsEnabled(fipsEnabled?.applyValue({ args0 -> args0 }))
.gpuInstance(gpuInstance?.applyValue({ args0 -> args0 }))
.hostGroupId(hostGroupId?.applyValue({ args0 -> args0 }))
.kubeletConfig(kubeletConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.kubeletDiskType(kubeletDiskType?.applyValue({ args0 -> args0 }))
.linuxOsConfig(linuxOsConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.maxCount(maxCount?.applyValue({ args0 -> args0 }))
.maxPods(maxPods?.applyValue({ args0 -> args0 }))
.messageOfTheDay(messageOfTheDay?.applyValue({ args0 -> args0 }))
.minCount(minCount?.applyValue({ args0 -> args0 }))
.name(name.applyValue({ args0 -> args0 }))
.nodeCount(nodeCount?.applyValue({ args0 -> args0 }))
.nodeLabels(
nodeLabels?.applyValue({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value)
}).toMap()
}),
)
.nodeNetworkProfile(
nodeNetworkProfile?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.nodePublicIpPrefixId(nodePublicIpPrefixId?.applyValue({ args0 -> args0 }))
.nodeTaints(nodeTaints?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.onlyCriticalAddonsEnabled(onlyCriticalAddonsEnabled?.applyValue({ args0 -> args0 }))
.orchestratorVersion(orchestratorVersion?.applyValue({ args0 -> args0 }))
.osDiskSizeGb(osDiskSizeGb?.applyValue({ args0 -> args0 }))
.osDiskType(osDiskType?.applyValue({ args0 -> args0 }))
.osSku(osSku?.applyValue({ args0 -> args0 }))
.podSubnetId(podSubnetId?.applyValue({ args0 -> args0 }))
.proximityPlacementGroupId(proximityPlacementGroupId?.applyValue({ args0 -> args0 }))
.scaleDownMode(scaleDownMode?.applyValue({ args0 -> args0 }))
.snapshotId(snapshotId?.applyValue({ args0 -> args0 }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
.temporaryNameForRotation(temporaryNameForRotation?.applyValue({ args0 -> args0 }))
.type(type?.applyValue({ args0 -> args0 }))
.ultraSsdEnabled(ultraSsdEnabled?.applyValue({ args0 -> args0 }))
.upgradeSettings(upgradeSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.vmSize(vmSize.applyValue({ args0 -> args0 }))
.vnetSubnetId(vnetSubnetId?.applyValue({ args0 -> args0 }))
.workloadRuntime(workloadRuntime?.applyValue({ args0 -> args0 }))
.zones(zones?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}
/**
* Builder for [KubernetesClusterDefaultNodePoolArgs].
*/
@PulumiTagMarker
public class KubernetesClusterDefaultNodePoolArgsBuilder internal constructor() {
private var capacityReservationGroupId: Output? = null
private var customCaTrustEnabled: Output? = null
private var enableAutoScaling: Output? = null
private var enableHostEncryption: Output? = null
private var enableNodePublicIp: Output? = null
private var fipsEnabled: Output? = null
private var gpuInstance: Output? = null
private var hostGroupId: Output? = null
private var kubeletConfig: Output? = null
private var kubeletDiskType: Output? = null
private var linuxOsConfig: Output? = null
private var maxCount: Output? = null
private var maxPods: Output? = null
private var messageOfTheDay: Output? = null
private var minCount: Output? = null
private var name: Output? = null
private var nodeCount: Output? = null
private var nodeLabels: Output>? = null
private var nodeNetworkProfile: Output? =
null
private var nodePublicIpPrefixId: Output? = null
private var nodeTaints: Output>? = null
private var onlyCriticalAddonsEnabled: Output? = null
private var orchestratorVersion: Output? = null
private var osDiskSizeGb: Output? = null
private var osDiskType: Output? = null
private var osSku: Output? = null
private var podSubnetId: Output? = null
private var proximityPlacementGroupId: Output? = null
private var scaleDownMode: Output? = null
private var snapshotId: Output? = null
private var tags: Output>? = null
private var temporaryNameForRotation: Output? = null
private var type: Output? = null
private var ultraSsdEnabled: Output? = null
private var upgradeSettings: Output? = null
private var vmSize: Output? = null
private var vnetSubnetId: Output? = null
private var workloadRuntime: Output? = null
private var zones: Output>? = null
/**
* @param value Specifies the ID of the Capacity Reservation Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
*/
@JvmName("foqyanvjjvcdmhav")
public suspend fun capacityReservationGroupId(`value`: Output) {
this.capacityReservationGroupId = value
}
/**
* @param value Specifies whether to trust a Custom CA.
* > **Note:** This requires that the Preview Feature `Microsoft.ContainerService/CustomCATrustPreview` is enabled and the Resource Provider is re-registered, see [the documentation](https://learn.microsoft.com/en-us/azure/aks/custom-certificate-authority) for more information.
*/
@JvmName("ytkosiwipitibfxq")
public suspend fun customCaTrustEnabled(`value`: Output) {
this.customCaTrustEnabled = value
}
/**
* @param value Should [the Kubernetes Auto Scaler](https://docs.microsoft.com/azure/aks/cluster-autoscaler) be enabled for this Node Pool?
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets`.
* > **Note:** If you're using AutoScaling, you may wish to use [`ignoreChanges` functionality](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to ignore changes to the `node_count` field.
*/
@JvmName("xxbwsemfoxxcwtkr")
public suspend fun enableAutoScaling(`value`: Output) {
this.enableAutoScaling = value
}
/**
* @param value Should the nodes in the Default Node Pool have host encryption enabled? `temporary_name_for_rotation` must be specified when changing this property.
* > **Note:** This requires that the Feature `Microsoft.ContainerService/EnableEncryptionAtHost` is enabled and the Resource Provider is registered.
*/
@JvmName("hawhvpcnveevanmo")
public suspend fun enableHostEncryption(`value`: Output) {
this.enableHostEncryption = value
}
/**
* @param value Should nodes in this Node Pool have a Public IP Address? `temporary_name_for_rotation` must be specified when changing this property.
*/
@JvmName("yxqjcqtkcroypsds")
public suspend fun enableNodePublicIp(`value`: Output) {
this.enableNodePublicIp = value
}
/**
* @param value Should the nodes in this Node Pool have Federal Information Processing Standard enabled? `temporary_name_for_rotation` must be specified when changing this block. Changing this forces a new resource to be created.
*/
@JvmName("xjhnbtgcshbjlisl")
public suspend fun fipsEnabled(`value`: Output) {
this.fipsEnabled = value
}
/**
* @param value Specifies the GPU MIG instance profile for supported GPU VM SKU. The allowed values are `MIG1g`, `MIG2g`, `MIG3g`, `MIG4g` and `MIG7g`. Changing this forces a new resource to be created.
*/
@JvmName("ojhfblxgmijcjbhb")
public suspend fun gpuInstance(`value`: Output) {
this.gpuInstance = value
}
/**
* @param value Specifies the ID of the Host Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
*/
@JvmName("thhabdbsghnuixoq")
public suspend fun hostGroupId(`value`: Output) {
this.hostGroupId = value
}
/**
* @param value A `kubelet_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*/
@JvmName("cgbnhcysgxljtrig")
public suspend
fun kubeletConfig(`value`: Output) {
this.kubeletConfig = value
}
/**
* @param value The type of disk used by kubelet. Possible values are `OS` and `Temporary`.
*/
@JvmName("toirgygwtafifwak")
public suspend fun kubeletDiskType(`value`: Output) {
this.kubeletDiskType = value
}
/**
* @param value A `linux_os_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*/
@JvmName("xieqdjljknymhfop")
public suspend
fun linuxOsConfig(`value`: Output) {
this.linuxOsConfig = value
}
/**
* @param value
*/
@JvmName("vlqujkgejpptxccv")
public suspend fun maxCount(`value`: Output) {
this.maxCount = value
}
/**
* @param value The maximum number of pods that can run on each agent. `temporary_name_for_rotation` must be specified when changing this property.
*/
@JvmName("retnjhiakkxdttun")
public suspend fun maxPods(`value`: Output) {
this.maxPods = value
}
/**
* @param value A base64-encoded string which will be written to /etc/motd after decoding. This allows customization of the message of the day for Linux nodes. It cannot be specified for Windows nodes and must be a static string (i.e. will be printed raw and not executed as a script). Changing this forces a new resource to be created.
*/
@JvmName("ubehukhqrlnqagyh")
public suspend fun messageOfTheDay(`value`: Output) {
this.messageOfTheDay = value
}
/**
* @param value
*/
@JvmName("onumtewxsaursnik")
public suspend fun minCount(`value`: Output) {
this.minCount = value
}
/**
* @param value The name which should be used for the default Kubernetes Node Pool.
*/
@JvmName("psqrwgirwrejdbge")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value
*/
@JvmName("mlsehpbcwqvoaowo")
public suspend fun nodeCount(`value`: Output) {
this.nodeCount = value
}
/**
* @param value A map of Kubernetes labels which should be applied to nodes in the Default Node Pool.
*/
@JvmName("sleqnpikewlosmvt")
public suspend fun nodeLabels(`value`: Output>) {
this.nodeLabels = value
}
/**
* @param value A `node_network_profile` block as documented below.
*/
@JvmName("jlnubqrlfvrnasqe")
public suspend
fun nodeNetworkProfile(`value`: Output) {
this.nodeNetworkProfile = value
}
/**
* @param value Resource ID for the Public IP Addresses Prefix for the nodes in this Node Pool. `enable_node_public_ip` should be `true`. Changing this forces a new resource to be created.
*/
@JvmName("avqxvklrngpgtnyp")
public suspend fun nodePublicIpPrefixId(`value`: Output) {
this.nodePublicIpPrefixId = value
}
/**
* @param value
*/
@Deprecated(
message = """
This field will be removed in v4.0 of the Azure Provider since the AKS API doesn't allow arbitrary
node taints on the default node pool
""",
)
@JvmName("nbjxedjqqnkqhpbu")
public suspend fun nodeTaints(`value`: Output>) {
this.nodeTaints = value
}
@JvmName("avcgsjtqdnuxwqkr")
public suspend fun nodeTaints(vararg values: Output) {
this.nodeTaints = Output.all(values.asList())
}
/**
* @param values
*/
@Deprecated(
message = """
This field will be removed in v4.0 of the Azure Provider since the AKS API doesn't allow arbitrary
node taints on the default node pool
""",
)
@JvmName("mlddyyfvqvbhrfou")
public suspend fun nodeTaints(values: List>) {
this.nodeTaints = Output.all(values)
}
/**
* @param value Enabling this option will taint default node pool with `CriticalAddonsOnly=true:NoSchedule` taint. `temporary_name_for_rotation` must be specified when changing this property.
*/
@JvmName("ktvfdymrxebenxxt")
public suspend fun onlyCriticalAddonsEnabled(`value`: Output) {
this.onlyCriticalAddonsEnabled = value
}
/**
* @param value Version of Kubernetes used for the Agents. If not specified, the default node pool will be created with the version specified by `kubernetes_version`. If both are unspecified, the latest recommended version will be used at provisioning time (but won't auto-upgrade). AKS does not require an exact patch version to be specified, minor version aliases such as `1.22` are also supported. - The minor version's latest GA patch is automatically chosen in that case. More details can be found in [the documentation](https://docs.microsoft.com/en-us/azure/aks/supported-kubernetes-versions?tabs=azure-cli#alias-minor-version).
* > **Note:** This version must be supported by the Kubernetes Cluster - as such the version of Kubernetes used on the Cluster/Control Plane may need to be upgraded first.
*/
@JvmName("rlqgesdcqmhrlufe")
public suspend fun orchestratorVersion(`value`: Output) {
this.orchestratorVersion = value
}
/**
* @param value The size of the OS Disk which should be used for each agent in the Node Pool. `temporary_name_for_rotation` must be specified when attempting a change.
*/
@JvmName("ypybyaxvusjebrxj")
public suspend fun osDiskSizeGb(`value`: Output) {
this.osDiskSizeGb = value
}
/**
* @param value The type of disk which should be used for the Operating System. Possible values are `Ephemeral` and `Managed`. Defaults to `Managed`. `temporary_name_for_rotation` must be specified when attempting a change.
*/
@JvmName("xxmpayoqjhdkelvl")
public suspend fun osDiskType(`value`: Output) {
this.osDiskType = value
}
/**
* @param value Specifies the OS SKU used by the agent pool. Possible values are `AzureLinux`, `Ubuntu`, `Windows2019` and `Windows2022`. If not specified, the default is `Ubuntu` if OSType=Linux or `Windows2019` if OSType=Windows. And the default Windows OSSKU will be changed to `Windows2022` after Windows2019 is deprecated. `temporary_name_for_rotation` must be specified when attempting a change.
*/
@JvmName("itivrkxqitjimlgg")
public suspend fun osSku(`value`: Output) {
this.osSku = value
}
/**
* @param value The ID of the Subnet where the pods in the default Node Pool should exist.
*/
@JvmName("wyulfdqcqpkiuumx")
public suspend fun podSubnetId(`value`: Output) {
this.podSubnetId = value
}
/**
* @param value The ID of the Proximity Placement Group. Changing this forces a new resource to be created.
*/
@JvmName("ofjdeqmnvcjirxnm")
public suspend fun proximityPlacementGroupId(`value`: Output) {
this.proximityPlacementGroupId = value
}
/**
* @param value Specifies the autoscaling behaviour of the Kubernetes Cluster. Allowed values are `Delete` and `Deallocate`. Defaults to `Delete`.
*/
@JvmName("uesgfoekcbbiumbf")
public suspend fun scaleDownMode(`value`: Output) {
this.scaleDownMode = value
}
/**
* @param value The ID of the Snapshot which should be used to create this default Node Pool. `temporary_name_for_rotation` must be specified when changing this property.
*/
@JvmName("cdoaxmhngubpabwr")
public suspend fun snapshotId(`value`: Output) {
this.snapshotId = value
}
/**
* @param value A mapping of tags to assign to the Node Pool.
* > At this time there's a bug in the AKS API where Tags for a Node Pool are not stored in the correct case - you may wish to use `ignore_changes` functionality to ignore changes to the casing until this is fixed in the AKS API.
*/
@JvmName("amudwemgstdkeagr")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
/**
* @param value Specifies the name of the temporary node pool used to cycle the default node pool for VM resizing.
*/
@JvmName("fpdhovrbahlknfcb")
public suspend fun temporaryNameForRotation(`value`: Output) {
this.temporaryNameForRotation = value
}
/**
* @param value The type of Node Pool which should be created. Possible values are `AvailabilitySet` and `VirtualMachineScaleSets`. Defaults to `VirtualMachineScaleSets`. Changing this forces a new resource to be created.
* > **Note:** When creating a cluster that supports multiple node pools, the cluster must use `VirtualMachineScaleSets`. For more information on the limitations of clusters using multiple node pools see [the documentation](https://learn.microsoft.com/en-us/azure/aks/use-multiple-node-pools#limitations).
*/
@JvmName("qmuloxabkckymvdq")
public suspend fun type(`value`: Output) {
this.type = value
}
/**
* @param value Used to specify whether the UltraSSD is enabled in the Default Node Pool. Defaults to `false`. See [the documentation](https://docs.microsoft.com/azure/aks/use-ultra-disks) for more information. `temporary_name_for_rotation` must be specified when attempting a change.
*/
@JvmName("twqcpaprxnnstjfc")
public suspend fun ultraSsdEnabled(`value`: Output) {
this.ultraSsdEnabled = value
}
/**
* @param value A `upgrade_settings` block as documented below.
*/
@JvmName("xgrlwhomgxthldlw")
public suspend
fun upgradeSettings(`value`: Output) {
this.upgradeSettings = value
}
/**
* @param value The size of the Virtual Machine, such as `Standard_DS2_v2`. `temporary_name_for_rotation` must be specified when attempting a resize.
*/
@JvmName("xtqwsiwupnvtsfxl")
public suspend fun vmSize(`value`: Output) {
this.vmSize = value
}
/**
* @param value The ID of a Subnet where the Kubernetes Node Pool should exist.
* > **Note:** A Route Table must be configured on this Subnet.
*/
@JvmName("lmwqheejuvuhwfyu")
public suspend fun vnetSubnetId(`value`: Output) {
this.vnetSubnetId = value
}
/**
* @param value Specifies the workload runtime used by the node pool. Possible values are `OCIContainer` and `KataMshvVmIsolation`.
* > **Note:** Pod Sandboxing / KataVM Isolation node pools are in Public Preview - more information and details on how to opt into the preview can be found in [this article](https://learn.microsoft.com/azure/aks/use-pod-sandboxing)
*/
@JvmName("ruymfouvsghntqfo")
public suspend fun workloadRuntime(`value`: Output) {
this.workloadRuntime = value
}
/**
* @param value Specifies a list of Availability Zones in which this Kubernetes Cluster should be located. `temporary_name_for_rotation` must be specified when changing this property.
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets` and that `load_balancer_sku` is set to `standard`.
*/
@JvmName("ohvdqpapvatcwdll")
public suspend fun zones(`value`: Output>) {
this.zones = value
}
@JvmName("nrddvdrqjwofejrf")
public suspend fun zones(vararg values: Output) {
this.zones = Output.all(values.asList())
}
/**
* @param values Specifies a list of Availability Zones in which this Kubernetes Cluster should be located. `temporary_name_for_rotation` must be specified when changing this property.
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets` and that `load_balancer_sku` is set to `standard`.
*/
@JvmName("pgnyrtwiooywdggw")
public suspend fun zones(values: List>) {
this.zones = Output.all(values)
}
/**
* @param value Specifies the ID of the Capacity Reservation Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
*/
@JvmName("vhwqivyijubdrlsv")
public suspend fun capacityReservationGroupId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.capacityReservationGroupId = mapped
}
/**
* @param value Specifies whether to trust a Custom CA.
* > **Note:** This requires that the Preview Feature `Microsoft.ContainerService/CustomCATrustPreview` is enabled and the Resource Provider is re-registered, see [the documentation](https://learn.microsoft.com/en-us/azure/aks/custom-certificate-authority) for more information.
*/
@JvmName("oatoiymfvjfipftv")
public suspend fun customCaTrustEnabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.customCaTrustEnabled = mapped
}
/**
* @param value Should [the Kubernetes Auto Scaler](https://docs.microsoft.com/azure/aks/cluster-autoscaler) be enabled for this Node Pool?
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets`.
* > **Note:** If you're using AutoScaling, you may wish to use [`ignoreChanges` functionality](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to ignore changes to the `node_count` field.
*/
@JvmName("sfargbsbvbflyrwr")
public suspend fun enableAutoScaling(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.enableAutoScaling = mapped
}
/**
* @param value Should the nodes in the Default Node Pool have host encryption enabled? `temporary_name_for_rotation` must be specified when changing this property.
* > **Note:** This requires that the Feature `Microsoft.ContainerService/EnableEncryptionAtHost` is enabled and the Resource Provider is registered.
*/
@JvmName("wjsshicjydxxbkeq")
public suspend fun enableHostEncryption(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.enableHostEncryption = mapped
}
/**
* @param value Should nodes in this Node Pool have a Public IP Address? `temporary_name_for_rotation` must be specified when changing this property.
*/
@JvmName("yiuucmlmkvhpbrod")
public suspend fun enableNodePublicIp(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.enableNodePublicIp = mapped
}
/**
* @param value Should the nodes in this Node Pool have Federal Information Processing Standard enabled? `temporary_name_for_rotation` must be specified when changing this block. Changing this forces a new resource to be created.
*/
@JvmName("yxyjmgujsjybeoym")
public suspend fun fipsEnabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.fipsEnabled = mapped
}
/**
* @param value Specifies the GPU MIG instance profile for supported GPU VM SKU. The allowed values are `MIG1g`, `MIG2g`, `MIG3g`, `MIG4g` and `MIG7g`. Changing this forces a new resource to be created.
*/
@JvmName("cjsfxhpeupfjqbak")
public suspend fun gpuInstance(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.gpuInstance = mapped
}
/**
* @param value Specifies the ID of the Host Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
*/
@JvmName("gwiiwcbvbnufbxau")
public suspend fun hostGroupId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.hostGroupId = mapped
}
/**
* @param value A `kubelet_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*/
@JvmName("wnfduxtvxhnnwlqy")
public suspend fun kubeletConfig(`value`: KubernetesClusterDefaultNodePoolKubeletConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.kubeletConfig = mapped
}
/**
* @param argument A `kubelet_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*/
@JvmName("kokqrlkrcbscgjrv")
public suspend
fun kubeletConfig(argument: suspend KubernetesClusterDefaultNodePoolKubeletConfigArgsBuilder.() -> Unit) {
val toBeMapped = KubernetesClusterDefaultNodePoolKubeletConfigArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.kubeletConfig = mapped
}
/**
* @param value The type of disk used by kubelet. Possible values are `OS` and `Temporary`.
*/
@JvmName("decfjsjypxjhochg")
public suspend fun kubeletDiskType(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.kubeletDiskType = mapped
}
/**
* @param value A `linux_os_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*/
@JvmName("dvvqqggqhgigddqx")
public suspend fun linuxOsConfig(`value`: KubernetesClusterDefaultNodePoolLinuxOsConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.linuxOsConfig = mapped
}
/**
* @param argument A `linux_os_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*/
@JvmName("qatovirhnjtdlpuq")
public suspend
fun linuxOsConfig(argument: suspend KubernetesClusterDefaultNodePoolLinuxOsConfigArgsBuilder.() -> Unit) {
val toBeMapped = KubernetesClusterDefaultNodePoolLinuxOsConfigArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.linuxOsConfig = mapped
}
/**
* @param value
*/
@JvmName("pbpfgdgexikiwyil")
public suspend fun maxCount(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.maxCount = mapped
}
/**
* @param value The maximum number of pods that can run on each agent. `temporary_name_for_rotation` must be specified when changing this property.
*/
@JvmName("nwccwxlfprrdhswt")
public suspend fun maxPods(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.maxPods = mapped
}
/**
* @param value A base64-encoded string which will be written to /etc/motd after decoding. This allows customization of the message of the day for Linux nodes. It cannot be specified for Windows nodes and must be a static string (i.e. will be printed raw and not executed as a script). Changing this forces a new resource to be created.
*/
@JvmName("vbhlgyumfbjehoyr")
public suspend fun messageOfTheDay(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.messageOfTheDay = mapped
}
/**
* @param value
*/
@JvmName("edbcbmqyxjyjlrrw")
public suspend fun minCount(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.minCount = mapped
}
/**
* @param value The name which should be used for the default Kubernetes Node Pool.
*/
@JvmName("uwaioumlhaqdpysv")
public suspend fun name(`value`: String) {
val toBeMapped = value
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value
*/
@JvmName("rubjauyjwojtctja")
public suspend fun nodeCount(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.nodeCount = mapped
}
/**
* @param value A map of Kubernetes labels which should be applied to nodes in the Default Node Pool.
*/
@JvmName("tquyvprojyukadcd")
public suspend fun nodeLabels(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.nodeLabels = mapped
}
/**
* @param values A map of Kubernetes labels which should be applied to nodes in the Default Node Pool.
*/
@JvmName("unxmvyvexnghohbs")
public fun nodeLabels(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.nodeLabels = mapped
}
/**
* @param value A `node_network_profile` block as documented below.
*/
@JvmName("juitmklkwyheqajg")
public suspend
fun nodeNetworkProfile(`value`: KubernetesClusterDefaultNodePoolNodeNetworkProfileArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.nodeNetworkProfile = mapped
}
/**
* @param argument A `node_network_profile` block as documented below.
*/
@JvmName("gtgfxbvcmeajfffa")
public suspend
fun nodeNetworkProfile(argument: suspend KubernetesClusterDefaultNodePoolNodeNetworkProfileArgsBuilder.() -> Unit) {
val toBeMapped = KubernetesClusterDefaultNodePoolNodeNetworkProfileArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.nodeNetworkProfile = mapped
}
/**
* @param value Resource ID for the Public IP Addresses Prefix for the nodes in this Node Pool. `enable_node_public_ip` should be `true`. Changing this forces a new resource to be created.
*/
@JvmName("pauqwaryowqqkohm")
public suspend fun nodePublicIpPrefixId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.nodePublicIpPrefixId = mapped
}
/**
* @param value
*/
@Deprecated(
message = """
This field will be removed in v4.0 of the Azure Provider since the AKS API doesn't allow arbitrary
node taints on the default node pool
""",
)
@JvmName("xlujumemtlptqtfc")
public suspend fun nodeTaints(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.nodeTaints = mapped
}
/**
* @param values
*/
@Deprecated(
message = """
This field will be removed in v4.0 of the Azure Provider since the AKS API doesn't allow arbitrary
node taints on the default node pool
""",
)
@JvmName("hmmxeiugsyuqlnjb")
public suspend fun nodeTaints(vararg values: String) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.nodeTaints = mapped
}
/**
* @param value Enabling this option will taint default node pool with `CriticalAddonsOnly=true:NoSchedule` taint. `temporary_name_for_rotation` must be specified when changing this property.
*/
@JvmName("bkqakplqqoxouvfy")
public suspend fun onlyCriticalAddonsEnabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.onlyCriticalAddonsEnabled = mapped
}
/**
* @param value Version of Kubernetes used for the Agents. If not specified, the default node pool will be created with the version specified by `kubernetes_version`. If both are unspecified, the latest recommended version will be used at provisioning time (but won't auto-upgrade). AKS does not require an exact patch version to be specified, minor version aliases such as `1.22` are also supported. - The minor version's latest GA patch is automatically chosen in that case. More details can be found in [the documentation](https://docs.microsoft.com/en-us/azure/aks/supported-kubernetes-versions?tabs=azure-cli#alias-minor-version).
* > **Note:** This version must be supported by the Kubernetes Cluster - as such the version of Kubernetes used on the Cluster/Control Plane may need to be upgraded first.
*/
@JvmName("ortnlmsirqvcknba")
public suspend fun orchestratorVersion(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.orchestratorVersion = mapped
}
/**
* @param value The size of the OS Disk which should be used for each agent in the Node Pool. `temporary_name_for_rotation` must be specified when attempting a change.
*/
@JvmName("ajogniptxmtthpbb")
public suspend fun osDiskSizeGb(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.osDiskSizeGb = mapped
}
/**
* @param value The type of disk which should be used for the Operating System. Possible values are `Ephemeral` and `Managed`. Defaults to `Managed`. `temporary_name_for_rotation` must be specified when attempting a change.
*/
@JvmName("blyhxlwjkpjgstnr")
public suspend fun osDiskType(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.osDiskType = mapped
}
/**
* @param value Specifies the OS SKU used by the agent pool. Possible values are `AzureLinux`, `Ubuntu`, `Windows2019` and `Windows2022`. If not specified, the default is `Ubuntu` if OSType=Linux or `Windows2019` if OSType=Windows. And the default Windows OSSKU will be changed to `Windows2022` after Windows2019 is deprecated. `temporary_name_for_rotation` must be specified when attempting a change.
*/
@JvmName("eawuvpdrpximicpr")
public suspend fun osSku(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.osSku = mapped
}
/**
* @param value The ID of the Subnet where the pods in the default Node Pool should exist.
*/
@JvmName("huhdbfksuktqfwsu")
public suspend fun podSubnetId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.podSubnetId = mapped
}
/**
* @param value The ID of the Proximity Placement Group. Changing this forces a new resource to be created.
*/
@JvmName("eqlglxjncqpgfghp")
public suspend fun proximityPlacementGroupId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.proximityPlacementGroupId = mapped
}
/**
* @param value Specifies the autoscaling behaviour of the Kubernetes Cluster. Allowed values are `Delete` and `Deallocate`. Defaults to `Delete`.
*/
@JvmName("bcusbcbhxeawgvmm")
public suspend fun scaleDownMode(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.scaleDownMode = mapped
}
/**
* @param value The ID of the Snapshot which should be used to create this default Node Pool. `temporary_name_for_rotation` must be specified when changing this property.
*/
@JvmName("ylfkfrpfxyxyergm")
public suspend fun snapshotId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.snapshotId = mapped
}
/**
* @param value A mapping of tags to assign to the Node Pool.
* > At this time there's a bug in the AKS API where Tags for a Node Pool are not stored in the correct case - you may wish to use `ignore_changes` functionality to ignore changes to the casing until this is fixed in the AKS API.
*/
@JvmName("qtivplxdhpewabgj")
public suspend fun tags(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param values A mapping of tags to assign to the Node Pool.
* > At this time there's a bug in the AKS API where Tags for a Node Pool are not stored in the correct case - you may wish to use `ignore_changes` functionality to ignore changes to the casing until this is fixed in the AKS API.
*/
@JvmName("obedfaudkvihmknt")
public fun tags(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param value Specifies the name of the temporary node pool used to cycle the default node pool for VM resizing.
*/
@JvmName("uswaovuuuxoxcsqj")
public suspend fun temporaryNameForRotation(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.temporaryNameForRotation = mapped
}
/**
* @param value The type of Node Pool which should be created. Possible values are `AvailabilitySet` and `VirtualMachineScaleSets`. Defaults to `VirtualMachineScaleSets`. Changing this forces a new resource to be created.
* > **Note:** When creating a cluster that supports multiple node pools, the cluster must use `VirtualMachineScaleSets`. For more information on the limitations of clusters using multiple node pools see [the documentation](https://learn.microsoft.com/en-us/azure/aks/use-multiple-node-pools#limitations).
*/
@JvmName("wdefdvdauydlerbw")
public suspend fun type(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.type = mapped
}
/**
* @param value Used to specify whether the UltraSSD is enabled in the Default Node Pool. Defaults to `false`. See [the documentation](https://docs.microsoft.com/azure/aks/use-ultra-disks) for more information. `temporary_name_for_rotation` must be specified when attempting a change.
*/
@JvmName("ihnpnffmvlnlvwdt")
public suspend fun ultraSsdEnabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.ultraSsdEnabled = mapped
}
/**
* @param value A `upgrade_settings` block as documented below.
*/
@JvmName("uofxdorberynvkko")
public suspend
fun upgradeSettings(`value`: KubernetesClusterDefaultNodePoolUpgradeSettingsArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.upgradeSettings = mapped
}
/**
* @param argument A `upgrade_settings` block as documented below.
*/
@JvmName("mdshijocxtvfmqrh")
public suspend
fun upgradeSettings(argument: suspend KubernetesClusterDefaultNodePoolUpgradeSettingsArgsBuilder.() -> Unit) {
val toBeMapped = KubernetesClusterDefaultNodePoolUpgradeSettingsArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.upgradeSettings = mapped
}
/**
* @param value The size of the Virtual Machine, such as `Standard_DS2_v2`. `temporary_name_for_rotation` must be specified when attempting a resize.
*/
@JvmName("yscabioadmgxhuwi")
public suspend fun vmSize(`value`: String) {
val toBeMapped = value
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.vmSize = mapped
}
/**
* @param value The ID of a Subnet where the Kubernetes Node Pool should exist.
* > **Note:** A Route Table must be configured on this Subnet.
*/
@JvmName("youvngckpemiungm")
public suspend fun vnetSubnetId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.vnetSubnetId = mapped
}
/**
* @param value Specifies the workload runtime used by the node pool. Possible values are `OCIContainer` and `KataMshvVmIsolation`.
* > **Note:** Pod Sandboxing / KataVM Isolation node pools are in Public Preview - more information and details on how to opt into the preview can be found in [this article](https://learn.microsoft.com/azure/aks/use-pod-sandboxing)
*/
@JvmName("rrylxngdjhbirdac")
public suspend fun workloadRuntime(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.workloadRuntime = mapped
}
/**
* @param value Specifies a list of Availability Zones in which this Kubernetes Cluster should be located. `temporary_name_for_rotation` must be specified when changing this property.
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets` and that `load_balancer_sku` is set to `standard`.
*/
@JvmName("dhymnqkbcodpldmq")
public suspend fun zones(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.zones = mapped
}
/**
* @param values Specifies a list of Availability Zones in which this Kubernetes Cluster should be located. `temporary_name_for_rotation` must be specified when changing this property.
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets` and that `load_balancer_sku` is set to `standard`.
*/
@JvmName("efrmkoyhkotktles")
public suspend fun zones(vararg values: String) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.zones = mapped
}
internal fun build(): KubernetesClusterDefaultNodePoolArgs = KubernetesClusterDefaultNodePoolArgs(
capacityReservationGroupId = capacityReservationGroupId,
customCaTrustEnabled = customCaTrustEnabled,
enableAutoScaling = enableAutoScaling,
enableHostEncryption = enableHostEncryption,
enableNodePublicIp = enableNodePublicIp,
fipsEnabled = fipsEnabled,
gpuInstance = gpuInstance,
hostGroupId = hostGroupId,
kubeletConfig = kubeletConfig,
kubeletDiskType = kubeletDiskType,
linuxOsConfig = linuxOsConfig,
maxCount = maxCount,
maxPods = maxPods,
messageOfTheDay = messageOfTheDay,
minCount = minCount,
name = name ?: throw PulumiNullFieldException("name"),
nodeCount = nodeCount,
nodeLabels = nodeLabels,
nodeNetworkProfile = nodeNetworkProfile,
nodePublicIpPrefixId = nodePublicIpPrefixId,
nodeTaints = nodeTaints,
onlyCriticalAddonsEnabled = onlyCriticalAddonsEnabled,
orchestratorVersion = orchestratorVersion,
osDiskSizeGb = osDiskSizeGb,
osDiskType = osDiskType,
osSku = osSku,
podSubnetId = podSubnetId,
proximityPlacementGroupId = proximityPlacementGroupId,
scaleDownMode = scaleDownMode,
snapshotId = snapshotId,
tags = tags,
temporaryNameForRotation = temporaryNameForRotation,
type = type,
ultraSsdEnabled = ultraSsdEnabled,
upgradeSettings = upgradeSettings,
vmSize = vmSize ?: throw PulumiNullFieldException("vmSize"),
vnetSubnetId = vnetSubnetId,
workloadRuntime = workloadRuntime,
zones = zones,
)
}