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

com.pulumi.googlenative.gkeonprem.v1.kotlin.BareMetalNodePoolArgs.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.BareMetalNodePoolArgs.builder
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.BareMetalNodePoolConfigArgs
import com.pulumi.googlenative.gkeonprem.v1.kotlin.inputs.BareMetalNodePoolConfigArgsBuilder
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 bare metal node pool in a given project, location and Bare Metal cluster.
 * @property annotations Annotations on the bare metal 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 bareMetalClusterId
 * @property bareMetalNodePoolId 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 63 characters, and valid characters are /a-z-/. 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).
 * @property displayName The display name for the bare metal 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 bare metal node pool resource name.
 * @property nodePoolConfig Node pool configuration.
 * @property project
 */
public data class BareMetalNodePoolArgs(
    public val annotations: Output>? = null,
    public val bareMetalClusterId: Output? = null,
    public val bareMetalNodePoolId: Output? = null,
    public val displayName: Output? = null,
    public val etag: Output? = null,
    public val location: Output? = null,
    public val name: Output? = null,
    public val nodePoolConfig: Output? = null,
    public val project: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.googlenative.gkeonprem.v1.BareMetalNodePoolArgs =
        com.pulumi.googlenative.gkeonprem.v1.BareMetalNodePoolArgs.builder()
            .annotations(
                annotations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .bareMetalClusterId(bareMetalClusterId?.applyValue({ args0 -> args0 }))
            .bareMetalNodePoolId(bareMetalNodePoolId?.applyValue({ args0 -> args0 }))
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .etag(etag?.applyValue({ args0 -> args0 }))
            .location(location?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .nodePoolConfig(nodePoolConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .project(project?.applyValue({ args0 -> args0 })).build()
}

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

    private var bareMetalClusterId: Output? = null

    private var bareMetalNodePoolId: Output? = null

    private var displayName: Output? = null

    private var etag: Output? = null

    private var location: Output? = null

    private var name: Output? = null

    private var nodePoolConfig: Output? = null

    private var project: Output? = null

    /**
     * @param value Annotations on the bare metal 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("bmehkkavgjyybmqc")
    public suspend fun annotations(`value`: Output>) {
        this.annotations = value
    }

    /**
     * @param value
     */
    @JvmName("ufjuxegxdcabcvlb")
    public suspend fun bareMetalClusterId(`value`: Output) {
        this.bareMetalClusterId = 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 63 characters, and valid characters are /a-z-/. 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("ugkoqosxuuoadsxn")
    public suspend fun bareMetalNodePoolId(`value`: Output) {
        this.bareMetalNodePoolId = value
    }

    /**
     * @param value The display name for the bare metal node pool.
     */
    @JvmName("mhysxircotlubyif")
    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("xxmosvmqgpkrvyjd")
    public suspend fun etag(`value`: Output) {
        this.etag = value
    }

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

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

    /**
     * @param value Node pool configuration.
     */
    @JvmName("jafgfwcdbumbisij")
    public suspend fun nodePoolConfig(`value`: Output) {
        this.nodePoolConfig = value
    }

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

    /**
     * @param value Annotations on the bare metal 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("qxmqekeyotundhth")
    public suspend fun annotations(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.annotations = mapped
    }

    /**
     * @param values Annotations on the bare metal 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("swogevswochpmeml")
    public fun annotations(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.annotations = mapped
    }

    /**
     * @param value
     */
    @JvmName("rvihwsyxpleqpquj")
    public suspend fun bareMetalClusterId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bareMetalClusterId = 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 63 characters, and valid characters are /a-z-/. 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("hjprwrycwcaqloea")
    public suspend fun bareMetalNodePoolId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bareMetalNodePoolId = mapped
    }

    /**
     * @param value The display name for the bare metal node pool.
     */
    @JvmName("uatasjatkwwlfrup")
    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("ikwxsphnbygfqmbw")
    public suspend fun etag(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.etag = mapped
    }

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

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

    /**
     * @param value Node pool configuration.
     */
    @JvmName("ydfiqftjmquhfotl")
    public suspend fun nodePoolConfig(`value`: BareMetalNodePoolConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nodePoolConfig = mapped
    }

    /**
     * @param argument Node pool configuration.
     */
    @JvmName("oqkdgayafiihsklm")
    public suspend fun nodePoolConfig(argument: suspend BareMetalNodePoolConfigArgsBuilder.() -> Unit) {
        val toBeMapped = BareMetalNodePoolConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.nodePoolConfig = mapped
    }

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

    internal fun build(): BareMetalNodePoolArgs = BareMetalNodePoolArgs(
        annotations = annotations,
        bareMetalClusterId = bareMetalClusterId,
        bareMetalNodePoolId = bareMetalNodePoolId,
        displayName = displayName,
        etag = etag,
        location = location,
        name = name,
        nodePoolConfig = nodePoolConfig,
        project = project,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy