Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@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