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

com.pulumi.awsnative.timestream.kotlin.inputs.SchemaPropertiesArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.timestream.kotlin.inputs

import com.pulumi.awsnative.timestream.inputs.SchemaPropertiesArgs.builder
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.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * A Schema specifies the expected data model of the table.
 * @property compositePartitionKey A non-empty list of partition keys defining the attributes used to partition the table data. The order of the list determines the partition hierarchy. The name and type of each partition key as well as the partition key order cannot be changed after the table is created. However, the enforcement level of each partition key can be changed.
 */
public data class SchemaPropertiesArgs(
    public val compositePartitionKey: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.timestream.inputs.SchemaPropertiesArgs =
        com.pulumi.awsnative.timestream.inputs.SchemaPropertiesArgs.builder()
            .compositePartitionKey(
                compositePartitionKey?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            ).build()
}

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

    /**
     * @param value A non-empty list of partition keys defining the attributes used to partition the table data. The order of the list determines the partition hierarchy. The name and type of each partition key as well as the partition key order cannot be changed after the table is created. However, the enforcement level of each partition key can be changed.
     */
    @JvmName("ifjthioppswqxsyu")
    public suspend fun compositePartitionKey(`value`: Output>) {
        this.compositePartitionKey = value
    }

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

    /**
     * @param values A non-empty list of partition keys defining the attributes used to partition the table data. The order of the list determines the partition hierarchy. The name and type of each partition key as well as the partition key order cannot be changed after the table is created. However, the enforcement level of each partition key can be changed.
     */
    @JvmName("kndybbrfcstaiefa")
    public suspend fun compositePartitionKey(values: List>) {
        this.compositePartitionKey = Output.all(values)
    }

    /**
     * @param value A non-empty list of partition keys defining the attributes used to partition the table data. The order of the list determines the partition hierarchy. The name and type of each partition key as well as the partition key order cannot be changed after the table is created. However, the enforcement level of each partition key can be changed.
     */
    @JvmName("uqdrpehjyuskxeuc")
    public suspend fun compositePartitionKey(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.compositePartitionKey = mapped
    }

    /**
     * @param argument A non-empty list of partition keys defining the attributes used to partition the table data. The order of the list determines the partition hierarchy. The name and type of each partition key as well as the partition key order cannot be changed after the table is created. However, the enforcement level of each partition key can be changed.
     */
    @JvmName("rucojeusnrkbhveh")
    public suspend fun compositePartitionKey(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            TablePartitionKeyArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.compositePartitionKey = mapped
    }

    /**
     * @param argument A non-empty list of partition keys defining the attributes used to partition the table data. The order of the list determines the partition hierarchy. The name and type of each partition key as well as the partition key order cannot be changed after the table is created. However, the enforcement level of each partition key can be changed.
     */
    @JvmName("xagpclsioddsbxot")
    public suspend fun compositePartitionKey(vararg argument: suspend TablePartitionKeyArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            TablePartitionKeyArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.compositePartitionKey = mapped
    }

    /**
     * @param argument A non-empty list of partition keys defining the attributes used to partition the table data. The order of the list determines the partition hierarchy. The name and type of each partition key as well as the partition key order cannot be changed after the table is created. However, the enforcement level of each partition key can be changed.
     */
    @JvmName("bywowqjgjwdwtmhv")
    public suspend fun compositePartitionKey(argument: suspend TablePartitionKeyArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TablePartitionKeyArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.compositePartitionKey = mapped
    }

    /**
     * @param values A non-empty list of partition keys defining the attributes used to partition the table data. The order of the list determines the partition hierarchy. The name and type of each partition key as well as the partition key order cannot be changed after the table is created. However, the enforcement level of each partition key can be changed.
     */
    @JvmName("drruxthetitdingm")
    public suspend fun compositePartitionKey(vararg values: TablePartitionKeyArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.compositePartitionKey = mapped
    }

    internal fun build(): SchemaPropertiesArgs = SchemaPropertiesArgs(
        compositePartitionKey = compositePartitionKey,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy