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

com.pulumi.awsnative.cassandra.kotlin.TableArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.cassandra.kotlin

import com.pulumi.awsnative.cassandra.TableArgs.builder
import com.pulumi.awsnative.cassandra.kotlin.inputs.TableAutoScalingSpecificationArgs
import com.pulumi.awsnative.cassandra.kotlin.inputs.TableAutoScalingSpecificationArgsBuilder
import com.pulumi.awsnative.cassandra.kotlin.inputs.TableBillingModeArgs
import com.pulumi.awsnative.cassandra.kotlin.inputs.TableBillingModeArgsBuilder
import com.pulumi.awsnative.cassandra.kotlin.inputs.TableClusteringKeyColumnArgs
import com.pulumi.awsnative.cassandra.kotlin.inputs.TableClusteringKeyColumnArgsBuilder
import com.pulumi.awsnative.cassandra.kotlin.inputs.TableColumnArgs
import com.pulumi.awsnative.cassandra.kotlin.inputs.TableColumnArgsBuilder
import com.pulumi.awsnative.cassandra.kotlin.inputs.TableEncryptionSpecificationArgs
import com.pulumi.awsnative.cassandra.kotlin.inputs.TableEncryptionSpecificationArgsBuilder
import com.pulumi.awsnative.cassandra.kotlin.inputs.TableReplicaSpecificationArgs
import com.pulumi.awsnative.cassandra.kotlin.inputs.TableReplicaSpecificationArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
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.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource schema for AWS::Cassandra::Table
 * ## Example Usage
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * @property autoScalingSpecifications The optional auto scaling capacity settings for a table in provisioned capacity mode.
 * @property billingMode The billing mode for the table, which determines how you'll be charged for reads and writes:
 * - *On-demand mode* (default) - You pay based on the actual reads and writes your application performs.
 * - *Provisioned mode* - Lets you specify the number of reads and writes per second that you need for your application.
 * If you don't specify a value for this property, then the table will use on-demand mode.
 * @property clientSideTimestampsEnabled Indicates whether client side timestamps are enabled (true) or disabled (false) on the table. False by default, once it is enabled it cannot be disabled again.
 * @property clusteringKeyColumns Clustering key columns of the table
 * @property defaultTimeToLive Default TTL (Time To Live) in seconds, where zero is disabled. If the value is greater than zero, TTL is enabled for the entire table and an expiration timestamp is added to each column.
 * @property encryptionSpecification The encryption at rest options for the table.
 * - *AWS owned key* (default) - The key is owned by Amazon Keyspaces .
 * - *Customer managed key* - The key is stored in your account and is created, owned, and managed by you.
 * > If you choose encryption with a customer managed key, you must specify a valid customer managed KMS key with permissions granted to Amazon Keyspaces.
 * For more information, see [Encryption at rest in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in the *Amazon Keyspaces Developer Guide* .
 * @property keyspaceName Name for Cassandra keyspace
 * @property partitionKeyColumns Partition key columns of the table
 * @property pointInTimeRecoveryEnabled Indicates whether point in time recovery is enabled (true) or disabled (false) on the table
 * @property regularColumns Non-key columns of the table
 * @property replicaSpecifications The AWS Region specific settings of a multi-Region table.
 * For a multi-Region table, you can configure the table's read capacity differently per AWS Region. You can do this by configuring the following parameters.
 * - `region` : The Region where these settings are applied. (Required)
 * - `readCapacityUnits` : The provisioned read capacity units. (Optional)
 * - `readCapacityAutoScaling` : The read capacity auto scaling settings for the table. (Optional)
 * @property tableName Name for Cassandra table
 * @property tags An array of key-value pairs to apply to this resource
 */
public data class TableArgs(
    public val autoScalingSpecifications: Output? = null,
    public val billingMode: Output? = null,
    public val clientSideTimestampsEnabled: Output? = null,
    public val clusteringKeyColumns: Output>? = null,
    public val defaultTimeToLive: Output? = null,
    public val encryptionSpecification: Output? = null,
    public val keyspaceName: Output? = null,
    public val partitionKeyColumns: Output>? = null,
    public val pointInTimeRecoveryEnabled: Output? = null,
    public val regularColumns: Output>? = null,
    public val replicaSpecifications: Output>? = null,
    public val tableName: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.cassandra.TableArgs =
        com.pulumi.awsnative.cassandra.TableArgs.builder()
            .autoScalingSpecifications(
                autoScalingSpecifications?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .billingMode(billingMode?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .clientSideTimestampsEnabled(clientSideTimestampsEnabled?.applyValue({ args0 -> args0 }))
            .clusteringKeyColumns(
                clusteringKeyColumns?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .defaultTimeToLive(defaultTimeToLive?.applyValue({ args0 -> args0 }))
            .encryptionSpecification(
                encryptionSpecification?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .keyspaceName(keyspaceName?.applyValue({ args0 -> args0 }))
            .partitionKeyColumns(
                partitionKeyColumns?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .pointInTimeRecoveryEnabled(pointInTimeRecoveryEnabled?.applyValue({ args0 -> args0 }))
            .regularColumns(
                regularColumns?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .replicaSpecifications(
                replicaSpecifications?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .tableName(tableName?.applyValue({ args0 -> args0 }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [TableArgs].
 */
@PulumiTagMarker
public class TableArgsBuilder internal constructor() {
    private var autoScalingSpecifications: Output? = null

    private var billingMode: Output? = null

    private var clientSideTimestampsEnabled: Output? = null

    private var clusteringKeyColumns: Output>? = null

    private var defaultTimeToLive: Output? = null

    private var encryptionSpecification: Output? = null

    private var keyspaceName: Output? = null

    private var partitionKeyColumns: Output>? = null

    private var pointInTimeRecoveryEnabled: Output? = null

    private var regularColumns: Output>? = null

    private var replicaSpecifications: Output>? = null

    private var tableName: Output? = null

    private var tags: Output>? = null

    /**
     * @param value The optional auto scaling capacity settings for a table in provisioned capacity mode.
     */
    @JvmName("mskfeopqthurywyi")
    public suspend fun autoScalingSpecifications(`value`: Output) {
        this.autoScalingSpecifications = value
    }

    /**
     * @param value The billing mode for the table, which determines how you'll be charged for reads and writes:
     * - *On-demand mode* (default) - You pay based on the actual reads and writes your application performs.
     * - *Provisioned mode* - Lets you specify the number of reads and writes per second that you need for your application.
     * If you don't specify a value for this property, then the table will use on-demand mode.
     */
    @JvmName("gqktqrkgwluvfekq")
    public suspend fun billingMode(`value`: Output) {
        this.billingMode = value
    }

    /**
     * @param value Indicates whether client side timestamps are enabled (true) or disabled (false) on the table. False by default, once it is enabled it cannot be disabled again.
     */
    @JvmName("ggxtbsbkvxhvreys")
    public suspend fun clientSideTimestampsEnabled(`value`: Output) {
        this.clientSideTimestampsEnabled = value
    }

    /**
     * @param value Clustering key columns of the table
     */
    @JvmName("xxqwuxiictwdibgt")
    public suspend fun clusteringKeyColumns(`value`: Output>) {
        this.clusteringKeyColumns = value
    }

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

    /**
     * @param values Clustering key columns of the table
     */
    @JvmName("kusjpwetwjwogcgq")
    public suspend fun clusteringKeyColumns(values: List>) {
        this.clusteringKeyColumns = Output.all(values)
    }

    /**
     * @param value Default TTL (Time To Live) in seconds, where zero is disabled. If the value is greater than zero, TTL is enabled for the entire table and an expiration timestamp is added to each column.
     */
    @JvmName("edsplhuyaywqrtfj")
    public suspend fun defaultTimeToLive(`value`: Output) {
        this.defaultTimeToLive = value
    }

    /**
     * @param value The encryption at rest options for the table.
     * - *AWS owned key* (default) - The key is owned by Amazon Keyspaces .
     * - *Customer managed key* - The key is stored in your account and is created, owned, and managed by you.
     * > If you choose encryption with a customer managed key, you must specify a valid customer managed KMS key with permissions granted to Amazon Keyspaces.
     * For more information, see [Encryption at rest in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in the *Amazon Keyspaces Developer Guide* .
     */
    @JvmName("vadoprbewcujwpct")
    public suspend fun encryptionSpecification(`value`: Output) {
        this.encryptionSpecification = value
    }

    /**
     * @param value Name for Cassandra keyspace
     */
    @JvmName("fpwwqgehnbtojxvt")
    public suspend fun keyspaceName(`value`: Output) {
        this.keyspaceName = value
    }

    /**
     * @param value Partition key columns of the table
     */
    @JvmName("dautccyhbigclknx")
    public suspend fun partitionKeyColumns(`value`: Output>) {
        this.partitionKeyColumns = value
    }

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

    /**
     * @param values Partition key columns of the table
     */
    @JvmName("qajjmeabmgpvcabw")
    public suspend fun partitionKeyColumns(values: List>) {
        this.partitionKeyColumns = Output.all(values)
    }

    /**
     * @param value Indicates whether point in time recovery is enabled (true) or disabled (false) on the table
     */
    @JvmName("nekgyhtxwjsfsaqy")
    public suspend fun pointInTimeRecoveryEnabled(`value`: Output) {
        this.pointInTimeRecoveryEnabled = value
    }

    /**
     * @param value Non-key columns of the table
     */
    @JvmName("awgsvnbgrdgmyjdc")
    public suspend fun regularColumns(`value`: Output>) {
        this.regularColumns = value
    }

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

    /**
     * @param values Non-key columns of the table
     */
    @JvmName("ctrrcgpeljmoicwr")
    public suspend fun regularColumns(values: List>) {
        this.regularColumns = Output.all(values)
    }

    /**
     * @param value The AWS Region specific settings of a multi-Region table.
     * For a multi-Region table, you can configure the table's read capacity differently per AWS Region. You can do this by configuring the following parameters.
     * - `region` : The Region where these settings are applied. (Required)
     * - `readCapacityUnits` : The provisioned read capacity units. (Optional)
     * - `readCapacityAutoScaling` : The read capacity auto scaling settings for the table. (Optional)
     */
    @JvmName("imycaifjeapisfsj")
    public suspend fun replicaSpecifications(`value`: Output>) {
        this.replicaSpecifications = value
    }

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

    /**
     * @param values The AWS Region specific settings of a multi-Region table.
     * For a multi-Region table, you can configure the table's read capacity differently per AWS Region. You can do this by configuring the following parameters.
     * - `region` : The Region where these settings are applied. (Required)
     * - `readCapacityUnits` : The provisioned read capacity units. (Optional)
     * - `readCapacityAutoScaling` : The read capacity auto scaling settings for the table. (Optional)
     */
    @JvmName("nikyuvmsccbqqtlr")
    public suspend fun replicaSpecifications(values: List>) {
        this.replicaSpecifications = Output.all(values)
    }

    /**
     * @param value Name for Cassandra table
     */
    @JvmName("rgaginpitbywttxc")
    public suspend fun tableName(`value`: Output) {
        this.tableName = value
    }

    /**
     * @param value An array of key-value pairs to apply to this resource
     */
    @JvmName("ycxlvbehbgisnsiy")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values An array of key-value pairs to apply to this resource
     */
    @JvmName("unfchxuuvygbewoa")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The optional auto scaling capacity settings for a table in provisioned capacity mode.
     */
    @JvmName("xeagdgrlkmwhbrop")
    public suspend fun autoScalingSpecifications(`value`: TableAutoScalingSpecificationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoScalingSpecifications = mapped
    }

    /**
     * @param argument The optional auto scaling capacity settings for a table in provisioned capacity mode.
     */
    @JvmName("govpklpesutxiqmw")
    public suspend fun autoScalingSpecifications(argument: suspend TableAutoScalingSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped = TableAutoScalingSpecificationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.autoScalingSpecifications = mapped
    }

    /**
     * @param value The billing mode for the table, which determines how you'll be charged for reads and writes:
     * - *On-demand mode* (default) - You pay based on the actual reads and writes your application performs.
     * - *Provisioned mode* - Lets you specify the number of reads and writes per second that you need for your application.
     * If you don't specify a value for this property, then the table will use on-demand mode.
     */
    @JvmName("bhgtkgeumxrmhvac")
    public suspend fun billingMode(`value`: TableBillingModeArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.billingMode = mapped
    }

    /**
     * @param argument The billing mode for the table, which determines how you'll be charged for reads and writes:
     * - *On-demand mode* (default) - You pay based on the actual reads and writes your application performs.
     * - *Provisioned mode* - Lets you specify the number of reads and writes per second that you need for your application.
     * If you don't specify a value for this property, then the table will use on-demand mode.
     */
    @JvmName("tduokufxxxrdpaix")
    public suspend fun billingMode(argument: suspend TableBillingModeArgsBuilder.() -> Unit) {
        val toBeMapped = TableBillingModeArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.billingMode = mapped
    }

    /**
     * @param value Indicates whether client side timestamps are enabled (true) or disabled (false) on the table. False by default, once it is enabled it cannot be disabled again.
     */
    @JvmName("vkqtsiwnkvtrlfon")
    public suspend fun clientSideTimestampsEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientSideTimestampsEnabled = mapped
    }

    /**
     * @param value Clustering key columns of the table
     */
    @JvmName("fbueckwvpuetcysw")
    public suspend fun clusteringKeyColumns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clusteringKeyColumns = mapped
    }

    /**
     * @param argument Clustering key columns of the table
     */
    @JvmName("reoyfqyxtyfbldil")
    public suspend fun clusteringKeyColumns(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            TableClusteringKeyColumnArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.clusteringKeyColumns = mapped
    }

    /**
     * @param argument Clustering key columns of the table
     */
    @JvmName("kxocobunvoaqtvyj")
    public suspend fun clusteringKeyColumns(vararg argument: suspend TableClusteringKeyColumnArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            TableClusteringKeyColumnArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.clusteringKeyColumns = mapped
    }

    /**
     * @param argument Clustering key columns of the table
     */
    @JvmName("qtleknvbjgmwjgld")
    public suspend fun clusteringKeyColumns(argument: suspend TableClusteringKeyColumnArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            TableClusteringKeyColumnArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.clusteringKeyColumns = mapped
    }

    /**
     * @param values Clustering key columns of the table
     */
    @JvmName("uwwwxmrvnxjuibvb")
    public suspend fun clusteringKeyColumns(vararg values: TableClusteringKeyColumnArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.clusteringKeyColumns = mapped
    }

    /**
     * @param value Default TTL (Time To Live) in seconds, where zero is disabled. If the value is greater than zero, TTL is enabled for the entire table and an expiration timestamp is added to each column.
     */
    @JvmName("ngehjjmnqamdppre")
    public suspend fun defaultTimeToLive(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultTimeToLive = mapped
    }

    /**
     * @param value The encryption at rest options for the table.
     * - *AWS owned key* (default) - The key is owned by Amazon Keyspaces .
     * - *Customer managed key* - The key is stored in your account and is created, owned, and managed by you.
     * > If you choose encryption with a customer managed key, you must specify a valid customer managed KMS key with permissions granted to Amazon Keyspaces.
     * For more information, see [Encryption at rest in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in the *Amazon Keyspaces Developer Guide* .
     */
    @JvmName("xenxdawjrhjbuiqh")
    public suspend fun encryptionSpecification(`value`: TableEncryptionSpecificationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encryptionSpecification = mapped
    }

    /**
     * @param argument The encryption at rest options for the table.
     * - *AWS owned key* (default) - The key is owned by Amazon Keyspaces .
     * - *Customer managed key* - The key is stored in your account and is created, owned, and managed by you.
     * > If you choose encryption with a customer managed key, you must specify a valid customer managed KMS key with permissions granted to Amazon Keyspaces.
     * For more information, see [Encryption at rest in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in the *Amazon Keyspaces Developer Guide* .
     */
    @JvmName("seqrrulbsdmifhfs")
    public suspend fun encryptionSpecification(argument: suspend TableEncryptionSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped = TableEncryptionSpecificationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.encryptionSpecification = mapped
    }

    /**
     * @param value Name for Cassandra keyspace
     */
    @JvmName("faarixplwtjxqdha")
    public suspend fun keyspaceName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.keyspaceName = mapped
    }

    /**
     * @param value Partition key columns of the table
     */
    @JvmName("eriyngvypkukfmyc")
    public suspend fun partitionKeyColumns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.partitionKeyColumns = mapped
    }

    /**
     * @param argument Partition key columns of the table
     */
    @JvmName("somqgbtdyrhvdkxx")
    public suspend fun partitionKeyColumns(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TableColumnArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.partitionKeyColumns = mapped
    }

    /**
     * @param argument Partition key columns of the table
     */
    @JvmName("lmthltfwkxldyxxw")
    public suspend fun partitionKeyColumns(vararg argument: suspend TableColumnArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TableColumnArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.partitionKeyColumns = mapped
    }

    /**
     * @param argument Partition key columns of the table
     */
    @JvmName("hbsminyotgnpvfwu")
    public suspend fun partitionKeyColumns(argument: suspend TableColumnArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TableColumnArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.partitionKeyColumns = mapped
    }

    /**
     * @param values Partition key columns of the table
     */
    @JvmName("krqnyjjaatihuohd")
    public suspend fun partitionKeyColumns(vararg values: TableColumnArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.partitionKeyColumns = mapped
    }

    /**
     * @param value Indicates whether point in time recovery is enabled (true) or disabled (false) on the table
     */
    @JvmName("tqafcuqsqsbtjiab")
    public suspend fun pointInTimeRecoveryEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.pointInTimeRecoveryEnabled = mapped
    }

    /**
     * @param value Non-key columns of the table
     */
    @JvmName("oeelxknlkiaahgrq")
    public suspend fun regularColumns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.regularColumns = mapped
    }

    /**
     * @param argument Non-key columns of the table
     */
    @JvmName("eurmkxhinvwrrnle")
    public suspend fun regularColumns(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TableColumnArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.regularColumns = mapped
    }

    /**
     * @param argument Non-key columns of the table
     */
    @JvmName("sovrytwsdpygbnah")
    public suspend fun regularColumns(vararg argument: suspend TableColumnArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TableColumnArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.regularColumns = mapped
    }

    /**
     * @param argument Non-key columns of the table
     */
    @JvmName("inkkdybbwavuuied")
    public suspend fun regularColumns(argument: suspend TableColumnArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TableColumnArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.regularColumns = mapped
    }

    /**
     * @param values Non-key columns of the table
     */
    @JvmName("dojqqjvvmaaqhpld")
    public suspend fun regularColumns(vararg values: TableColumnArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.regularColumns = mapped
    }

    /**
     * @param value The AWS Region specific settings of a multi-Region table.
     * For a multi-Region table, you can configure the table's read capacity differently per AWS Region. You can do this by configuring the following parameters.
     * - `region` : The Region where these settings are applied. (Required)
     * - `readCapacityUnits` : The provisioned read capacity units. (Optional)
     * - `readCapacityAutoScaling` : The read capacity auto scaling settings for the table. (Optional)
     */
    @JvmName("elkteuhovwjvgkrh")
    public suspend fun replicaSpecifications(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.replicaSpecifications = mapped
    }

    /**
     * @param argument The AWS Region specific settings of a multi-Region table.
     * For a multi-Region table, you can configure the table's read capacity differently per AWS Region. You can do this by configuring the following parameters.
     * - `region` : The Region where these settings are applied. (Required)
     * - `readCapacityUnits` : The provisioned read capacity units. (Optional)
     * - `readCapacityAutoScaling` : The read capacity auto scaling settings for the table. (Optional)
     */
    @JvmName("kqixalwdeobmgyed")
    public suspend fun replicaSpecifications(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            TableReplicaSpecificationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.replicaSpecifications = mapped
    }

    /**
     * @param argument The AWS Region specific settings of a multi-Region table.
     * For a multi-Region table, you can configure the table's read capacity differently per AWS Region. You can do this by configuring the following parameters.
     * - `region` : The Region where these settings are applied. (Required)
     * - `readCapacityUnits` : The provisioned read capacity units. (Optional)
     * - `readCapacityAutoScaling` : The read capacity auto scaling settings for the table. (Optional)
     */
    @JvmName("nrsbgdmvhobbemnb")
    public suspend fun replicaSpecifications(vararg argument: suspend TableReplicaSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            TableReplicaSpecificationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.replicaSpecifications = mapped
    }

    /**
     * @param argument The AWS Region specific settings of a multi-Region table.
     * For a multi-Region table, you can configure the table's read capacity differently per AWS Region. You can do this by configuring the following parameters.
     * - `region` : The Region where these settings are applied. (Required)
     * - `readCapacityUnits` : The provisioned read capacity units. (Optional)
     * - `readCapacityAutoScaling` : The read capacity auto scaling settings for the table. (Optional)
     */
    @JvmName("ufwoffpvyuqdieyv")
    public suspend fun replicaSpecifications(argument: suspend TableReplicaSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            TableReplicaSpecificationArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.replicaSpecifications = mapped
    }

    /**
     * @param values The AWS Region specific settings of a multi-Region table.
     * For a multi-Region table, you can configure the table's read capacity differently per AWS Region. You can do this by configuring the following parameters.
     * - `region` : The Region where these settings are applied. (Required)
     * - `readCapacityUnits` : The provisioned read capacity units. (Optional)
     * - `readCapacityAutoScaling` : The read capacity auto scaling settings for the table. (Optional)
     */
    @JvmName("flrobvplfaoiixdf")
    public suspend fun replicaSpecifications(vararg values: TableReplicaSpecificationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.replicaSpecifications = mapped
    }

    /**
     * @param value Name for Cassandra table
     */
    @JvmName("rpxqghrudexgmlfg")
    public suspend fun tableName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tableName = mapped
    }

    /**
     * @param value An array of key-value pairs to apply to this resource
     */
    @JvmName("ytlbtdmoidlciush")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource
     */
    @JvmName("dtxwmolrgsfsmmdo")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource
     */
    @JvmName("tytgtnlvagjwherc")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource
     */
    @JvmName("fnvliorartmoldre")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values An array of key-value pairs to apply to this resource
     */
    @JvmName("labguoqvmcwerabn")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): TableArgs = TableArgs(
        autoScalingSpecifications = autoScalingSpecifications,
        billingMode = billingMode,
        clientSideTimestampsEnabled = clientSideTimestampsEnabled,
        clusteringKeyColumns = clusteringKeyColumns,
        defaultTimeToLive = defaultTimeToLive,
        encryptionSpecification = encryptionSpecification,
        keyspaceName = keyspaceName,
        partitionKeyColumns = partitionKeyColumns,
        pointInTimeRecoveryEnabled = pointInTimeRecoveryEnabled,
        regularColumns = regularColumns,
        replicaSpecifications = replicaSpecifications,
        tableName = tableName,
        tags = tags,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy