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

com.pulumi.gcp.container.kotlin.inputs.ClusterNodePoolNetworkConfigArgs.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.12.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.ClusterNodePoolNetworkConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property additionalNodeNetworkConfigs We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface
 * @property additionalPodNetworkConfigs We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node
 * @property createPodRange Whether to create a new range for pod IPs in this node pool. Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are not specified.
 * @property enablePrivateNodes Whether nodes have internal IP addresses only.
 * @property networkPerformanceConfig Network bandwidth tier configuration.
 * @property podCidrOverprovisionConfig Configuration for node-pool level pod cidr overprovision. If not set, the cluster level setting will be inherited
 * @property podIpv4CidrBlock The IP address range for pod IPs in this node pool. Only applicable if createPodRange is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) to pick a specific range to use.
 * @property podRange The ID of the secondary range for pod IPs. If `create_pod_range` is true, this ID is used for the new range. If `create_pod_range` is false, uses an existing secondary range with this ID.
 */
public data class ClusterNodePoolNetworkConfigArgs(
    public val additionalNodeNetworkConfigs: Output>? = null,
    public val additionalPodNetworkConfigs: Output>? = null,
    public val createPodRange: Output? = null,
    public val enablePrivateNodes: Output? = null,
    public val networkPerformanceConfig: Output? = null,
    public val podCidrOverprovisionConfig: Output? = null,
    public val podIpv4CidrBlock: Output? = null,
    public val podRange: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.container.inputs.ClusterNodePoolNetworkConfigArgs =
        com.pulumi.gcp.container.inputs.ClusterNodePoolNetworkConfigArgs.builder()
            .additionalNodeNetworkConfigs(
                additionalNodeNetworkConfigs?.applyValue({ args0 ->
                    args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .additionalPodNetworkConfigs(
                additionalPodNetworkConfigs?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .createPodRange(createPodRange?.applyValue({ args0 -> args0 }))
            .enablePrivateNodes(enablePrivateNodes?.applyValue({ args0 -> args0 }))
            .networkPerformanceConfig(
                networkPerformanceConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .podCidrOverprovisionConfig(
                podCidrOverprovisionConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .podIpv4CidrBlock(podIpv4CidrBlock?.applyValue({ args0 -> args0 }))
            .podRange(podRange?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ClusterNodePoolNetworkConfigArgs].
 */
@PulumiTagMarker
public class ClusterNodePoolNetworkConfigArgsBuilder internal constructor() {
    private var additionalNodeNetworkConfigs:
        Output>? = null

    private var additionalPodNetworkConfigs:
        Output>? = null

    private var createPodRange: Output? = null

    private var enablePrivateNodes: Output? = null

    private var networkPerformanceConfig:
        Output? = null

    private var podCidrOverprovisionConfig:
        Output? = null

    private var podIpv4CidrBlock: Output? = null

    private var podRange: Output? = null

    /**
     * @param value We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface
     */
    @JvmName("odjufwyfyihmvisw")
    public suspend fun additionalNodeNetworkConfigs(`value`: Output>) {
        this.additionalNodeNetworkConfigs = value
    }

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

    /**
     * @param values We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface
     */
    @JvmName("wsipdjksafjxubts")
    public suspend fun additionalNodeNetworkConfigs(values: List>) {
        this.additionalNodeNetworkConfigs = Output.all(values)
    }

    /**
     * @param value We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node
     */
    @JvmName("kemvmuvaqjyvjytt")
    public suspend fun additionalPodNetworkConfigs(`value`: Output>) {
        this.additionalPodNetworkConfigs = value
    }

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

    /**
     * @param values We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node
     */
    @JvmName("qggkybgcknorlaoo")
    public suspend fun additionalPodNetworkConfigs(values: List>) {
        this.additionalPodNetworkConfigs = Output.all(values)
    }

    /**
     * @param value Whether to create a new range for pod IPs in this node pool. Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are not specified.
     */
    @JvmName("vubdoltduxnwivli")
    public suspend fun createPodRange(`value`: Output) {
        this.createPodRange = value
    }

    /**
     * @param value Whether nodes have internal IP addresses only.
     */
    @JvmName("pqoevbkvngomjscc")
    public suspend fun enablePrivateNodes(`value`: Output) {
        this.enablePrivateNodes = value
    }

    /**
     * @param value Network bandwidth tier configuration.
     */
    @JvmName("cqyrepbqxhxghvir")
    public suspend fun networkPerformanceConfig(`value`: Output) {
        this.networkPerformanceConfig = value
    }

    /**
     * @param value Configuration for node-pool level pod cidr overprovision. If not set, the cluster level setting will be inherited
     */
    @JvmName("wpwimcolqtxbcybf")
    public suspend fun podCidrOverprovisionConfig(`value`: Output) {
        this.podCidrOverprovisionConfig = value
    }

    /**
     * @param value The IP address range for pod IPs in this node pool. Only applicable if createPodRange is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) to pick a specific range to use.
     */
    @JvmName("rndpciyqwhvrodph")
    public suspend fun podIpv4CidrBlock(`value`: Output) {
        this.podIpv4CidrBlock = value
    }

    /**
     * @param value The ID of the secondary range for pod IPs. If `create_pod_range` is true, this ID is used for the new range. If `create_pod_range` is false, uses an existing secondary range with this ID.
     */
    @JvmName("gqvhjmilkpdtfvmr")
    public suspend fun podRange(`value`: Output) {
        this.podRange = value
    }

    /**
     * @param value We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface
     */
    @JvmName("ueqqbqiycfwhtkee")
    public suspend fun additionalNodeNetworkConfigs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalNodeNetworkConfigs = mapped
    }

    /**
     * @param argument We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface
     */
    @JvmName("pqddovputldtrala")
    public suspend fun additionalNodeNetworkConfigs(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.additionalNodeNetworkConfigs = mapped
    }

    /**
     * @param argument We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface
     */
    @JvmName("fhdigxxvjgoavsum")
    public suspend fun additionalNodeNetworkConfigs(vararg argument: suspend ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.additionalNodeNetworkConfigs = mapped
    }

    /**
     * @param argument We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface
     */
    @JvmName("woqomaalhwobweug")
    public suspend fun additionalNodeNetworkConfigs(argument: suspend ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.additionalNodeNetworkConfigs = mapped
    }

    /**
     * @param values We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface
     */
    @JvmName("tktcywlqoioqdrfj")
    public suspend fun additionalNodeNetworkConfigs(vararg values: ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalNodeNetworkConfigs = mapped
    }

    /**
     * @param value We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node
     */
    @JvmName("nupwsbmiytlhjjgi")
    public suspend fun additionalPodNetworkConfigs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalPodNetworkConfigs = mapped
    }

    /**
     * @param argument We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node
     */
    @JvmName("eyiahpyoekcooecw")
    public suspend fun additionalPodNetworkConfigs(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ClusterNodePoolNetworkConfigAdditionalPodNetworkConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.additionalPodNetworkConfigs = mapped
    }

    /**
     * @param argument We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node
     */
    @JvmName("ypvqclaysndphfkf")
    public suspend fun additionalPodNetworkConfigs(vararg argument: suspend ClusterNodePoolNetworkConfigAdditionalPodNetworkConfigArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ClusterNodePoolNetworkConfigAdditionalPodNetworkConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.additionalPodNetworkConfigs = mapped
    }

    /**
     * @param argument We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node
     */
    @JvmName("bdymgxceryffywno")
    public suspend fun additionalPodNetworkConfigs(argument: suspend ClusterNodePoolNetworkConfigAdditionalPodNetworkConfigArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                ClusterNodePoolNetworkConfigAdditionalPodNetworkConfigArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.additionalPodNetworkConfigs = mapped
    }

    /**
     * @param values We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node
     */
    @JvmName("raxbsyyojaveppic")
    public suspend fun additionalPodNetworkConfigs(vararg values: ClusterNodePoolNetworkConfigAdditionalPodNetworkConfigArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalPodNetworkConfigs = mapped
    }

    /**
     * @param value Whether to create a new range for pod IPs in this node pool. Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are not specified.
     */
    @JvmName("qwtrvfufnkfsgxpc")
    public suspend fun createPodRange(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.createPodRange = mapped
    }

    /**
     * @param value Whether nodes have internal IP addresses only.
     */
    @JvmName("knsnqugopsumysvu")
    public suspend fun enablePrivateNodes(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enablePrivateNodes = mapped
    }

    /**
     * @param value Network bandwidth tier configuration.
     */
    @JvmName("alcwugisxgietvim")
    public suspend fun networkPerformanceConfig(`value`: ClusterNodePoolNetworkConfigNetworkPerformanceConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkPerformanceConfig = mapped
    }

    /**
     * @param argument Network bandwidth tier configuration.
     */
    @JvmName("cgrymhqjtfpxlxnn")
    public suspend fun networkPerformanceConfig(argument: suspend ClusterNodePoolNetworkConfigNetworkPerformanceConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterNodePoolNetworkConfigNetworkPerformanceConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.networkPerformanceConfig = mapped
    }

    /**
     * @param value Configuration for node-pool level pod cidr overprovision. If not set, the cluster level setting will be inherited
     */
    @JvmName("tfrmrgnwdmnggvre")
    public suspend fun podCidrOverprovisionConfig(`value`: ClusterNodePoolNetworkConfigPodCidrOverprovisionConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.podCidrOverprovisionConfig = mapped
    }

    /**
     * @param argument Configuration for node-pool level pod cidr overprovision. If not set, the cluster level setting will be inherited
     */
    @JvmName("vhslksssngrsnpvo")
    public suspend fun podCidrOverprovisionConfig(argument: suspend ClusterNodePoolNetworkConfigPodCidrOverprovisionConfigArgsBuilder.() -> Unit) {
        val toBeMapped =
            ClusterNodePoolNetworkConfigPodCidrOverprovisionConfigArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.podCidrOverprovisionConfig = mapped
    }

    /**
     * @param value The IP address range for pod IPs in this node pool. Only applicable if createPodRange is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) to pick a specific range to use.
     */
    @JvmName("brjgfaijmglxhenh")
    public suspend fun podIpv4CidrBlock(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.podIpv4CidrBlock = mapped
    }

    /**
     * @param value The ID of the secondary range for pod IPs. If `create_pod_range` is true, this ID is used for the new range. If `create_pod_range` is false, uses an existing secondary range with this ID.
     */
    @JvmName("hxkruwyqlbjqbdmx")
    public suspend fun podRange(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.podRange = mapped
    }

    internal fun build(): ClusterNodePoolNetworkConfigArgs = ClusterNodePoolNetworkConfigArgs(
        additionalNodeNetworkConfigs = additionalNodeNetworkConfigs,
        additionalPodNetworkConfigs = additionalPodNetworkConfigs,
        createPodRange = createPodRange,
        enablePrivateNodes = enablePrivateNodes,
        networkPerformanceConfig = networkPerformanceConfig,
        podCidrOverprovisionConfig = podCidrOverprovisionConfig,
        podIpv4CidrBlock = podIpv4CidrBlock,
        podRange = podRange,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy