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

com.pulumi.awsnative.msk.kotlin.ClusterArgs.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: 1.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.msk.kotlin

import com.pulumi.awsnative.msk.ClusterArgs.builder
import com.pulumi.awsnative.msk.kotlin.enums.ClusterEnhancedMonitoring
import com.pulumi.awsnative.msk.kotlin.enums.ClusterStorageMode
import com.pulumi.awsnative.msk.kotlin.inputs.ClusterBrokerNodeGroupInfoArgs
import com.pulumi.awsnative.msk.kotlin.inputs.ClusterBrokerNodeGroupInfoArgsBuilder
import com.pulumi.awsnative.msk.kotlin.inputs.ClusterClientAuthenticationArgs
import com.pulumi.awsnative.msk.kotlin.inputs.ClusterClientAuthenticationArgsBuilder
import com.pulumi.awsnative.msk.kotlin.inputs.ClusterConfigurationInfoArgs
import com.pulumi.awsnative.msk.kotlin.inputs.ClusterConfigurationInfoArgsBuilder
import com.pulumi.awsnative.msk.kotlin.inputs.ClusterEncryptionInfoArgs
import com.pulumi.awsnative.msk.kotlin.inputs.ClusterEncryptionInfoArgsBuilder
import com.pulumi.awsnative.msk.kotlin.inputs.ClusterLoggingInfoArgs
import com.pulumi.awsnative.msk.kotlin.inputs.ClusterLoggingInfoArgsBuilder
import com.pulumi.awsnative.msk.kotlin.inputs.ClusterOpenMonitoringArgs
import com.pulumi.awsnative.msk.kotlin.inputs.ClusterOpenMonitoringArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Resource Type definition for AWS::MSK::Cluster
 * @property brokerNodeGroupInfo Information about the broker nodes in the cluster.
 * @property clientAuthentication Includes all client authentication related information.
 * @property clusterName The name of the cluster.
 * @property configurationInfo Represents the configuration that you want MSK to use for the cluster.
 * @property currentVersion The current version of the MSK cluster
 * @property encryptionInfo Includes all encryption-related information.
 * @property enhancedMonitoring Specifies the level of monitoring for the MSK cluster. The possible values are `DEFAULT` , `PER_BROKER` , and `PER_TOPIC_PER_BROKER` .
 * @property kafkaVersion The version of Apache Kafka. You can use Amazon MSK to create clusters that use Apache Kafka versions 1.1.1 and 2.2.1.
 * @property loggingInfo Logging Info details.
 * @property numberOfBrokerNodes The number of broker nodes in the cluster.
 * @property openMonitoring The settings for open monitoring.
 * @property storageMode This controls storage mode for supported storage tiers.
 * @property tags A key-value pair to associate with a resource.
 */
public data class ClusterArgs(
    public val brokerNodeGroupInfo: Output? = null,
    public val clientAuthentication: Output? = null,
    public val clusterName: Output? = null,
    public val configurationInfo: Output? = null,
    public val currentVersion: Output? = null,
    public val encryptionInfo: Output? = null,
    public val enhancedMonitoring: Output? = null,
    public val kafkaVersion: Output? = null,
    public val loggingInfo: Output? = null,
    public val numberOfBrokerNodes: Output? = null,
    public val openMonitoring: Output? = null,
    public val storageMode: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.msk.ClusterArgs =
        com.pulumi.awsnative.msk.ClusterArgs.builder()
            .brokerNodeGroupInfo(
                brokerNodeGroupInfo?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .clientAuthentication(
                clientAuthentication?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .clusterName(clusterName?.applyValue({ args0 -> args0 }))
            .configurationInfo(configurationInfo?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .currentVersion(currentVersion?.applyValue({ args0 -> args0 }))
            .encryptionInfo(encryptionInfo?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .enhancedMonitoring(
                enhancedMonitoring?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .kafkaVersion(kafkaVersion?.applyValue({ args0 -> args0 }))
            .loggingInfo(loggingInfo?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .numberOfBrokerNodes(numberOfBrokerNodes?.applyValue({ args0 -> args0 }))
            .openMonitoring(openMonitoring?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .storageMode(storageMode?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            ).build()
}

/**
 * Builder for [ClusterArgs].
 */
@PulumiTagMarker
public class ClusterArgsBuilder internal constructor() {
    private var brokerNodeGroupInfo: Output? = null

    private var clientAuthentication: Output? = null

    private var clusterName: Output? = null

    private var configurationInfo: Output? = null

    private var currentVersion: Output? = null

    private var encryptionInfo: Output? = null

    private var enhancedMonitoring: Output? = null

    private var kafkaVersion: Output? = null

    private var loggingInfo: Output? = null

    private var numberOfBrokerNodes: Output? = null

    private var openMonitoring: Output? = null

    private var storageMode: Output? = null

    private var tags: Output>? = null

    /**
     * @param value Information about the broker nodes in the cluster.
     */
    @JvmName("omuatqrrxhngqodc")
    public suspend fun brokerNodeGroupInfo(`value`: Output) {
        this.brokerNodeGroupInfo = value
    }

    /**
     * @param value Includes all client authentication related information.
     */
    @JvmName("xtivnskjehvvwbeh")
    public suspend fun clientAuthentication(`value`: Output) {
        this.clientAuthentication = value
    }

    /**
     * @param value The name of the cluster.
     */
    @JvmName("efhnmfngmixgwpak")
    public suspend fun clusterName(`value`: Output) {
        this.clusterName = value
    }

    /**
     * @param value Represents the configuration that you want MSK to use for the cluster.
     */
    @JvmName("ardutogpflgoersy")
    public suspend fun configurationInfo(`value`: Output) {
        this.configurationInfo = value
    }

    /**
     * @param value The current version of the MSK cluster
     */
    @JvmName("iiiexkbjaxgbegbe")
    public suspend fun currentVersion(`value`: Output) {
        this.currentVersion = value
    }

    /**
     * @param value Includes all encryption-related information.
     */
    @JvmName("wmswfeqdftyyektu")
    public suspend fun encryptionInfo(`value`: Output) {
        this.encryptionInfo = value
    }

    /**
     * @param value Specifies the level of monitoring for the MSK cluster. The possible values are `DEFAULT` , `PER_BROKER` , and `PER_TOPIC_PER_BROKER` .
     */
    @JvmName("kqmtfalnbpvhogpu")
    public suspend fun enhancedMonitoring(`value`: Output) {
        this.enhancedMonitoring = value
    }

    /**
     * @param value The version of Apache Kafka. You can use Amazon MSK to create clusters that use Apache Kafka versions 1.1.1 and 2.2.1.
     */
    @JvmName("brwflertfskgsiko")
    public suspend fun kafkaVersion(`value`: Output) {
        this.kafkaVersion = value
    }

    /**
     * @param value Logging Info details.
     */
    @JvmName("bqpadxpifkkigvtj")
    public suspend fun loggingInfo(`value`: Output) {
        this.loggingInfo = value
    }

    /**
     * @param value The number of broker nodes in the cluster.
     */
    @JvmName("dingsylkxxcyghux")
    public suspend fun numberOfBrokerNodes(`value`: Output) {
        this.numberOfBrokerNodes = value
    }

    /**
     * @param value The settings for open monitoring.
     */
    @JvmName("vuiosjjyeadvcfxt")
    public suspend fun openMonitoring(`value`: Output) {
        this.openMonitoring = value
    }

    /**
     * @param value This controls storage mode for supported storage tiers.
     */
    @JvmName("rufjevubvojflqpe")
    public suspend fun storageMode(`value`: Output) {
        this.storageMode = value
    }

    /**
     * @param value A key-value pair to associate with a resource.
     */
    @JvmName("xuybujntvgiskhdu")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value Information about the broker nodes in the cluster.
     */
    @JvmName("etnsawdvgkxfoqmb")
    public suspend fun brokerNodeGroupInfo(`value`: ClusterBrokerNodeGroupInfoArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.brokerNodeGroupInfo = mapped
    }

    /**
     * @param argument Information about the broker nodes in the cluster.
     */
    @JvmName("msscgxartkntodfr")
    public suspend fun brokerNodeGroupInfo(argument: suspend ClusterBrokerNodeGroupInfoArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterBrokerNodeGroupInfoArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.brokerNodeGroupInfo = mapped
    }

    /**
     * @param value Includes all client authentication related information.
     */
    @JvmName("iaaxvmqxxoqjlijl")
    public suspend fun clientAuthentication(`value`: ClusterClientAuthenticationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientAuthentication = mapped
    }

    /**
     * @param argument Includes all client authentication related information.
     */
    @JvmName("nasxudnnmtldwsdj")
    public suspend fun clientAuthentication(argument: suspend ClusterClientAuthenticationArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterClientAuthenticationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.clientAuthentication = mapped
    }

    /**
     * @param value The name of the cluster.
     */
    @JvmName("fxgowshhedcaadxx")
    public suspend fun clusterName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clusterName = mapped
    }

    /**
     * @param value Represents the configuration that you want MSK to use for the cluster.
     */
    @JvmName("ugfgbstsirxgabqo")
    public suspend fun configurationInfo(`value`: ClusterConfigurationInfoArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.configurationInfo = mapped
    }

    /**
     * @param argument Represents the configuration that you want MSK to use for the cluster.
     */
    @JvmName("jwwchufhkxwwmosk")
    public suspend fun configurationInfo(argument: suspend ClusterConfigurationInfoArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterConfigurationInfoArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.configurationInfo = mapped
    }

    /**
     * @param value The current version of the MSK cluster
     */
    @JvmName("bfalnaxrfuyrbhbd")
    public suspend fun currentVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.currentVersion = mapped
    }

    /**
     * @param value Includes all encryption-related information.
     */
    @JvmName("dbbaajbryjvgoxss")
    public suspend fun encryptionInfo(`value`: ClusterEncryptionInfoArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encryptionInfo = mapped
    }

    /**
     * @param argument Includes all encryption-related information.
     */
    @JvmName("vnilkodyameghxux")
    public suspend fun encryptionInfo(argument: suspend ClusterEncryptionInfoArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterEncryptionInfoArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.encryptionInfo = mapped
    }

    /**
     * @param value Specifies the level of monitoring for the MSK cluster. The possible values are `DEFAULT` , `PER_BROKER` , and `PER_TOPIC_PER_BROKER` .
     */
    @JvmName("gxkronanmxplsuee")
    public suspend fun enhancedMonitoring(`value`: ClusterEnhancedMonitoring?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enhancedMonitoring = mapped
    }

    /**
     * @param value The version of Apache Kafka. You can use Amazon MSK to create clusters that use Apache Kafka versions 1.1.1 and 2.2.1.
     */
    @JvmName("avvuqelstmoirmpf")
    public suspend fun kafkaVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kafkaVersion = mapped
    }

    /**
     * @param value Logging Info details.
     */
    @JvmName("aerjeynvuqryktcd")
    public suspend fun loggingInfo(`value`: ClusterLoggingInfoArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loggingInfo = mapped
    }

    /**
     * @param argument Logging Info details.
     */
    @JvmName("lpggnimdeptroygd")
    public suspend fun loggingInfo(argument: suspend ClusterLoggingInfoArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterLoggingInfoArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.loggingInfo = mapped
    }

    /**
     * @param value The number of broker nodes in the cluster.
     */
    @JvmName("orpxtubvfiywmbii")
    public suspend fun numberOfBrokerNodes(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.numberOfBrokerNodes = mapped
    }

    /**
     * @param value The settings for open monitoring.
     */
    @JvmName("qwiojongxcxtvtgs")
    public suspend fun openMonitoring(`value`: ClusterOpenMonitoringArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.openMonitoring = mapped
    }

    /**
     * @param argument The settings for open monitoring.
     */
    @JvmName("vmwvrtlitooammpl")
    public suspend fun openMonitoring(argument: suspend ClusterOpenMonitoringArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterOpenMonitoringArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.openMonitoring = mapped
    }

    /**
     * @param value This controls storage mode for supported storage tiers.
     */
    @JvmName("ycmdfyvvsnnlxxlc")
    public suspend fun storageMode(`value`: ClusterStorageMode?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageMode = mapped
    }

    /**
     * @param value A key-value pair to associate with a resource.
     */
    @JvmName("bhfnnkquccwdhcxp")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values A key-value pair to associate with a resource.
     */
    @JvmName("gfwbtayoefkresyl")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): ClusterArgs = ClusterArgs(
        brokerNodeGroupInfo = brokerNodeGroupInfo,
        clientAuthentication = clientAuthentication,
        clusterName = clusterName,
        configurationInfo = configurationInfo,
        currentVersion = currentVersion,
        encryptionInfo = encryptionInfo,
        enhancedMonitoring = enhancedMonitoring,
        kafkaVersion = kafkaVersion,
        loggingInfo = loggingInfo,
        numberOfBrokerNodes = numberOfBrokerNodes,
        openMonitoring = openMonitoring,
        storageMode = storageMode,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy