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

com.pulumi.awsnative.dynamodb.kotlin.outputs.TableKeySchema.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.dynamodb.kotlin.outputs

import kotlin.String
import kotlin.Suppress

/**
 * Represents *a single element* of a key schema. A key schema specifies the attributes that make up the primary key of a table, or the key attributes of an index.
 *  A ``KeySchemaElement`` represents exactly one attribute of the primary key. For example, a simple primary key would be represented by one ``KeySchemaElement`` (for the partition key). A composite primary key would require one ``KeySchemaElement`` for the partition key, and another ``KeySchemaElement`` for the sort key.
 *  A ``KeySchemaElement`` must be a scalar, top-level attribute (not a nested attribute). The data type must be one of String, Number, or Binary. The attribute cannot be nested within a List or a Map.
 * @property attributeName The name of a key attribute.
 * @property keyType The role that this key attribute will assume:
 *   +   ``HASH`` - partition key
 *   +   ``RANGE`` - sort key
 *   The partition key of an item is also known as its *hash attribute*. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.
 *  The sort key of an item is also known as its *range attribute*. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.
 */
public data class TableKeySchema(
    public val attributeName: String,
    public val keyType: String,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.awsnative.dynamodb.outputs.TableKeySchema): TableKeySchema = TableKeySchema(
            attributeName = javaType.attributeName(),
            keyType = javaType.keyType(),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy