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

com.pulumi.gcp.edgecontainer.kotlin.inputs.ClusterControlPlaneEncryptionArgs.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.edgecontainer.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.edgecontainer.inputs.ClusterControlPlaneEncryptionArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property kmsKey The Cloud KMS CryptoKey e.g.
 * projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}
 * to use for protecting control plane disks. If not specified, a
 * Google-managed key will be used instead.
 * @property kmsKeyActiveVersion (Output)
 * The Cloud KMS CryptoKeyVersion currently in use for protecting control
 * plane disks. Only applicable if kms_key is set.
 * @property kmsKeyState (Output)
 * Availability of the Cloud KMS CryptoKey. If not `KEY_AVAILABLE`, then
 * nodes may go offline as they cannot access their local data. This can be
 * caused by a lack of permissions to use the key, or if the key is disabled
 * or deleted.
 * @property kmsStatuses (Output)
 * Error status returned by Cloud KMS when using this key. This field may be
 * populated only if `kms_key_state` is not `KMS_KEY_STATE_KEY_AVAILABLE`.
 * If populated, this field contains the error status reported by Cloud KMS.
 * Structure is documented below.
 * The `kms_status` block contains:
 */
public data class ClusterControlPlaneEncryptionArgs(
    public val kmsKey: Output? = null,
    public val kmsKeyActiveVersion: Output? = null,
    public val kmsKeyState: Output? = null,
    public val kmsStatuses: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.edgecontainer.inputs.ClusterControlPlaneEncryptionArgs =
        com.pulumi.gcp.edgecontainer.inputs.ClusterControlPlaneEncryptionArgs.builder()
            .kmsKey(kmsKey?.applyValue({ args0 -> args0 }))
            .kmsKeyActiveVersion(kmsKeyActiveVersion?.applyValue({ args0 -> args0 }))
            .kmsKeyState(kmsKeyState?.applyValue({ args0 -> args0 }))
            .kmsStatuses(
                kmsStatuses?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [ClusterControlPlaneEncryptionArgs].
 */
@PulumiTagMarker
public class ClusterControlPlaneEncryptionArgsBuilder internal constructor() {
    private var kmsKey: Output? = null

    private var kmsKeyActiveVersion: Output? = null

    private var kmsKeyState: Output? = null

    private var kmsStatuses: Output>? = null

    /**
     * @param value The Cloud KMS CryptoKey e.g.
     * projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}
     * to use for protecting control plane disks. If not specified, a
     * Google-managed key will be used instead.
     */
    @JvmName("qouqkrcatmxfwuii")
    public suspend fun kmsKey(`value`: Output) {
        this.kmsKey = value
    }

    /**
     * @param value (Output)
     * The Cloud KMS CryptoKeyVersion currently in use for protecting control
     * plane disks. Only applicable if kms_key is set.
     */
    @JvmName("uyymniugvtxvrbya")
    public suspend fun kmsKeyActiveVersion(`value`: Output) {
        this.kmsKeyActiveVersion = value
    }

    /**
     * @param value (Output)
     * Availability of the Cloud KMS CryptoKey. If not `KEY_AVAILABLE`, then
     * nodes may go offline as they cannot access their local data. This can be
     * caused by a lack of permissions to use the key, or if the key is disabled
     * or deleted.
     */
    @JvmName("htahlugeihbxgnop")
    public suspend fun kmsKeyState(`value`: Output) {
        this.kmsKeyState = value
    }

    /**
     * @param value (Output)
     * Error status returned by Cloud KMS when using this key. This field may be
     * populated only if `kms_key_state` is not `KMS_KEY_STATE_KEY_AVAILABLE`.
     * If populated, this field contains the error status reported by Cloud KMS.
     * Structure is documented below.
     * The `kms_status` block contains:
     */
    @JvmName("ghervryitdlxuinr")
    public suspend fun kmsStatuses(`value`: Output>) {
        this.kmsStatuses = value
    }

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

    /**
     * @param values (Output)
     * Error status returned by Cloud KMS when using this key. This field may be
     * populated only if `kms_key_state` is not `KMS_KEY_STATE_KEY_AVAILABLE`.
     * If populated, this field contains the error status reported by Cloud KMS.
     * Structure is documented below.
     * The `kms_status` block contains:
     */
    @JvmName("vmygaqngayhepulc")
    public suspend fun kmsStatuses(values: List>) {
        this.kmsStatuses = Output.all(values)
    }

    /**
     * @param value The Cloud KMS CryptoKey e.g.
     * projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}
     * to use for protecting control plane disks. If not specified, a
     * Google-managed key will be used instead.
     */
    @JvmName("pkeusdpqouhlxtli")
    public suspend fun kmsKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKey = mapped
    }

    /**
     * @param value (Output)
     * The Cloud KMS CryptoKeyVersion currently in use for protecting control
     * plane disks. Only applicable if kms_key is set.
     */
    @JvmName("hmhqvqrylxxuofbq")
    public suspend fun kmsKeyActiveVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyActiveVersion = mapped
    }

    /**
     * @param value (Output)
     * Availability of the Cloud KMS CryptoKey. If not `KEY_AVAILABLE`, then
     * nodes may go offline as they cannot access their local data. This can be
     * caused by a lack of permissions to use the key, or if the key is disabled
     * or deleted.
     */
    @JvmName("jcomtulrqpkyowsq")
    public suspend fun kmsKeyState(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyState = mapped
    }

    /**
     * @param value (Output)
     * Error status returned by Cloud KMS when using this key. This field may be
     * populated only if `kms_key_state` is not `KMS_KEY_STATE_KEY_AVAILABLE`.
     * If populated, this field contains the error status reported by Cloud KMS.
     * Structure is documented below.
     * The `kms_status` block contains:
     */
    @JvmName("hswdtyvcweppqndb")
    public suspend fun kmsStatuses(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsStatuses = mapped
    }

    /**
     * @param argument (Output)
     * Error status returned by Cloud KMS when using this key. This field may be
     * populated only if `kms_key_state` is not `KMS_KEY_STATE_KEY_AVAILABLE`.
     * If populated, this field contains the error status reported by Cloud KMS.
     * Structure is documented below.
     * The `kms_status` block contains:
     */
    @JvmName("vukdwphtjhlarykq")
    public suspend fun kmsStatuses(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ClusterControlPlaneEncryptionKmsStatusArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.kmsStatuses = mapped
    }

    /**
     * @param argument (Output)
     * Error status returned by Cloud KMS when using this key. This field may be
     * populated only if `kms_key_state` is not `KMS_KEY_STATE_KEY_AVAILABLE`.
     * If populated, this field contains the error status reported by Cloud KMS.
     * Structure is documented below.
     * The `kms_status` block contains:
     */
    @JvmName("tqxxpjyrbaqsresr")
    public suspend fun kmsStatuses(vararg argument: suspend ClusterControlPlaneEncryptionKmsStatusArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ClusterControlPlaneEncryptionKmsStatusArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.kmsStatuses = mapped
    }

    /**
     * @param argument (Output)
     * Error status returned by Cloud KMS when using this key. This field may be
     * populated only if `kms_key_state` is not `KMS_KEY_STATE_KEY_AVAILABLE`.
     * If populated, this field contains the error status reported by Cloud KMS.
     * Structure is documented below.
     * The `kms_status` block contains:
     */
    @JvmName("ywahdyebphjubunf")
    public suspend fun kmsStatuses(argument: suspend ClusterControlPlaneEncryptionKmsStatusArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ClusterControlPlaneEncryptionKmsStatusArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.kmsStatuses = mapped
    }

    /**
     * @param values (Output)
     * Error status returned by Cloud KMS when using this key. This field may be
     * populated only if `kms_key_state` is not `KMS_KEY_STATE_KEY_AVAILABLE`.
     * If populated, this field contains the error status reported by Cloud KMS.
     * Structure is documented below.
     * The `kms_status` block contains:
     */
    @JvmName("aciidjscmrkbwqik")
    public suspend fun kmsStatuses(vararg values: ClusterControlPlaneEncryptionKmsStatusArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.kmsStatuses = mapped
    }

    internal fun build(): ClusterControlPlaneEncryptionArgs = ClusterControlPlaneEncryptionArgs(
        kmsKey = kmsKey,
        kmsKeyActiveVersion = kmsKeyActiveVersion,
        kmsKeyState = kmsKeyState,
        kmsStatuses = kmsStatuses,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy