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

com.pulumi.gcp.managedkafka.kotlin.inputs.ClusterGcpConfigArgs.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.13.1.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.managedkafka.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.managedkafka.inputs.ClusterGcpConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property accessConfig The configuration of access to the Kafka cluster.
 * Structure is documented below.
 * @property kmsKey The Cloud KMS Key name to use for encryption. The key must be located in the same region as the cluster and cannot be changed. Must be in the format `projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY`.
 */
public data class ClusterGcpConfigArgs(
    public val accessConfig: Output,
    public val kmsKey: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.managedkafka.inputs.ClusterGcpConfigArgs =
        com.pulumi.gcp.managedkafka.inputs.ClusterGcpConfigArgs.builder()
            .accessConfig(accessConfig.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .kmsKey(kmsKey?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ClusterGcpConfigArgs].
 */
@PulumiTagMarker
public class ClusterGcpConfigArgsBuilder internal constructor() {
    private var accessConfig: Output? = null

    private var kmsKey: Output? = null

    /**
     * @param value The configuration of access to the Kafka cluster.
     * Structure is documented below.
     */
    @JvmName("irgiawfbaaioxnyv")
    public suspend fun accessConfig(`value`: Output) {
        this.accessConfig = value
    }

    /**
     * @param value The Cloud KMS Key name to use for encryption. The key must be located in the same region as the cluster and cannot be changed. Must be in the format `projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY`.
     */
    @JvmName("nmhwuhgbdrvkrokq")
    public suspend fun kmsKey(`value`: Output) {
        this.kmsKey = value
    }

    /**
     * @param value The configuration of access to the Kafka cluster.
     * Structure is documented below.
     */
    @JvmName("oyhsjqloqascwdwp")
    public suspend fun accessConfig(`value`: ClusterGcpConfigAccessConfigArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.accessConfig = mapped
    }

    /**
     * @param argument The configuration of access to the Kafka cluster.
     * Structure is documented below.
     */
    @JvmName("rvtpklqpyxlildmh")
    public suspend fun accessConfig(argument: suspend ClusterGcpConfigAccessConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterGcpConfigAccessConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.accessConfig = mapped
    }

    /**
     * @param value The Cloud KMS Key name to use for encryption. The key must be located in the same region as the cluster and cannot be changed. Must be in the format `projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY`.
     */
    @JvmName("hypinjyrofjhlguj")
    public suspend fun kmsKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKey = mapped
    }

    internal fun build(): ClusterGcpConfigArgs = ClusterGcpConfigArgs(
        accessConfig = accessConfig ?: throw PulumiNullFieldException("accessConfig"),
        kmsKey = kmsKey,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy