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

com.pulumi.googlenative.gkeonprem.v1.kotlin.VmwareNodePoolArgs.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.

The newest version!
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.googlenative.gkeonprem.v1.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.gkeonprem.v1.VmwareNodePoolArgs.builder
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareNodeConfigArgs
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareNodeConfigArgsBuilder
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareNodePoolAutoscalingConfigArgs
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.VmwareNodePoolAutoscalingConfigArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
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

/**
 * Creates a new VMware node pool in a given project, location and VMWare cluster.
 * @property annotations Annotations on the node pool. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.
 * @property config The node configuration of the node pool.
 * @property displayName The display name for the node pool.
 * @property etag This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
 * @property location
 * @property name Immutable. The resource name of this node pool.
 * @property nodePoolAutoscaling Node pool autoscaling config for the node pool.
 * @property onPremVersion Anthos version for the node pool. Defaults to the user cluster version.
 * @property project
 * @property vmwareClusterId
 * @property vmwareNodePoolId The ID to use for the node pool, which will become the final component of the node pool's resource name. This value must be up to 40 characters and follow RFC-1123 (https://tools.ietf.org/html/rfc1123) format. The value must not be permitted to be a UUID (or UUID-like: anything matching /^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$/i).
 */
public data class VmwareNodePoolArgs(
    public val annotations: Output>? = null,
    public val config: Output? = null,
    public val displayName: Output? = null,
    public val etag: Output? = null,
    public val location: Output? = null,
    public val name: Output? = null,
    public val nodePoolAutoscaling: Output? = null,
    public val onPremVersion: Output? = null,
    public val project: Output? = null,
    public val vmwareClusterId: Output? = null,
    public val vmwareNodePoolId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.googlenative.gkeonprem.v1.VmwareNodePoolArgs =
        com.pulumi.googlenative.gkeonprem.v1.VmwareNodePoolArgs.builder()
            .annotations(
                annotations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .config(config?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .etag(etag?.applyValue({ args0 -> args0 }))
            .location(location?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .nodePoolAutoscaling(
                nodePoolAutoscaling?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .onPremVersion(onPremVersion?.applyValue({ args0 -> args0 }))
            .project(project?.applyValue({ args0 -> args0 }))
            .vmwareClusterId(vmwareClusterId?.applyValue({ args0 -> args0 }))
            .vmwareNodePoolId(vmwareNodePoolId?.applyValue({ args0 -> args0 })).build()
}

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

    private var config: Output? = null

    private var displayName: Output? = null

    private var etag: Output? = null

    private var location: Output? = null

    private var name: Output? = null

    private var nodePoolAutoscaling: Output? = null

    private var onPremVersion: Output? = null

    private var project: Output? = null

    private var vmwareClusterId: Output? = null

    private var vmwareNodePoolId: Output? = null

    /**
     * @param value Annotations on the node pool. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.
     */
    @JvmName("ibhdbnrnfxolnmvx")
    public suspend fun annotations(`value`: Output>) {
        this.annotations = value
    }

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

    /**
     * @param value The display name for the node pool.
     */
    @JvmName("cpiefhfhbcjqfkqh")
    public suspend fun displayName(`value`: Output) {
        this.displayName = value
    }

    /**
     * @param value This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
     */
    @JvmName("wkfyxlusrfaxerwc")
    public suspend fun etag(`value`: Output) {
        this.etag = value
    }

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

    /**
     * @param value Immutable. The resource name of this node pool.
     */
    @JvmName("kwcmvalacmjyvlya")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Node pool autoscaling config for the node pool.
     */
    @JvmName("nfahpyhwjrtrhhfx")
    public suspend fun nodePoolAutoscaling(`value`: Output) {
        this.nodePoolAutoscaling = value
    }

    /**
     * @param value Anthos version for the node pool. Defaults to the user cluster version.
     */
    @JvmName("isiaeukofhrbqosc")
    public suspend fun onPremVersion(`value`: Output) {
        this.onPremVersion = value
    }

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

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

    /**
     * @param value The ID to use for the node pool, which will become the final component of the node pool's resource name. This value must be up to 40 characters and follow RFC-1123 (https://tools.ietf.org/html/rfc1123) format. The value must not be permitted to be a UUID (or UUID-like: anything matching /^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$/i).
     */
    @JvmName("fxpnvohymratbgoh")
    public suspend fun vmwareNodePoolId(`value`: Output) {
        this.vmwareNodePoolId = value
    }

    /**
     * @param value Annotations on the node pool. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.
     */
    @JvmName("dyiapyxleadubvwo")
    public suspend fun annotations(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.annotations = mapped
    }

    /**
     * @param values Annotations on the node pool. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.
     */
    @JvmName("tphmicpalrlxuifx")
    public fun annotations(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.annotations = mapped
    }

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

    /**
     * @param argument The node configuration of the node pool.
     */
    @JvmName("eoddeocbedbtfdhy")
    public suspend fun config(argument: suspend VmwareNodeConfigArgsBuilder.() -> Unit) {
        val toBeMapped = VmwareNodeConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.config = mapped
    }

    /**
     * @param value The display name for the node pool.
     */
    @JvmName("jjlpqxyoorenffdu")
    public suspend fun displayName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.displayName = mapped
    }

    /**
     * @param value This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.
     */
    @JvmName("ldfushmwvgrtprbr")
    public suspend fun etag(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.etag = mapped
    }

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

    /**
     * @param value Immutable. The resource name of this node pool.
     */
    @JvmName("ssoblkusbuwadbdy")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Node pool autoscaling config for the node pool.
     */
    @JvmName("kqboqoytxbciphrq")
    public suspend fun nodePoolAutoscaling(`value`: VmwareNodePoolAutoscalingConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nodePoolAutoscaling = mapped
    }

    /**
     * @param argument Node pool autoscaling config for the node pool.
     */
    @JvmName("ynuydplubxnfhfcr")
    public suspend fun nodePoolAutoscaling(argument: suspend VmwareNodePoolAutoscalingConfigArgsBuilder.() -> Unit) {
        val toBeMapped = VmwareNodePoolAutoscalingConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.nodePoolAutoscaling = mapped
    }

    /**
     * @param value Anthos version for the node pool. Defaults to the user cluster version.
     */
    @JvmName("hhglacectjixnvfy")
    public suspend fun onPremVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.onPremVersion = mapped
    }

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

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

    /**
     * @param value The ID to use for the node pool, which will become the final component of the node pool's resource name. This value must be up to 40 characters and follow RFC-1123 (https://tools.ietf.org/html/rfc1123) format. The value must not be permitted to be a UUID (or UUID-like: anything matching /^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$/i).
     */
    @JvmName("qoaynrkgrhdmovii")
    public suspend fun vmwareNodePoolId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vmwareNodePoolId = mapped
    }

    internal fun build(): VmwareNodePoolArgs = VmwareNodePoolArgs(
        annotations = annotations,
        config = config,
        displayName = displayName,
        etag = etag,
        location = location,
        name = name,
        nodePoolAutoscaling = nodePoolAutoscaling,
        onPremVersion = onPremVersion,
        project = project,
        vmwareClusterId = vmwareClusterId,
        vmwareNodePoolId = vmwareNodePoolId,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy