All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.gcp.container.kotlin.inputs.ClusterNodePoolArgs.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.

There is a newer version: 8.10.0.0
Show newest version
@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.ClusterNodePoolArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property autoscaling Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.
 * @property initialNodeCount The number of nodes to create in this
 * cluster's default node pool. In regional or multi-zonal clusters, this is the
 * number of nodes per zone. Must be set if `node_pool` is not set. If you're using
 * `gcp.container.NodePool` objects with no default node pool, you'll need to
 * set this to a value of at least `1`, alongside setting
 * `remove_default_node_pool` to `true`.
 * @property instanceGroupUrls The resource URLs of the managed instance groups associated with this node pool.
 * @property managedInstanceGroupUrls List of instance group URLs which have been assigned to this node pool.
 * @property management Node management configuration, wherein auto-repair and auto-upgrade is configured.
 * @property maxPodsPerNode The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled.
 * @property name The name of the cluster, unique within the project and
 * location.
 * - - -
 * @property namePrefix Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.
 * @property networkConfig Configuration for
 * [Adding Pod IP address ranges](https://cloud.google.com/kubernetes-engine/docs/how-to/multi-pod-cidr)) to the node pool. Structure is documented below
 * @property nodeConfig Parameters used in creating the default node pool.
 * Generally, this field should not be used at the same time as a
 * `gcp.container.NodePool` or a `node_pool` block; this configuration
 * manages the default node pool, which isn't recommended to be used.
 * Structure is documented below.
 * @property nodeCount The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.
 * @property nodeLocations The list of zones in which the cluster's nodes
 * are located. Nodes must be in the region of their regional cluster or in the
 * same region as their cluster's zone for zonal clusters. If this is specified for
 * a zonal cluster, omit the cluster's zone.
 * > A "multi-zonal" cluster is a zonal cluster with at least one additional zone
 * defined; in a multi-zonal cluster, the cluster master is only present in a
 * single zone while nodes are present in each of the primary zone and the node
 * locations. In contrast, in a regional cluster, cluster master nodes are present
 * in multiple zones in the region. For that reason, regional clusters should be
 * preferred.
 * @property placementPolicy Specifies the node placement policy
 * @property queuedProvisioning Specifies the configuration of queued provisioning
 * @property upgradeSettings Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20.
 * @property version
 */
public data class ClusterNodePoolArgs(
    public val autoscaling: Output? = null,
    public val initialNodeCount: Output? = null,
    public val instanceGroupUrls: Output>? = null,
    public val managedInstanceGroupUrls: Output>? = null,
    public val management: Output? = null,
    public val maxPodsPerNode: Output? = null,
    public val name: Output? = null,
    public val namePrefix: Output? = null,
    public val networkConfig: Output? = null,
    public val nodeConfig: Output? = null,
    public val nodeCount: Output? = null,
    public val nodeLocations: Output>? = null,
    public val placementPolicy: Output? = null,
    public val queuedProvisioning: Output? = null,
    public val upgradeSettings: Output? = null,
    public val version: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.container.inputs.ClusterNodePoolArgs =
        com.pulumi.gcp.container.inputs.ClusterNodePoolArgs.builder()
            .autoscaling(autoscaling?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .initialNodeCount(initialNodeCount?.applyValue({ args0 -> args0 }))
            .instanceGroupUrls(instanceGroupUrls?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .managedInstanceGroupUrls(
                managedInstanceGroupUrls?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .management(management?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .maxPodsPerNode(maxPodsPerNode?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .namePrefix(namePrefix?.applyValue({ args0 -> args0 }))
            .networkConfig(networkConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .nodeConfig(nodeConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .nodeCount(nodeCount?.applyValue({ args0 -> args0 }))
            .nodeLocations(nodeLocations?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .placementPolicy(placementPolicy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .queuedProvisioning(
                queuedProvisioning?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .upgradeSettings(upgradeSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .version(version?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ClusterNodePoolArgs].
 */
@PulumiTagMarker
public class ClusterNodePoolArgsBuilder internal constructor() {
    private var autoscaling: Output? = null

    private var initialNodeCount: Output? = null

    private var instanceGroupUrls: Output>? = null

    private var managedInstanceGroupUrls: Output>? = null

    private var management: Output? = null

    private var maxPodsPerNode: Output? = null

    private var name: Output? = null

    private var namePrefix: Output? = null

    private var networkConfig: Output? = null

    private var nodeConfig: Output? = null

    private var nodeCount: Output? = null

    private var nodeLocations: Output>? = null

    private var placementPolicy: Output? = null

    private var queuedProvisioning: Output? = null

    private var upgradeSettings: Output? = null

    private var version: Output? = null

    /**
     * @param value Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.
     */
    @JvmName("qblhywmlclwvvavn")
    public suspend fun autoscaling(`value`: Output) {
        this.autoscaling = value
    }

    /**
     * @param value The number of nodes to create in this
     * cluster's default node pool. In regional or multi-zonal clusters, this is the
     * number of nodes per zone. Must be set if `node_pool` is not set. If you're using
     * `gcp.container.NodePool` objects with no default node pool, you'll need to
     * set this to a value of at least `1`, alongside setting
     * `remove_default_node_pool` to `true`.
     */
    @JvmName("ymtvhtyrqaiqdfwc")
    public suspend fun initialNodeCount(`value`: Output) {
        this.initialNodeCount = value
    }

    /**
     * @param value The resource URLs of the managed instance groups associated with this node pool.
     */
    @JvmName("kqnwhnlewxjdlicc")
    public suspend fun instanceGroupUrls(`value`: Output>) {
        this.instanceGroupUrls = value
    }

    @JvmName("rekaiqvluglrfspk")
    public suspend fun instanceGroupUrls(vararg values: Output) {
        this.instanceGroupUrls = Output.all(values.asList())
    }

    /**
     * @param values The resource URLs of the managed instance groups associated with this node pool.
     */
    @JvmName("oawdktbjhtndwblx")
    public suspend fun instanceGroupUrls(values: List>) {
        this.instanceGroupUrls = Output.all(values)
    }

    /**
     * @param value List of instance group URLs which have been assigned to this node pool.
     */
    @JvmName("ylisqwxaitganvbq")
    public suspend fun managedInstanceGroupUrls(`value`: Output>) {
        this.managedInstanceGroupUrls = value
    }

    @JvmName("tipxxqrsdnflttgg")
    public suspend fun managedInstanceGroupUrls(vararg values: Output) {
        this.managedInstanceGroupUrls = Output.all(values.asList())
    }

    /**
     * @param values List of instance group URLs which have been assigned to this node pool.
     */
    @JvmName("uehahyxwrgfuhhks")
    public suspend fun managedInstanceGroupUrls(values: List>) {
        this.managedInstanceGroupUrls = Output.all(values)
    }

    /**
     * @param value Node management configuration, wherein auto-repair and auto-upgrade is configured.
     */
    @JvmName("fkqukauebvogcsun")
    public suspend fun management(`value`: Output) {
        this.management = value
    }

    /**
     * @param value The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled.
     */
    @JvmName("oleefnitclirffpt")
    public suspend fun maxPodsPerNode(`value`: Output) {
        this.maxPodsPerNode = value
    }

    /**
     * @param value The name of the cluster, unique within the project and
     * location.
     * - - -
     */
    @JvmName("kaiyoqwgbhkodfnl")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.
     */
    @JvmName("hgknlngjledieeaw")
    public suspend fun namePrefix(`value`: Output) {
        this.namePrefix = value
    }

    /**
     * @param value Configuration for
     * [Adding Pod IP address ranges](https://cloud.google.com/kubernetes-engine/docs/how-to/multi-pod-cidr)) to the node pool. Structure is documented below
     */
    @JvmName("davuhdqyehgmarla")
    public suspend fun networkConfig(`value`: Output) {
        this.networkConfig = value
    }

    /**
     * @param value Parameters used in creating the default node pool.
     * Generally, this field should not be used at the same time as a
     * `gcp.container.NodePool` or a `node_pool` block; this configuration
     * manages the default node pool, which isn't recommended to be used.
     * Structure is documented below.
     */
    @JvmName("qsraxqykxngqpqps")
    public suspend fun nodeConfig(`value`: Output) {
        this.nodeConfig = value
    }

    /**
     * @param value The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.
     */
    @JvmName("kvhjitxacsfdgkqe")
    public suspend fun nodeCount(`value`: Output) {
        this.nodeCount = value
    }

    /**
     * @param value The list of zones in which the cluster's nodes
     * are located. Nodes must be in the region of their regional cluster or in the
     * same region as their cluster's zone for zonal clusters. If this is specified for
     * a zonal cluster, omit the cluster's zone.
     * > A "multi-zonal" cluster is a zonal cluster with at least one additional zone
     * defined; in a multi-zonal cluster, the cluster master is only present in a
     * single zone while nodes are present in each of the primary zone and the node
     * locations. In contrast, in a regional cluster, cluster master nodes are present
     * in multiple zones in the region. For that reason, regional clusters should be
     * preferred.
     */
    @JvmName("afvloirnklkacjlv")
    public suspend fun nodeLocations(`value`: Output>) {
        this.nodeLocations = value
    }

    @JvmName("bhscaahcjxieffdq")
    public suspend fun nodeLocations(vararg values: Output) {
        this.nodeLocations = Output.all(values.asList())
    }

    /**
     * @param values The list of zones in which the cluster's nodes
     * are located. Nodes must be in the region of their regional cluster or in the
     * same region as their cluster's zone for zonal clusters. If this is specified for
     * a zonal cluster, omit the cluster's zone.
     * > A "multi-zonal" cluster is a zonal cluster with at least one additional zone
     * defined; in a multi-zonal cluster, the cluster master is only present in a
     * single zone while nodes are present in each of the primary zone and the node
     * locations. In contrast, in a regional cluster, cluster master nodes are present
     * in multiple zones in the region. For that reason, regional clusters should be
     * preferred.
     */
    @JvmName("twmcxgbkwkwcyxgo")
    public suspend fun nodeLocations(values: List>) {
        this.nodeLocations = Output.all(values)
    }

    /**
     * @param value Specifies the node placement policy
     */
    @JvmName("iymtdcrlyccwmjvi")
    public suspend fun placementPolicy(`value`: Output) {
        this.placementPolicy = value
    }

    /**
     * @param value Specifies the configuration of queued provisioning
     */
    @JvmName("tbumpkkesnpsdhsd")
    public suspend fun queuedProvisioning(`value`: Output) {
        this.queuedProvisioning = value
    }

    /**
     * @param value Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20.
     */
    @JvmName("fexahldhdbdxwcmj")
    public suspend fun upgradeSettings(`value`: Output) {
        this.upgradeSettings = value
    }

    /**
     * @param value
     */
    @JvmName("icpwocudxnghwesy")
    public suspend fun version(`value`: Output) {
        this.version = value
    }

    /**
     * @param value Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.
     */
    @JvmName("sqxoqfusqdhmxfel")
    public suspend fun autoscaling(`value`: ClusterNodePoolAutoscalingArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoscaling = mapped
    }

    /**
     * @param argument Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.
     */
    @JvmName("wjvdjyknosxjrrjr")
    public suspend fun autoscaling(argument: suspend ClusterNodePoolAutoscalingArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterNodePoolAutoscalingArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.autoscaling = mapped
    }

    /**
     * @param value The number of nodes to create in this
     * cluster's default node pool. In regional or multi-zonal clusters, this is the
     * number of nodes per zone. Must be set if `node_pool` is not set. If you're using
     * `gcp.container.NodePool` objects with no default node pool, you'll need to
     * set this to a value of at least `1`, alongside setting
     * `remove_default_node_pool` to `true`.
     */
    @JvmName("dypakugufsdjrtcc")
    public suspend fun initialNodeCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.initialNodeCount = mapped
    }

    /**
     * @param value The resource URLs of the managed instance groups associated with this node pool.
     */
    @JvmName("wixkyaqatnalenqr")
    public suspend fun instanceGroupUrls(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceGroupUrls = mapped
    }

    /**
     * @param values The resource URLs of the managed instance groups associated with this node pool.
     */
    @JvmName("xjgwyitkdpnvovwh")
    public suspend fun instanceGroupUrls(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.instanceGroupUrls = mapped
    }

    /**
     * @param value List of instance group URLs which have been assigned to this node pool.
     */
    @JvmName("lkbfbybprcvxpran")
    public suspend fun managedInstanceGroupUrls(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.managedInstanceGroupUrls = mapped
    }

    /**
     * @param values List of instance group URLs which have been assigned to this node pool.
     */
    @JvmName("wmdubcmqwwegoyhv")
    public suspend fun managedInstanceGroupUrls(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.managedInstanceGroupUrls = mapped
    }

    /**
     * @param value Node management configuration, wherein auto-repair and auto-upgrade is configured.
     */
    @JvmName("jdjadfnkqffgnxon")
    public suspend fun management(`value`: ClusterNodePoolManagementArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.management = mapped
    }

    /**
     * @param argument Node management configuration, wherein auto-repair and auto-upgrade is configured.
     */
    @JvmName("hkkuygqervwxiidh")
    public suspend fun management(argument: suspend ClusterNodePoolManagementArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterNodePoolManagementArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.management = mapped
    }

    /**
     * @param value The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled.
     */
    @JvmName("lcedjflndouikxdx")
    public suspend fun maxPodsPerNode(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxPodsPerNode = mapped
    }

    /**
     * @param value The name of the cluster, unique within the project and
     * location.
     * - - -
     */
    @JvmName("utglripejvdmolir")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.
     */
    @JvmName("fcfhdljqpltlxiio")
    public suspend fun namePrefix(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.namePrefix = mapped
    }

    /**
     * @param value Configuration for
     * [Adding Pod IP address ranges](https://cloud.google.com/kubernetes-engine/docs/how-to/multi-pod-cidr)) to the node pool. Structure is documented below
     */
    @JvmName("bpdplneqrlxbpjyv")
    public suspend fun networkConfig(`value`: ClusterNodePoolNetworkConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkConfig = mapped
    }

    /**
     * @param argument Configuration for
     * [Adding Pod IP address ranges](https://cloud.google.com/kubernetes-engine/docs/how-to/multi-pod-cidr)) to the node pool. Structure is documented below
     */
    @JvmName("uiergregkoqtfrtw")
    public suspend fun networkConfig(argument: suspend ClusterNodePoolNetworkConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterNodePoolNetworkConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.networkConfig = mapped
    }

    /**
     * @param value Parameters used in creating the default node pool.
     * Generally, this field should not be used at the same time as a
     * `gcp.container.NodePool` or a `node_pool` block; this configuration
     * manages the default node pool, which isn't recommended to be used.
     * Structure is documented below.
     */
    @JvmName("xllhwvvfopuklxbu")
    public suspend fun nodeConfig(`value`: ClusterNodePoolNodeConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nodeConfig = mapped
    }

    /**
     * @param argument Parameters used in creating the default node pool.
     * Generally, this field should not be used at the same time as a
     * `gcp.container.NodePool` or a `node_pool` block; this configuration
     * manages the default node pool, which isn't recommended to be used.
     * Structure is documented below.
     */
    @JvmName("xdsgwkhetcsyqoei")
    public suspend fun nodeConfig(argument: suspend ClusterNodePoolNodeConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterNodePoolNodeConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.nodeConfig = mapped
    }

    /**
     * @param value The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.
     */
    @JvmName("kpijafcvicnakhvo")
    public suspend fun nodeCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nodeCount = mapped
    }

    /**
     * @param value The list of zones in which the cluster's nodes
     * are located. Nodes must be in the region of their regional cluster or in the
     * same region as their cluster's zone for zonal clusters. If this is specified for
     * a zonal cluster, omit the cluster's zone.
     * > A "multi-zonal" cluster is a zonal cluster with at least one additional zone
     * defined; in a multi-zonal cluster, the cluster master is only present in a
     * single zone while nodes are present in each of the primary zone and the node
     * locations. In contrast, in a regional cluster, cluster master nodes are present
     * in multiple zones in the region. For that reason, regional clusters should be
     * preferred.
     */
    @JvmName("equsywydmygoyrxm")
    public suspend fun nodeLocations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nodeLocations = mapped
    }

    /**
     * @param values The list of zones in which the cluster's nodes
     * are located. Nodes must be in the region of their regional cluster or in the
     * same region as their cluster's zone for zonal clusters. If this is specified for
     * a zonal cluster, omit the cluster's zone.
     * > A "multi-zonal" cluster is a zonal cluster with at least one additional zone
     * defined; in a multi-zonal cluster, the cluster master is only present in a
     * single zone while nodes are present in each of the primary zone and the node
     * locations. In contrast, in a regional cluster, cluster master nodes are present
     * in multiple zones in the region. For that reason, regional clusters should be
     * preferred.
     */
    @JvmName("abtakspsnkolacpc")
    public suspend fun nodeLocations(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.nodeLocations = mapped
    }

    /**
     * @param value Specifies the node placement policy
     */
    @JvmName("qyrwohncehrrcrfe")
    public suspend fun placementPolicy(`value`: ClusterNodePoolPlacementPolicyArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.placementPolicy = mapped
    }

    /**
     * @param argument Specifies the node placement policy
     */
    @JvmName("xbjvoyxlcqpekmnk")
    public suspend fun placementPolicy(argument: suspend ClusterNodePoolPlacementPolicyArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterNodePoolPlacementPolicyArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.placementPolicy = mapped
    }

    /**
     * @param value Specifies the configuration of queued provisioning
     */
    @JvmName("qkmgvhkspdjjxgbs")
    public suspend fun queuedProvisioning(`value`: ClusterNodePoolQueuedProvisioningArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.queuedProvisioning = mapped
    }

    /**
     * @param argument Specifies the configuration of queued provisioning
     */
    @JvmName("jcvuyehrdvyspwdb")
    public suspend fun queuedProvisioning(argument: suspend ClusterNodePoolQueuedProvisioningArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterNodePoolQueuedProvisioningArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.queuedProvisioning = mapped
    }

    /**
     * @param value Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20.
     */
    @JvmName("sgahgmpjehiagiqv")
    public suspend fun upgradeSettings(`value`: ClusterNodePoolUpgradeSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.upgradeSettings = mapped
    }

    /**
     * @param argument Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20.
     */
    @JvmName("bjyguqprpbjyytra")
    public suspend fun upgradeSettings(argument: suspend ClusterNodePoolUpgradeSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterNodePoolUpgradeSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.upgradeSettings = mapped
    }

    /**
     * @param value
     */
    @JvmName("wpbgiybjbpkaparx")
    public suspend fun version(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.version = mapped
    }

    internal fun build(): ClusterNodePoolArgs = ClusterNodePoolArgs(
        autoscaling = autoscaling,
        initialNodeCount = initialNodeCount,
        instanceGroupUrls = instanceGroupUrls,
        managedInstanceGroupUrls = managedInstanceGroupUrls,
        management = management,
        maxPodsPerNode = maxPodsPerNode,
        name = name,
        namePrefix = namePrefix,
        networkConfig = networkConfig,
        nodeConfig = nodeConfig,
        nodeCount = nodeCount,
        nodeLocations = nodeLocations,
        placementPolicy = placementPolicy,
        queuedProvisioning = queuedProvisioning,
        upgradeSettings = upgradeSettings,
        version = version,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy