/* * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.amazonaws.services.dynamodbv2.model; import java.io.Serializable; /** * <p> * Represents the properties of a table. * </p> */ public class TableDescription implements Serializable { /** * <p> * An array of <i>AttributeDefinition</i> objects. Each of these objects * describes one attribute in the table and index key schema. * </p> * <p> * Each <i>AttributeDefinition</i> object in this array is composed of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>AttributeType</i> - The data type for the attribute. * </p> * </li> * </ul> */ private java.util.List<AttributeDefinition> attributeDefinitions; /** * <p> * The name of the table. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>3 - 255<br/> * <b>Pattern: </b>[a-zA-Z0-9_.-]+<br/> */ private String tableName; /** * <p> * The primary key structure for the table. Each <i>KeySchemaElement</i> * consists of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>KeyType</i> - The role of the attribute: * </p> * <ul> * <li> * <p> * <code>HASH</code> - partition key * </p> * </li> * <li> * <p> * <code>RANGE</code> - sort key * </p> * </li> * </ul> * <note> * <p> * The partition key of an item is also known as its <i>hash attribute</i>. * The term "hash attribute" derives from DynamoDB' usage of an internal * hash function to evenly distribute data items across partitions, based on * their partition key values. * </p> * <p> * The sort key of an item is also known as its <i>range attribute</i>. 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. * </p> * </note></li> * </ul> * <p> * For more information about primary keys, see <a href= * "http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey" * >Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>. * </p> */ private java.util.List<KeySchemaElement> keySchema; /** * <p> * The current state of the table: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The table is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The table is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The table is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The table is ready for use. * </p> * </li> * </ul> * <p> * <b>Constraints:</b><br/> * <b>Allowed Values: </b>CREATING, UPDATING, DELETING, ACTIVE */ private String tableStatus; /** * <p> * The date and time when the table was created, in <a * href="http://www.epochconverter.com/">UNIX epoch time</a> format. * </p> */ private java.util.Date creationDateTime; /** * <p> * The provisioned throughput settings for the table, consisting of read and * write capacity units, along with data about increases and decreases. * </p> */ private ProvisionedThroughputDescription provisionedThroughput; /** * <p> * The total size of the specified table, in bytes. DynamoDB updates this * value approximately every six hours. Recent changes might not be * reflected in this value. * </p> */ private Long tableSizeBytes; /** * <p> * The number of items in the specified table. DynamoDB updates this value * approximately every six hours. Recent changes might not be reflected in * this value. * </p> */ private Long itemCount; /** * <p> * The Amazon Resource Name (ARN) that uniquely identifies the table. * </p> */ private String tableArn; /** * <p> * Represents one or more local secondary indexes on the table. Each index * is scoped to a given partition key value. Tables with one or more local * secondary indexes are subject to an item collection size limit, where the * amount of data within a given item collection cannot exceed 10 GB. Each * element is composed of: * </p> * <ul> * <li> * <p> * <i>IndexName</i> - The name of the local secondary index. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. The attribute * names in the key schema must be between 1 and 255 characters (inclusive). * The key schema must begin with the same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied (projected) from * the table into the index. These are in addition to the primary key * attributes and index key attributes, which are automatically projected. * Each attribute specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are projected * into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are projected * into the index. The list of projected attributes are in * <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected into the * index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key attribute names * that are projected into the secondary index. The total count of * attributes provided in <i>NonKeyAttributes</i>, summed across all of the * secondary indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct attributes when * determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - Represents the total size of the index, in bytes. * DynamoDB updates this value approximately every six hours. Recent changes * might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>ItemCount</i> - Represents the number of items in the index. DynamoDB * updates this value approximately every six hours. Recent changes might * not be reflected in this value. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no information about * indexes will be returned. * </p> */ private java.util.List<LocalSecondaryIndexDescription> localSecondaryIndexes; /** * <p> * The global secondary indexes, if any, on the table. Each index is scoped * to a given partition key value. Each element is composed of: * </p> * <ul> * <li> * <p> * <i>Backfilling</i> - If true, then the index is currently in the * backfilling phase. Backfilling occurs only when a new global secondary * index is added to the table; it is the process by which DynamoDB * populates the new index with data from the table. (This attribute does * not appear for indexes that were created during a <i>CreateTable</i> * operation.) * </p> * </li> * <li> * <p> * <i>IndexName</i> - The name of the global secondary index. * </p> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - The total size of the global secondary index, in * bytes. DynamoDB updates this value approximately every six hours. Recent * changes might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>IndexStatus</i> - The current status of the global secondary index: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The index is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The index is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The index is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The index is ready for use. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ItemCount</i> - The number of items in the global secondary index. * DynamoDB updates this value approximately every six hours. Recent changes * might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. The attribute * names in the key schema must be between 1 and 255 characters (inclusive). * The key schema must begin with the same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied (projected) from * the table into the index. These are in addition to the primary key * attributes and index key attributes, which are automatically projected. * Each attribute specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are projected * into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are projected * into the index. The list of projected attributes are in * <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected into the * index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key attribute names * that are projected into the secondary index. The total count of * attributes provided in <i>NonKeyAttributes</i>, summed across all of the * secondary indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct attributes when * determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ProvisionedThroughput</i> - The provisioned throughput settings for * the global secondary index, consisting of read and write capacity units, * along with data about increases and decreases. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no information about * indexes will be returned. * </p> */ private java.util.List<GlobalSecondaryIndexDescription> globalSecondaryIndexes; /** * <p> * The current DynamoDB Streams configuration for the table. * </p> */ private StreamSpecification streamSpecification; /** * <p> * A timestamp, in ISO 8601 format, for this stream. * </p> * <p> * Note that <i>LatestStreamLabel</i> is not a unique identifier for the * stream, because it is possible that a stream from another table might * have the same timestamp. However, the combination of the following three * elements is guaranteed to be unique: * </p> * <ul> * <li> * <p> * the AWS customer ID. * </p> * </li> * <li> * <p> * the table name. * </p> * </li> * <li> * <p> * the <i>StreamLabel</i>. * </p> * </li> * </ul> */ private String latestStreamLabel; /** * <p> * The Amazon Resource Name (ARN) that uniquely identifies the latest stream * for this table. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>37 - 1024<br/> */ private String latestStreamArn; /** * <p> * An array of <i>AttributeDefinition</i> objects. Each of these objects * describes one attribute in the table and index key schema. * </p> * <p> * Each <i>AttributeDefinition</i> object in this array is composed of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>AttributeType</i> - The data type for the attribute. * </p> * </li> * </ul> * * @return <p> * An array of <i>AttributeDefinition</i> objects. Each of these * objects describes one attribute in the table and index key * schema. * </p> * <p> * Each <i>AttributeDefinition</i> object in this array is composed * of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>AttributeType</i> - The data type for the attribute. * </p> * </li> * </ul> */ public java.util.List<AttributeDefinition> getAttributeDefinitions() { return attributeDefinitions; } /** * <p> * An array of <i>AttributeDefinition</i> objects. Each of these objects * describes one attribute in the table and index key schema. * </p> * <p> * Each <i>AttributeDefinition</i> object in this array is composed of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>AttributeType</i> - The data type for the attribute. * </p> * </li> * </ul> * * @param attributeDefinitions <p> * An array of <i>AttributeDefinition</i> objects. Each of these * objects describes one attribute in the table and index key * schema. * </p> * <p> * Each <i>AttributeDefinition</i> object in this array is * composed of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>AttributeType</i> - The data type for the attribute. * </p> * </li> * </ul> */ public void setAttributeDefinitions( java.util.Collection<AttributeDefinition> attributeDefinitions) { if (attributeDefinitions == null) { this.attributeDefinitions = null; return; } this.attributeDefinitions = new java.util.ArrayList<AttributeDefinition>( attributeDefinitions); } /** * <p> * An array of <i>AttributeDefinition</i> objects. Each of these objects * describes one attribute in the table and index key schema. * </p> * <p> * Each <i>AttributeDefinition</i> object in this array is composed of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>AttributeType</i> - The data type for the attribute. * </p> * </li> * </ul> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param attributeDefinitions <p> * An array of <i>AttributeDefinition</i> objects. Each of these * objects describes one attribute in the table and index key * schema. * </p> * <p> * Each <i>AttributeDefinition</i> object in this array is * composed of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>AttributeType</i> - The data type for the attribute. * </p> * </li> * </ul> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withAttributeDefinitions(AttributeDefinition... attributeDefinitions) { if (getAttributeDefinitions() == null) { this.attributeDefinitions = new java.util.ArrayList<AttributeDefinition>( attributeDefinitions.length); } for (AttributeDefinition value : attributeDefinitions) { this.attributeDefinitions.add(value); } return this; } /** * <p> * An array of <i>AttributeDefinition</i> objects. Each of these objects * describes one attribute in the table and index key schema. * </p> * <p> * Each <i>AttributeDefinition</i> object in this array is composed of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>AttributeType</i> - The data type for the attribute. * </p> * </li> * </ul> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param attributeDefinitions <p> * An array of <i>AttributeDefinition</i> objects. Each of these * objects describes one attribute in the table and index key * schema. * </p> * <p> * Each <i>AttributeDefinition</i> object in this array is * composed of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>AttributeType</i> - The data type for the attribute. * </p> * </li> * </ul> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withAttributeDefinitions( java.util.Collection<AttributeDefinition> attributeDefinitions) { setAttributeDefinitions(attributeDefinitions); return this; } /** * <p> * The name of the table. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>3 - 255<br/> * <b>Pattern: </b>[a-zA-Z0-9_.-]+<br/> * * @return <p> * The name of the table. * </p> */ public String getTableName() { return tableName; } /** * <p> * The name of the table. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>3 - 255<br/> * <b>Pattern: </b>[a-zA-Z0-9_.-]+<br/> * * @param tableName <p> * The name of the table. * </p> */ public void setTableName(String tableName) { this.tableName = tableName; } /** * <p> * The name of the table. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * <p> * <b>Constraints:</b><br/> * <b>Length: </b>3 - 255<br/> * <b>Pattern: </b>[a-zA-Z0-9_.-]+<br/> * * @param tableName <p> * The name of the table. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withTableName(String tableName) { this.tableName = tableName; return this; } /** * <p> * The primary key structure for the table. Each <i>KeySchemaElement</i> * consists of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>KeyType</i> - The role of the attribute: * </p> * <ul> * <li> * <p> * <code>HASH</code> - partition key * </p> * </li> * <li> * <p> * <code>RANGE</code> - sort key * </p> * </li> * </ul> * <note> * <p> * The partition key of an item is also known as its <i>hash attribute</i>. * The term "hash attribute" derives from DynamoDB' usage of an internal * hash function to evenly distribute data items across partitions, based on * their partition key values. * </p> * <p> * The sort key of an item is also known as its <i>range attribute</i>. 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. * </p> * </note></li> * </ul> * <p> * For more information about primary keys, see <a href= * "http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey" * >Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>. * </p> * * @return <p> * The primary key structure for the table. Each * <i>KeySchemaElement</i> consists of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>KeyType</i> - The role of the attribute: * </p> * <ul> * <li> * <p> * <code>HASH</code> - partition key * </p> * </li> * <li> * <p> * <code>RANGE</code> - sort key * </p> * </li> * </ul> * <note> * <p> * The partition key of an item is also known as its <i>hash * attribute</i>. The term "hash attribute" derives from DynamoDB' * usage of an internal hash function to evenly distribute data * items across partitions, based on their partition key values. * </p> * <p> * The sort key of an item is also known as its <i>range * attribute</i>. 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. * </p> * </note></li> * </ul> * <p> * For more information about primary keys, see <a href= * "http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey" * >Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>. * </p> */ public java.util.List<KeySchemaElement> getKeySchema() { return keySchema; } /** * <p> * The primary key structure for the table. Each <i>KeySchemaElement</i> * consists of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>KeyType</i> - The role of the attribute: * </p> * <ul> * <li> * <p> * <code>HASH</code> - partition key * </p> * </li> * <li> * <p> * <code>RANGE</code> - sort key * </p> * </li> * </ul> * <note> * <p> * The partition key of an item is also known as its <i>hash attribute</i>. * The term "hash attribute" derives from DynamoDB' usage of an internal * hash function to evenly distribute data items across partitions, based on * their partition key values. * </p> * <p> * The sort key of an item is also known as its <i>range attribute</i>. 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. * </p> * </note></li> * </ul> * <p> * For more information about primary keys, see <a href= * "http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey" * >Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>. * </p> * * @param keySchema <p> * The primary key structure for the table. Each * <i>KeySchemaElement</i> consists of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>KeyType</i> - The role of the attribute: * </p> * <ul> * <li> * <p> * <code>HASH</code> - partition key * </p> * </li> * <li> * <p> * <code>RANGE</code> - sort key * </p> * </li> * </ul> * <note> * <p> * The partition key of an item is also known as its <i>hash * attribute</i>. The term "hash attribute" derives from * DynamoDB' usage of an internal hash function to evenly * distribute data items across partitions, based on their * partition key values. * </p> * <p> * The sort key of an item is also known as its <i>range * attribute</i>. 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. * </p> * </note></li> * </ul> * <p> * For more information about primary keys, see <a href= * "http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey" * >Primary Key</a> in the <i>Amazon DynamoDB Developer * Guide</i>. * </p> */ public void setKeySchema(java.util.Collection<KeySchemaElement> keySchema) { if (keySchema == null) { this.keySchema = null; return; } this.keySchema = new java.util.ArrayList<KeySchemaElement>(keySchema); } /** * <p> * The primary key structure for the table. Each <i>KeySchemaElement</i> * consists of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>KeyType</i> - The role of the attribute: * </p> * <ul> * <li> * <p> * <code>HASH</code> - partition key * </p> * </li> * <li> * <p> * <code>RANGE</code> - sort key * </p> * </li> * </ul> * <note> * <p> * The partition key of an item is also known as its <i>hash attribute</i>. * The term "hash attribute" derives from DynamoDB' usage of an internal * hash function to evenly distribute data items across partitions, based on * their partition key values. * </p> * <p> * The sort key of an item is also known as its <i>range attribute</i>. 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. * </p> * </note></li> * </ul> * <p> * For more information about primary keys, see <a href= * "http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey" * >Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param keySchema <p> * The primary key structure for the table. Each * <i>KeySchemaElement</i> consists of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>KeyType</i> - The role of the attribute: * </p> * <ul> * <li> * <p> * <code>HASH</code> - partition key * </p> * </li> * <li> * <p> * <code>RANGE</code> - sort key * </p> * </li> * </ul> * <note> * <p> * The partition key of an item is also known as its <i>hash * attribute</i>. The term "hash attribute" derives from * DynamoDB' usage of an internal hash function to evenly * distribute data items across partitions, based on their * partition key values. * </p> * <p> * The sort key of an item is also known as its <i>range * attribute</i>. 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. * </p> * </note></li> * </ul> * <p> * For more information about primary keys, see <a href= * "http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey" * >Primary Key</a> in the <i>Amazon DynamoDB Developer * Guide</i>. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withKeySchema(KeySchemaElement... keySchema) { if (getKeySchema() == null) { this.keySchema = new java.util.ArrayList<KeySchemaElement>(keySchema.length); } for (KeySchemaElement value : keySchema) { this.keySchema.add(value); } return this; } /** * <p> * The primary key structure for the table. Each <i>KeySchemaElement</i> * consists of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>KeyType</i> - The role of the attribute: * </p> * <ul> * <li> * <p> * <code>HASH</code> - partition key * </p> * </li> * <li> * <p> * <code>RANGE</code> - sort key * </p> * </li> * </ul> * <note> * <p> * The partition key of an item is also known as its <i>hash attribute</i>. * The term "hash attribute" derives from DynamoDB' usage of an internal * hash function to evenly distribute data items across partitions, based on * their partition key values. * </p> * <p> * The sort key of an item is also known as its <i>range attribute</i>. 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. * </p> * </note></li> * </ul> * <p> * For more information about primary keys, see <a href= * "http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey" * >Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param keySchema <p> * The primary key structure for the table. Each * <i>KeySchemaElement</i> consists of: * </p> * <ul> * <li> * <p> * <i>AttributeName</i> - The name of the attribute. * </p> * </li> * <li> * <p> * <i>KeyType</i> - The role of the attribute: * </p> * <ul> * <li> * <p> * <code>HASH</code> - partition key * </p> * </li> * <li> * <p> * <code>RANGE</code> - sort key * </p> * </li> * </ul> * <note> * <p> * The partition key of an item is also known as its <i>hash * attribute</i>. The term "hash attribute" derives from * DynamoDB' usage of an internal hash function to evenly * distribute data items across partitions, based on their * partition key values. * </p> * <p> * The sort key of an item is also known as its <i>range * attribute</i>. 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. * </p> * </note></li> * </ul> * <p> * For more information about primary keys, see <a href= * "http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey" * >Primary Key</a> in the <i>Amazon DynamoDB Developer * Guide</i>. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withKeySchema(java.util.Collection<KeySchemaElement> keySchema) { setKeySchema(keySchema); return this; } /** * <p> * The current state of the table: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The table is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The table is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The table is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The table is ready for use. * </p> * </li> * </ul> * <p> * <b>Constraints:</b><br/> * <b>Allowed Values: </b>CREATING, UPDATING, DELETING, ACTIVE * * @return <p> * The current state of the table: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The table is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The table is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The table is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The table is ready for use. * </p> * </li> * </ul> * @see TableStatus */ public String getTableStatus() { return tableStatus; } /** * <p> * The current state of the table: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The table is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The table is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The table is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The table is ready for use. * </p> * </li> * </ul> * <p> * <b>Constraints:</b><br/> * <b>Allowed Values: </b>CREATING, UPDATING, DELETING, ACTIVE * * @param tableStatus <p> * The current state of the table: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The table is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The table is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The table is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The table is ready for use. * </p> * </li> * </ul> * @see TableStatus */ public void setTableStatus(String tableStatus) { this.tableStatus = tableStatus; } /** * <p> * The current state of the table: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The table is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The table is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The table is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The table is ready for use. * </p> * </li> * </ul> * <p> * Returns a reference to this object so that method calls can be chained * together. * <p> * <b>Constraints:</b><br/> * <b>Allowed Values: </b>CREATING, UPDATING, DELETING, ACTIVE * * @param tableStatus <p> * The current state of the table: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The table is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The table is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The table is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The table is ready for use. * </p> * </li> * </ul> * @return A reference to this updated object so that method calls can be * chained together. * @see TableStatus */ public TableDescription withTableStatus(String tableStatus) { this.tableStatus = tableStatus; return this; } /** * <p> * The current state of the table: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The table is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The table is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The table is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The table is ready for use. * </p> * </li> * </ul> * <p> * <b>Constraints:</b><br/> * <b>Allowed Values: </b>CREATING, UPDATING, DELETING, ACTIVE * * @param tableStatus <p> * The current state of the table: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The table is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The table is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The table is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The table is ready for use. * </p> * </li> * </ul> * @see TableStatus */ public void setTableStatus(TableStatus tableStatus) { this.tableStatus = tableStatus.toString(); } /** * <p> * The current state of the table: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The table is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The table is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The table is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The table is ready for use. * </p> * </li> * </ul> * <p> * Returns a reference to this object so that method calls can be chained * together. * <p> * <b>Constraints:</b><br/> * <b>Allowed Values: </b>CREATING, UPDATING, DELETING, ACTIVE * * @param tableStatus <p> * The current state of the table: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The table is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The table is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The table is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The table is ready for use. * </p> * </li> * </ul> * @return A reference to this updated object so that method calls can be * chained together. * @see TableStatus */ public TableDescription withTableStatus(TableStatus tableStatus) { this.tableStatus = tableStatus.toString(); return this; } /** * <p> * The date and time when the table was created, in <a * href="http://www.epochconverter.com/">UNIX epoch time</a> format. * </p> * * @return <p> * The date and time when the table was created, in <a * href="http://www.epochconverter.com/">UNIX epoch time</a> format. * </p> */ public java.util.Date getCreationDateTime() { return creationDateTime; } /** * <p> * The date and time when the table was created, in <a * href="http://www.epochconverter.com/">UNIX epoch time</a> format. * </p> * * @param creationDateTime <p> * The date and time when the table was created, in <a * href="http://www.epochconverter.com/">UNIX epoch time</a> * format. * </p> */ public void setCreationDateTime(java.util.Date creationDateTime) { this.creationDateTime = creationDateTime; } /** * <p> * The date and time when the table was created, in <a * href="http://www.epochconverter.com/">UNIX epoch time</a> format. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param creationDateTime <p> * The date and time when the table was created, in <a * href="http://www.epochconverter.com/">UNIX epoch time</a> * format. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withCreationDateTime(java.util.Date creationDateTime) { this.creationDateTime = creationDateTime; return this; } /** * <p> * The provisioned throughput settings for the table, consisting of read and * write capacity units, along with data about increases and decreases. * </p> * * @return <p> * The provisioned throughput settings for the table, consisting of * read and write capacity units, along with data about increases * and decreases. * </p> */ public ProvisionedThroughputDescription getProvisionedThroughput() { return provisionedThroughput; } /** * <p> * The provisioned throughput settings for the table, consisting of read and * write capacity units, along with data about increases and decreases. * </p> * * @param provisionedThroughput <p> * The provisioned throughput settings for the table, consisting * of read and write capacity units, along with data about * increases and decreases. * </p> */ public void setProvisionedThroughput(ProvisionedThroughputDescription provisionedThroughput) { this.provisionedThroughput = provisionedThroughput; } /** * <p> * The provisioned throughput settings for the table, consisting of read and * write capacity units, along with data about increases and decreases. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param provisionedThroughput <p> * The provisioned throughput settings for the table, consisting * of read and write capacity units, along with data about * increases and decreases. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withProvisionedThroughput( ProvisionedThroughputDescription provisionedThroughput) { this.provisionedThroughput = provisionedThroughput; return this; } /** * <p> * The total size of the specified table, in bytes. DynamoDB updates this * value approximately every six hours. Recent changes might not be * reflected in this value. * </p> * * @return <p> * The total size of the specified table, in bytes. DynamoDB updates * this value approximately every six hours. Recent changes might * not be reflected in this value. * </p> */ public Long getTableSizeBytes() { return tableSizeBytes; } /** * <p> * The total size of the specified table, in bytes. DynamoDB updates this * value approximately every six hours. Recent changes might not be * reflected in this value. * </p> * * @param tableSizeBytes <p> * The total size of the specified table, in bytes. DynamoDB * updates this value approximately every six hours. Recent * changes might not be reflected in this value. * </p> */ public void setTableSizeBytes(Long tableSizeBytes) { this.tableSizeBytes = tableSizeBytes; } /** * <p> * The total size of the specified table, in bytes. DynamoDB updates this * value approximately every six hours. Recent changes might not be * reflected in this value. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param tableSizeBytes <p> * The total size of the specified table, in bytes. DynamoDB * updates this value approximately every six hours. Recent * changes might not be reflected in this value. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withTableSizeBytes(Long tableSizeBytes) { this.tableSizeBytes = tableSizeBytes; return this; } /** * <p> * The number of items in the specified table. DynamoDB updates this value * approximately every six hours. Recent changes might not be reflected in * this value. * </p> * * @return <p> * The number of items in the specified table. DynamoDB updates this * value approximately every six hours. Recent changes might not be * reflected in this value. * </p> */ public Long getItemCount() { return itemCount; } /** * <p> * The number of items in the specified table. DynamoDB updates this value * approximately every six hours. Recent changes might not be reflected in * this value. * </p> * * @param itemCount <p> * The number of items in the specified table. DynamoDB updates * this value approximately every six hours. Recent changes might * not be reflected in this value. * </p> */ public void setItemCount(Long itemCount) { this.itemCount = itemCount; } /** * <p> * The number of items in the specified table. DynamoDB updates this value * approximately every six hours. Recent changes might not be reflected in * this value. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param itemCount <p> * The number of items in the specified table. DynamoDB updates * this value approximately every six hours. Recent changes might * not be reflected in this value. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withItemCount(Long itemCount) { this.itemCount = itemCount; return this; } /** * <p> * The Amazon Resource Name (ARN) that uniquely identifies the table. * </p> * * @return <p> * The Amazon Resource Name (ARN) that uniquely identifies the * table. * </p> */ public String getTableArn() { return tableArn; } /** * <p> * The Amazon Resource Name (ARN) that uniquely identifies the table. * </p> * * @param tableArn <p> * The Amazon Resource Name (ARN) that uniquely identifies the * table. * </p> */ public void setTableArn(String tableArn) { this.tableArn = tableArn; } /** * <p> * The Amazon Resource Name (ARN) that uniquely identifies the table. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param tableArn <p> * The Amazon Resource Name (ARN) that uniquely identifies the * table. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withTableArn(String tableArn) { this.tableArn = tableArn; return this; } /** * <p> * Represents one or more local secondary indexes on the table. Each index * is scoped to a given partition key value. Tables with one or more local * secondary indexes are subject to an item collection size limit, where the * amount of data within a given item collection cannot exceed 10 GB. Each * element is composed of: * </p> * <ul> * <li> * <p> * <i>IndexName</i> - The name of the local secondary index. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. The attribute * names in the key schema must be between 1 and 255 characters (inclusive). * The key schema must begin with the same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied (projected) from * the table into the index. These are in addition to the primary key * attributes and index key attributes, which are automatically projected. * Each attribute specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are projected * into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are projected * into the index. The list of projected attributes are in * <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected into the * index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key attribute names * that are projected into the secondary index. The total count of * attributes provided in <i>NonKeyAttributes</i>, summed across all of the * secondary indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct attributes when * determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - Represents the total size of the index, in bytes. * DynamoDB updates this value approximately every six hours. Recent changes * might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>ItemCount</i> - Represents the number of items in the index. DynamoDB * updates this value approximately every six hours. Recent changes might * not be reflected in this value. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no information about * indexes will be returned. * </p> * * @return <p> * Represents one or more local secondary indexes on the table. Each * index is scoped to a given partition key value. Tables with one * or more local secondary indexes are subject to an item collection * size limit, where the amount of data within a given item * collection cannot exceed 10 GB. Each element is composed of: * </p> * <ul> * <li> * <p> * <i>IndexName</i> - The name of the local secondary index. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. The * attribute names in the key schema must be between 1 and 255 * characters (inclusive). The key schema must begin with the same * partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied * (projected) from the table into the index. These are in addition * to the primary key attributes and index key attributes, which are * automatically projected. Each attribute specification is composed * of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are * projected into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are * projected into the index. The list of projected attributes are in * <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected into * the index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key attribute * names that are projected into the secondary index. The total * count of attributes provided in <i>NonKeyAttributes</i>, summed * across all of the secondary indexes, must not exceed 20. If you * project the same attribute into two different indexes, this * counts as two distinct attributes when determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - Represents the total size of the index, * in bytes. DynamoDB updates this value approximately every six * hours. Recent changes might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>ItemCount</i> - Represents the number of items in the index. * DynamoDB updates this value approximately every six hours. Recent * changes might not be reflected in this value. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no * information about indexes will be returned. * </p> */ public java.util.List<LocalSecondaryIndexDescription> getLocalSecondaryIndexes() { return localSecondaryIndexes; } /** * <p> * Represents one or more local secondary indexes on the table. Each index * is scoped to a given partition key value. Tables with one or more local * secondary indexes are subject to an item collection size limit, where the * amount of data within a given item collection cannot exceed 10 GB. Each * element is composed of: * </p> * <ul> * <li> * <p> * <i>IndexName</i> - The name of the local secondary index. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. The attribute * names in the key schema must be between 1 and 255 characters (inclusive). * The key schema must begin with the same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied (projected) from * the table into the index. These are in addition to the primary key * attributes and index key attributes, which are automatically projected. * Each attribute specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are projected * into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are projected * into the index. The list of projected attributes are in * <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected into the * index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key attribute names * that are projected into the secondary index. The total count of * attributes provided in <i>NonKeyAttributes</i>, summed across all of the * secondary indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct attributes when * determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - Represents the total size of the index, in bytes. * DynamoDB updates this value approximately every six hours. Recent changes * might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>ItemCount</i> - Represents the number of items in the index. DynamoDB * updates this value approximately every six hours. Recent changes might * not be reflected in this value. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no information about * indexes will be returned. * </p> * * @param localSecondaryIndexes <p> * Represents one or more local secondary indexes on the table. * Each index is scoped to a given partition key value. Tables * with one or more local secondary indexes are subject to an * item collection size limit, where the amount of data within a * given item collection cannot exceed 10 GB. Each element is * composed of: * </p> * <ul> * <li> * <p> * <i>IndexName</i> - The name of the local secondary index. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. * The attribute names in the key schema must be between 1 and * 255 characters (inclusive). The key schema must begin with the * same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied * (projected) from the table into the index. These are in * addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are * projected into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are * projected into the index. The list of projected attributes are * in <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected * into the index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key * attribute names that are projected into the secondary index. * The total count of attributes provided in * <i>NonKeyAttributes</i>, summed across all of the secondary * indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct * attributes when determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - Represents the total size of the * index, in bytes. DynamoDB updates this value approximately * every six hours. Recent changes might not be reflected in this * value. * </p> * </li> * <li> * <p> * <i>ItemCount</i> - Represents the number of items in the * index. DynamoDB updates this value approximately every six * hours. Recent changes might not be reflected in this value. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no * information about indexes will be returned. * </p> */ public void setLocalSecondaryIndexes( java.util.Collection<LocalSecondaryIndexDescription> localSecondaryIndexes) { if (localSecondaryIndexes == null) { this.localSecondaryIndexes = null; return; } this.localSecondaryIndexes = new java.util.ArrayList<LocalSecondaryIndexDescription>( localSecondaryIndexes); } /** * <p> * Represents one or more local secondary indexes on the table. Each index * is scoped to a given partition key value. Tables with one or more local * secondary indexes are subject to an item collection size limit, where the * amount of data within a given item collection cannot exceed 10 GB. Each * element is composed of: * </p> * <ul> * <li> * <p> * <i>IndexName</i> - The name of the local secondary index. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. The attribute * names in the key schema must be between 1 and 255 characters (inclusive). * The key schema must begin with the same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied (projected) from * the table into the index. These are in addition to the primary key * attributes and index key attributes, which are automatically projected. * Each attribute specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are projected * into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are projected * into the index. The list of projected attributes are in * <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected into the * index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key attribute names * that are projected into the secondary index. The total count of * attributes provided in <i>NonKeyAttributes</i>, summed across all of the * secondary indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct attributes when * determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - Represents the total size of the index, in bytes. * DynamoDB updates this value approximately every six hours. Recent changes * might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>ItemCount</i> - Represents the number of items in the index. DynamoDB * updates this value approximately every six hours. Recent changes might * not be reflected in this value. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no information about * indexes will be returned. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param localSecondaryIndexes <p> * Represents one or more local secondary indexes on the table. * Each index is scoped to a given partition key value. Tables * with one or more local secondary indexes are subject to an * item collection size limit, where the amount of data within a * given item collection cannot exceed 10 GB. Each element is * composed of: * </p> * <ul> * <li> * <p> * <i>IndexName</i> - The name of the local secondary index. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. * The attribute names in the key schema must be between 1 and * 255 characters (inclusive). The key schema must begin with the * same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied * (projected) from the table into the index. These are in * addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are * projected into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are * projected into the index. The list of projected attributes are * in <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected * into the index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key * attribute names that are projected into the secondary index. * The total count of attributes provided in * <i>NonKeyAttributes</i>, summed across all of the secondary * indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct * attributes when determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - Represents the total size of the * index, in bytes. DynamoDB updates this value approximately * every six hours. Recent changes might not be reflected in this * value. * </p> * </li> * <li> * <p> * <i>ItemCount</i> - Represents the number of items in the * index. DynamoDB updates this value approximately every six * hours. Recent changes might not be reflected in this value. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no * information about indexes will be returned. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withLocalSecondaryIndexes( LocalSecondaryIndexDescription... localSecondaryIndexes) { if (getLocalSecondaryIndexes() == null) { this.localSecondaryIndexes = new java.util.ArrayList<LocalSecondaryIndexDescription>( localSecondaryIndexes.length); } for (LocalSecondaryIndexDescription value : localSecondaryIndexes) { this.localSecondaryIndexes.add(value); } return this; } /** * <p> * Represents one or more local secondary indexes on the table. Each index * is scoped to a given partition key value. Tables with one or more local * secondary indexes are subject to an item collection size limit, where the * amount of data within a given item collection cannot exceed 10 GB. Each * element is composed of: * </p> * <ul> * <li> * <p> * <i>IndexName</i> - The name of the local secondary index. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. The attribute * names in the key schema must be between 1 and 255 characters (inclusive). * The key schema must begin with the same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied (projected) from * the table into the index. These are in addition to the primary key * attributes and index key attributes, which are automatically projected. * Each attribute specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are projected * into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are projected * into the index. The list of projected attributes are in * <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected into the * index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key attribute names * that are projected into the secondary index. The total count of * attributes provided in <i>NonKeyAttributes</i>, summed across all of the * secondary indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct attributes when * determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - Represents the total size of the index, in bytes. * DynamoDB updates this value approximately every six hours. Recent changes * might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>ItemCount</i> - Represents the number of items in the index. DynamoDB * updates this value approximately every six hours. Recent changes might * not be reflected in this value. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no information about * indexes will be returned. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param localSecondaryIndexes <p> * Represents one or more local secondary indexes on the table. * Each index is scoped to a given partition key value. Tables * with one or more local secondary indexes are subject to an * item collection size limit, where the amount of data within a * given item collection cannot exceed 10 GB. Each element is * composed of: * </p> * <ul> * <li> * <p> * <i>IndexName</i> - The name of the local secondary index. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. * The attribute names in the key schema must be between 1 and * 255 characters (inclusive). The key schema must begin with the * same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied * (projected) from the table into the index. These are in * addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are * projected into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are * projected into the index. The list of projected attributes are * in <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected * into the index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key * attribute names that are projected into the secondary index. * The total count of attributes provided in * <i>NonKeyAttributes</i>, summed across all of the secondary * indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct * attributes when determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - Represents the total size of the * index, in bytes. DynamoDB updates this value approximately * every six hours. Recent changes might not be reflected in this * value. * </p> * </li> * <li> * <p> * <i>ItemCount</i> - Represents the number of items in the * index. DynamoDB updates this value approximately every six * hours. Recent changes might not be reflected in this value. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no * information about indexes will be returned. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withLocalSecondaryIndexes( java.util.Collection<LocalSecondaryIndexDescription> localSecondaryIndexes) { setLocalSecondaryIndexes(localSecondaryIndexes); return this; } /** * <p> * The global secondary indexes, if any, on the table. Each index is scoped * to a given partition key value. Each element is composed of: * </p> * <ul> * <li> * <p> * <i>Backfilling</i> - If true, then the index is currently in the * backfilling phase. Backfilling occurs only when a new global secondary * index is added to the table; it is the process by which DynamoDB * populates the new index with data from the table. (This attribute does * not appear for indexes that were created during a <i>CreateTable</i> * operation.) * </p> * </li> * <li> * <p> * <i>IndexName</i> - The name of the global secondary index. * </p> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - The total size of the global secondary index, in * bytes. DynamoDB updates this value approximately every six hours. Recent * changes might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>IndexStatus</i> - The current status of the global secondary index: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The index is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The index is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The index is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The index is ready for use. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ItemCount</i> - The number of items in the global secondary index. * DynamoDB updates this value approximately every six hours. Recent changes * might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. The attribute * names in the key schema must be between 1 and 255 characters (inclusive). * The key schema must begin with the same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied (projected) from * the table into the index. These are in addition to the primary key * attributes and index key attributes, which are automatically projected. * Each attribute specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are projected * into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are projected * into the index. The list of projected attributes are in * <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected into the * index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key attribute names * that are projected into the secondary index. The total count of * attributes provided in <i>NonKeyAttributes</i>, summed across all of the * secondary indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct attributes when * determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ProvisionedThroughput</i> - The provisioned throughput settings for * the global secondary index, consisting of read and write capacity units, * along with data about increases and decreases. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no information about * indexes will be returned. * </p> * * @return <p> * The global secondary indexes, if any, on the table. Each index is * scoped to a given partition key value. Each element is composed * of: * </p> * <ul> * <li> * <p> * <i>Backfilling</i> - If true, then the index is currently in the * backfilling phase. Backfilling occurs only when a new global * secondary index is added to the table; it is the process by which * DynamoDB populates the new index with data from the table. (This * attribute does not appear for indexes that were created during a * <i>CreateTable</i> operation.) * </p> * </li> * <li> * <p> * <i>IndexName</i> - The name of the global secondary index. * </p> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - The total size of the global secondary * index, in bytes. DynamoDB updates this value approximately every * six hours. Recent changes might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>IndexStatus</i> - The current status of the global secondary * index: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The index is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The index is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The index is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The index is ready for use. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ItemCount</i> - The number of items in the global secondary * index. DynamoDB updates this value approximately every six hours. * Recent changes might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. The * attribute names in the key schema must be between 1 and 255 * characters (inclusive). The key schema must begin with the same * partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied * (projected) from the table into the index. These are in addition * to the primary key attributes and index key attributes, which are * automatically projected. Each attribute specification is composed * of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are * projected into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are * projected into the index. The list of projected attributes are in * <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected into * the index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key attribute * names that are projected into the secondary index. The total * count of attributes provided in <i>NonKeyAttributes</i>, summed * across all of the secondary indexes, must not exceed 20. If you * project the same attribute into two different indexes, this * counts as two distinct attributes when determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ProvisionedThroughput</i> - The provisioned throughput * settings for the global secondary index, consisting of read and * write capacity units, along with data about increases and * decreases. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no * information about indexes will be returned. * </p> */ public java.util.List<GlobalSecondaryIndexDescription> getGlobalSecondaryIndexes() { return globalSecondaryIndexes; } /** * <p> * The global secondary indexes, if any, on the table. Each index is scoped * to a given partition key value. Each element is composed of: * </p> * <ul> * <li> * <p> * <i>Backfilling</i> - If true, then the index is currently in the * backfilling phase. Backfilling occurs only when a new global secondary * index is added to the table; it is the process by which DynamoDB * populates the new index with data from the table. (This attribute does * not appear for indexes that were created during a <i>CreateTable</i> * operation.) * </p> * </li> * <li> * <p> * <i>IndexName</i> - The name of the global secondary index. * </p> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - The total size of the global secondary index, in * bytes. DynamoDB updates this value approximately every six hours. Recent * changes might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>IndexStatus</i> - The current status of the global secondary index: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The index is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The index is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The index is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The index is ready for use. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ItemCount</i> - The number of items in the global secondary index. * DynamoDB updates this value approximately every six hours. Recent changes * might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. The attribute * names in the key schema must be between 1 and 255 characters (inclusive). * The key schema must begin with the same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied (projected) from * the table into the index. These are in addition to the primary key * attributes and index key attributes, which are automatically projected. * Each attribute specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are projected * into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are projected * into the index. The list of projected attributes are in * <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected into the * index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key attribute names * that are projected into the secondary index. The total count of * attributes provided in <i>NonKeyAttributes</i>, summed across all of the * secondary indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct attributes when * determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ProvisionedThroughput</i> - The provisioned throughput settings for * the global secondary index, consisting of read and write capacity units, * along with data about increases and decreases. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no information about * indexes will be returned. * </p> * * @param globalSecondaryIndexes <p> * The global secondary indexes, if any, on the table. Each index * is scoped to a given partition key value. Each element is * composed of: * </p> * <ul> * <li> * <p> * <i>Backfilling</i> - If true, then the index is currently in * the backfilling phase. Backfilling occurs only when a new * global secondary index is added to the table; it is the * process by which DynamoDB populates the new index with data * from the table. (This attribute does not appear for indexes * that were created during a <i>CreateTable</i> operation.) * </p> * </li> * <li> * <p> * <i>IndexName</i> - The name of the global secondary index. * </p> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - The total size of the global secondary * index, in bytes. DynamoDB updates this value approximately * every six hours. Recent changes might not be reflected in this * value. * </p> * </li> * <li> * <p> * <i>IndexStatus</i> - The current status of the global * secondary index: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The index is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The index is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The index is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The index is ready for use. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ItemCount</i> - The number of items in the global secondary * index. DynamoDB updates this value approximately every six * hours. Recent changes might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. * The attribute names in the key schema must be between 1 and * 255 characters (inclusive). The key schema must begin with the * same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied * (projected) from the table into the index. These are in * addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are * projected into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are * projected into the index. The list of projected attributes are * in <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected * into the index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key * attribute names that are projected into the secondary index. * The total count of attributes provided in * <i>NonKeyAttributes</i>, summed across all of the secondary * indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct * attributes when determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ProvisionedThroughput</i> - The provisioned throughput * settings for the global secondary index, consisting of read * and write capacity units, along with data about increases and * decreases. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no * information about indexes will be returned. * </p> */ public void setGlobalSecondaryIndexes( java.util.Collection<GlobalSecondaryIndexDescription> globalSecondaryIndexes) { if (globalSecondaryIndexes == null) { this.globalSecondaryIndexes = null; return; } this.globalSecondaryIndexes = new java.util.ArrayList<GlobalSecondaryIndexDescription>( globalSecondaryIndexes); } /** * <p> * The global secondary indexes, if any, on the table. Each index is scoped * to a given partition key value. Each element is composed of: * </p> * <ul> * <li> * <p> * <i>Backfilling</i> - If true, then the index is currently in the * backfilling phase. Backfilling occurs only when a new global secondary * index is added to the table; it is the process by which DynamoDB * populates the new index with data from the table. (This attribute does * not appear for indexes that were created during a <i>CreateTable</i> * operation.) * </p> * </li> * <li> * <p> * <i>IndexName</i> - The name of the global secondary index. * </p> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - The total size of the global secondary index, in * bytes. DynamoDB updates this value approximately every six hours. Recent * changes might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>IndexStatus</i> - The current status of the global secondary index: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The index is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The index is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The index is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The index is ready for use. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ItemCount</i> - The number of items in the global secondary index. * DynamoDB updates this value approximately every six hours. Recent changes * might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. The attribute * names in the key schema must be between 1 and 255 characters (inclusive). * The key schema must begin with the same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied (projected) from * the table into the index. These are in addition to the primary key * attributes and index key attributes, which are automatically projected. * Each attribute specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are projected * into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are projected * into the index. The list of projected attributes are in * <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected into the * index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key attribute names * that are projected into the secondary index. The total count of * attributes provided in <i>NonKeyAttributes</i>, summed across all of the * secondary indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct attributes when * determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ProvisionedThroughput</i> - The provisioned throughput settings for * the global secondary index, consisting of read and write capacity units, * along with data about increases and decreases. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no information about * indexes will be returned. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param globalSecondaryIndexes <p> * The global secondary indexes, if any, on the table. Each index * is scoped to a given partition key value. Each element is * composed of: * </p> * <ul> * <li> * <p> * <i>Backfilling</i> - If true, then the index is currently in * the backfilling phase. Backfilling occurs only when a new * global secondary index is added to the table; it is the * process by which DynamoDB populates the new index with data * from the table. (This attribute does not appear for indexes * that were created during a <i>CreateTable</i> operation.) * </p> * </li> * <li> * <p> * <i>IndexName</i> - The name of the global secondary index. * </p> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - The total size of the global secondary * index, in bytes. DynamoDB updates this value approximately * every six hours. Recent changes might not be reflected in this * value. * </p> * </li> * <li> * <p> * <i>IndexStatus</i> - The current status of the global * secondary index: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The index is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The index is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The index is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The index is ready for use. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ItemCount</i> - The number of items in the global secondary * index. DynamoDB updates this value approximately every six * hours. Recent changes might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. * The attribute names in the key schema must be between 1 and * 255 characters (inclusive). The key schema must begin with the * same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied * (projected) from the table into the index. These are in * addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are * projected into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are * projected into the index. The list of projected attributes are * in <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected * into the index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key * attribute names that are projected into the secondary index. * The total count of attributes provided in * <i>NonKeyAttributes</i>, summed across all of the secondary * indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct * attributes when determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ProvisionedThroughput</i> - The provisioned throughput * settings for the global secondary index, consisting of read * and write capacity units, along with data about increases and * decreases. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no * information about indexes will be returned. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withGlobalSecondaryIndexes( GlobalSecondaryIndexDescription... globalSecondaryIndexes) { if (getGlobalSecondaryIndexes() == null) { this.globalSecondaryIndexes = new java.util.ArrayList<GlobalSecondaryIndexDescription>( globalSecondaryIndexes.length); } for (GlobalSecondaryIndexDescription value : globalSecondaryIndexes) { this.globalSecondaryIndexes.add(value); } return this; } /** * <p> * The global secondary indexes, if any, on the table. Each index is scoped * to a given partition key value. Each element is composed of: * </p> * <ul> * <li> * <p> * <i>Backfilling</i> - If true, then the index is currently in the * backfilling phase. Backfilling occurs only when a new global secondary * index is added to the table; it is the process by which DynamoDB * populates the new index with data from the table. (This attribute does * not appear for indexes that were created during a <i>CreateTable</i> * operation.) * </p> * </li> * <li> * <p> * <i>IndexName</i> - The name of the global secondary index. * </p> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - The total size of the global secondary index, in * bytes. DynamoDB updates this value approximately every six hours. Recent * changes might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>IndexStatus</i> - The current status of the global secondary index: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The index is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The index is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The index is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The index is ready for use. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ItemCount</i> - The number of items in the global secondary index. * DynamoDB updates this value approximately every six hours. Recent changes * might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. The attribute * names in the key schema must be between 1 and 255 characters (inclusive). * The key schema must begin with the same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied (projected) from * the table into the index. These are in addition to the primary key * attributes and index key attributes, which are automatically projected. * Each attribute specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are projected * into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are projected * into the index. The list of projected attributes are in * <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected into the * index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key attribute names * that are projected into the secondary index. The total count of * attributes provided in <i>NonKeyAttributes</i>, summed across all of the * secondary indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct attributes when * determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ProvisionedThroughput</i> - The provisioned throughput settings for * the global secondary index, consisting of read and write capacity units, * along with data about increases and decreases. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no information about * indexes will be returned. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param globalSecondaryIndexes <p> * The global secondary indexes, if any, on the table. Each index * is scoped to a given partition key value. Each element is * composed of: * </p> * <ul> * <li> * <p> * <i>Backfilling</i> - If true, then the index is currently in * the backfilling phase. Backfilling occurs only when a new * global secondary index is added to the table; it is the * process by which DynamoDB populates the new index with data * from the table. (This attribute does not appear for indexes * that were created during a <i>CreateTable</i> operation.) * </p> * </li> * <li> * <p> * <i>IndexName</i> - The name of the global secondary index. * </p> * </li> * <li> * <p> * <i>IndexSizeBytes</i> - The total size of the global secondary * index, in bytes. DynamoDB updates this value approximately * every six hours. Recent changes might not be reflected in this * value. * </p> * </li> * <li> * <p> * <i>IndexStatus</i> - The current status of the global * secondary index: * </p> * <ul> * <li> * <p> * <i>CREATING</i> - The index is being created. * </p> * </li> * <li> * <p> * <i>UPDATING</i> - The index is being updated. * </p> * </li> * <li> * <p> * <i>DELETING</i> - The index is being deleted. * </p> * </li> * <li> * <p> * <i>ACTIVE</i> - The index is ready for use. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ItemCount</i> - The number of items in the global secondary * index. DynamoDB updates this value approximately every six * hours. Recent changes might not be reflected in this value. * </p> * </li> * <li> * <p> * <i>KeySchema</i> - Specifies the complete index key schema. * The attribute names in the key schema must be between 1 and * 255 characters (inclusive). The key schema must begin with the * same partition key as the table. * </p> * </li> * <li> * <p> * <i>Projection</i> - Specifies attributes that are copied * (projected) from the table into the index. These are in * addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of: * </p> * <ul> * <li> * <p> * <i>ProjectionType</i> - One of the following: * </p> * <ul> * <li> * <p> * <code>KEYS_ONLY</code> - Only the index and primary keys are * projected into the index. * </p> * </li> * <li> * <p> * <code>INCLUDE</code> - Only the specified table attributes are * projected into the index. The list of projected attributes are * in <i>NonKeyAttributes</i>. * </p> * </li> * <li> * <p> * <code>ALL</code> - All of the table attributes are projected * into the index. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>NonKeyAttributes</i> - A list of one or more non-key * attribute names that are projected into the secondary index. * The total count of attributes provided in * <i>NonKeyAttributes</i>, summed across all of the secondary * indexes, must not exceed 20. If you project the same attribute * into two different indexes, this counts as two distinct * attributes when determining the total. * </p> * </li> * </ul> * </li> * <li> * <p> * <i>ProvisionedThroughput</i> - The provisioned throughput * settings for the global secondary index, consisting of read * and write capacity units, along with data about increases and * decreases. * </p> * </li> * </ul> * <p> * If the table is in the <code>DELETING</code> state, no * information about indexes will be returned. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withGlobalSecondaryIndexes( java.util.Collection<GlobalSecondaryIndexDescription> globalSecondaryIndexes) { setGlobalSecondaryIndexes(globalSecondaryIndexes); return this; } /** * <p> * The current DynamoDB Streams configuration for the table. * </p> * * @return <p> * The current DynamoDB Streams configuration for the table. * </p> */ public StreamSpecification getStreamSpecification() { return streamSpecification; } /** * <p> * The current DynamoDB Streams configuration for the table. * </p> * * @param streamSpecification <p> * The current DynamoDB Streams configuration for the table. * </p> */ public void setStreamSpecification(StreamSpecification streamSpecification) { this.streamSpecification = streamSpecification; } /** * <p> * The current DynamoDB Streams configuration for the table. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param streamSpecification <p> * The current DynamoDB Streams configuration for the table. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withStreamSpecification(StreamSpecification streamSpecification) { this.streamSpecification = streamSpecification; return this; } /** * <p> * A timestamp, in ISO 8601 format, for this stream. * </p> * <p> * Note that <i>LatestStreamLabel</i> is not a unique identifier for the * stream, because it is possible that a stream from another table might * have the same timestamp. However, the combination of the following three * elements is guaranteed to be unique: * </p> * <ul> * <li> * <p> * the AWS customer ID. * </p> * </li> * <li> * <p> * the table name. * </p> * </li> * <li> * <p> * the <i>StreamLabel</i>. * </p> * </li> * </ul> * * @return <p> * A timestamp, in ISO 8601 format, for this stream. * </p> * <p> * Note that <i>LatestStreamLabel</i> is not a unique identifier for * the stream, because it is possible that a stream from another * table might have the same timestamp. However, the combination of * the following three elements is guaranteed to be unique: * </p> * <ul> * <li> * <p> * the AWS customer ID. * </p> * </li> * <li> * <p> * the table name. * </p> * </li> * <li> * <p> * the <i>StreamLabel</i>. * </p> * </li> * </ul> */ public String getLatestStreamLabel() { return latestStreamLabel; } /** * <p> * A timestamp, in ISO 8601 format, for this stream. * </p> * <p> * Note that <i>LatestStreamLabel</i> is not a unique identifier for the * stream, because it is possible that a stream from another table might * have the same timestamp. However, the combination of the following three * elements is guaranteed to be unique: * </p> * <ul> * <li> * <p> * the AWS customer ID. * </p> * </li> * <li> * <p> * the table name. * </p> * </li> * <li> * <p> * the <i>StreamLabel</i>. * </p> * </li> * </ul> * * @param latestStreamLabel <p> * A timestamp, in ISO 8601 format, for this stream. * </p> * <p> * Note that <i>LatestStreamLabel</i> is not a unique identifier * for the stream, because it is possible that a stream from * another table might have the same timestamp. However, the * combination of the following three elements is guaranteed to * be unique: * </p> * <ul> * <li> * <p> * the AWS customer ID. * </p> * </li> * <li> * <p> * the table name. * </p> * </li> * <li> * <p> * the <i>StreamLabel</i>. * </p> * </li> * </ul> */ public void setLatestStreamLabel(String latestStreamLabel) { this.latestStreamLabel = latestStreamLabel; } /** * <p> * A timestamp, in ISO 8601 format, for this stream. * </p> * <p> * Note that <i>LatestStreamLabel</i> is not a unique identifier for the * stream, because it is possible that a stream from another table might * have the same timestamp. However, the combination of the following three * elements is guaranteed to be unique: * </p> * <ul> * <li> * <p> * the AWS customer ID. * </p> * </li> * <li> * <p> * the table name. * </p> * </li> * <li> * <p> * the <i>StreamLabel</i>. * </p> * </li> * </ul> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param latestStreamLabel <p> * A timestamp, in ISO 8601 format, for this stream. * </p> * <p> * Note that <i>LatestStreamLabel</i> is not a unique identifier * for the stream, because it is possible that a stream from * another table might have the same timestamp. However, the * combination of the following three elements is guaranteed to * be unique: * </p> * <ul> * <li> * <p> * the AWS customer ID. * </p> * </li> * <li> * <p> * the table name. * </p> * </li> * <li> * <p> * the <i>StreamLabel</i>. * </p> * </li> * </ul> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withLatestStreamLabel(String latestStreamLabel) { this.latestStreamLabel = latestStreamLabel; return this; } /** * <p> * The Amazon Resource Name (ARN) that uniquely identifies the latest stream * for this table. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>37 - 1024<br/> * * @return <p> * The Amazon Resource Name (ARN) that uniquely identifies the * latest stream for this table. * </p> */ public String getLatestStreamArn() { return latestStreamArn; } /** * <p> * The Amazon Resource Name (ARN) that uniquely identifies the latest stream * for this table. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>37 - 1024<br/> * * @param latestStreamArn <p> * The Amazon Resource Name (ARN) that uniquely identifies the * latest stream for this table. * </p> */ public void setLatestStreamArn(String latestStreamArn) { this.latestStreamArn = latestStreamArn; } /** * <p> * The Amazon Resource Name (ARN) that uniquely identifies the latest stream * for this table. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * <p> * <b>Constraints:</b><br/> * <b>Length: </b>37 - 1024<br/> * * @param latestStreamArn <p> * The Amazon Resource Name (ARN) that uniquely identifies the * latest stream for this table. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public TableDescription withLatestStreamArn(String latestStreamArn) { this.latestStreamArn = latestStreamArn; return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getAttributeDefinitions() != null) sb.append("AttributeDefinitions: " + getAttributeDefinitions() + ","); if (getTableName() != null) sb.append("TableName: " + getTableName() + ","); if (getKeySchema() != null) sb.append("KeySchema: " + getKeySchema() + ","); if (getTableStatus() != null) sb.append("TableStatus: " + getTableStatus() + ","); if (getCreationDateTime() != null) sb.append("CreationDateTime: " + getCreationDateTime() + ","); if (getProvisionedThroughput() != null) sb.append("ProvisionedThroughput: " + getProvisionedThroughput() + ","); if (getTableSizeBytes() != null) sb.append("TableSizeBytes: " + getTableSizeBytes() + ","); if (getItemCount() != null) sb.append("ItemCount: " + getItemCount() + ","); if (getTableArn() != null) sb.append("TableArn: " + getTableArn() + ","); if (getLocalSecondaryIndexes() != null) sb.append("LocalSecondaryIndexes: " + getLocalSecondaryIndexes() + ","); if (getGlobalSecondaryIndexes() != null) sb.append("GlobalSecondaryIndexes: " + getGlobalSecondaryIndexes() + ","); if (getStreamSpecification() != null) sb.append("StreamSpecification: " + getStreamSpecification() + ","); if (getLatestStreamLabel() != null) sb.append("LatestStreamLabel: " + getLatestStreamLabel() + ","); if (getLatestStreamArn() != null) sb.append("LatestStreamArn: " + getLatestStreamArn()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getAttributeDefinitions() == null) ? 0 : getAttributeDefinitions().hashCode()); hashCode = prime * hashCode + ((getTableName() == null) ? 0 : getTableName().hashCode()); hashCode = prime * hashCode + ((getKeySchema() == null) ? 0 : getKeySchema().hashCode()); hashCode = prime * hashCode + ((getTableStatus() == null) ? 0 : getTableStatus().hashCode()); hashCode = prime * hashCode + ((getCreationDateTime() == null) ? 0 : getCreationDateTime().hashCode()); hashCode = prime * hashCode + ((getProvisionedThroughput() == null) ? 0 : getProvisionedThroughput().hashCode()); hashCode = prime * hashCode + ((getTableSizeBytes() == null) ? 0 : getTableSizeBytes().hashCode()); hashCode = prime * hashCode + ((getItemCount() == null) ? 0 : getItemCount().hashCode()); hashCode = prime * hashCode + ((getTableArn() == null) ? 0 : getTableArn().hashCode()); hashCode = prime * hashCode + ((getLocalSecondaryIndexes() == null) ? 0 : getLocalSecondaryIndexes().hashCode()); hashCode = prime * hashCode + ((getGlobalSecondaryIndexes() == null) ? 0 : getGlobalSecondaryIndexes() .hashCode()); hashCode = prime * hashCode + ((getStreamSpecification() == null) ? 0 : getStreamSpecification().hashCode()); hashCode = prime * hashCode + ((getLatestStreamLabel() == null) ? 0 : getLatestStreamLabel().hashCode()); hashCode = prime * hashCode + ((getLatestStreamArn() == null) ? 0 : getLatestStreamArn().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof TableDescription == false) return false; TableDescription other = (TableDescription) obj; if (other.getAttributeDefinitions() == null ^ this.getAttributeDefinitions() == null) return false; if (other.getAttributeDefinitions() != null && other.getAttributeDefinitions().equals(this.getAttributeDefinitions()) == false) return false; if (other.getTableName() == null ^ this.getTableName() == null) return false; if (other.getTableName() != null && other.getTableName().equals(this.getTableName()) == false) return false; if (other.getKeySchema() == null ^ this.getKeySchema() == null) return false; if (other.getKeySchema() != null && other.getKeySchema().equals(this.getKeySchema()) == false) return false; if (other.getTableStatus() == null ^ this.getTableStatus() == null) return false; if (other.getTableStatus() != null && other.getTableStatus().equals(this.getTableStatus()) == false) return false; if (other.getCreationDateTime() == null ^ this.getCreationDateTime() == null) return false; if (other.getCreationDateTime() != null && other.getCreationDateTime().equals(this.getCreationDateTime()) == false) return false; if (other.getProvisionedThroughput() == null ^ this.getProvisionedThroughput() == null) return false; if (other.getProvisionedThroughput() != null && other.getProvisionedThroughput().equals(this.getProvisionedThroughput()) == false) return false; if (other.getTableSizeBytes() == null ^ this.getTableSizeBytes() == null) return false; if (other.getTableSizeBytes() != null && other.getTableSizeBytes().equals(this.getTableSizeBytes()) == false) return false; if (other.getItemCount() == null ^ this.getItemCount() == null) return false; if (other.getItemCount() != null && other.getItemCount().equals(this.getItemCount()) == false) return false; if (other.getTableArn() == null ^ this.getTableArn() == null) return false; if (other.getTableArn() != null && other.getTableArn().equals(this.getTableArn()) == false) return false; if (other.getLocalSecondaryIndexes() == null ^ this.getLocalSecondaryIndexes() == null) return false; if (other.getLocalSecondaryIndexes() != null && other.getLocalSecondaryIndexes().equals(this.getLocalSecondaryIndexes()) == false) return false; if (other.getGlobalSecondaryIndexes() == null ^ this.getGlobalSecondaryIndexes() == null) return false; if (other.getGlobalSecondaryIndexes() != null && other.getGlobalSecondaryIndexes().equals(this.getGlobalSecondaryIndexes()) == false) return false; if (other.getStreamSpecification() == null ^ this.getStreamSpecification() == null) return false; if (other.getStreamSpecification() != null && other.getStreamSpecification().equals(this.getStreamSpecification()) == false) return false; if (other.getLatestStreamLabel() == null ^ this.getLatestStreamLabel() == null) return false; if (other.getLatestStreamLabel() != null && other.getLatestStreamLabel().equals(this.getLatestStreamLabel()) == false) return false; if (other.getLatestStreamArn() == null ^ this.getLatestStreamArn() == null) return false; if (other.getLatestStreamArn() != null && other.getLatestStreamArn().equals(this.getLatestStreamArn()) == false) return false; return true; } }