/* * Copyright 2018-2023 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; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* Represents the properties of a table. *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class TableDescription implements Serializable, Cloneable, StructuredPojo { /** *
     * An array of AttributeDefinition objects. Each of these objects describes one attribute in the table
     * and index key schema.
     * 
     * Each AttributeDefinition object in this array is composed of:
     * 
     * AttributeName - The name of the attribute.
     * 
     * AttributeType - The data type for the attribute.
     * 
* The name of the table. *
*/ private String tableName; /** *
     * The primary key structure for the table. Each KeySchemaElement consists of:
     * 
     * AttributeName - The name of the attribute.
     * 
     * KeyType - The role of the attribute:
     * 
     * HASH - partition key
     * 
     * RANGE - sort key
     * 
* The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from * DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their * partition key values. *
** The sort key of an item is also known as its range attribute. The term "range attribute" derives from the * way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key * value. *
** For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide. *
*/ private java.util.List* The current state of the table: *
*
     * CREATING - The table is being created.
     * 
     * UPDATING - The table/index configuration is being updated. The table/index remains available for
     * data operations when UPDATING.
     * 
     * DELETING - The table is being deleted.
     * 
     * ACTIVE - The table is ready for use.
     * 
     * INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible. Table
     * operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival process when a
     * table's KMS key remains inaccessible for more than seven days.
     * 
     * ARCHIVING - The table is being archived. Operations are not allowed until archival is complete.
     * 
     * ARCHIVED - The table has been archived. See the ArchivalReason for more information.
     * 
* The date and time when the table was created, in UNIX epoch time * format. *
*/ private java.util.Date creationDateTime; /** ** The provisioned throughput settings for the table, consisting of read and write capacity units, along with data * about increases and decreases. *
*/ private ProvisionedThroughputDescription provisionedThroughput; /** ** 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. *
*/ private Long tableSizeBytes; /** ** 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. *
*/ private Long itemCount; /** ** The Amazon Resource Name (ARN) that uniquely identifies the table. *
*/ private String tableArn; /** ** Unique identifier for the table for which the backup was created. *
*/ private String tableId; /** ** Contains the details for the read/write capacity mode. *
*/ private BillingModeSummary billingModeSummary; /** ** 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: *
*
     * IndexName - The name of the local secondary index.
     * 
     * KeySchema - 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.
     * 
     * Projection - 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:
     * 
     * ProjectionType - One of the following:
     * 
     * KEYS_ONLY - Only the index and primary keys are projected into the index.
     * 
     * INCLUDE - Only the specified table attributes are projected into the index. The list of projected
     * attributes is in NonKeyAttributes.
     * 
     * ALL - All of the table attributes are projected into the index.
     * 
     * NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     * secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of
     * the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this
     * counts as two distinct attributes when determining the total.
     * 
     * IndexSizeBytes - 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.
     * 
     * ItemCount - 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.
     * 
     * If the table is in the DELETING state, no information about indexes will be returned.
     * 
* The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each * element is composed of: *
*
     * Backfilling - 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
     * CreateTable operation.)
     * 
     * You can delete an index that is being created during the Backfilling phase when
     * IndexStatus is set to CREATING and Backfilling is true. You can't delete the index that
     * is being created when IndexStatus is set to CREATING and Backfilling is false. (This
     * attribute does not appear for indexes that were created during a CreateTable operation.)
     * 
     * IndexName - The name of the global secondary index.
     * 
     * IndexSizeBytes - 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.
     * 
     * IndexStatus - The current status of the global secondary index:
     * 
     * CREATING - The index is being created.
     * 
     * UPDATING - The index is being updated.
     * 
     * DELETING - The index is being deleted.
     * 
     * ACTIVE - The index is ready for use.
     * 
     * ItemCount - 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.
     * 
     * KeySchema - 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.
     * 
     * Projection - 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:
     * 
     * ProjectionType - One of the following:
     * 
     * KEYS_ONLY - Only the index and primary keys are projected into the index.
     * 
     * INCLUDE - In addition to the attributes described in KEYS_ONLY, the secondary index
     * will include other non-key attributes that you specify.
     * 
     * ALL - All of the table attributes are projected into the index.
     * 
     * NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     * secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of
     * the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this
     * counts as two distinct attributes when determining the total.
     * 
     * ProvisionedThroughput - The provisioned throughput settings for the global secondary index,
     * consisting of read and write capacity units, along with data about increases and decreases.
     * 
     * If the table is in the DELETING state, no information about indexes will be returned.
     * 
* The current DynamoDB Streams configuration for the table. *
*/ private StreamSpecification streamSpecification; /** ** A timestamp, in ISO 8601 format, for this stream. *
*
     * Note that LatestStreamLabel 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:
     * 
* Amazon Web Services customer ID *
** Table name *
*
     * StreamLabel
     * 
* The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table. *
*/ private String latestStreamArn; /** ** Represents the version of global tables in * use, if the table is replicated across Amazon Web Services Regions. *
*/ private String globalTableVersion; /** ** Represents replicas of the table. *
*/ private java.util.List* Contains details for the restore. *
*/ private RestoreSummary restoreSummary; /** ** The description of the server-side encryption status on the specified table. *
*/ private SSEDescription sSEDescription; /** ** Contains information about the table archive. *
*/ private ArchivalSummary archivalSummary; /** ** Contains details of the table class. *
*/ private TableClassSummary tableClassSummary; /** ** Indicates whether deletion protection is enabled (true) or disabled (false) on the table. *
*/ private Boolean deletionProtectionEnabled; /** *
     * An array of AttributeDefinition objects. Each of these objects describes one attribute in the table
     * and index key schema.
     * 
     * Each AttributeDefinition object in this array is composed of:
     * 
     * AttributeName - The name of the attribute.
     * 
     * AttributeType - The data type for the attribute.
     * 
AttributeDefinition objects. Each of these objects describes one attribute in
     *         the table and index key schema.
     *         
     *         Each AttributeDefinition object in this array is composed of:
     *         
     *         AttributeName - The name of the attribute.
     *         
     *         AttributeType - The data type for the attribute.
     *         
     * An array of AttributeDefinition objects. Each of these objects describes one attribute in the table
     * and index key schema.
     * 
     * Each AttributeDefinition object in this array is composed of:
     * 
     * AttributeName - The name of the attribute.
     * 
     * AttributeType - The data type for the attribute.
     * 
AttributeDefinition objects. Each of these objects describes one attribute in the
     *        table and index key schema.
     *        
     *        Each AttributeDefinition object in this array is composed of:
     *        
     *        AttributeName - The name of the attribute.
     *        
     *        AttributeType - The data type for the attribute.
     *        
     * An array of AttributeDefinition objects. Each of these objects describes one attribute in the table
     * and index key schema.
     * 
     * Each AttributeDefinition object in this array is composed of:
     * 
     * AttributeName - The name of the attribute.
     * 
     * AttributeType - The data type for the attribute.
     * 
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setAttributeDefinitions(java.util.Collection)} or {@link #withAttributeDefinitions(java.util.Collection)} * if you want to override the existing values. *
* * @param attributeDefinitions * An array ofAttributeDefinition objects. Each of these objects describes one attribute in the
     *        table and index key schema.
     *        
     *        Each AttributeDefinition object in this array is composed of:
     *        
     *        AttributeName - The name of the attribute.
     *        
     *        AttributeType - The data type for the attribute.
     *        
     * An array of AttributeDefinition objects. Each of these objects describes one attribute in the table
     * and index key schema.
     * 
     * Each AttributeDefinition object in this array is composed of:
     * 
     * AttributeName - The name of the attribute.
     * 
     * AttributeType - The data type for the attribute.
     * 
AttributeDefinition objects. Each of these objects describes one attribute in the
     *        table and index key schema.
     *        
     *        Each AttributeDefinition object in this array is composed of:
     *        
     *        AttributeName - The name of the attribute.
     *        
     *        AttributeType - The data type for the attribute.
     *        
* The name of the table. *
* * @param tableName * The name of the table. */ public void setTableName(String tableName) { this.tableName = tableName; } /** ** The name of the table. *
* * @return The name of the table. */ public String getTableName() { return this.tableName; } /** ** The name of the table. *
* * @param tableName * The name of the table. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withTableName(String tableName) { setTableName(tableName); return this; } /** *
     * The primary key structure for the table. Each KeySchemaElement consists of:
     * 
     * AttributeName - The name of the attribute.
     * 
     * KeyType - The role of the attribute:
     * 
     * HASH - partition key
     * 
     * RANGE - sort key
     * 
* The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from * DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their * partition key values. *
** The sort key of an item is also known as its range attribute. The term "range attribute" derives from the * way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key * value. *
** For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide. *
* * @return The primary key structure for the table. EachKeySchemaElement consists of:
     *         
     *         AttributeName - The name of the attribute.
     *         
     *         KeyType - The role of the attribute:
     *         
     *         HASH - partition key
     *         
     *         RANGE - sort key
     *         
* The partition key of an item is also known as its hash attribute. The term "hash attribute" * derives from DynamoDB's usage of an internal hash function to evenly distribute data items across * partitions, based on their partition key values. *
** The sort key of an item is also known as its range attribute. The term "range attribute" derives * from the way DynamoDB stores items with the same partition key physically close together, in sorted order * by the sort key value. *
*
     *         For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide.
     */
    public java.util.List 
     * The primary key structure for the table. Each  
     *  
     *  
     *  
     *  
     * The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from
     * DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their
     * partition key values.
     *  
     * The sort key of an item is also known as its range attribute. The term "range attribute" derives from the
     * way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key
     * value.
     *  
     * For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide.
     * KeySchemaElement consists of:
     * 
     * 
     * AttributeName - The name of the attribute.
     * KeyType - The role of the attribute:
     * 
     * 
     * HASH - partition key
     * RANGE - sort key
     * KeySchemaElement consists of:
     *        AttributeName - The name of the attribute.
     *        
     *        KeyType - The role of the attribute:
     *        
     *        HASH - partition key
     *        
     *        RANGE - sort key
     *        
* The partition key of an item is also known as its hash attribute. The term "hash attribute" derives * from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, * based on their partition key values. *
** The sort key of an item is also known as its range attribute. The term "range attribute" derives * from the way DynamoDB stores items with the same partition key physically close together, in sorted order * by the sort key value. *
*
     *        For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide.
     */
    public void setKeySchema(java.util.Collection 
     * The primary key structure for the table. Each  
     *  
     *  
     *  
     *  
     * The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from
     * DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their
     * partition key values.
     *  
     * The sort key of an item is also known as its range attribute. The term "range attribute" derives from the
     * way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key
     * value.
     *  
     * For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide.
     *  
     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setKeySchema(java.util.Collection)} or {@link #withKeySchema(java.util.Collection)} if you want to
     * override the existing values.
     * KeySchemaElement consists of:
     * 
     * 
     * AttributeName - The name of the attribute.
     * KeyType - The role of the attribute:
     * 
     * 
     * HASH - partition key
     * RANGE - sort key
     * KeySchemaElement consists of:
     *        AttributeName - The name of the attribute.
     *        
     *        KeyType - The role of the attribute:
     *        
     *        HASH - partition key
     *        
     *        RANGE - sort key
     *        
* The partition key of an item is also known as its hash attribute. The term "hash attribute" derives * from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, * based on their partition key values. *
** The sort key of an item is also known as its range attribute. The term "range attribute" derives * from the way DynamoDB stores items with the same partition key physically close together, in sorted order * by the sort key value. *
*
     *        For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TableDescription withKeySchema(KeySchemaElement... keySchema) {
        if (this.keySchema == null) {
            setKeySchema(new java.util.ArrayList 
     * The primary key structure for the table. Each  
     *  
     *  
     *  
     *  
     * The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from
     * DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their
     * partition key values.
     *  
     * The sort key of an item is also known as its range attribute. The term "range attribute" derives from the
     * way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key
     * value.
     *  
     * For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide.
     * KeySchemaElement consists of:
     * 
     * 
     * AttributeName - The name of the attribute.
     * KeyType - The role of the attribute:
     * 
     * 
     * HASH - partition key
     * RANGE - sort key
     * KeySchemaElement consists of:
     *        AttributeName - The name of the attribute.
     *        
     *        KeyType - The role of the attribute:
     *        
     *        HASH - partition key
     *        
     *        RANGE - sort key
     *        
* The partition key of an item is also known as its hash attribute. The term "hash attribute" derives * from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, * based on their partition key values. *
** The sort key of an item is also known as its range attribute. The term "range attribute" derives * from the way DynamoDB stores items with the same partition key physically close together, in sorted order * by the sort key value. *
*
     *        For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TableDescription withKeySchema(java.util.Collection 
     * The current state of the table:
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     * 
     * 
     * 
     * @param tableStatus
     *        The current state of the table:CREATING - The table is being created.
     * UPDATING - The table/index configuration is being updated. The table/index remains available for
     * data operations when UPDATING.
     * DELETING - The table is being deleted.
     * ACTIVE - The table is ready for use.
     * INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible. Table
     * operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival process when a
     * table's KMS key remains inaccessible for more than seven days.
     * ARCHIVING - The table is being archived. Operations are not allowed until archival is complete.
     * ARCHIVED - The table has been archived. See the ArchivalReason for more information.
     * 
     *        CREATING - The table is being created.
     *        
     *        UPDATING - The table/index configuration is being updated. The table/index remains available
     *        for data operations when UPDATING.
     *        
     *        DELETING - The table is being deleted.
     *        
     *        ACTIVE - The table is ready for use.
     *        
     *        INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible.
     *        Table operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival
     *        process when a table's KMS key remains inaccessible for more than seven days.
     *        
     *        ARCHIVING - The table is being archived. Operations are not allowed until archival is
     *        complete.
     *        
     *        ARCHIVED - The table has been archived. See the ArchivalReason for more information.
     *        
* The current state of the table: *
*
     * CREATING - The table is being created.
     * 
     * UPDATING - The table/index configuration is being updated. The table/index remains available for
     * data operations when UPDATING.
     * 
     * DELETING - The table is being deleted.
     * 
     * ACTIVE - The table is ready for use.
     * 
     * INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible. Table
     * operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival process when a
     * table's KMS key remains inaccessible for more than seven days.
     * 
     * ARCHIVING - The table is being archived. Operations are not allowed until archival is complete.
     * 
     * ARCHIVED - The table has been archived. See the ArchivalReason for more information.
     * 
     *         CREATING - The table is being created.
     *         
     *         UPDATING - The table/index configuration is being updated. The table/index remains available
     *         for data operations when UPDATING.
     *         
     *         DELETING - The table is being deleted.
     *         
     *         ACTIVE - The table is ready for use.
     *         
     *         INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible.
     *         Table operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival
     *         process when a table's KMS key remains inaccessible for more than seven days.
     *         
     *         ARCHIVING - The table is being archived. Operations are not allowed until archival is
     *         complete.
     *         
     *         ARCHIVED - The table has been archived. See the ArchivalReason for more information.
     *         
* The current state of the table: *
*
     * CREATING - The table is being created.
     * 
     * UPDATING - The table/index configuration is being updated. The table/index remains available for
     * data operations when UPDATING.
     * 
     * DELETING - The table is being deleted.
     * 
     * ACTIVE - The table is ready for use.
     * 
     * INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible. Table
     * operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival process when a
     * table's KMS key remains inaccessible for more than seven days.
     * 
     * ARCHIVING - The table is being archived. Operations are not allowed until archival is complete.
     * 
     * ARCHIVED - The table has been archived. See the ArchivalReason for more information.
     * 
     *        CREATING - The table is being created.
     *        
     *        UPDATING - The table/index configuration is being updated. The table/index remains available
     *        for data operations when UPDATING.
     *        
     *        DELETING - The table is being deleted.
     *        
     *        ACTIVE - The table is ready for use.
     *        
     *        INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible.
     *        Table operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival
     *        process when a table's KMS key remains inaccessible for more than seven days.
     *        
     *        ARCHIVING - The table is being archived. Operations are not allowed until archival is
     *        complete.
     *        
     *        ARCHIVED - The table has been archived. See the ArchivalReason for more information.
     *        
* The current state of the table: *
*
     * CREATING - The table is being created.
     * 
     * UPDATING - The table/index configuration is being updated. The table/index remains available for
     * data operations when UPDATING.
     * 
     * DELETING - The table is being deleted.
     * 
     * ACTIVE - The table is ready for use.
     * 
     * INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible. Table
     * operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival process when a
     * table's KMS key remains inaccessible for more than seven days.
     * 
     * ARCHIVING - The table is being archived. Operations are not allowed until archival is complete.
     * 
     * ARCHIVED - The table has been archived. See the ArchivalReason for more information.
     * 
     *        CREATING - The table is being created.
     *        
     *        UPDATING - The table/index configuration is being updated. The table/index remains available
     *        for data operations when UPDATING.
     *        
     *        DELETING - The table is being deleted.
     *        
     *        ACTIVE - The table is ready for use.
     *        
     *        INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible.
     *        Table operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival
     *        process when a table's KMS key remains inaccessible for more than seven days.
     *        
     *        ARCHIVING - The table is being archived. Operations are not allowed until archival is
     *        complete.
     *        
     *        ARCHIVED - The table has been archived. See the ArchivalReason for more information.
     *        
* The current state of the table: *
*
     * CREATING - The table is being created.
     * 
     * UPDATING - The table/index configuration is being updated. The table/index remains available for
     * data operations when UPDATING.
     * 
     * DELETING - The table is being deleted.
     * 
     * ACTIVE - The table is ready for use.
     * 
     * INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible. Table
     * operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival process when a
     * table's KMS key remains inaccessible for more than seven days.
     * 
     * ARCHIVING - The table is being archived. Operations are not allowed until archival is complete.
     * 
     * ARCHIVED - The table has been archived. See the ArchivalReason for more information.
     * 
     *        CREATING - The table is being created.
     *        
     *        UPDATING - The table/index configuration is being updated. The table/index remains available
     *        for data operations when UPDATING.
     *        
     *        DELETING - The table is being deleted.
     *        
     *        ACTIVE - The table is ready for use.
     *        
     *        INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible.
     *        Table operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival
     *        process when a table's KMS key remains inaccessible for more than seven days.
     *        
     *        ARCHIVING - The table is being archived. Operations are not allowed until archival is
     *        complete.
     *        
     *        ARCHIVED - The table has been archived. See the ArchivalReason for more information.
     *        
* The date and time when the table was created, in UNIX epoch time * format. *
* * @param creationDateTime * The date and time when the table was created, in UNIX epoch * time format. */ public void setCreationDateTime(java.util.Date creationDateTime) { this.creationDateTime = creationDateTime; } /** ** The date and time when the table was created, in UNIX epoch time * format. *
* * @return The date and time when the table was created, in UNIX epoch * time format. */ public java.util.Date getCreationDateTime() { return this.creationDateTime; } /** ** The date and time when the table was created, in UNIX epoch time * format. *
* * @param creationDateTime * The date and time when the table was created, in UNIX epoch * time format. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withCreationDateTime(java.util.Date creationDateTime) { setCreationDateTime(creationDateTime); return this; } /** ** The provisioned throughput settings for the table, consisting of read and write capacity units, along with data * about increases and decreases. *
* * @param provisionedThroughput * The provisioned throughput settings for the table, consisting of read and write capacity units, along with * data about increases and decreases. */ public void setProvisionedThroughput(ProvisionedThroughputDescription provisionedThroughput) { this.provisionedThroughput = provisionedThroughput; } /** ** The provisioned throughput settings for the table, consisting of read and write capacity units, along with data * about increases and decreases. *
* * @return The provisioned throughput settings for the table, consisting of read and write capacity units, along * with data about increases and decreases. */ public ProvisionedThroughputDescription getProvisionedThroughput() { return this.provisionedThroughput; } /** ** The provisioned throughput settings for the table, consisting of read and write capacity units, along with data * about increases and decreases. *
* * @param provisionedThroughput * The provisioned throughput settings for the table, consisting of read and write capacity units, along with * data about increases and decreases. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withProvisionedThroughput(ProvisionedThroughputDescription provisionedThroughput) { setProvisionedThroughput(provisionedThroughput); return this; } /** ** 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. *
* * @param tableSizeBytes * 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. */ public void setTableSizeBytes(Long tableSizeBytes) { this.tableSizeBytes = tableSizeBytes; } /** ** 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. *
* * @return 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. */ public Long getTableSizeBytes() { return this.tableSizeBytes; } /** ** 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. *
* * @param tableSizeBytes * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withTableSizeBytes(Long tableSizeBytes) { setTableSizeBytes(tableSizeBytes); return this; } /** ** 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. *
* * @param itemCount * 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. */ public void setItemCount(Long itemCount) { this.itemCount = itemCount; } /** ** 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. *
* * @return 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. */ public Long getItemCount() { return this.itemCount; } /** ** 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. *
* * @param itemCount * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withItemCount(Long itemCount) { setItemCount(itemCount); return this; } /** ** The Amazon Resource Name (ARN) that uniquely identifies the table. *
* * @param tableArn * The Amazon Resource Name (ARN) that uniquely identifies the table. */ public void setTableArn(String tableArn) { this.tableArn = tableArn; } /** ** The Amazon Resource Name (ARN) that uniquely identifies the table. *
* * @return The Amazon Resource Name (ARN) that uniquely identifies the table. */ public String getTableArn() { return this.tableArn; } /** ** The Amazon Resource Name (ARN) that uniquely identifies the table. *
* * @param tableArn * The Amazon Resource Name (ARN) that uniquely identifies the table. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withTableArn(String tableArn) { setTableArn(tableArn); return this; } /** ** Unique identifier for the table for which the backup was created. *
* * @param tableId * Unique identifier for the table for which the backup was created. */ public void setTableId(String tableId) { this.tableId = tableId; } /** ** Unique identifier for the table for which the backup was created. *
* * @return Unique identifier for the table for which the backup was created. */ public String getTableId() { return this.tableId; } /** ** Unique identifier for the table for which the backup was created. *
* * @param tableId * Unique identifier for the table for which the backup was created. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withTableId(String tableId) { setTableId(tableId); return this; } /** ** Contains the details for the read/write capacity mode. *
* * @param billingModeSummary * Contains the details for the read/write capacity mode. */ public void setBillingModeSummary(BillingModeSummary billingModeSummary) { this.billingModeSummary = billingModeSummary; } /** ** Contains the details for the read/write capacity mode. *
* * @return Contains the details for the read/write capacity mode. */ public BillingModeSummary getBillingModeSummary() { return this.billingModeSummary; } /** ** Contains the details for the read/write capacity mode. *
* * @param billingModeSummary * Contains the details for the read/write capacity mode. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withBillingModeSummary(BillingModeSummary billingModeSummary) { setBillingModeSummary(billingModeSummary); return this; } /** ** 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: *
*
     * IndexName - The name of the local secondary index.
     * 
     * KeySchema - 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.
     * 
     * Projection - 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:
     * 
     * ProjectionType - One of the following:
     * 
     * KEYS_ONLY - Only the index and primary keys are projected into the index.
     * 
     * INCLUDE - Only the specified table attributes are projected into the index. The list of projected
     * attributes is in NonKeyAttributes.
     * 
     * ALL - All of the table attributes are projected into the index.
     * 
     * NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     * secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of
     * the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this
     * counts as two distinct attributes when determining the total.
     * 
     * IndexSizeBytes - 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.
     * 
     * ItemCount - 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.
     * 
     * If the table is in the DELETING state, no information about indexes will be returned.
     * 
     *         IndexName - The name of the local secondary index.
     *         
     *         KeySchema - 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.
     *         
     *         Projection - 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:
     *         
     *         ProjectionType - One of the following:
     *         
     *         KEYS_ONLY - Only the index and primary keys are projected into the index.
     *         
     *         INCLUDE - Only the specified table attributes are projected into the index. The list of
     *         projected attributes is in NonKeyAttributes.
     *         
     *         ALL - All of the table attributes are projected into the index.
     *         
     *         NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     *         secondary index. The total count of attributes provided in NonKeyAttributes, summed across
     *         all of the secondary indexes, must not exceed 100. If you project the same attribute into two different
     *         indexes, this counts as two distinct attributes when determining the total.
     *         
     *         IndexSizeBytes - 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.
     *         
     *         ItemCount - 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.
     *         
     *         If the table is in the  
     * 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:
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     * If the table is in the DELETING state, no information about indexes will be returned.
     */
    public java.util.List
     * 
     * IndexName - The name of the local secondary index.
     * KeySchema - 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.
     * Projection - 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:
     * 
     * 
     * ProjectionType - One of the following:
     * 
     * 
     * KEYS_ONLY - Only the index and primary keys are projected into the index.
     * INCLUDE - Only the specified table attributes are projected into the index. The list of projected
     * attributes is in NonKeyAttributes.
     * ALL - All of the table attributes are projected into the index.
     * NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     * secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of
     * the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this
     * counts as two distinct attributes when determining the total.
     * IndexSizeBytes - 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.
     * ItemCount - 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.
     * DELETING state, no information about indexes will be returned.
     * 
     *        IndexName - The name of the local secondary index.
     *        
     *        KeySchema - 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.
     *        
     *        Projection - 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:
     *        
     *        ProjectionType - One of the following:
     *        
     *        KEYS_ONLY - Only the index and primary keys are projected into the index.
     *        
     *        INCLUDE - Only the specified table attributes are projected into the index. The list of
     *        projected attributes is in NonKeyAttributes.
     *        
     *        ALL - All of the table attributes are projected into the index.
     *        
     *        NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     *        secondary index. The total count of attributes provided in NonKeyAttributes, summed across
     *        all of the secondary indexes, must not exceed 100. If you project the same attribute into two different
     *        indexes, this counts as two distinct attributes when determining the total.
     *        
     *        IndexSizeBytes - 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.
     *        
     *        ItemCount - 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.
     *        
     *        If the table is in the  
     * 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:
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     * If the table is in the  
     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setLocalSecondaryIndexes(java.util.Collection)} or
     * {@link #withLocalSecondaryIndexes(java.util.Collection)} if you want to override the existing values.
     * DELETING state, no information about indexes will be returned.
     */
    public void setLocalSecondaryIndexes(java.util.Collection
     * 
     * IndexName - The name of the local secondary index.
     * KeySchema - 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.
     * Projection - 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:
     * 
     * 
     * ProjectionType - One of the following:
     * 
     * 
     * KEYS_ONLY - Only the index and primary keys are projected into the index.
     * INCLUDE - Only the specified table attributes are projected into the index. The list of projected
     * attributes is in NonKeyAttributes.
     * ALL - All of the table attributes are projected into the index.
     * NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     * secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of
     * the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this
     * counts as two distinct attributes when determining the total.
     * IndexSizeBytes - 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.
     * ItemCount - 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.
     * DELETING state, no information about indexes will be returned.
     * 
     *        IndexName - The name of the local secondary index.
     *        
     *        KeySchema - 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.
     *        
     *        Projection - 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:
     *        
     *        ProjectionType - One of the following:
     *        
     *        KEYS_ONLY - Only the index and primary keys are projected into the index.
     *        
     *        INCLUDE - Only the specified table attributes are projected into the index. The list of
     *        projected attributes is in NonKeyAttributes.
     *        
     *        ALL - All of the table attributes are projected into the index.
     *        
     *        NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     *        secondary index. The total count of attributes provided in NonKeyAttributes, summed across
     *        all of the secondary indexes, must not exceed 100. If you project the same attribute into two different
     *        indexes, this counts as two distinct attributes when determining the total.
     *        
     *        IndexSizeBytes - 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.
     *        
     *        ItemCount - 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.
     *        
     *        If the table is in the  
     * 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:
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     * If the table is in the DELETING state, no information about indexes will be returned.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TableDescription withLocalSecondaryIndexes(LocalSecondaryIndexDescription... localSecondaryIndexes) {
        if (this.localSecondaryIndexes == null) {
            setLocalSecondaryIndexes(new java.util.ArrayList
     * 
     * IndexName - The name of the local secondary index.
     * KeySchema - 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.
     * Projection - 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:
     * 
     * 
     * ProjectionType - One of the following:
     * 
     * 
     * KEYS_ONLY - Only the index and primary keys are projected into the index.
     * INCLUDE - Only the specified table attributes are projected into the index. The list of projected
     * attributes is in NonKeyAttributes.
     * ALL - All of the table attributes are projected into the index.
     * NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     * secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of
     * the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this
     * counts as two distinct attributes when determining the total.
     * IndexSizeBytes - 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.
     * ItemCount - 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.
     * DELETING state, no information about indexes will be returned.
     * 
     *        IndexName - The name of the local secondary index.
     *        
     *        KeySchema - 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.
     *        
     *        Projection - 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:
     *        
     *        ProjectionType - One of the following:
     *        
     *        KEYS_ONLY - Only the index and primary keys are projected into the index.
     *        
     *        INCLUDE - Only the specified table attributes are projected into the index. The list of
     *        projected attributes is in NonKeyAttributes.
     *        
     *        ALL - All of the table attributes are projected into the index.
     *        
     *        NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     *        secondary index. The total count of attributes provided in NonKeyAttributes, summed across
     *        all of the secondary indexes, must not exceed 100. If you project the same attribute into two different
     *        indexes, this counts as two distinct attributes when determining the total.
     *        
     *        IndexSizeBytes - 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.
     *        
     *        ItemCount - 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.
     *        
     *        If the table is in the  
     * The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each
     * element is composed of:
     *  
     *  
     * You can delete an index that is being created during the  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     * If the table is in the DELETING state, no information about indexes will be returned.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TableDescription withLocalSecondaryIndexes(java.util.Collection
     * 
     * Backfilling - 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
     * CreateTable operation.)
     * Backfilling phase when
     * IndexStatus is set to CREATING and Backfilling is true. You can't delete the index that
     * is being created when IndexStatus is set to CREATING and Backfilling is false. (This
     * attribute does not appear for indexes that were created during a CreateTable operation.)
     * IndexName - The name of the global secondary index.
     * IndexSizeBytes - 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.
     * IndexStatus - The current status of the global secondary index:
     * 
     * 
     * CREATING - The index is being created.
     * UPDATING - The index is being updated.
     * DELETING - The index is being deleted.
     * ACTIVE - The index is ready for use.
     * ItemCount - 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.
     * KeySchema - 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.
     * Projection - 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:
     * 
     * 
     * ProjectionType - One of the following:
     * 
     * 
     * KEYS_ONLY - Only the index and primary keys are projected into the index.
     * INCLUDE - In addition to the attributes described in KEYS_ONLY, the secondary index
     * will include other non-key attributes that you specify.
     * ALL - All of the table attributes are projected into the index.
     * NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     * secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of
     * the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this
     * counts as two distinct attributes when determining the total.
     * ProvisionedThroughput - The provisioned throughput settings for the global secondary index,
     * consisting of read and write capacity units, along with data about increases and decreases.
     * DELETING state, no information about indexes will be returned.
     * 
     *         Backfilling - 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 CreateTable operation.)
     *         
     *         You can delete an index that is being created during the Backfilling phase when
     *         IndexStatus is set to CREATING and Backfilling is true. You can't delete the
     *         index that is being created when IndexStatus is set to CREATING and Backfilling
     *         is false. (This attribute does not appear for indexes that were created during a CreateTable
     *         operation.)
     *         
     *         IndexName - The name of the global secondary index.
     *         
     *         IndexSizeBytes - 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.
     *         
     *         IndexStatus - The current status of the global secondary index:
     *         
     *         CREATING - The index is being created.
     *         
     *         UPDATING - The index is being updated.
     *         
     *         DELETING - The index is being deleted.
     *         
     *         ACTIVE - The index is ready for use.
     *         
     *         ItemCount - 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.
     *         
     *         KeySchema - 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.
     *         
     *         Projection - 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:
     *         
     *         ProjectionType - One of the following:
     *         
     *         KEYS_ONLY - Only the index and primary keys are projected into the index.
     *         
     *         INCLUDE - In addition to the attributes described in KEYS_ONLY, the secondary
     *         index will include other non-key attributes that you specify.
     *         
     *         ALL - All of the table attributes are projected into the index.
     *         
     *         NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     *         secondary index. The total count of attributes provided in NonKeyAttributes, summed across
     *         all of the secondary indexes, must not exceed 100. If you project the same attribute into two different
     *         indexes, this counts as two distinct attributes when determining the total.
     *         
     *         ProvisionedThroughput - The provisioned throughput settings for the global secondary index,
     *         consisting of read and write capacity units, along with data about increases and decreases.
     *         
     *         If the table is in the  
     * The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each
     * element is composed of:
     *  
     *  
     * You can delete an index that is being created during the  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     * If the table is in the DELETING state, no information about indexes will be returned.
     */
    public java.util.List
     * 
     * Backfilling - 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
     * CreateTable operation.)
     * Backfilling phase when
     * IndexStatus is set to CREATING and Backfilling is true. You can't delete the index that
     * is being created when IndexStatus is set to CREATING and Backfilling is false. (This
     * attribute does not appear for indexes that were created during a CreateTable operation.)
     * IndexName - The name of the global secondary index.
     * IndexSizeBytes - 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.
     * IndexStatus - The current status of the global secondary index:
     * 
     * 
     * CREATING - The index is being created.
     * UPDATING - The index is being updated.
     * DELETING - The index is being deleted.
     * ACTIVE - The index is ready for use.
     * ItemCount - 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.
     * KeySchema - 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.
     * Projection - 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:
     * 
     * 
     * ProjectionType - One of the following:
     * 
     * 
     * KEYS_ONLY - Only the index and primary keys are projected into the index.
     * INCLUDE - In addition to the attributes described in KEYS_ONLY, the secondary index
     * will include other non-key attributes that you specify.
     * ALL - All of the table attributes are projected into the index.
     * NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     * secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of
     * the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this
     * counts as two distinct attributes when determining the total.
     * ProvisionedThroughput - The provisioned throughput settings for the global secondary index,
     * consisting of read and write capacity units, along with data about increases and decreases.
     * DELETING state, no information about indexes will be returned.
     * 
     *        Backfilling - 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 CreateTable operation.)
     *        
     *        You can delete an index that is being created during the Backfilling phase when
     *        IndexStatus is set to CREATING and Backfilling is true. You can't delete the
     *        index that is being created when IndexStatus is set to CREATING and Backfilling
     *        is false. (This attribute does not appear for indexes that were created during a CreateTable
     *        operation.)
     *        
     *        IndexName - The name of the global secondary index.
     *        
     *        IndexSizeBytes - 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.
     *        
     *        IndexStatus - The current status of the global secondary index:
     *        
     *        CREATING - The index is being created.
     *        
     *        UPDATING - The index is being updated.
     *        
     *        DELETING - The index is being deleted.
     *        
     *        ACTIVE - The index is ready for use.
     *        
     *        ItemCount - 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.
     *        
     *        KeySchema - 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.
     *        
     *        Projection - 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:
     *        
     *        ProjectionType - One of the following:
     *        
     *        KEYS_ONLY - Only the index and primary keys are projected into the index.
     *        
     *        INCLUDE - In addition to the attributes described in KEYS_ONLY, the secondary
     *        index will include other non-key attributes that you specify.
     *        
     *        ALL - All of the table attributes are projected into the index.
     *        
     *        NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     *        secondary index. The total count of attributes provided in NonKeyAttributes, summed across
     *        all of the secondary indexes, must not exceed 100. If you project the same attribute into two different
     *        indexes, this counts as two distinct attributes when determining the total.
     *        
     *        ProvisionedThroughput - The provisioned throughput settings for the global secondary index,
     *        consisting of read and write capacity units, along with data about increases and decreases.
     *        
     *        If the table is in the  
     * The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each
     * element is composed of:
     *  
     *  
     * You can delete an index that is being created during the  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     * If the table is in the  
     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setGlobalSecondaryIndexes(java.util.Collection)} or
     * {@link #withGlobalSecondaryIndexes(java.util.Collection)} if you want to override the existing values.
     * DELETING state, no information about indexes will be returned.
     */
    public void setGlobalSecondaryIndexes(java.util.Collection
     * 
     * Backfilling - 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
     * CreateTable operation.)
     * Backfilling phase when
     * IndexStatus is set to CREATING and Backfilling is true. You can't delete the index that
     * is being created when IndexStatus is set to CREATING and Backfilling is false. (This
     * attribute does not appear for indexes that were created during a CreateTable operation.)
     * IndexName - The name of the global secondary index.
     * IndexSizeBytes - 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.
     * IndexStatus - The current status of the global secondary index:
     * 
     * 
     * CREATING - The index is being created.
     * UPDATING - The index is being updated.
     * DELETING - The index is being deleted.
     * ACTIVE - The index is ready for use.
     * ItemCount - 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.
     * KeySchema - 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.
     * Projection - 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:
     * 
     * 
     * ProjectionType - One of the following:
     * 
     * 
     * KEYS_ONLY - Only the index and primary keys are projected into the index.
     * INCLUDE - In addition to the attributes described in KEYS_ONLY, the secondary index
     * will include other non-key attributes that you specify.
     * ALL - All of the table attributes are projected into the index.
     * NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     * secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of
     * the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this
     * counts as two distinct attributes when determining the total.
     * ProvisionedThroughput - The provisioned throughput settings for the global secondary index,
     * consisting of read and write capacity units, along with data about increases and decreases.
     * DELETING state, no information about indexes will be returned.
     * 
     *        Backfilling - 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 CreateTable operation.)
     *        
     *        You can delete an index that is being created during the Backfilling phase when
     *        IndexStatus is set to CREATING and Backfilling is true. You can't delete the
     *        index that is being created when IndexStatus is set to CREATING and Backfilling
     *        is false. (This attribute does not appear for indexes that were created during a CreateTable
     *        operation.)
     *        
     *        IndexName - The name of the global secondary index.
     *        
     *        IndexSizeBytes - 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.
     *        
     *        IndexStatus - The current status of the global secondary index:
     *        
     *        CREATING - The index is being created.
     *        
     *        UPDATING - The index is being updated.
     *        
     *        DELETING - The index is being deleted.
     *        
     *        ACTIVE - The index is ready for use.
     *        
     *        ItemCount - 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.
     *        
     *        KeySchema - 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.
     *        
     *        Projection - 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:
     *        
     *        ProjectionType - One of the following:
     *        
     *        KEYS_ONLY - Only the index and primary keys are projected into the index.
     *        
     *        INCLUDE - In addition to the attributes described in KEYS_ONLY, the secondary
     *        index will include other non-key attributes that you specify.
     *        
     *        ALL - All of the table attributes are projected into the index.
     *        
     *        NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     *        secondary index. The total count of attributes provided in NonKeyAttributes, summed across
     *        all of the secondary indexes, must not exceed 100. If you project the same attribute into two different
     *        indexes, this counts as two distinct attributes when determining the total.
     *        
     *        ProvisionedThroughput - The provisioned throughput settings for the global secondary index,
     *        consisting of read and write capacity units, along with data about increases and decreases.
     *        
     *        If the table is in the  
     * The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each
     * element is composed of:
     *  
     *  
     * You can delete an index that is being created during the  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     *  
     * If the table is in the DELETING state, no information about indexes will be returned.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TableDescription withGlobalSecondaryIndexes(GlobalSecondaryIndexDescription... globalSecondaryIndexes) {
        if (this.globalSecondaryIndexes == null) {
            setGlobalSecondaryIndexes(new java.util.ArrayList
     * 
     * Backfilling - 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
     * CreateTable operation.)
     * Backfilling phase when
     * IndexStatus is set to CREATING and Backfilling is true. You can't delete the index that
     * is being created when IndexStatus is set to CREATING and Backfilling is false. (This
     * attribute does not appear for indexes that were created during a CreateTable operation.)
     * IndexName - The name of the global secondary index.
     * IndexSizeBytes - 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.
     * IndexStatus - The current status of the global secondary index:
     * 
     * 
     * CREATING - The index is being created.
     * UPDATING - The index is being updated.
     * DELETING - The index is being deleted.
     * ACTIVE - The index is ready for use.
     * ItemCount - 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.
     * KeySchema - 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.
     * Projection - 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:
     * 
     * 
     * ProjectionType - One of the following:
     * 
     * 
     * KEYS_ONLY - Only the index and primary keys are projected into the index.
     * INCLUDE - In addition to the attributes described in KEYS_ONLY, the secondary index
     * will include other non-key attributes that you specify.
     * ALL - All of the table attributes are projected into the index.
     * NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     * secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of
     * the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this
     * counts as two distinct attributes when determining the total.
     * ProvisionedThroughput - The provisioned throughput settings for the global secondary index,
     * consisting of read and write capacity units, along with data about increases and decreases.
     * DELETING state, no information about indexes will be returned.
     * 
     *        Backfilling - 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 CreateTable operation.)
     *        
     *        You can delete an index that is being created during the Backfilling phase when
     *        IndexStatus is set to CREATING and Backfilling is true. You can't delete the
     *        index that is being created when IndexStatus is set to CREATING and Backfilling
     *        is false. (This attribute does not appear for indexes that were created during a CreateTable
     *        operation.)
     *        
     *        IndexName - The name of the global secondary index.
     *        
     *        IndexSizeBytes - 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.
     *        
     *        IndexStatus - The current status of the global secondary index:
     *        
     *        CREATING - The index is being created.
     *        
     *        UPDATING - The index is being updated.
     *        
     *        DELETING - The index is being deleted.
     *        
     *        ACTIVE - The index is ready for use.
     *        
     *        ItemCount - 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.
     *        
     *        KeySchema - 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.
     *        
     *        Projection - 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:
     *        
     *        ProjectionType - One of the following:
     *        
     *        KEYS_ONLY - Only the index and primary keys are projected into the index.
     *        
     *        INCLUDE - In addition to the attributes described in KEYS_ONLY, the secondary
     *        index will include other non-key attributes that you specify.
     *        
     *        ALL - All of the table attributes are projected into the index.
     *        
     *        NonKeyAttributes - A list of one or more non-key attribute names that are projected into the
     *        secondary index. The total count of attributes provided in NonKeyAttributes, summed across
     *        all of the secondary indexes, must not exceed 100. If you project the same attribute into two different
     *        indexes, this counts as two distinct attributes when determining the total.
     *        
     *        ProvisionedThroughput - The provisioned throughput settings for the global secondary index,
     *        consisting of read and write capacity units, along with data about increases and decreases.
     *        
     *        If the table is in the  
     * The current DynamoDB Streams configuration for the table.
     *  
     * The current DynamoDB Streams configuration for the table.
     *  
     * The current DynamoDB Streams configuration for the table.
     *  
     * A timestamp, in ISO 8601 format, for this stream.
     *  
     * Note that  
     * Amazon Web Services customer ID
     *  
     * Table name
     *  
     * DELETING state, no information about indexes will be returned.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TableDescription withGlobalSecondaryIndexes(java.util.CollectionLatestStreamLabel 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:
     * 
     * 
     * 
     * @param latestStreamLabel
     *        A timestamp, in ISO 8601 format, for this stream.StreamLabel
     * 
     *        Note that LatestStreamLabel 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:
     *        
* Amazon Web Services customer ID *
** Table name *
*
     *        StreamLabel
     *        
* A timestamp, in ISO 8601 format, for this stream. *
*
     * Note that LatestStreamLabel 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:
     * 
* Amazon Web Services customer ID *
** Table name *
*
     * StreamLabel
     * 
     *         Note that LatestStreamLabel 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:
     *         
* Amazon Web Services customer ID *
** Table name *
*
     *         StreamLabel
     *         
* A timestamp, in ISO 8601 format, for this stream. *
*
     * Note that LatestStreamLabel 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:
     * 
* Amazon Web Services customer ID *
** Table name *
*
     * StreamLabel
     * 
     *        Note that LatestStreamLabel 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:
     *        
* Amazon Web Services customer ID *
** Table name *
*
     *        StreamLabel
     *        
* The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table. *
* * @param latestStreamArn * The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table. */ public void setLatestStreamArn(String latestStreamArn) { this.latestStreamArn = latestStreamArn; } /** ** The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table. *
* * @return The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table. */ public String getLatestStreamArn() { return this.latestStreamArn; } /** ** The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table. *
* * @param latestStreamArn * The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withLatestStreamArn(String latestStreamArn) { setLatestStreamArn(latestStreamArn); return this; } /** ** Represents the version of global tables in * use, if the table is replicated across Amazon Web Services Regions. *
* * @param globalTableVersion * Represents the version of global * tables in use, if the table is replicated across Amazon Web Services Regions. */ public void setGlobalTableVersion(String globalTableVersion) { this.globalTableVersion = globalTableVersion; } /** ** Represents the version of global tables in * use, if the table is replicated across Amazon Web Services Regions. *
* * @return Represents the version of global * tables in use, if the table is replicated across Amazon Web Services Regions. */ public String getGlobalTableVersion() { return this.globalTableVersion; } /** ** Represents the version of global tables in * use, if the table is replicated across Amazon Web Services Regions. *
* * @param globalTableVersion * Represents the version of global * tables in use, if the table is replicated across Amazon Web Services Regions. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withGlobalTableVersion(String globalTableVersion) { setGlobalTableVersion(globalTableVersion); return this; } /** ** Represents replicas of the table. *
* * @return Represents replicas of the table. */ public java.util.List* Represents replicas of the table. *
* * @param replicas * Represents replicas of the table. */ public void setReplicas(java.util.Collection* Represents replicas of the table. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setReplicas(java.util.Collection)} or {@link #withReplicas(java.util.Collection)} if you want to override * the existing values. *
* * @param replicas * Represents replicas of the table. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withReplicas(ReplicaDescription... replicas) { if (this.replicas == null) { setReplicas(new java.util.ArrayList* Represents replicas of the table. *
* * @param replicas * Represents replicas of the table. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withReplicas(java.util.Collection* Contains details for the restore. *
* * @param restoreSummary * Contains details for the restore. */ public void setRestoreSummary(RestoreSummary restoreSummary) { this.restoreSummary = restoreSummary; } /** ** Contains details for the restore. *
* * @return Contains details for the restore. */ public RestoreSummary getRestoreSummary() { return this.restoreSummary; } /** ** Contains details for the restore. *
* * @param restoreSummary * Contains details for the restore. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withRestoreSummary(RestoreSummary restoreSummary) { setRestoreSummary(restoreSummary); return this; } /** ** The description of the server-side encryption status on the specified table. *
* * @param sSEDescription * The description of the server-side encryption status on the specified table. */ public void setSSEDescription(SSEDescription sSEDescription) { this.sSEDescription = sSEDescription; } /** ** The description of the server-side encryption status on the specified table. *
* * @return The description of the server-side encryption status on the specified table. */ public SSEDescription getSSEDescription() { return this.sSEDescription; } /** ** The description of the server-side encryption status on the specified table. *
* * @param sSEDescription * The description of the server-side encryption status on the specified table. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withSSEDescription(SSEDescription sSEDescription) { setSSEDescription(sSEDescription); return this; } /** ** Contains information about the table archive. *
* * @param archivalSummary * Contains information about the table archive. */ public void setArchivalSummary(ArchivalSummary archivalSummary) { this.archivalSummary = archivalSummary; } /** ** Contains information about the table archive. *
* * @return Contains information about the table archive. */ public ArchivalSummary getArchivalSummary() { return this.archivalSummary; } /** ** Contains information about the table archive. *
* * @param archivalSummary * Contains information about the table archive. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withArchivalSummary(ArchivalSummary archivalSummary) { setArchivalSummary(archivalSummary); return this; } /** ** Contains details of the table class. *
* * @param tableClassSummary * Contains details of the table class. */ public void setTableClassSummary(TableClassSummary tableClassSummary) { this.tableClassSummary = tableClassSummary; } /** ** Contains details of the table class. *
* * @return Contains details of the table class. */ public TableClassSummary getTableClassSummary() { return this.tableClassSummary; } /** ** Contains details of the table class. *
* * @param tableClassSummary * Contains details of the table class. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withTableClassSummary(TableClassSummary tableClassSummary) { setTableClassSummary(tableClassSummary); return this; } /** ** Indicates whether deletion protection is enabled (true) or disabled (false) on the table. *
* * @param deletionProtectionEnabled * Indicates whether deletion protection is enabled (true) or disabled (false) on the table. */ public void setDeletionProtectionEnabled(Boolean deletionProtectionEnabled) { this.deletionProtectionEnabled = deletionProtectionEnabled; } /** ** Indicates whether deletion protection is enabled (true) or disabled (false) on the table. *
* * @return Indicates whether deletion protection is enabled (true) or disabled (false) on the table. */ public Boolean getDeletionProtectionEnabled() { return this.deletionProtectionEnabled; } /** ** Indicates whether deletion protection is enabled (true) or disabled (false) on the table. *
* * @param deletionProtectionEnabled * Indicates whether deletion protection is enabled (true) or disabled (false) on the table. * @return Returns a reference to this object so that method calls can be chained together. */ public TableDescription withDeletionProtectionEnabled(Boolean deletionProtectionEnabled) { setDeletionProtectionEnabled(deletionProtectionEnabled); return this; } /** ** Indicates whether deletion protection is enabled (true) or disabled (false) on the table. *
* * @return Indicates whether deletion protection is enabled (true) or disabled (false) on the table. */ public Boolean isDeletionProtectionEnabled() { return this.deletionProtectionEnabled; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @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: ").append(getAttributeDefinitions()).append(","); if (getTableName() != null) sb.append("TableName: ").append(getTableName()).append(","); if (getKeySchema() != null) sb.append("KeySchema: ").append(getKeySchema()).append(","); if (getTableStatus() != null) sb.append("TableStatus: ").append(getTableStatus()).append(","); if (getCreationDateTime() != null) sb.append("CreationDateTime: ").append(getCreationDateTime()).append(","); if (getProvisionedThroughput() != null) sb.append("ProvisionedThroughput: ").append(getProvisionedThroughput()).append(","); if (getTableSizeBytes() != null) sb.append("TableSizeBytes: ").append(getTableSizeBytes()).append(","); if (getItemCount() != null) sb.append("ItemCount: ").append(getItemCount()).append(","); if (getTableArn() != null) sb.append("TableArn: ").append(getTableArn()).append(","); if (getTableId() != null) sb.append("TableId: ").append(getTableId()).append(","); if (getBillingModeSummary() != null) sb.append("BillingModeSummary: ").append(getBillingModeSummary()).append(","); if (getLocalSecondaryIndexes() != null) sb.append("LocalSecondaryIndexes: ").append(getLocalSecondaryIndexes()).append(","); if (getGlobalSecondaryIndexes() != null) sb.append("GlobalSecondaryIndexes: ").append(getGlobalSecondaryIndexes()).append(","); if (getStreamSpecification() != null) sb.append("StreamSpecification: ").append(getStreamSpecification()).append(","); if (getLatestStreamLabel() != null) sb.append("LatestStreamLabel: ").append(getLatestStreamLabel()).append(","); if (getLatestStreamArn() != null) sb.append("LatestStreamArn: ").append(getLatestStreamArn()).append(","); if (getGlobalTableVersion() != null) sb.append("GlobalTableVersion: ").append(getGlobalTableVersion()).append(","); if (getReplicas() != null) sb.append("Replicas: ").append(getReplicas()).append(","); if (getRestoreSummary() != null) sb.append("RestoreSummary: ").append(getRestoreSummary()).append(","); if (getSSEDescription() != null) sb.append("SSEDescription: ").append(getSSEDescription()).append(","); if (getArchivalSummary() != null) sb.append("ArchivalSummary: ").append(getArchivalSummary()).append(","); if (getTableClassSummary() != null) sb.append("TableClassSummary: ").append(getTableClassSummary()).append(","); if (getDeletionProtectionEnabled() != null) sb.append("DeletionProtectionEnabled: ").append(getDeletionProtectionEnabled()); sb.append("}"); return sb.toString(); } @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.getTableId() == null ^ this.getTableId() == null) return false; if (other.getTableId() != null && other.getTableId().equals(this.getTableId()) == false) return false; if (other.getBillingModeSummary() == null ^ this.getBillingModeSummary() == null) return false; if (other.getBillingModeSummary() != null && other.getBillingModeSummary().equals(this.getBillingModeSummary()) == 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; if (other.getGlobalTableVersion() == null ^ this.getGlobalTableVersion() == null) return false; if (other.getGlobalTableVersion() != null && other.getGlobalTableVersion().equals(this.getGlobalTableVersion()) == false) return false; if (other.getReplicas() == null ^ this.getReplicas() == null) return false; if (other.getReplicas() != null && other.getReplicas().equals(this.getReplicas()) == false) return false; if (other.getRestoreSummary() == null ^ this.getRestoreSummary() == null) return false; if (other.getRestoreSummary() != null && other.getRestoreSummary().equals(this.getRestoreSummary()) == false) return false; if (other.getSSEDescription() == null ^ this.getSSEDescription() == null) return false; if (other.getSSEDescription() != null && other.getSSEDescription().equals(this.getSSEDescription()) == false) return false; if (other.getArchivalSummary() == null ^ this.getArchivalSummary() == null) return false; if (other.getArchivalSummary() != null && other.getArchivalSummary().equals(this.getArchivalSummary()) == false) return false; if (other.getTableClassSummary() == null ^ this.getTableClassSummary() == null) return false; if (other.getTableClassSummary() != null && other.getTableClassSummary().equals(this.getTableClassSummary()) == false) return false; if (other.getDeletionProtectionEnabled() == null ^ this.getDeletionProtectionEnabled() == null) return false; if (other.getDeletionProtectionEnabled() != null && other.getDeletionProtectionEnabled().equals(this.getDeletionProtectionEnabled()) == false) return false; return true; } @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 + ((getTableId() == null) ? 0 : getTableId().hashCode()); hashCode = prime * hashCode + ((getBillingModeSummary() == null) ? 0 : getBillingModeSummary().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()); hashCode = prime * hashCode + ((getGlobalTableVersion() == null) ? 0 : getGlobalTableVersion().hashCode()); hashCode = prime * hashCode + ((getReplicas() == null) ? 0 : getReplicas().hashCode()); hashCode = prime * hashCode + ((getRestoreSummary() == null) ? 0 : getRestoreSummary().hashCode()); hashCode = prime * hashCode + ((getSSEDescription() == null) ? 0 : getSSEDescription().hashCode()); hashCode = prime * hashCode + ((getArchivalSummary() == null) ? 0 : getArchivalSummary().hashCode()); hashCode = prime * hashCode + ((getTableClassSummary() == null) ? 0 : getTableClassSummary().hashCode()); hashCode = prime * hashCode + ((getDeletionProtectionEnabled() == null) ? 0 : getDeletionProtectionEnabled().hashCode()); return hashCode; } @Override public TableDescription clone() { try { return (TableDescription) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.dynamodbv2.model.transform.TableDescriptionMarshaller.getInstance().marshall(this, protocolMarshaller); } }