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

com.pulumi.gcp.container.kotlin.inputs.AzureNodePoolConfigArgs.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.AzureNodePoolConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 *
 * @property imageType The OS image type to use on node pool instances.
 * @property labels Optional. The initial labels assigned to nodes of this node pool. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
 * @property proxyConfig Proxy configuration for outbound HTTP(S) traffic.
 * @property rootVolume Optional. Configuration related to the root volume provisioned for each node pool machine. When unspecified, it defaults to a 32-GiB Azure Disk.
 * @property sshConfig SSH configuration for how to access the node pool machines.
 * @property tags Optional. A set of tags to apply to all underlying Azure resources for this node pool. This currently only includes Virtual Machine Scale Sets. Specify at most 50 pairs containing alphanumerics, spaces, and symbols (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to 255 Unicode characters.
 * @property vmSize Optional. The Azure VM size name. Example: `Standard_DS2_v2`. See (/anthos/clusters/docs/azure/reference/supported-vms) for options. When unspecified, it defaults to `Standard_DS2_v2`.
 */
public data class AzureNodePoolConfigArgs(
    public val imageType: Output? = null,
    public val labels: Output>? = null,
    public val proxyConfig: Output? = null,
    public val rootVolume: Output? = null,
    public val sshConfig: Output,
    public val tags: Output>? = null,
    public val vmSize: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.container.inputs.AzureNodePoolConfigArgs =
        com.pulumi.gcp.container.inputs.AzureNodePoolConfigArgs.builder()
            .imageType(imageType?.applyValue({ args0 -> args0 }))
            .labels(labels?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .proxyConfig(proxyConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .rootVolume(rootVolume?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .sshConfig(sshConfig.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .vmSize(vmSize?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [AzureNodePoolConfigArgs].
 */
@PulumiTagMarker
public class AzureNodePoolConfigArgsBuilder internal constructor() {
    private var imageType: Output? = null

    private var labels: Output>? = null

    private var proxyConfig: Output? = null

    private var rootVolume: Output? = null

    private var sshConfig: Output? = null

    private var tags: Output>? = null

    private var vmSize: Output? = null

    /**
     * @param value The OS image type to use on node pool instances.
     */
    @JvmName("ckjslwyhbvbyqbmr")
    public suspend fun imageType(`value`: Output) {
        this.imageType = value
    }

    /**
     * @param value Optional. The initial labels assigned to nodes of this node pool. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
     */
    @JvmName("ocpngffmysmphlea")
    public suspend fun labels(`value`: Output>) {
        this.labels = value
    }

    /**
     * @param value Proxy configuration for outbound HTTP(S) traffic.
     */
    @JvmName("rhkdtggtkewpbelh")
    public suspend fun proxyConfig(`value`: Output) {
        this.proxyConfig = value
    }

    /**
     * @param value Optional. Configuration related to the root volume provisioned for each node pool machine. When unspecified, it defaults to a 32-GiB Azure Disk.
     */
    @JvmName("pspbnqsdfyujvxdw")
    public suspend fun rootVolume(`value`: Output) {
        this.rootVolume = value
    }

    /**
     * @param value SSH configuration for how to access the node pool machines.
     */
    @JvmName("ajuqenmsictgjkqd")
    public suspend fun sshConfig(`value`: Output) {
        this.sshConfig = value
    }

    /**
     * @param value Optional. A set of tags to apply to all underlying Azure resources for this node pool. This currently only includes Virtual Machine Scale Sets. Specify at most 50 pairs containing alphanumerics, spaces, and symbols (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to 255 Unicode characters.
     */
    @JvmName("qktnugdfwkiaoqdn")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value Optional. The Azure VM size name. Example: `Standard_DS2_v2`. See (/anthos/clusters/docs/azure/reference/supported-vms) for options. When unspecified, it defaults to `Standard_DS2_v2`.
     */
    @JvmName("wvqoflsfweusmutg")
    public suspend fun vmSize(`value`: Output) {
        this.vmSize = value
    }

    /**
     * @param value The OS image type to use on node pool instances.
     */
    @JvmName("qovgpqawqwjoxjnf")
    public suspend fun imageType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.imageType = mapped
    }

    /**
     * @param value Optional. The initial labels assigned to nodes of this node pool. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
     */
    @JvmName("luguidbbytvfujjs")
    public suspend fun labels(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.labels = mapped
    }

    /**
     * @param values Optional. The initial labels assigned to nodes of this node pool. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
     */
    @JvmName("bsfurvdytrixfllk")
    public fun labels(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.labels = mapped
    }

    /**
     * @param value Proxy configuration for outbound HTTP(S) traffic.
     */
    @JvmName("wovjbafchcuvsdha")
    public suspend fun proxyConfig(`value`: AzureNodePoolConfigProxyConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.proxyConfig = mapped
    }

    /**
     * @param argument Proxy configuration for outbound HTTP(S) traffic.
     */
    @JvmName("mbxkqdptwkyrmfnu")
    public suspend fun proxyConfig(argument: suspend AzureNodePoolConfigProxyConfigArgsBuilder.() -> Unit) {
        val toBeMapped = AzureNodePoolConfigProxyConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.proxyConfig = mapped
    }

    /**
     * @param value Optional. Configuration related to the root volume provisioned for each node pool machine. When unspecified, it defaults to a 32-GiB Azure Disk.
     */
    @JvmName("ytksyoggeicqskak")
    public suspend fun rootVolume(`value`: AzureNodePoolConfigRootVolumeArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rootVolume = mapped
    }

    /**
     * @param argument Optional. Configuration related to the root volume provisioned for each node pool machine. When unspecified, it defaults to a 32-GiB Azure Disk.
     */
    @JvmName("xgeeihimfkvadkrx")
    public suspend fun rootVolume(argument: suspend AzureNodePoolConfigRootVolumeArgsBuilder.() -> Unit) {
        val toBeMapped = AzureNodePoolConfigRootVolumeArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.rootVolume = mapped
    }

    /**
     * @param value SSH configuration for how to access the node pool machines.
     */
    @JvmName("ypqybereyggsdlht")
    public suspend fun sshConfig(`value`: AzureNodePoolConfigSshConfigArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sshConfig = mapped
    }

    /**
     * @param argument SSH configuration for how to access the node pool machines.
     */
    @JvmName("mwiftwndsgwroytf")
    public suspend fun sshConfig(argument: suspend AzureNodePoolConfigSshConfigArgsBuilder.() -> Unit) {
        val toBeMapped = AzureNodePoolConfigSshConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.sshConfig = mapped
    }

    /**
     * @param value Optional. A set of tags to apply to all underlying Azure resources for this node pool. This currently only includes Virtual Machine Scale Sets. Specify at most 50 pairs containing alphanumerics, spaces, and symbols (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to 255 Unicode characters.
     */
    @JvmName("xocetfnsoacuiepi")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values Optional. A set of tags to apply to all underlying Azure resources for this node pool. This currently only includes Virtual Machine Scale Sets. Specify at most 50 pairs containing alphanumerics, spaces, and symbols (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to 255 Unicode characters.
     */
    @JvmName("mrsfgvvkgamlpdpi")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value Optional. The Azure VM size name. Example: `Standard_DS2_v2`. See (/anthos/clusters/docs/azure/reference/supported-vms) for options. When unspecified, it defaults to `Standard_DS2_v2`.
     */
    @JvmName("ledfkmyvjrgpiixq")
    public suspend fun vmSize(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vmSize = mapped
    }

    internal fun build(): AzureNodePoolConfigArgs = AzureNodePoolConfigArgs(
        imageType = imageType,
        labels = labels,
        proxyConfig = proxyConfig,
        rootVolume = rootVolume,
        sshConfig = sshConfig ?: throw PulumiNullFieldException("sshConfig"),
        tags = tags,
        vmSize = vmSize,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy