Please wait. This can take some minutes ...
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.
com.pulumi.googlenative.bigtableadmin.v2.kotlin.TableArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.googlenative.bigtableadmin.v2.kotlin
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.bigtableadmin.v2.TableArgs.builder
import com.pulumi.googlenative.bigtableadmin.v2.kotlin.enums.TableGranularity
import com.pulumi.googlenative.bigtableadmin.v2.kotlin.inputs.SplitArgs
import com.pulumi.googlenative.bigtableadmin.v2.kotlin.inputs.SplitArgsBuilder
import com.pulumi.googlenative.bigtableadmin.v2.kotlin.inputs.TableStatsArgs
import com.pulumi.googlenative.bigtableadmin.v2.kotlin.inputs.TableStatsArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
* Creates a new table in the specified instance. The table can be created with a full set of initial column families, specified in the request.
* @property columnFamilies The column families configured for this table, mapped by column family ID. Views: `SCHEMA_VIEW`, `STATS_VIEW`, `FULL`
* @property deletionProtection Set to true to make the table protected against data loss. i.e. deleting the following resources through Admin APIs are prohibited: * The table. * The column families in the table. * The instance containing the table. Note one can still delete the data stored in the table through Data APIs.
* @property granularity Immutable. The granularity (i.e. `MILLIS`) at which timestamps are stored in this table. Timestamps not matching the granularity will be rejected. If unspecified at creation time, the value will be set to `MILLIS`. Views: `SCHEMA_VIEW`, `FULL`.
* @property initialSplits The optional list of row keys that will be used to initially split the table into several tablets (tablets are similar to HBase regions). Given two split keys, `s1` and `s2`, three tablets will be created, spanning the key ranges: `[, s1), [s1, s2), [s2, )`. Example: * Row keys := `["a", "apple", "custom", "customer_1", "customer_2",` `"other", "zz"]` * initial_split_keys := `["apple", "customer_1", "customer_2", "other"]` * Key assignment: - Tablet 1 `[, apple) => {"a"}.` - Tablet 2 `[apple, customer_1) => {"apple", "custom"}.` - Tablet 3 `[customer_1, customer_2) => {"customer_1"}.` - Tablet 4 `[customer_2, other) => {"customer_2"}.` - Tablet 5 `[other, ) => {"other", "zz"}.`
* @property instanceId
* @property name The unique name of the table. Values are of the form `projects/{project}/instances/{instance}/tables/_a-zA-Z0-9*`. Views: `NAME_ONLY`, `SCHEMA_VIEW`, `REPLICATION_VIEW`, `STATS_VIEW`, `FULL`
* @property project
* @property stats Only available with STATS_VIEW, this includes summary statistics about the entire table contents. For statistics about a specific column family, see ColumnFamilyStats in the mapped ColumnFamily collection above.
* @property tableId The name by which the new table should be referred to within the parent instance, e.g., `foobar` rather than `{parent}/tables/foobar`. Maximum 50 characters.
*/
public data class TableArgs(
public val columnFamilies: Output>? = null,
public val deletionProtection: Output? = null,
public val granularity: Output? = null,
public val initialSplits: Output>? = null,
public val instanceId: Output? = null,
public val name: Output? = null,
public val project: Output? = null,
public val stats: Output? = null,
public val tableId: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.googlenative.bigtableadmin.v2.TableArgs =
com.pulumi.googlenative.bigtableadmin.v2.TableArgs.builder()
.columnFamilies(
columnFamilies?.applyValue({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value)
}).toMap()
}),
)
.deletionProtection(deletionProtection?.applyValue({ args0 -> args0 }))
.granularity(granularity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.initialSplits(
initialSplits?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.instanceId(instanceId?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 }))
.project(project?.applyValue({ args0 -> args0 }))
.stats(stats?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.tableId(tableId?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [TableArgs].
*/
@PulumiTagMarker
public class TableArgsBuilder internal constructor() {
private var columnFamilies: Output>? = null
private var deletionProtection: Output? = null
private var granularity: Output? = null
private var initialSplits: Output>? = null
private var instanceId: Output? = null
private var name: Output? = null
private var project: Output? = null
private var stats: Output? = null
private var tableId: Output? = null
/**
* @param value The column families configured for this table, mapped by column family ID. Views: `SCHEMA_VIEW`, `STATS_VIEW`, `FULL`
*/
@JvmName("vuhsdxlwpjvoxlkb")
public suspend fun columnFamilies(`value`: Output>) {
this.columnFamilies = value
}
/**
* @param value Set to true to make the table protected against data loss. i.e. deleting the following resources through Admin APIs are prohibited: * The table. * The column families in the table. * The instance containing the table. Note one can still delete the data stored in the table through Data APIs.
*/
@JvmName("bylxrysckcfipksh")
public suspend fun deletionProtection(`value`: Output) {
this.deletionProtection = value
}
/**
* @param value Immutable. The granularity (i.e. `MILLIS`) at which timestamps are stored in this table. Timestamps not matching the granularity will be rejected. If unspecified at creation time, the value will be set to `MILLIS`. Views: `SCHEMA_VIEW`, `FULL`.
*/
@JvmName("dgdpfbjmshdxrkat")
public suspend fun granularity(`value`: Output) {
this.granularity = value
}
/**
* @param value The optional list of row keys that will be used to initially split the table into several tablets (tablets are similar to HBase regions). Given two split keys, `s1` and `s2`, three tablets will be created, spanning the key ranges: `[, s1), [s1, s2), [s2, )`. Example: * Row keys := `["a", "apple", "custom", "customer_1", "customer_2",` `"other", "zz"]` * initial_split_keys := `["apple", "customer_1", "customer_2", "other"]` * Key assignment: - Tablet 1 `[, apple) => {"a"}.` - Tablet 2 `[apple, customer_1) => {"apple", "custom"}.` - Tablet 3 `[customer_1, customer_2) => {"customer_1"}.` - Tablet 4 `[customer_2, other) => {"customer_2"}.` - Tablet 5 `[other, ) => {"other", "zz"}.`
*/
@JvmName("elkmhknjfkyqtkoo")
public suspend fun initialSplits(`value`: Output>) {
this.initialSplits = value
}
@JvmName("qslpjylqrsqfpenl")
public suspend fun initialSplits(vararg values: Output) {
this.initialSplits = Output.all(values.asList())
}
/**
* @param values The optional list of row keys that will be used to initially split the table into several tablets (tablets are similar to HBase regions). Given two split keys, `s1` and `s2`, three tablets will be created, spanning the key ranges: `[, s1), [s1, s2), [s2, )`. Example: * Row keys := `["a", "apple", "custom", "customer_1", "customer_2",` `"other", "zz"]` * initial_split_keys := `["apple", "customer_1", "customer_2", "other"]` * Key assignment: - Tablet 1 `[, apple) => {"a"}.` - Tablet 2 `[apple, customer_1) => {"apple", "custom"}.` - Tablet 3 `[customer_1, customer_2) => {"customer_1"}.` - Tablet 4 `[customer_2, other) => {"customer_2"}.` - Tablet 5 `[other, ) => {"other", "zz"}.`
*/
@JvmName("udmnfmnkfadqljuw")
public suspend fun initialSplits(values: List>) {
this.initialSplits = Output.all(values)
}
/**
* @param value
*/
@JvmName("qenftjsogaprubvo")
public suspend fun instanceId(`value`: Output) {
this.instanceId = value
}
/**
* @param value The unique name of the table. Values are of the form `projects/{project}/instances/{instance}/tables/_a-zA-Z0-9*`. Views: `NAME_ONLY`, `SCHEMA_VIEW`, `REPLICATION_VIEW`, `STATS_VIEW`, `FULL`
*/
@JvmName("odvyouoqrxyqoflg")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value
*/
@JvmName("epghprccmsfbslbp")
public suspend fun project(`value`: Output) {
this.project = value
}
/**
* @param value Only available with STATS_VIEW, this includes summary statistics about the entire table contents. For statistics about a specific column family, see ColumnFamilyStats in the mapped ColumnFamily collection above.
*/
@JvmName("kypamvpalnfpmaso")
public suspend fun stats(`value`: Output) {
this.stats = value
}
/**
* @param value The name by which the new table should be referred to within the parent instance, e.g., `foobar` rather than `{parent}/tables/foobar`. Maximum 50 characters.
*/
@JvmName("rbtensyicwsqjtxt")
public suspend fun tableId(`value`: Output) {
this.tableId = value
}
/**
* @param value The column families configured for this table, mapped by column family ID. Views: `SCHEMA_VIEW`, `STATS_VIEW`, `FULL`
*/
@JvmName("wnhqqwxcpqadlfih")
public suspend fun columnFamilies(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.columnFamilies = mapped
}
/**
* @param values The column families configured for this table, mapped by column family ID. Views: `SCHEMA_VIEW`, `STATS_VIEW`, `FULL`
*/
@JvmName("byncyrybpvgbuixi")
public fun columnFamilies(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.columnFamilies = mapped
}
/**
* @param value Set to true to make the table protected against data loss. i.e. deleting the following resources through Admin APIs are prohibited: * The table. * The column families in the table. * The instance containing the table. Note one can still delete the data stored in the table through Data APIs.
*/
@JvmName("pjlgjjalaoermydd")
public suspend fun deletionProtection(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.deletionProtection = mapped
}
/**
* @param value Immutable. The granularity (i.e. `MILLIS`) at which timestamps are stored in this table. Timestamps not matching the granularity will be rejected. If unspecified at creation time, the value will be set to `MILLIS`. Views: `SCHEMA_VIEW`, `FULL`.
*/
@JvmName("kbnevkqfcjkbvaim")
public suspend fun granularity(`value`: TableGranularity?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.granularity = mapped
}
/**
* @param value The optional list of row keys that will be used to initially split the table into several tablets (tablets are similar to HBase regions). Given two split keys, `s1` and `s2`, three tablets will be created, spanning the key ranges: `[, s1), [s1, s2), [s2, )`. Example: * Row keys := `["a", "apple", "custom", "customer_1", "customer_2",` `"other", "zz"]` * initial_split_keys := `["apple", "customer_1", "customer_2", "other"]` * Key assignment: - Tablet 1 `[, apple) => {"a"}.` - Tablet 2 `[apple, customer_1) => {"apple", "custom"}.` - Tablet 3 `[customer_1, customer_2) => {"customer_1"}.` - Tablet 4 `[customer_2, other) => {"customer_2"}.` - Tablet 5 `[other, ) => {"other", "zz"}.`
*/
@JvmName("wwkncpqtdwxobpjm")
public suspend fun initialSplits(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.initialSplits = mapped
}
/**
* @param argument The optional list of row keys that will be used to initially split the table into several tablets (tablets are similar to HBase regions). Given two split keys, `s1` and `s2`, three tablets will be created, spanning the key ranges: `[, s1), [s1, s2), [s2, )`. Example: * Row keys := `["a", "apple", "custom", "customer_1", "customer_2",` `"other", "zz"]` * initial_split_keys := `["apple", "customer_1", "customer_2", "other"]` * Key assignment: - Tablet 1 `[, apple) => {"a"}.` - Tablet 2 `[apple, customer_1) => {"apple", "custom"}.` - Tablet 3 `[customer_1, customer_2) => {"customer_1"}.` - Tablet 4 `[customer_2, other) => {"customer_2"}.` - Tablet 5 `[other, ) => {"other", "zz"}.`
*/
@JvmName("qnkdsnegmpqrocmq")
public suspend fun initialSplits(argument: List Unit>) {
val toBeMapped = argument.toList().map { SplitArgsBuilder().applySuspend { it() }.build() }
val mapped = of(toBeMapped)
this.initialSplits = mapped
}
/**
* @param argument The optional list of row keys that will be used to initially split the table into several tablets (tablets are similar to HBase regions). Given two split keys, `s1` and `s2`, three tablets will be created, spanning the key ranges: `[, s1), [s1, s2), [s2, )`. Example: * Row keys := `["a", "apple", "custom", "customer_1", "customer_2",` `"other", "zz"]` * initial_split_keys := `["apple", "customer_1", "customer_2", "other"]` * Key assignment: - Tablet 1 `[, apple) => {"a"}.` - Tablet 2 `[apple, customer_1) => {"apple", "custom"}.` - Tablet 3 `[customer_1, customer_2) => {"customer_1"}.` - Tablet 4 `[customer_2, other) => {"customer_2"}.` - Tablet 5 `[other, ) => {"other", "zz"}.`
*/
@JvmName("nhulthoorawldmoa")
public suspend fun initialSplits(vararg argument: suspend SplitArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map { SplitArgsBuilder().applySuspend { it() }.build() }
val mapped = of(toBeMapped)
this.initialSplits = mapped
}
/**
* @param argument The optional list of row keys that will be used to initially split the table into several tablets (tablets are similar to HBase regions). Given two split keys, `s1` and `s2`, three tablets will be created, spanning the key ranges: `[, s1), [s1, s2), [s2, )`. Example: * Row keys := `["a", "apple", "custom", "customer_1", "customer_2",` `"other", "zz"]` * initial_split_keys := `["apple", "customer_1", "customer_2", "other"]` * Key assignment: - Tablet 1 `[, apple) => {"a"}.` - Tablet 2 `[apple, customer_1) => {"apple", "custom"}.` - Tablet 3 `[customer_1, customer_2) => {"customer_1"}.` - Tablet 4 `[customer_2, other) => {"customer_2"}.` - Tablet 5 `[other, ) => {"other", "zz"}.`
*/
@JvmName("drprpprelovvkgji")
public suspend fun initialSplits(argument: suspend SplitArgsBuilder.() -> Unit) {
val toBeMapped = listOf(SplitArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.initialSplits = mapped
}
/**
* @param values The optional list of row keys that will be used to initially split the table into several tablets (tablets are similar to HBase regions). Given two split keys, `s1` and `s2`, three tablets will be created, spanning the key ranges: `[, s1), [s1, s2), [s2, )`. Example: * Row keys := `["a", "apple", "custom", "customer_1", "customer_2",` `"other", "zz"]` * initial_split_keys := `["apple", "customer_1", "customer_2", "other"]` * Key assignment: - Tablet 1 `[, apple) => {"a"}.` - Tablet 2 `[apple, customer_1) => {"apple", "custom"}.` - Tablet 3 `[customer_1, customer_2) => {"customer_1"}.` - Tablet 4 `[customer_2, other) => {"customer_2"}.` - Tablet 5 `[other, ) => {"other", "zz"}.`
*/
@JvmName("bkrwwvptykaxydst")
public suspend fun initialSplits(vararg values: SplitArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.initialSplits = mapped
}
/**
* @param value
*/
@JvmName("iqbtetdrkvghmcde")
public suspend fun instanceId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.instanceId = mapped
}
/**
* @param value The unique name of the table. Values are of the form `projects/{project}/instances/{instance}/tables/_a-zA-Z0-9*`. Views: `NAME_ONLY`, `SCHEMA_VIEW`, `REPLICATION_VIEW`, `STATS_VIEW`, `FULL`
*/
@JvmName("djaoraclxxlxgbet")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value
*/
@JvmName("liabacblcqyxbado")
public suspend fun project(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.project = mapped
}
/**
* @param value Only available with STATS_VIEW, this includes summary statistics about the entire table contents. For statistics about a specific column family, see ColumnFamilyStats in the mapped ColumnFamily collection above.
*/
@JvmName("adaudvhwtttbfvvh")
public suspend fun stats(`value`: TableStatsArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.stats = mapped
}
/**
* @param argument Only available with STATS_VIEW, this includes summary statistics about the entire table contents. For statistics about a specific column family, see ColumnFamilyStats in the mapped ColumnFamily collection above.
*/
@JvmName("lnoxnppcfvjsugho")
public suspend fun stats(argument: suspend TableStatsArgsBuilder.() -> Unit) {
val toBeMapped = TableStatsArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.stats = mapped
}
/**
* @param value The name by which the new table should be referred to within the parent instance, e.g., `foobar` rather than `{parent}/tables/foobar`. Maximum 50 characters.
*/
@JvmName("aemxdnkkquxhbwrp")
public suspend fun tableId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tableId = mapped
}
internal fun build(): TableArgs = TableArgs(
columnFamilies = columnFamilies,
deletionProtection = deletionProtection,
granularity = granularity,
initialSplits = initialSplits,
instanceId = instanceId,
name = name,
project = project,
stats = stats,
tableId = tableId,
)
}