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

com.pulumi.awsnative.cassandra.kotlin.inputs.KeyspaceReplicationSpecificationArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.cassandra.kotlin.inputs

import com.pulumi.awsnative.cassandra.inputs.KeyspaceReplicationSpecificationArgs.builder
import com.pulumi.awsnative.cassandra.kotlin.enums.KeyspaceRegionListItem
import com.pulumi.awsnative.cassandra.kotlin.enums.KeyspaceReplicationSpecificationReplicationStrategy
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property regionList Specifies the AWS Regions that the keyspace is replicated in. You must specify at least two and up to six Regions, including the Region that the keyspace is being created in.
 * @property replicationStrategy The options are:
 * - `SINGLE_REGION` (optional)
 * - `MULTI_REGION`
 * If no value is specified, the default is `SINGLE_REGION` . If `MULTI_REGION` is specified, `RegionList` is required.
 */
public data class KeyspaceReplicationSpecificationArgs(
    public val regionList: Output>? = null,
    public val replicationStrategy: Output? =
        null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.cassandra.inputs.KeyspaceReplicationSpecificationArgs = com.pulumi.awsnative.cassandra.inputs.KeyspaceReplicationSpecificationArgs.builder()
        .regionList(
            regionList?.applyValue({ args0 ->
                args0.map({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                })
            }),
        )
        .replicationStrategy(
            replicationStrategy?.applyValue({ args0 ->
                args0.let({ args0 ->
                    args0.toJava()
                })
            }),
        ).build()
}

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

    private var replicationStrategy: Output? =
        null

    /**
     * @param value Specifies the AWS Regions that the keyspace is replicated in. You must specify at least two and up to six Regions, including the Region that the keyspace is being created in.
     */
    @JvmName("leyubxkjxojpgvhi")
    public suspend fun regionList(`value`: Output>) {
        this.regionList = value
    }

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

    /**
     * @param values Specifies the AWS Regions that the keyspace is replicated in. You must specify at least two and up to six Regions, including the Region that the keyspace is being created in.
     */
    @JvmName("rkycqucnlbatemwa")
    public suspend fun regionList(values: List>) {
        this.regionList = Output.all(values)
    }

    /**
     * @param value The options are:
     * - `SINGLE_REGION` (optional)
     * - `MULTI_REGION`
     * If no value is specified, the default is `SINGLE_REGION` . If `MULTI_REGION` is specified, `RegionList` is required.
     */
    @JvmName("jshacgqadkxuxxgm")
    public suspend fun replicationStrategy(`value`: Output) {
        this.replicationStrategy = value
    }

    /**
     * @param value Specifies the AWS Regions that the keyspace is replicated in. You must specify at least two and up to six Regions, including the Region that the keyspace is being created in.
     */
    @JvmName("xrmaocsqigvaeghq")
    public suspend fun regionList(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.regionList = mapped
    }

    /**
     * @param values Specifies the AWS Regions that the keyspace is replicated in. You must specify at least two and up to six Regions, including the Region that the keyspace is being created in.
     */
    @JvmName("madkxsniyexybtmj")
    public suspend fun regionList(vararg values: KeyspaceRegionListItem) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.regionList = mapped
    }

    /**
     * @param value The options are:
     * - `SINGLE_REGION` (optional)
     * - `MULTI_REGION`
     * If no value is specified, the default is `SINGLE_REGION` . If `MULTI_REGION` is specified, `RegionList` is required.
     */
    @JvmName("wetgapjtbdlxyxcg")
    public suspend fun replicationStrategy(`value`: KeyspaceReplicationSpecificationReplicationStrategy?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.replicationStrategy = mapped
    }

    internal fun build(): KeyspaceReplicationSpecificationArgs = KeyspaceReplicationSpecificationArgs(
        regionList = regionList,
        replicationStrategy = replicationStrategy,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy