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.gcp.container.kotlin.inputs.NodePoolNodeConfigArgs.kt Maven / Gradle / Ivy
Go to download
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.gcp.container.kotlin.inputs
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.container.inputs.NodePoolNodeConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
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 advancedMachineFeatures Specifies options for controlling advanced machine features.
* @property bootDiskKmsKey The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.
* @property confidentialNodes Configuration for the confidential nodes feature, which makes nodes run on confidential VMs. Warning: This configuration can't be changed (or added/removed) after pool creation without deleting and recreating the entire pool.
* @property containerdConfig Parameters for containerd configuration.
* @property diskSizeGb Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.
* @property diskType Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd
* @property effectiveTaints List of kubernetes taints applied to each node.
* @property enableConfidentialStorage If enabled boot disks are configured with confidential mode.
* @property ephemeralStorageConfig Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.
* @property ephemeralStorageLocalSsdConfig Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.
* @property fastSocket Enable or disable NCCL Fast Socket in the node pool.
* @property gcfsConfig GCFS configuration for this node.
* @property guestAccelerators List of the type and count of accelerator cards attached to the instance.
* @property gvnic Enable or disable gvnic in the node pool.
* @property hostMaintenancePolicy The maintenance policy for the hosts on which the GKE VMs run on.
* @property imageType The image type to use for this node. Note that for a given image type, the latest version of it will be used.
* @property kubeletConfig Node kubelet configs.
* @property labels The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.
* @property linuxNodeConfig Parameters that can be configured on Linux nodes.
* @property localNvmeSsdBlockConfig Parameters for raw-block local NVMe SSDs.
* @property localSsdCount The number of local SSD disks to be attached to the node.
* @property loggingVariant Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.
* @property machineType The name of a Google Compute Engine machine type.
* @property metadata The metadata key/value pairs assigned to instances in the cluster.
* @property minCpuPlatform Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.
* @property nodeGroup Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.
* @property oauthScopes The set of Google API scopes to be made available on all of the node VMs.
* @property preemptible Whether the nodes are created as preemptible VM instances.
* @property reservationAffinity The configuration of the desired reservation which instances could take capacity from.
* Structure is documented below.
* The `autoscaling` block supports (either total or per zone limits are required):
* @property resourceLabels The GCE resource labels (a map of key/value pairs) to be applied to the node pool.
* @property resourceManagerTags A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
* @property sandboxConfig Sandbox configuration for this node.
* @property secondaryBootDisks Secondary boot disks for preloading data or container images.
* @property serviceAccount The Google Cloud Platform Service Account to be used by the node VMs.
* @property shieldedInstanceConfig Shielded Instance options.
* @property soleTenantConfig Node affinity options for sole tenant node pools.
* @property spot Whether the nodes are created as spot VM instances.
* @property tags The list of instance tags applied to all nodes.
* @property taints List of Kubernetes taints to be applied to each node.
* @property workloadMetadataConfig The workload metadata configuration for this node.
*/
public data class NodePoolNodeConfigArgs(
public val advancedMachineFeatures: Output? = null,
public val bootDiskKmsKey: Output? = null,
public val confidentialNodes: Output? = null,
public val containerdConfig: Output? = null,
public val diskSizeGb: Output? = null,
public val diskType: Output? = null,
public val effectiveTaints: Output>? = null,
public val enableConfidentialStorage: Output? = null,
public val ephemeralStorageConfig: Output? = null,
public val ephemeralStorageLocalSsdConfig: Output? = null,
public val fastSocket: Output? = null,
public val gcfsConfig: Output? = null,
public val guestAccelerators: Output>? = null,
public val gvnic: Output? = null,
public val hostMaintenancePolicy: Output? = null,
public val imageType: Output? = null,
public val kubeletConfig: Output? = null,
public val labels: Output>? = null,
public val linuxNodeConfig: Output? = null,
public val localNvmeSsdBlockConfig: Output? = null,
public val localSsdCount: Output? = null,
public val loggingVariant: Output? = null,
public val machineType: Output? = null,
public val metadata: Output>? = null,
public val minCpuPlatform: Output? = null,
public val nodeGroup: Output? = null,
public val oauthScopes: Output>? = null,
public val preemptible: Output? = null,
public val reservationAffinity: Output? = null,
public val resourceLabels: Output>? = null,
public val resourceManagerTags: Output>? = null,
public val sandboxConfig: Output? = null,
public val secondaryBootDisks: Output>? = null,
public val serviceAccount: Output? = null,
public val shieldedInstanceConfig: Output? = null,
public val soleTenantConfig: Output? = null,
public val spot: Output? = null,
public val tags: Output>? = null,
public val taints: Output>? = null,
public val workloadMetadataConfig: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.gcp.container.inputs.NodePoolNodeConfigArgs =
com.pulumi.gcp.container.inputs.NodePoolNodeConfigArgs.builder()
.advancedMachineFeatures(
advancedMachineFeatures?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.bootDiskKmsKey(bootDiskKmsKey?.applyValue({ args0 -> args0 }))
.confidentialNodes(confidentialNodes?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.containerdConfig(containerdConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.diskSizeGb(diskSizeGb?.applyValue({ args0 -> args0 }))
.diskType(diskType?.applyValue({ args0 -> args0 }))
.effectiveTaints(
effectiveTaints?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.enableConfidentialStorage(enableConfidentialStorage?.applyValue({ args0 -> args0 }))
.ephemeralStorageConfig(
ephemeralStorageConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.ephemeralStorageLocalSsdConfig(
ephemeralStorageLocalSsdConfig?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.fastSocket(fastSocket?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.gcfsConfig(gcfsConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.guestAccelerators(
guestAccelerators?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.gvnic(gvnic?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.hostMaintenancePolicy(
hostMaintenancePolicy?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.imageType(imageType?.applyValue({ args0 -> args0 }))
.kubeletConfig(kubeletConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.labels(labels?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
.linuxNodeConfig(linuxNodeConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.localNvmeSsdBlockConfig(
localNvmeSsdBlockConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.localSsdCount(localSsdCount?.applyValue({ args0 -> args0 }))
.loggingVariant(loggingVariant?.applyValue({ args0 -> args0 }))
.machineType(machineType?.applyValue({ args0 -> args0 }))
.metadata(
metadata?.applyValue({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value)
}).toMap()
}),
)
.minCpuPlatform(minCpuPlatform?.applyValue({ args0 -> args0 }))
.nodeGroup(nodeGroup?.applyValue({ args0 -> args0 }))
.oauthScopes(oauthScopes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.preemptible(preemptible?.applyValue({ args0 -> args0 }))
.reservationAffinity(
reservationAffinity?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.resourceLabels(
resourceLabels?.applyValue({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value)
}).toMap()
}),
)
.resourceManagerTags(
resourceManagerTags?.applyValue({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value)
}).toMap()
}),
)
.sandboxConfig(sandboxConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.secondaryBootDisks(
secondaryBootDisks?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> args0.toJava() })
})
}),
)
.serviceAccount(serviceAccount?.applyValue({ args0 -> args0 }))
.shieldedInstanceConfig(
shieldedInstanceConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.soleTenantConfig(soleTenantConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.spot(spot?.applyValue({ args0 -> args0 }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.taints(taints?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.workloadMetadataConfig(
workloadMetadataConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
).build()
}
/**
* Builder for [NodePoolNodeConfigArgs].
*/
@PulumiTagMarker
public class NodePoolNodeConfigArgsBuilder internal constructor() {
private var advancedMachineFeatures: Output? = null
private var bootDiskKmsKey: Output? = null
private var confidentialNodes: Output? = null
private var containerdConfig: Output? = null
private var diskSizeGb: Output? = null
private var diskType: Output? = null
private var effectiveTaints: Output>? = null
private var enableConfidentialStorage: Output? = null
private var ephemeralStorageConfig: Output? = null
private var ephemeralStorageLocalSsdConfig:
Output? = null
private var fastSocket: Output? = null
private var gcfsConfig: Output? = null
private var guestAccelerators: Output>? = null
private var gvnic: Output? = null
private var hostMaintenancePolicy: Output? = null
private var imageType: Output? = null
private var kubeletConfig: Output? = null
private var labels: Output>? = null
private var linuxNodeConfig: Output? = null
private var localNvmeSsdBlockConfig: Output? = null
private var localSsdCount: Output? = null
private var loggingVariant: Output? = null
private var machineType: Output? = null
private var metadata: Output>? = null
private var minCpuPlatform: Output? = null
private var nodeGroup: Output? = null
private var oauthScopes: Output>? = null
private var preemptible: Output? = null
private var reservationAffinity: Output? = null
private var resourceLabels: Output>? = null
private var resourceManagerTags: Output>? = null
private var sandboxConfig: Output? = null
private var secondaryBootDisks: Output>? = null
private var serviceAccount: Output? = null
private var shieldedInstanceConfig: Output? = null
private var soleTenantConfig: Output? = null
private var spot: Output? = null
private var tags: Output>? = null
private var taints: Output>? = null
private var workloadMetadataConfig: Output? = null
/**
* @param value Specifies options for controlling advanced machine features.
*/
@JvmName("njnfssvcpcoyefdi")
public suspend fun advancedMachineFeatures(`value`: Output) {
this.advancedMachineFeatures = value
}
/**
* @param value The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.
*/
@JvmName("vnfwggndvedldvud")
public suspend fun bootDiskKmsKey(`value`: Output) {
this.bootDiskKmsKey = value
}
/**
* @param value Configuration for the confidential nodes feature, which makes nodes run on confidential VMs. Warning: This configuration can't be changed (or added/removed) after pool creation without deleting and recreating the entire pool.
*/
@JvmName("hybolerjhhtjovmb")
public suspend fun confidentialNodes(`value`: Output) {
this.confidentialNodes = value
}
/**
* @param value Parameters for containerd configuration.
*/
@JvmName("kjxlxmwnjrtoewep")
public suspend fun containerdConfig(`value`: Output) {
this.containerdConfig = value
}
/**
* @param value Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.
*/
@JvmName("dhjykmtygguldihi")
public suspend fun diskSizeGb(`value`: Output) {
this.diskSizeGb = value
}
/**
* @param value Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd
*/
@JvmName("fgjsiiiihqnyuxib")
public suspend fun diskType(`value`: Output) {
this.diskType = value
}
/**
* @param value List of kubernetes taints applied to each node.
*/
@JvmName("ynwxulphwsoepcrs")
public suspend fun effectiveTaints(`value`: Output>) {
this.effectiveTaints = value
}
@JvmName("yhmrgmhsnjcrgwlk")
public suspend fun effectiveTaints(vararg values: Output) {
this.effectiveTaints = Output.all(values.asList())
}
/**
* @param values List of kubernetes taints applied to each node.
*/
@JvmName("ekingcgtrfqabujc")
public suspend fun effectiveTaints(values: List>) {
this.effectiveTaints = Output.all(values)
}
/**
* @param value If enabled boot disks are configured with confidential mode.
*/
@JvmName("bjoteaiajrewsntq")
public suspend fun enableConfidentialStorage(`value`: Output) {
this.enableConfidentialStorage = value
}
/**
* @param value Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.
*/
@JvmName("vbdwvsstvplyidpa")
public suspend fun ephemeralStorageConfig(`value`: Output) {
this.ephemeralStorageConfig = value
}
/**
* @param value Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.
*/
@JvmName("upjhtwajfslmylcv")
public suspend fun ephemeralStorageLocalSsdConfig(`value`: Output) {
this.ephemeralStorageLocalSsdConfig = value
}
/**
* @param value Enable or disable NCCL Fast Socket in the node pool.
*/
@JvmName("bghlovvnswtnsmce")
public suspend fun fastSocket(`value`: Output) {
this.fastSocket = value
}
/**
* @param value GCFS configuration for this node.
*/
@JvmName("iugsuknovtjbutcc")
public suspend fun gcfsConfig(`value`: Output) {
this.gcfsConfig = value
}
/**
* @param value List of the type and count of accelerator cards attached to the instance.
*/
@JvmName("cjwplwghaksngfeh")
public suspend fun guestAccelerators(`value`: Output>) {
this.guestAccelerators = value
}
@JvmName("iwcgvqcatfhuukqc")
public suspend fun guestAccelerators(vararg values: Output) {
this.guestAccelerators = Output.all(values.asList())
}
/**
* @param values List of the type and count of accelerator cards attached to the instance.
*/
@JvmName("qqtbvdtjugsndgpe")
public suspend fun guestAccelerators(values: List>) {
this.guestAccelerators = Output.all(values)
}
/**
* @param value Enable or disable gvnic in the node pool.
*/
@JvmName("kpdfsufxnpaphdyx")
public suspend fun gvnic(`value`: Output) {
this.gvnic = value
}
/**
* @param value The maintenance policy for the hosts on which the GKE VMs run on.
*/
@JvmName("iwsgpjxfucqpwwaq")
public suspend fun hostMaintenancePolicy(`value`: Output) {
this.hostMaintenancePolicy = value
}
/**
* @param value The image type to use for this node. Note that for a given image type, the latest version of it will be used.
*/
@JvmName("lcueyscpmicsvdrp")
public suspend fun imageType(`value`: Output) {
this.imageType = value
}
/**
* @param value Node kubelet configs.
*/
@JvmName("kihxalxeojxsggqn")
public suspend fun kubeletConfig(`value`: Output) {
this.kubeletConfig = value
}
/**
* @param value The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.
*/
@JvmName("gcodubgywelegbsm")
public suspend fun labels(`value`: Output>) {
this.labels = value
}
/**
* @param value Parameters that can be configured on Linux nodes.
*/
@JvmName("opocqdeatpirbseb")
public suspend fun linuxNodeConfig(`value`: Output) {
this.linuxNodeConfig = value
}
/**
* @param value Parameters for raw-block local NVMe SSDs.
*/
@JvmName("jicrdrniopuwfaky")
public suspend fun localNvmeSsdBlockConfig(`value`: Output) {
this.localNvmeSsdBlockConfig = value
}
/**
* @param value The number of local SSD disks to be attached to the node.
*/
@JvmName("ofafjtjntsyfbysk")
public suspend fun localSsdCount(`value`: Output) {
this.localSsdCount = value
}
/**
* @param value Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.
*/
@JvmName("ndworiaqbxhynwsy")
public suspend fun loggingVariant(`value`: Output) {
this.loggingVariant = value
}
/**
* @param value The name of a Google Compute Engine machine type.
*/
@JvmName("cxuhvklvaygisotp")
public suspend fun machineType(`value`: Output) {
this.machineType = value
}
/**
* @param value The metadata key/value pairs assigned to instances in the cluster.
*/
@JvmName("icdpxnijosvaiwwx")
public suspend fun metadata(`value`: Output>) {
this.metadata = value
}
/**
* @param value Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.
*/
@JvmName("bipegfyplkniirbb")
public suspend fun minCpuPlatform(`value`: Output) {
this.minCpuPlatform = value
}
/**
* @param value Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.
*/
@JvmName("ofnupkpjiohglhxg")
public suspend fun nodeGroup(`value`: Output) {
this.nodeGroup = value
}
/**
* @param value The set of Google API scopes to be made available on all of the node VMs.
*/
@JvmName("fqcmcolsgabyemqg")
public suspend fun oauthScopes(`value`: Output>) {
this.oauthScopes = value
}
@JvmName("lvrpjqnboguufapi")
public suspend fun oauthScopes(vararg values: Output) {
this.oauthScopes = Output.all(values.asList())
}
/**
* @param values The set of Google API scopes to be made available on all of the node VMs.
*/
@JvmName("psmqurhrdwdoetmj")
public suspend fun oauthScopes(values: List>) {
this.oauthScopes = Output.all(values)
}
/**
* @param value Whether the nodes are created as preemptible VM instances.
*/
@JvmName("efospaqvlujakthc")
public suspend fun preemptible(`value`: Output) {
this.preemptible = value
}
/**
* @param value The configuration of the desired reservation which instances could take capacity from.
* Structure is documented below.
* The `autoscaling` block supports (either total or per zone limits are required):
*/
@JvmName("hwjdhullcgtcbfre")
public suspend fun reservationAffinity(`value`: Output) {
this.reservationAffinity = value
}
/**
* @param value The GCE resource labels (a map of key/value pairs) to be applied to the node pool.
*/
@JvmName("innbrwjdogyvuovi")
public suspend fun resourceLabels(`value`: Output>) {
this.resourceLabels = value
}
/**
* @param value A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
*/
@JvmName("tvfwwbaxydrxvinn")
public suspend fun resourceManagerTags(`value`: Output>) {
this.resourceManagerTags = value
}
/**
* @param value Sandbox configuration for this node.
*/
@JvmName("yjcyowwnmwmydppu")
public suspend fun sandboxConfig(`value`: Output) {
this.sandboxConfig = value
}
/**
* @param value Secondary boot disks for preloading data or container images.
*/
@JvmName("hnxrhbamgbwnvnaa")
public suspend fun secondaryBootDisks(`value`: Output>) {
this.secondaryBootDisks = value
}
@JvmName("blnhpqrlqjadwrgd")
public suspend fun secondaryBootDisks(vararg values: Output) {
this.secondaryBootDisks = Output.all(values.asList())
}
/**
* @param values Secondary boot disks for preloading data or container images.
*/
@JvmName("hrtoisvmdwbtvjeo")
public suspend fun secondaryBootDisks(values: List>) {
this.secondaryBootDisks = Output.all(values)
}
/**
* @param value The Google Cloud Platform Service Account to be used by the node VMs.
*/
@JvmName("fbkyrvymsauxgpak")
public suspend fun serviceAccount(`value`: Output) {
this.serviceAccount = value
}
/**
* @param value Shielded Instance options.
*/
@JvmName("lcsgisyasnqhgyxn")
public suspend fun shieldedInstanceConfig(`value`: Output) {
this.shieldedInstanceConfig = value
}
/**
* @param value Node affinity options for sole tenant node pools.
*/
@JvmName("wlxbbbbvdlwrnxin")
public suspend fun soleTenantConfig(`value`: Output) {
this.soleTenantConfig = value
}
/**
* @param value Whether the nodes are created as spot VM instances.
*/
@JvmName("pvtaprodkdicehck")
public suspend fun spot(`value`: Output) {
this.spot = value
}
/**
* @param value The list of instance tags applied to all nodes.
*/
@JvmName("qiohxptucxoejvwq")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
@JvmName("ppltcrxrgwxmyiio")
public suspend fun tags(vararg values: Output) {
this.tags = Output.all(values.asList())
}
/**
* @param values The list of instance tags applied to all nodes.
*/
@JvmName("aquiqfareujulkxb")
public suspend fun tags(values: List>) {
this.tags = Output.all(values)
}
/**
* @param value List of Kubernetes taints to be applied to each node.
*/
@JvmName("bfqshftavablyhtq")
public suspend fun taints(`value`: Output>) {
this.taints = value
}
@JvmName("rxdreppprshutadj")
public suspend fun taints(vararg values: Output) {
this.taints = Output.all(values.asList())
}
/**
* @param values List of Kubernetes taints to be applied to each node.
*/
@JvmName("dtcanojepsgnwawp")
public suspend fun taints(values: List>) {
this.taints = Output.all(values)
}
/**
* @param value The workload metadata configuration for this node.
*/
@JvmName("dnxksgddpxraeufc")
public suspend fun workloadMetadataConfig(`value`: Output) {
this.workloadMetadataConfig = value
}
/**
* @param value Specifies options for controlling advanced machine features.
*/
@JvmName("mjtysfdijditrfrq")
public suspend fun advancedMachineFeatures(`value`: NodePoolNodeConfigAdvancedMachineFeaturesArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.advancedMachineFeatures = mapped
}
/**
* @param argument Specifies options for controlling advanced machine features.
*/
@JvmName("ghidghhcaidvagww")
public suspend fun advancedMachineFeatures(argument: suspend NodePoolNodeConfigAdvancedMachineFeaturesArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigAdvancedMachineFeaturesArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.advancedMachineFeatures = mapped
}
/**
* @param value The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.
*/
@JvmName("xhagknrvyhalatkf")
public suspend fun bootDiskKmsKey(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.bootDiskKmsKey = mapped
}
/**
* @param value Configuration for the confidential nodes feature, which makes nodes run on confidential VMs. Warning: This configuration can't be changed (or added/removed) after pool creation without deleting and recreating the entire pool.
*/
@JvmName("pijuqfbgnwgrekku")
public suspend fun confidentialNodes(`value`: NodePoolNodeConfigConfidentialNodesArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.confidentialNodes = mapped
}
/**
* @param argument Configuration for the confidential nodes feature, which makes nodes run on confidential VMs. Warning: This configuration can't be changed (or added/removed) after pool creation without deleting and recreating the entire pool.
*/
@JvmName("siqwgmbiudnpyduq")
public suspend fun confidentialNodes(argument: suspend NodePoolNodeConfigConfidentialNodesArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigConfidentialNodesArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.confidentialNodes = mapped
}
/**
* @param value Parameters for containerd configuration.
*/
@JvmName("fxshinmncceklrbb")
public suspend fun containerdConfig(`value`: NodePoolNodeConfigContainerdConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.containerdConfig = mapped
}
/**
* @param argument Parameters for containerd configuration.
*/
@JvmName("usfrtoyoqvhgexyw")
public suspend fun containerdConfig(argument: suspend NodePoolNodeConfigContainerdConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigContainerdConfigArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.containerdConfig = mapped
}
/**
* @param value Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.
*/
@JvmName("gxpwtgrktjuypipc")
public suspend fun diskSizeGb(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.diskSizeGb = mapped
}
/**
* @param value Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd
*/
@JvmName("dwgbpohesoemauxt")
public suspend fun diskType(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.diskType = mapped
}
/**
* @param value List of kubernetes taints applied to each node.
*/
@JvmName("skrkokfkvleyctod")
public suspend fun effectiveTaints(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.effectiveTaints = mapped
}
/**
* @param argument List of kubernetes taints applied to each node.
*/
@JvmName("vviuxtcjhtnlowcn")
public suspend fun effectiveTaints(argument: List Unit>) {
val toBeMapped = argument.toList().map {
NodePoolNodeConfigEffectiveTaintArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.effectiveTaints = mapped
}
/**
* @param argument List of kubernetes taints applied to each node.
*/
@JvmName("xumgviasrjtqfvxj")
public suspend fun effectiveTaints(vararg argument: suspend NodePoolNodeConfigEffectiveTaintArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
NodePoolNodeConfigEffectiveTaintArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.effectiveTaints = mapped
}
/**
* @param argument List of kubernetes taints applied to each node.
*/
@JvmName("pttpwrhukcssdivy")
public suspend fun effectiveTaints(argument: suspend NodePoolNodeConfigEffectiveTaintArgsBuilder.() -> Unit) {
val toBeMapped = listOf(
NodePoolNodeConfigEffectiveTaintArgsBuilder().applySuspend {
argument()
}.build(),
)
val mapped = of(toBeMapped)
this.effectiveTaints = mapped
}
/**
* @param values List of kubernetes taints applied to each node.
*/
@JvmName("wwgbyegckcnhiguu")
public suspend fun effectiveTaints(vararg values: NodePoolNodeConfigEffectiveTaintArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.effectiveTaints = mapped
}
/**
* @param value If enabled boot disks are configured with confidential mode.
*/
@JvmName("cixlwixjbhhtdhdu")
public suspend fun enableConfidentialStorage(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.enableConfidentialStorage = mapped
}
/**
* @param value Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.
*/
@JvmName("pgeygrpgiaokjghl")
public suspend fun ephemeralStorageConfig(`value`: NodePoolNodeConfigEphemeralStorageConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.ephemeralStorageConfig = mapped
}
/**
* @param argument Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.
*/
@JvmName("grqthbcbjimgpugw")
public suspend fun ephemeralStorageConfig(argument: suspend NodePoolNodeConfigEphemeralStorageConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigEphemeralStorageConfigArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.ephemeralStorageConfig = mapped
}
/**
* @param value Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.
*/
@JvmName("ejvhohpyxgvovqlt")
public suspend fun ephemeralStorageLocalSsdConfig(`value`: NodePoolNodeConfigEphemeralStorageLocalSsdConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.ephemeralStorageLocalSsdConfig = mapped
}
/**
* @param argument Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.
*/
@JvmName("ejpsincldbpgocck")
public suspend fun ephemeralStorageLocalSsdConfig(argument: suspend NodePoolNodeConfigEphemeralStorageLocalSsdConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigEphemeralStorageLocalSsdConfigArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.ephemeralStorageLocalSsdConfig = mapped
}
/**
* @param value Enable or disable NCCL Fast Socket in the node pool.
*/
@JvmName("mcvvllehfpwboght")
public suspend fun fastSocket(`value`: NodePoolNodeConfigFastSocketArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.fastSocket = mapped
}
/**
* @param argument Enable or disable NCCL Fast Socket in the node pool.
*/
@JvmName("dbsufeydjcouwqsi")
public suspend fun fastSocket(argument: suspend NodePoolNodeConfigFastSocketArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigFastSocketArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.fastSocket = mapped
}
/**
* @param value GCFS configuration for this node.
*/
@JvmName("hpmsrfsyuxwrksdk")
public suspend fun gcfsConfig(`value`: NodePoolNodeConfigGcfsConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.gcfsConfig = mapped
}
/**
* @param argument GCFS configuration for this node.
*/
@JvmName("cgvgbsyxcvotithn")
public suspend fun gcfsConfig(argument: suspend NodePoolNodeConfigGcfsConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigGcfsConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.gcfsConfig = mapped
}
/**
* @param value List of the type and count of accelerator cards attached to the instance.
*/
@JvmName("iesbxjyvcfkquful")
public suspend fun guestAccelerators(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.guestAccelerators = mapped
}
/**
* @param argument List of the type and count of accelerator cards attached to the instance.
*/
@JvmName("drwpbjvefpsbagbq")
public suspend fun guestAccelerators(argument: List Unit>) {
val toBeMapped = argument.toList().map {
NodePoolNodeConfigGuestAcceleratorArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.guestAccelerators = mapped
}
/**
* @param argument List of the type and count of accelerator cards attached to the instance.
*/
@JvmName("nsvwicqqweanivlc")
public suspend fun guestAccelerators(vararg argument: suspend NodePoolNodeConfigGuestAcceleratorArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
NodePoolNodeConfigGuestAcceleratorArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.guestAccelerators = mapped
}
/**
* @param argument List of the type and count of accelerator cards attached to the instance.
*/
@JvmName("pujsxajulraldnlr")
public suspend fun guestAccelerators(argument: suspend NodePoolNodeConfigGuestAcceleratorArgsBuilder.() -> Unit) {
val toBeMapped = listOf(
NodePoolNodeConfigGuestAcceleratorArgsBuilder().applySuspend {
argument()
}.build(),
)
val mapped = of(toBeMapped)
this.guestAccelerators = mapped
}
/**
* @param values List of the type and count of accelerator cards attached to the instance.
*/
@JvmName("xlfurndjrgufrcas")
public suspend fun guestAccelerators(vararg values: NodePoolNodeConfigGuestAcceleratorArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.guestAccelerators = mapped
}
/**
* @param value Enable or disable gvnic in the node pool.
*/
@JvmName("cqibhepyyfjpwgtl")
public suspend fun gvnic(`value`: NodePoolNodeConfigGvnicArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.gvnic = mapped
}
/**
* @param argument Enable or disable gvnic in the node pool.
*/
@JvmName("drjkybpwhunfxdiq")
public suspend fun gvnic(argument: suspend NodePoolNodeConfigGvnicArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigGvnicArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.gvnic = mapped
}
/**
* @param value The maintenance policy for the hosts on which the GKE VMs run on.
*/
@JvmName("ogxffmpciakerjqf")
public suspend fun hostMaintenancePolicy(`value`: NodePoolNodeConfigHostMaintenancePolicyArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.hostMaintenancePolicy = mapped
}
/**
* @param argument The maintenance policy for the hosts on which the GKE VMs run on.
*/
@JvmName("vqfkccsqgyrcrhcu")
public suspend fun hostMaintenancePolicy(argument: suspend NodePoolNodeConfigHostMaintenancePolicyArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigHostMaintenancePolicyArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.hostMaintenancePolicy = mapped
}
/**
* @param value The image type to use for this node. Note that for a given image type, the latest version of it will be used.
*/
@JvmName("vnacdfvwodnilcfv")
public suspend fun imageType(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.imageType = mapped
}
/**
* @param value Node kubelet configs.
*/
@JvmName("qbbjjntmoajtwurc")
public suspend fun kubeletConfig(`value`: NodePoolNodeConfigKubeletConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.kubeletConfig = mapped
}
/**
* @param argument Node kubelet configs.
*/
@JvmName("ouedltddyvrjoedo")
public suspend fun kubeletConfig(argument: suspend NodePoolNodeConfigKubeletConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigKubeletConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.kubeletConfig = mapped
}
/**
* @param value The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.
*/
@JvmName("hroohbmyrjgxtsqn")
public suspend fun labels(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.labels = mapped
}
/**
* @param values The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.
*/
@JvmName("fiwflxocycrxsqik")
public fun labels(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.labels = mapped
}
/**
* @param value Parameters that can be configured on Linux nodes.
*/
@JvmName("wcntwsjjypsurxex")
public suspend fun linuxNodeConfig(`value`: NodePoolNodeConfigLinuxNodeConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.linuxNodeConfig = mapped
}
/**
* @param argument Parameters that can be configured on Linux nodes.
*/
@JvmName("iwwdmtjgssoreyvm")
public suspend fun linuxNodeConfig(argument: suspend NodePoolNodeConfigLinuxNodeConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigLinuxNodeConfigArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.linuxNodeConfig = mapped
}
/**
* @param value Parameters for raw-block local NVMe SSDs.
*/
@JvmName("jhlasilqnfdvcmkg")
public suspend fun localNvmeSsdBlockConfig(`value`: NodePoolNodeConfigLocalNvmeSsdBlockConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.localNvmeSsdBlockConfig = mapped
}
/**
* @param argument Parameters for raw-block local NVMe SSDs.
*/
@JvmName("nsjaypvqtxbkgphc")
public suspend fun localNvmeSsdBlockConfig(argument: suspend NodePoolNodeConfigLocalNvmeSsdBlockConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigLocalNvmeSsdBlockConfigArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.localNvmeSsdBlockConfig = mapped
}
/**
* @param value The number of local SSD disks to be attached to the node.
*/
@JvmName("myjsqalvobqksfyx")
public suspend fun localSsdCount(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.localSsdCount = mapped
}
/**
* @param value Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.
*/
@JvmName("ytnoohlpvnceycwh")
public suspend fun loggingVariant(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.loggingVariant = mapped
}
/**
* @param value The name of a Google Compute Engine machine type.
*/
@JvmName("jabjotcflxcswdhu")
public suspend fun machineType(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.machineType = mapped
}
/**
* @param value The metadata key/value pairs assigned to instances in the cluster.
*/
@JvmName("utrirkkgxtsubnfx")
public suspend fun metadata(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.metadata = mapped
}
/**
* @param values The metadata key/value pairs assigned to instances in the cluster.
*/
@JvmName("caxkcpivhukuerrg")
public fun metadata(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.metadata = mapped
}
/**
* @param value Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.
*/
@JvmName("ppiuundbvcyiwwvx")
public suspend fun minCpuPlatform(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.minCpuPlatform = mapped
}
/**
* @param value Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.
*/
@JvmName("fujgmgecejedbulr")
public suspend fun nodeGroup(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.nodeGroup = mapped
}
/**
* @param value The set of Google API scopes to be made available on all of the node VMs.
*/
@JvmName("jmnmwewqgwjqpwpc")
public suspend fun oauthScopes(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.oauthScopes = mapped
}
/**
* @param values The set of Google API scopes to be made available on all of the node VMs.
*/
@JvmName("slbssjecgqkdbhfo")
public suspend fun oauthScopes(vararg values: String) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.oauthScopes = mapped
}
/**
* @param value Whether the nodes are created as preemptible VM instances.
*/
@JvmName("geqflvguihhbsgmb")
public suspend fun preemptible(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.preemptible = mapped
}
/**
* @param value The configuration of the desired reservation which instances could take capacity from.
* Structure is documented below.
* The `autoscaling` block supports (either total or per zone limits are required):
*/
@JvmName("hchhndgglcsubhfl")
public suspend fun reservationAffinity(`value`: NodePoolNodeConfigReservationAffinityArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.reservationAffinity = mapped
}
/**
* @param argument The configuration of the desired reservation which instances could take capacity from.
* Structure is documented below.
* The `autoscaling` block supports (either total or per zone limits are required):
*/
@JvmName("gdhhpmrhrrftycda")
public suspend fun reservationAffinity(argument: suspend NodePoolNodeConfigReservationAffinityArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigReservationAffinityArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.reservationAffinity = mapped
}
/**
* @param value The GCE resource labels (a map of key/value pairs) to be applied to the node pool.
*/
@JvmName("rgiavrkgksnflrrf")
public suspend fun resourceLabels(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.resourceLabels = mapped
}
/**
* @param values The GCE resource labels (a map of key/value pairs) to be applied to the node pool.
*/
@JvmName("eeluqrccqyoqwoen")
public fun resourceLabels(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.resourceLabels = mapped
}
/**
* @param value A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
*/
@JvmName("gpobqfhcynqmxnjy")
public suspend fun resourceManagerTags(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.resourceManagerTags = mapped
}
/**
* @param values A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
*/
@JvmName("ywiicauwiprklnad")
public fun resourceManagerTags(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.resourceManagerTags = mapped
}
/**
* @param value Sandbox configuration for this node.
*/
@JvmName("xwjiwrqjtlbptryg")
public suspend fun sandboxConfig(`value`: NodePoolNodeConfigSandboxConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.sandboxConfig = mapped
}
/**
* @param argument Sandbox configuration for this node.
*/
@JvmName("xlxlkmaoxexububf")
public suspend fun sandboxConfig(argument: suspend NodePoolNodeConfigSandboxConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigSandboxConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.sandboxConfig = mapped
}
/**
* @param value Secondary boot disks for preloading data or container images.
*/
@JvmName("spovmpeewoorjbeu")
public suspend fun secondaryBootDisks(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.secondaryBootDisks = mapped
}
/**
* @param argument Secondary boot disks for preloading data or container images.
*/
@JvmName("ncesointklpkvyqu")
public suspend fun secondaryBootDisks(argument: List Unit>) {
val toBeMapped = argument.toList().map {
NodePoolNodeConfigSecondaryBootDiskArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.secondaryBootDisks = mapped
}
/**
* @param argument Secondary boot disks for preloading data or container images.
*/
@JvmName("xvptaiuhxkrlvhxo")
public suspend fun secondaryBootDisks(vararg argument: suspend NodePoolNodeConfigSecondaryBootDiskArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
NodePoolNodeConfigSecondaryBootDiskArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.secondaryBootDisks = mapped
}
/**
* @param argument Secondary boot disks for preloading data or container images.
*/
@JvmName("ctegvvqitawcwvmu")
public suspend fun secondaryBootDisks(argument: suspend NodePoolNodeConfigSecondaryBootDiskArgsBuilder.() -> Unit) {
val toBeMapped = listOf(
NodePoolNodeConfigSecondaryBootDiskArgsBuilder().applySuspend {
argument()
}.build(),
)
val mapped = of(toBeMapped)
this.secondaryBootDisks = mapped
}
/**
* @param values Secondary boot disks for preloading data or container images.
*/
@JvmName("eajdrmrwvxuahmmr")
public suspend fun secondaryBootDisks(vararg values: NodePoolNodeConfigSecondaryBootDiskArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.secondaryBootDisks = mapped
}
/**
* @param value The Google Cloud Platform Service Account to be used by the node VMs.
*/
@JvmName("lyccumivbhstdumu")
public suspend fun serviceAccount(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.serviceAccount = mapped
}
/**
* @param value Shielded Instance options.
*/
@JvmName("ttviimuyrryaixyy")
public suspend fun shieldedInstanceConfig(`value`: NodePoolNodeConfigShieldedInstanceConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.shieldedInstanceConfig = mapped
}
/**
* @param argument Shielded Instance options.
*/
@JvmName("dfmverpydolmedkl")
public suspend fun shieldedInstanceConfig(argument: suspend NodePoolNodeConfigShieldedInstanceConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigShieldedInstanceConfigArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.shieldedInstanceConfig = mapped
}
/**
* @param value Node affinity options for sole tenant node pools.
*/
@JvmName("nxihcylkipumwslg")
public suspend fun soleTenantConfig(`value`: NodePoolNodeConfigSoleTenantConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.soleTenantConfig = mapped
}
/**
* @param argument Node affinity options for sole tenant node pools.
*/
@JvmName("chogwdrlgqigqwuw")
public suspend fun soleTenantConfig(argument: suspend NodePoolNodeConfigSoleTenantConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigSoleTenantConfigArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.soleTenantConfig = mapped
}
/**
* @param value Whether the nodes are created as spot VM instances.
*/
@JvmName("ccrlxkunakfqwrgd")
public suspend fun spot(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.spot = mapped
}
/**
* @param value The list of instance tags applied to all nodes.
*/
@JvmName("xogurvepbcgxjmbn")
public suspend fun tags(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param values The list of instance tags applied to all nodes.
*/
@JvmName("hsedrjumgnhehgti")
public suspend fun tags(vararg values: String) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param value List of Kubernetes taints to be applied to each node.
*/
@JvmName("blhaapwgqrcykeqs")
public suspend fun taints(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.taints = mapped
}
/**
* @param argument List of Kubernetes taints to be applied to each node.
*/
@JvmName("nkprlunlmhtyugoq")
public suspend fun taints(argument: List Unit>) {
val toBeMapped = argument.toList().map {
NodePoolNodeConfigTaintArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.taints = mapped
}
/**
* @param argument List of Kubernetes taints to be applied to each node.
*/
@JvmName("igytibhwophwuohj")
public suspend fun taints(vararg argument: suspend NodePoolNodeConfigTaintArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
NodePoolNodeConfigTaintArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.taints = mapped
}
/**
* @param argument List of Kubernetes taints to be applied to each node.
*/
@JvmName("bokrbqvwsjxcqome")
public suspend fun taints(argument: suspend NodePoolNodeConfigTaintArgsBuilder.() -> Unit) {
val toBeMapped = listOf(
NodePoolNodeConfigTaintArgsBuilder().applySuspend {
argument()
}.build(),
)
val mapped = of(toBeMapped)
this.taints = mapped
}
/**
* @param values List of Kubernetes taints to be applied to each node.
*/
@JvmName("ynavmptuplshcbyf")
public suspend fun taints(vararg values: NodePoolNodeConfigTaintArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.taints = mapped
}
/**
* @param value The workload metadata configuration for this node.
*/
@JvmName("euuvdgcxlnelerwy")
public suspend fun workloadMetadataConfig(`value`: NodePoolNodeConfigWorkloadMetadataConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.workloadMetadataConfig = mapped
}
/**
* @param argument The workload metadata configuration for this node.
*/
@JvmName("jgenqqffjntgssye")
public suspend fun workloadMetadataConfig(argument: suspend NodePoolNodeConfigWorkloadMetadataConfigArgsBuilder.() -> Unit) {
val toBeMapped = NodePoolNodeConfigWorkloadMetadataConfigArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.workloadMetadataConfig = mapped
}
internal fun build(): NodePoolNodeConfigArgs = NodePoolNodeConfigArgs(
advancedMachineFeatures = advancedMachineFeatures,
bootDiskKmsKey = bootDiskKmsKey,
confidentialNodes = confidentialNodes,
containerdConfig = containerdConfig,
diskSizeGb = diskSizeGb,
diskType = diskType,
effectiveTaints = effectiveTaints,
enableConfidentialStorage = enableConfidentialStorage,
ephemeralStorageConfig = ephemeralStorageConfig,
ephemeralStorageLocalSsdConfig = ephemeralStorageLocalSsdConfig,
fastSocket = fastSocket,
gcfsConfig = gcfsConfig,
guestAccelerators = guestAccelerators,
gvnic = gvnic,
hostMaintenancePolicy = hostMaintenancePolicy,
imageType = imageType,
kubeletConfig = kubeletConfig,
labels = labels,
linuxNodeConfig = linuxNodeConfig,
localNvmeSsdBlockConfig = localNvmeSsdBlockConfig,
localSsdCount = localSsdCount,
loggingVariant = loggingVariant,
machineType = machineType,
metadata = metadata,
minCpuPlatform = minCpuPlatform,
nodeGroup = nodeGroup,
oauthScopes = oauthScopes,
preemptible = preemptible,
reservationAffinity = reservationAffinity,
resourceLabels = resourceLabels,
resourceManagerTags = resourceManagerTags,
sandboxConfig = sandboxConfig,
secondaryBootDisks = secondaryBootDisks,
serviceAccount = serviceAccount,
shieldedInstanceConfig = shieldedInstanceConfig,
soleTenantConfig = soleTenantConfig,
spot = spot,
tags = tags,
taints = taints,
workloadMetadataConfig = workloadMetadataConfig,
)
}