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

com.pulumi.gcp.container.kotlin.inputs.NodePoolNetworkConfigArgs.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.NodePoolNetworkConfigArgs.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.
 * Structure is documented below
 * @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.
 * Structure is documented below
 * @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 NodePoolNetworkConfigArgs(
    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.NodePoolNetworkConfigArgs =
        com.pulumi.gcp.container.inputs.NodePoolNetworkConfigArgs.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 [NodePoolNetworkConfigArgs].
 */
@PulumiTagMarker
public class NodePoolNetworkConfigArgsBuilder 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.
     * Structure is documented below
     */
    @JvmName("wunpltumfsghrkex")
    public suspend fun additionalNodeNetworkConfigs(`value`: Output>) {
        this.additionalNodeNetworkConfigs = value
    }

    @JvmName("epadgexsucxxahsp")
    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.
     * Structure is documented below
     */
    @JvmName("lrdpmlrvnppyssij")
    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.
     * Structure is documented below
     */
    @JvmName("mauihbuapupnjbbd")
    public suspend fun additionalPodNetworkConfigs(`value`: Output>) {
        this.additionalPodNetworkConfigs = value
    }

    @JvmName("ajdqnjxrhsjrperg")
    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.
     * Structure is documented below
     */
    @JvmName("ugwpjbpfmfljjjer")
    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("yuhryqcultppalpt")
    public suspend fun createPodRange(`value`: Output) {
        this.createPodRange = value
    }

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

    /**
     * @param value Network bandwidth tier configuration.
     */
    @JvmName("jnftyvcddedcmbhm")
    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("sravvhviarlqiiwj")
    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("ljpcjmgdlomqqinr")
    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("pdbulsjaothduxlq")
    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.
     * Structure is documented below
     */
    @JvmName("fshrefswpioghgrv")
    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.
     * Structure is documented below
     */
    @JvmName("vajcpahlwgnkuqla")
    public suspend fun additionalNodeNetworkConfigs(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            NodePoolNetworkConfigAdditionalNodeNetworkConfigArgsBuilder().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.
     * Structure is documented below
     */
    @JvmName("mchordtqdoustpgw")
    public suspend fun additionalNodeNetworkConfigs(vararg argument: suspend NodePoolNetworkConfigAdditionalNodeNetworkConfigArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            NodePoolNetworkConfigAdditionalNodeNetworkConfigArgsBuilder().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.
     * Structure is documented below
     */
    @JvmName("jlrttmaqnfuckgvs")
    public suspend fun additionalNodeNetworkConfigs(argument: suspend NodePoolNetworkConfigAdditionalNodeNetworkConfigArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                NodePoolNetworkConfigAdditionalNodeNetworkConfigArgsBuilder().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.
     * Structure is documented below
     */
    @JvmName("ientsqhsaooyxkci")
    public suspend fun additionalNodeNetworkConfigs(vararg values: NodePoolNetworkConfigAdditionalNodeNetworkConfigArgs) {
        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.
     * Structure is documented below
     */
    @JvmName("nptuvqrmbcojkkts")
    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.
     * Structure is documented below
     */
    @JvmName("ekgkgersfuwnjvqb")
    public suspend fun additionalPodNetworkConfigs(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            NodePoolNetworkConfigAdditionalPodNetworkConfigArgsBuilder().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.
     * Structure is documented below
     */
    @JvmName("vchalfuquhkhlkhj")
    public suspend fun additionalPodNetworkConfigs(vararg argument: suspend NodePoolNetworkConfigAdditionalPodNetworkConfigArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            NodePoolNetworkConfigAdditionalPodNetworkConfigArgsBuilder().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.
     * Structure is documented below
     */
    @JvmName("yaithuluawvpiayk")
    public suspend fun additionalPodNetworkConfigs(argument: suspend NodePoolNetworkConfigAdditionalPodNetworkConfigArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                NodePoolNetworkConfigAdditionalPodNetworkConfigArgsBuilder().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.
     * Structure is documented below
     */
    @JvmName("obudidtrlkmllbla")
    public suspend fun additionalPodNetworkConfigs(vararg values: NodePoolNetworkConfigAdditionalPodNetworkConfigArgs) {
        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("ljhlqkdgxfsvgrrv")
    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("ijlvqycceifqpqkm")
    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("nviliqxsstwksxwx")
    public suspend fun networkPerformanceConfig(`value`: NodePoolNetworkConfigNetworkPerformanceConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkPerformanceConfig = mapped
    }

    /**
     * @param argument Network bandwidth tier configuration.
     */
    @JvmName("nxhfufjmfqbtriye")
    public suspend fun networkPerformanceConfig(argument: suspend NodePoolNetworkConfigNetworkPerformanceConfigArgsBuilder.() -> Unit) {
        val toBeMapped = NodePoolNetworkConfigNetworkPerformanceConfigArgsBuilder().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("sgoawmxmwkyclcew")
    public suspend fun podCidrOverprovisionConfig(`value`: NodePoolNetworkConfigPodCidrOverprovisionConfigArgs?) {
        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("ygfcvdfefipaqhlf")
    public suspend fun podCidrOverprovisionConfig(argument: suspend NodePoolNetworkConfigPodCidrOverprovisionConfigArgsBuilder.() -> Unit) {
        val toBeMapped = NodePoolNetworkConfigPodCidrOverprovisionConfigArgsBuilder().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("cgsfpmiocaencaef")
    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("ycnvqfbhkcxvfhjw")
    public suspend fun podRange(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.podRange = mapped
    }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy