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

com.pulumi.azurenative.networkcloud.kotlin.inputs.InitialAgentPoolConfigurationArgs.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: 2.82.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.networkcloud.kotlin.inputs

import com.pulumi.azurenative.networkcloud.inputs.InitialAgentPoolConfigurationArgs.builder
import com.pulumi.azurenative.networkcloud.kotlin.enums.AgentPoolMode
import com.pulumi.core.Either
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Double
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property administratorConfiguration The administrator credentials to be used for the nodes in this agent pool.
 * @property agentOptions The configurations that will be applied to each agent in this agent pool.
 * @property attachedNetworkConfiguration The configuration of networks being attached to the agent pool for use by the workloads that run on this Kubernetes cluster.
 * @property availabilityZones The list of availability zones of the Network Cloud cluster used for the provisioning of nodes in this agent pool. If not specified, all availability zones will be used.
 * @property count The number of virtual machines that use this configuration.
 * @property labels The labels applied to the nodes in this agent pool.
 * @property mode The selection of how this agent pool is utilized, either as a system pool or a user pool. System pools run the features and critical services for the Kubernetes Cluster, while user pools are dedicated to user workloads. Every Kubernetes cluster must contain at least one system node pool with at least one node.
 * @property name The name that will be used for the agent pool resource representing this agent pool.
 * @property taints The taints applied to the nodes in this agent pool.
 * @property upgradeSettings The configuration of the agent pool.
 * @property vmSkuName The name of the VM SKU that determines the size of resources allocated for node VMs.
 */
public data class InitialAgentPoolConfigurationArgs(
    public val administratorConfiguration: Output? = null,
    public val agentOptions: Output? = null,
    public val attachedNetworkConfiguration: Output? = null,
    public val availabilityZones: Output>? = null,
    public val count: Output,
    public val labels: Output>? = null,
    public val mode: Output>,
    public val name: Output,
    public val taints: Output>? = null,
    public val upgradeSettings: Output? = null,
    public val vmSkuName: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.networkcloud.inputs.InitialAgentPoolConfigurationArgs =
        com.pulumi.azurenative.networkcloud.inputs.InitialAgentPoolConfigurationArgs.builder()
            .administratorConfiguration(
                administratorConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .agentOptions(agentOptions?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .attachedNetworkConfiguration(
                attachedNetworkConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .availabilityZones(availabilityZones?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .count(count.applyValue({ args0 -> args0 }))
            .labels(labels?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .mode(
                mode.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .name(name.applyValue({ args0 -> args0 }))
            .taints(taints?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .upgradeSettings(upgradeSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .vmSkuName(vmSkuName.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [InitialAgentPoolConfigurationArgs].
 */
@PulumiTagMarker
public class InitialAgentPoolConfigurationArgsBuilder internal constructor() {
    private var administratorConfiguration: Output? = null

    private var agentOptions: Output? = null

    private var attachedNetworkConfiguration: Output? = null

    private var availabilityZones: Output>? = null

    private var count: Output? = null

    private var labels: Output>? = null

    private var mode: Output>? = null

    private var name: Output? = null

    private var taints: Output>? = null

    private var upgradeSettings: Output? = null

    private var vmSkuName: Output? = null

    /**
     * @param value The administrator credentials to be used for the nodes in this agent pool.
     */
    @JvmName("vaxsulxvncxhkkyv")
    public suspend fun administratorConfiguration(`value`: Output) {
        this.administratorConfiguration = value
    }

    /**
     * @param value The configurations that will be applied to each agent in this agent pool.
     */
    @JvmName("xcndgwnhdmbwgvjq")
    public suspend fun agentOptions(`value`: Output) {
        this.agentOptions = value
    }

    /**
     * @param value The configuration of networks being attached to the agent pool for use by the workloads that run on this Kubernetes cluster.
     */
    @JvmName("obpuuowksctslitn")
    public suspend fun attachedNetworkConfiguration(`value`: Output) {
        this.attachedNetworkConfiguration = value
    }

    /**
     * @param value The list of availability zones of the Network Cloud cluster used for the provisioning of nodes in this agent pool. If not specified, all availability zones will be used.
     */
    @JvmName("euywmfogpxjtbqse")
    public suspend fun availabilityZones(`value`: Output>) {
        this.availabilityZones = value
    }

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

    /**
     * @param values The list of availability zones of the Network Cloud cluster used for the provisioning of nodes in this agent pool. If not specified, all availability zones will be used.
     */
    @JvmName("wvwroxvyhshinrif")
    public suspend fun availabilityZones(values: List>) {
        this.availabilityZones = Output.all(values)
    }

    /**
     * @param value The number of virtual machines that use this configuration.
     */
    @JvmName("rhqrydaijervkspn")
    public suspend fun count(`value`: Output) {
        this.count = value
    }

    /**
     * @param value The labels applied to the nodes in this agent pool.
     */
    @JvmName("dbyrkwaoxgmbbikr")
    public suspend fun labels(`value`: Output>) {
        this.labels = value
    }

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

    /**
     * @param values The labels applied to the nodes in this agent pool.
     */
    @JvmName("rcwmiykbrtmdutia")
    public suspend fun labels(values: List>) {
        this.labels = Output.all(values)
    }

    /**
     * @param value The selection of how this agent pool is utilized, either as a system pool or a user pool. System pools run the features and critical services for the Kubernetes Cluster, while user pools are dedicated to user workloads. Every Kubernetes cluster must contain at least one system node pool with at least one node.
     */
    @JvmName("gwcgkcbxhixnhxpn")
    public suspend fun mode(`value`: Output>) {
        this.mode = value
    }

    /**
     * @param value The name that will be used for the agent pool resource representing this agent pool.
     */
    @JvmName("ptetaxdnslrobxox")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The taints applied to the nodes in this agent pool.
     */
    @JvmName("xyxjqqfqvmndcebb")
    public suspend fun taints(`value`: Output>) {
        this.taints = value
    }

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

    /**
     * @param values The taints applied to the nodes in this agent pool.
     */
    @JvmName("xvbemlvjniesjrox")
    public suspend fun taints(values: List>) {
        this.taints = Output.all(values)
    }

    /**
     * @param value The configuration of the agent pool.
     */
    @JvmName("qkaygckunnuetcqd")
    public suspend fun upgradeSettings(`value`: Output) {
        this.upgradeSettings = value
    }

    /**
     * @param value The name of the VM SKU that determines the size of resources allocated for node VMs.
     */
    @JvmName("ewchabrlquvnfmon")
    public suspend fun vmSkuName(`value`: Output) {
        this.vmSkuName = value
    }

    /**
     * @param value The administrator credentials to be used for the nodes in this agent pool.
     */
    @JvmName("tvsknsximhuqfput")
    public suspend fun administratorConfiguration(`value`: AdministratorConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.administratorConfiguration = mapped
    }

    /**
     * @param argument The administrator credentials to be used for the nodes in this agent pool.
     */
    @JvmName("orglnhveonoabmln")
    public suspend fun administratorConfiguration(argument: suspend AdministratorConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = AdministratorConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.administratorConfiguration = mapped
    }

    /**
     * @param value The configurations that will be applied to each agent in this agent pool.
     */
    @JvmName("anhogghekkfvdjah")
    public suspend fun agentOptions(`value`: AgentOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.agentOptions = mapped
    }

    /**
     * @param argument The configurations that will be applied to each agent in this agent pool.
     */
    @JvmName("rfaxnhmfrpqgejnj")
    public suspend fun agentOptions(argument: suspend AgentOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = AgentOptionsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.agentOptions = mapped
    }

    /**
     * @param value The configuration of networks being attached to the agent pool for use by the workloads that run on this Kubernetes cluster.
     */
    @JvmName("wmmhyxrmxtbbmhch")
    public suspend fun attachedNetworkConfiguration(`value`: AttachedNetworkConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.attachedNetworkConfiguration = mapped
    }

    /**
     * @param argument The configuration of networks being attached to the agent pool for use by the workloads that run on this Kubernetes cluster.
     */
    @JvmName("nonatwabmpgsanby")
    public suspend fun attachedNetworkConfiguration(argument: suspend AttachedNetworkConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = AttachedNetworkConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.attachedNetworkConfiguration = mapped
    }

    /**
     * @param value The list of availability zones of the Network Cloud cluster used for the provisioning of nodes in this agent pool. If not specified, all availability zones will be used.
     */
    @JvmName("hnaqckkefojxkkxb")
    public suspend fun availabilityZones(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.availabilityZones = mapped
    }

    /**
     * @param values The list of availability zones of the Network Cloud cluster used for the provisioning of nodes in this agent pool. If not specified, all availability zones will be used.
     */
    @JvmName("vfcrbtnhecrpnvch")
    public suspend fun availabilityZones(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.availabilityZones = mapped
    }

    /**
     * @param value The number of virtual machines that use this configuration.
     */
    @JvmName("woenmefxsnfxmbua")
    public suspend fun count(`value`: Double) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.count = mapped
    }

    /**
     * @param value The labels applied to the nodes in this agent pool.
     */
    @JvmName("vfhoohbcjyxuevlb")
    public suspend fun labels(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.labels = mapped
    }

    /**
     * @param argument The labels applied to the nodes in this agent pool.
     */
    @JvmName("ixbmwfqececcnrbx")
    public suspend fun labels(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            KubernetesLabelArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.labels = mapped
    }

    /**
     * @param argument The labels applied to the nodes in this agent pool.
     */
    @JvmName("fdnywwslkwdgfsti")
    public suspend fun labels(vararg argument: suspend KubernetesLabelArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            KubernetesLabelArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.labels = mapped
    }

    /**
     * @param argument The labels applied to the nodes in this agent pool.
     */
    @JvmName("ppcnodpjtmcygnyx")
    public suspend fun labels(argument: suspend KubernetesLabelArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(KubernetesLabelArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.labels = mapped
    }

    /**
     * @param values The labels applied to the nodes in this agent pool.
     */
    @JvmName("vwovyjpfcttvueqi")
    public suspend fun labels(vararg values: KubernetesLabelArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.labels = mapped
    }

    /**
     * @param value The selection of how this agent pool is utilized, either as a system pool or a user pool. System pools run the features and critical services for the Kubernetes Cluster, while user pools are dedicated to user workloads. Every Kubernetes cluster must contain at least one system node pool with at least one node.
     */
    @JvmName("qsbnlypyoejehdqj")
    public suspend fun mode(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.mode = mapped
    }

    /**
     * @param value The selection of how this agent pool is utilized, either as a system pool or a user pool. System pools run the features and critical services for the Kubernetes Cluster, while user pools are dedicated to user workloads. Every Kubernetes cluster must contain at least one system node pool with at least one node.
     */
    @JvmName("jwabwxxiarjcvdxn")
    public fun mode(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.mode = mapped
    }

    /**
     * @param value The selection of how this agent pool is utilized, either as a system pool or a user pool. System pools run the features and critical services for the Kubernetes Cluster, while user pools are dedicated to user workloads. Every Kubernetes cluster must contain at least one system node pool with at least one node.
     */
    @JvmName("qsyeiddolwvyeoro")
    public fun mode(`value`: AgentPoolMode) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.mode = mapped
    }

    /**
     * @param value The name that will be used for the agent pool resource representing this agent pool.
     */
    @JvmName("jkmoepuyxponxkjw")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The taints applied to the nodes in this agent pool.
     */
    @JvmName("nbkgmlxiqdqfqida")
    public suspend fun taints(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.taints = mapped
    }

    /**
     * @param argument The taints applied to the nodes in this agent pool.
     */
    @JvmName("lthlhjqhihvggfbi")
    public suspend fun taints(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            KubernetesLabelArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.taints = mapped
    }

    /**
     * @param argument The taints applied to the nodes in this agent pool.
     */
    @JvmName("thpgohamwcqguhuv")
    public suspend fun taints(vararg argument: suspend KubernetesLabelArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            KubernetesLabelArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.taints = mapped
    }

    /**
     * @param argument The taints applied to the nodes in this agent pool.
     */
    @JvmName("uktivkyvjhwplaja")
    public suspend fun taints(argument: suspend KubernetesLabelArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(KubernetesLabelArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.taints = mapped
    }

    /**
     * @param values The taints applied to the nodes in this agent pool.
     */
    @JvmName("kbguvswkxddhasyl")
    public suspend fun taints(vararg values: KubernetesLabelArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.taints = mapped
    }

    /**
     * @param value The configuration of the agent pool.
     */
    @JvmName("scggrrhteunnbtcb")
    public suspend fun upgradeSettings(`value`: AgentPoolUpgradeSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.upgradeSettings = mapped
    }

    /**
     * @param argument The configuration of the agent pool.
     */
    @JvmName("ddpudapkrraimdeo")
    public suspend fun upgradeSettings(argument: suspend AgentPoolUpgradeSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = AgentPoolUpgradeSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.upgradeSettings = mapped
    }

    /**
     * @param value The name of the VM SKU that determines the size of resources allocated for node VMs.
     */
    @JvmName("fsubqmughbvlpnhx")
    public suspend fun vmSkuName(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.vmSkuName = mapped
    }

    internal fun build(): InitialAgentPoolConfigurationArgs = InitialAgentPoolConfigurationArgs(
        administratorConfiguration = administratorConfiguration,
        agentOptions = agentOptions,
        attachedNetworkConfiguration = attachedNetworkConfiguration,
        availabilityZones = availabilityZones,
        count = count ?: throw PulumiNullFieldException("count"),
        labels = labels,
        mode = mode ?: throw PulumiNullFieldException("mode"),
        name = name ?: throw PulumiNullFieldException("name"),
        taints = taints,
        upgradeSettings = upgradeSettings,
        vmSkuName = vmSkuName ?: throw PulumiNullFieldException("vmSkuName"),
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy