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

com.pulumi.aws.msk.kotlin.inputs.ClusterBrokerNodeGroupInfoArgs.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: 6.57.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.msk.kotlin.inputs

import com.pulumi.aws.msk.inputs.ClusterBrokerNodeGroupInfoArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
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.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property azDistribution The distribution of broker nodes across availability zones ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-model-brokerazdistribution)). Currently the only valid value is `DEFAULT`.
 * @property clientSubnets A list of subnets to connect to in client VPC ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-prop-brokernodegroupinfo-clientsubnets)).
 * @property connectivityInfo Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible ([documentation](https://docs.aws.amazon.com/msk/latest/developerguide/public-access.html)).
 * @property instanceType Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. ([Pricing info](https://aws.amazon.com/msk/pricing/))
 * @property securityGroups A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
 * @property storageInfo A block that contains information about storage volumes attached to MSK broker nodes. See below.
 */
public data class ClusterBrokerNodeGroupInfoArgs(
    public val azDistribution: Output? = null,
    public val clientSubnets: Output>,
    public val connectivityInfo: Output? = null,
    public val instanceType: Output,
    public val securityGroups: Output>,
    public val storageInfo: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.msk.inputs.ClusterBrokerNodeGroupInfoArgs =
        com.pulumi.aws.msk.inputs.ClusterBrokerNodeGroupInfoArgs.builder()
            .azDistribution(azDistribution?.applyValue({ args0 -> args0 }))
            .clientSubnets(clientSubnets.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .connectivityInfo(connectivityInfo?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .instanceType(instanceType.applyValue({ args0 -> args0 }))
            .securityGroups(securityGroups.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .storageInfo(storageInfo?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [ClusterBrokerNodeGroupInfoArgs].
 */
@PulumiTagMarker
public class ClusterBrokerNodeGroupInfoArgsBuilder internal constructor() {
    private var azDistribution: Output? = null

    private var clientSubnets: Output>? = null

    private var connectivityInfo: Output? = null

    private var instanceType: Output? = null

    private var securityGroups: Output>? = null

    private var storageInfo: Output? = null

    /**
     * @param value The distribution of broker nodes across availability zones ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-model-brokerazdistribution)). Currently the only valid value is `DEFAULT`.
     */
    @JvmName("bwhlgxilxhmsbpgo")
    public suspend fun azDistribution(`value`: Output) {
        this.azDistribution = value
    }

    /**
     * @param value A list of subnets to connect to in client VPC ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-prop-brokernodegroupinfo-clientsubnets)).
     */
    @JvmName("wvtcwlwhawcstcin")
    public suspend fun clientSubnets(`value`: Output>) {
        this.clientSubnets = value
    }

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

    /**
     * @param values A list of subnets to connect to in client VPC ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-prop-brokernodegroupinfo-clientsubnets)).
     */
    @JvmName("xgmnocuvleyjilae")
    public suspend fun clientSubnets(values: List>) {
        this.clientSubnets = Output.all(values)
    }

    /**
     * @param value Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible ([documentation](https://docs.aws.amazon.com/msk/latest/developerguide/public-access.html)).
     */
    @JvmName("dnerbdeddutpprxc")
    public suspend fun connectivityInfo(`value`: Output) {
        this.connectivityInfo = value
    }

    /**
     * @param value Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. ([Pricing info](https://aws.amazon.com/msk/pricing/))
     */
    @JvmName("qimpqwsnjrynvcbt")
    public suspend fun instanceType(`value`: Output) {
        this.instanceType = value
    }

    /**
     * @param value A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
     */
    @JvmName("mbiyvipwlropoujb")
    public suspend fun securityGroups(`value`: Output>) {
        this.securityGroups = value
    }

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

    /**
     * @param values A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
     */
    @JvmName("asppjxqjuleoglor")
    public suspend fun securityGroups(values: List>) {
        this.securityGroups = Output.all(values)
    }

    /**
     * @param value A block that contains information about storage volumes attached to MSK broker nodes. See below.
     */
    @JvmName("grpugijgjgexmxcl")
    public suspend fun storageInfo(`value`: Output) {
        this.storageInfo = value
    }

    /**
     * @param value The distribution of broker nodes across availability zones ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-model-brokerazdistribution)). Currently the only valid value is `DEFAULT`.
     */
    @JvmName("beoseppoenhqfugx")
    public suspend fun azDistribution(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.azDistribution = mapped
    }

    /**
     * @param value A list of subnets to connect to in client VPC ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-prop-brokernodegroupinfo-clientsubnets)).
     */
    @JvmName("olhbfunwinburgfo")
    public suspend fun clientSubnets(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.clientSubnets = mapped
    }

    /**
     * @param values A list of subnets to connect to in client VPC ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-prop-brokernodegroupinfo-clientsubnets)).
     */
    @JvmName("dkvrefdvlrmqdwtp")
    public suspend fun clientSubnets(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.clientSubnets = mapped
    }

    /**
     * @param value Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible ([documentation](https://docs.aws.amazon.com/msk/latest/developerguide/public-access.html)).
     */
    @JvmName("jcrparitkqdqaroj")
    public suspend fun connectivityInfo(`value`: ClusterBrokerNodeGroupInfoConnectivityInfoArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.connectivityInfo = mapped
    }

    /**
     * @param argument Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible ([documentation](https://docs.aws.amazon.com/msk/latest/developerguide/public-access.html)).
     */
    @JvmName("ufrqxoouhxjrwors")
    public suspend fun connectivityInfo(argument: suspend ClusterBrokerNodeGroupInfoConnectivityInfoArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterBrokerNodeGroupInfoConnectivityInfoArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.connectivityInfo = mapped
    }

    /**
     * @param value Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. ([Pricing info](https://aws.amazon.com/msk/pricing/))
     */
    @JvmName("yvjlgmjdcdmlgxyw")
    public suspend fun instanceType(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.instanceType = mapped
    }

    /**
     * @param value A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
     */
    @JvmName("ljjrcposmbyjseaj")
    public suspend fun securityGroups(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.securityGroups = mapped
    }

    /**
     * @param values A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
     */
    @JvmName("nlqukiokhhvahpii")
    public suspend fun securityGroups(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.securityGroups = mapped
    }

    /**
     * @param value A block that contains information about storage volumes attached to MSK broker nodes. See below.
     */
    @JvmName("fyhbqxxdgmhecoex")
    public suspend fun storageInfo(`value`: ClusterBrokerNodeGroupInfoStorageInfoArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageInfo = mapped
    }

    /**
     * @param argument A block that contains information about storage volumes attached to MSK broker nodes. See below.
     */
    @JvmName("wfadyryfjnoomaee")
    public suspend fun storageInfo(argument: suspend ClusterBrokerNodeGroupInfoStorageInfoArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterBrokerNodeGroupInfoStorageInfoArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.storageInfo = mapped
    }

    internal fun build(): ClusterBrokerNodeGroupInfoArgs = ClusterBrokerNodeGroupInfoArgs(
        azDistribution = azDistribution,
        clientSubnets = clientSubnets ?: throw PulumiNullFieldException("clientSubnets"),
        connectivityInfo = connectivityInfo,
        instanceType = instanceType ?: throw PulumiNullFieldException("instanceType"),
        securityGroups = securityGroups ?: throw PulumiNullFieldException("securityGroups"),
        storageInfo = storageInfo,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy