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

com.amazonaws.services.dynamodbv2.model.CreateTableRequest Maven / Gradle / Ivy

/*
 * Copyright 2010-2018 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 com.amazonaws.AmazonWebServiceRequest;

/**
 * 

* The CreateTable operation adds a new table to your account. In * an AWS account, table names must be unique within each region. That is, you * can have two tables with same name if you create the tables in different * regions. *

*

* CreateTable is an asynchronous operation. Upon receiving a * CreateTable request, DynamoDB immediately returns a response * with a TableStatus of CREATING. After the table is * created, DynamoDB sets the TableStatus to ACTIVE. * You can perform read and write operations only on an ACTIVE * table. *

*

* You can optionally define secondary indexes on the new table, as part of the * CreateTable operation. If you want to create multiple tables * with secondary indexes on them, you must create the tables sequentially. Only * one table with secondary indexes can be in the CREATING state at * any given time. *

*

* You can use the DescribeTable action to check the table status. *

*/ public class CreateTableRequest extends AmazonWebServiceRequest implements Serializable { /** *

* An array of attributes that describe the key schema for the table and * indexes. *

*/ private java.util.List attributeDefinitions; /** *

* The name of the table to create. *

*

* Constraints:
* Length: 3 - 255
* Pattern: [a-zA-Z0-9_.-]+
*/ private String tableName; /** *

* Specifies the attributes that make up the primary key for a table or an * index. The attributes in KeySchema must also be defined in * the AttributeDefinitions array. For more information, see Data Model in the Amazon DynamoDB Developer Guide. *

*

* Each KeySchemaElement in the array is composed of: *

*
    *
  • *

    * AttributeName - The name of this key attribute. *

    *
  • *
  • *

    * KeyType - The role that the key attribute will assume: *

    *
      *
    • *

      * HASH - partition key *

      *
    • *
    • *

      * RANGE - sort key *

      *
    • *
    *
  • *
* *

* The partition key of an item is also known as its hash attribute. * The term "hash attribute" derives from DynamoDB' 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 a simple primary key (partition key), you must provide exactly one * element with a KeyType of HASH. *

*

* For a composite primary key (partition key and sort key), you must * provide exactly two elements, in this order: The first element must have * a KeyType of HASH, and the second element must * have a KeyType of RANGE. *

*

* For more information, see Specifying the Primary Key in the Amazon DynamoDB Developer * Guide. *

*/ private java.util.List keySchema; /** *

* One or more local secondary indexes (the maximum is five) to be created * on the table. Each index is scoped to a given partition key value. There * is a 10 GB size limit per partition key value; otherwise, the size of a * local secondary index is unconstrained. *

*

* Each local secondary index in the array includes the following: *

*
    *
  • *

    * IndexName - The name of the local secondary index. Must be * unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the local secondary * index. 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 are 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 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total. *

      *
    • *
    *
  • *
*/ private java.util.List localSecondaryIndexes; /** *

* One or more global secondary indexes (the maximum is five) to be created * on the table. Each global secondary index in the array includes the * following: *

*
    *
  • *

    * IndexName - The name of the global secondary index. Must be * unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the global * secondary index. *

    *
  • *
  • *

    * 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 are 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 20. 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. *

    *
  • *
*/ private java.util.List globalSecondaryIndexes; /** *

* Represents the provisioned throughput settings for a specified table or * index. The settings can be modified using the UpdateTable * operation. *

*

* For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide. *

*/ private ProvisionedThroughput provisionedThroughput; /** *

* The settings for DynamoDB Streams on the table. These settings consist * of: *

*
    *
  • *

    * StreamEnabled - Indicates whether Streams is to be enabled * (true) or disabled (false). *

    *
  • *
  • *

    * StreamViewType - When an item in the table is modified, * StreamViewType determines what information is written to the * table's stream. Valid values for StreamViewType are: *

    *
      *
    • *

      * KEYS_ONLY - Only the key attributes of the modified item are * written to the stream. *

      *
    • *
    • *

      * NEW_IMAGE - The entire item, as it appears after it was * modified, is written to the stream. *

      *
    • *
    • *

      * OLD_IMAGE - The entire item, as it appeared before it was * modified, is written to the stream. *

      *
    • *
    • *

      * NEW_AND_OLD_IMAGES - Both the new and the old item images of * the item are written to the stream. *

      *
    • *
    *
  • *
*/ private StreamSpecification streamSpecification; /** *

* Represents the settings used to enable server-side encryption. *

*/ private SSESpecification sSESpecification; /** * Default constructor for CreateTableRequest object. Callers should use the * setter or fluent setter (with...) methods to initialize any additional * object members. */ public CreateTableRequest() { } /** * Constructs a new CreateTableRequest object. Callers should use the setter * or fluent setter (with...) methods to initialize any additional object * members. * * @param tableName

* The name of the table to create. *

* @param keySchema

* Specifies the attributes that make up the primary key for a * table or an index. The attributes in KeySchema * must also be defined in the AttributeDefinitions * array. For more information, see Data Model in the Amazon DynamoDB Developer Guide. *

*

* Each KeySchemaElement in the array is composed * of: *

*
    *
  • *

    * AttributeName - The name of this key attribute. *

    *
  • *
  • *

    * KeyType - The role that the key attribute will * assume: *

    *
      *
    • *

      * HASH - partition key *

      *
    • *
    • *

      * RANGE - sort key *

      *
    • *
    *
  • *
* *

* The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from * DynamoDB' 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 a simple primary key (partition key), you must provide * exactly one element with a KeyType of * HASH. *

*

* For a composite primary key (partition key and sort key), you * must provide exactly two elements, in this order: The first * element must have a KeyType of HASH, * and the second element must have a KeyType of * RANGE. *

*

* For more information, see Specifying the Primary Key in the Amazon DynamoDB * Developer Guide. *

*/ public CreateTableRequest(String tableName, java.util.List keySchema) { setTableName(tableName); setKeySchema(keySchema); } /** * Constructs a new CreateTableRequest object. Callers should use the setter * or fluent setter (with...) methods to initialize any additional object * members. * * @param attributeDefinitions

* An array of attributes that describe the key schema for the * table and indexes. *

* @param tableName

* The name of the table to create. *

* @param keySchema

* Specifies the attributes that make up the primary key for a * table or an index. The attributes in KeySchema * must also be defined in the AttributeDefinitions * array. For more information, see Data Model in the Amazon DynamoDB Developer Guide. *

*

* Each KeySchemaElement in the array is composed * of: *

*
    *
  • *

    * AttributeName - The name of this key attribute. *

    *
  • *
  • *

    * KeyType - The role that the key attribute will * assume: *

    *
      *
    • *

      * HASH - partition key *

      *
    • *
    • *

      * RANGE - sort key *

      *
    • *
    *
  • *
* *

* The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from * DynamoDB' 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 a simple primary key (partition key), you must provide * exactly one element with a KeyType of * HASH. *

*

* For a composite primary key (partition key and sort key), you * must provide exactly two elements, in this order: The first * element must have a KeyType of HASH, * and the second element must have a KeyType of * RANGE. *

*

* For more information, see Specifying the Primary Key in the Amazon DynamoDB * Developer Guide. *

* @param provisionedThroughput

* Represents the provisioned throughput settings for a specified * table or index. The settings can be modified using the * UpdateTable operation. *

*

* For current minimum and maximum provisioned throughput values, * see Limits in the Amazon DynamoDB Developer Guide. *

*/ public CreateTableRequest(java.util.List attributeDefinitions, String tableName, java.util.List keySchema, ProvisionedThroughput provisionedThroughput) { setAttributeDefinitions(attributeDefinitions); setTableName(tableName); setKeySchema(keySchema); setProvisionedThroughput(provisionedThroughput); } /** *

* An array of attributes that describe the key schema for the table and * indexes. *

* * @return

* An array of attributes that describe the key schema for the table * and indexes. *

*/ public java.util.List getAttributeDefinitions() { return attributeDefinitions; } /** *

* An array of attributes that describe the key schema for the table and * indexes. *

* * @param attributeDefinitions

* An array of attributes that describe the key schema for the * table and indexes. *

*/ public void setAttributeDefinitions( java.util.Collection attributeDefinitions) { if (attributeDefinitions == null) { this.attributeDefinitions = null; return; } this.attributeDefinitions = new java.util.ArrayList( attributeDefinitions); } /** *

* An array of attributes that describe the key schema for the table and * indexes. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param attributeDefinitions

* An array of attributes that describe the key schema for the * table and indexes. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateTableRequest withAttributeDefinitions(AttributeDefinition... attributeDefinitions) { if (getAttributeDefinitions() == null) { this.attributeDefinitions = new java.util.ArrayList( attributeDefinitions.length); } for (AttributeDefinition value : attributeDefinitions) { this.attributeDefinitions.add(value); } return this; } /** *

* An array of attributes that describe the key schema for the table and * indexes. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param attributeDefinitions

* An array of attributes that describe the key schema for the * table and indexes. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateTableRequest withAttributeDefinitions( java.util.Collection attributeDefinitions) { setAttributeDefinitions(attributeDefinitions); return this; } /** *

* The name of the table to create. *

*

* Constraints:
* Length: 3 - 255
* Pattern: [a-zA-Z0-9_.-]+
* * @return

* The name of the table to create. *

*/ public String getTableName() { return tableName; } /** *

* The name of the table to create. *

*

* Constraints:
* Length: 3 - 255
* Pattern: [a-zA-Z0-9_.-]+
* * @param tableName

* The name of the table to create. *

*/ public void setTableName(String tableName) { this.tableName = tableName; } /** *

* The name of the table to create. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 3 - 255
* Pattern: [a-zA-Z0-9_.-]+
* * @param tableName

* The name of the table to create. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateTableRequest withTableName(String tableName) { this.tableName = tableName; return this; } /** *

* Specifies the attributes that make up the primary key for a table or an * index. The attributes in KeySchema must also be defined in * the AttributeDefinitions array. For more information, see Data Model in the Amazon DynamoDB Developer Guide. *

*

* Each KeySchemaElement in the array is composed of: *

*
    *
  • *

    * AttributeName - The name of this key attribute. *

    *
  • *
  • *

    * KeyType - The role that the key attribute will assume: *

    *
      *
    • *

      * HASH - partition key *

      *
    • *
    • *

      * RANGE - sort key *

      *
    • *
    *
  • *
* *

* The partition key of an item is also known as its hash attribute. * The term "hash attribute" derives from DynamoDB' 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 a simple primary key (partition key), you must provide exactly one * element with a KeyType of HASH. *

*

* For a composite primary key (partition key and sort key), you must * provide exactly two elements, in this order: The first element must have * a KeyType of HASH, and the second element must * have a KeyType of RANGE. *

*

* For more information, see Specifying the Primary Key in the Amazon DynamoDB Developer * Guide. *

* * @return

* Specifies the attributes that make up the primary key for a table * or an index. The attributes in KeySchema must also * be defined in the AttributeDefinitions array. For * more information, see Data Model in the Amazon DynamoDB Developer Guide. *

*

* Each KeySchemaElement in the array is composed of: *

*
    *
  • *

    * AttributeName - The name of this key attribute. *

    *
  • *
  • *

    * KeyType - The role that the key attribute will * assume: *

    *
      *
    • *

      * HASH - partition key *

      *
    • *
    • *

      * RANGE - sort key *

      *
    • *
    *
  • *
* *

* The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from DynamoDB' * 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 a simple primary key (partition key), you must provide * exactly one element with a KeyType of * HASH. *

*

* For a composite primary key (partition key and sort key), you * must provide exactly two elements, in this order: The first * element must have a KeyType of HASH, * and the second element must have a KeyType of * RANGE. *

*

* For more information, see Specifying the Primary Key in the Amazon DynamoDB * Developer Guide. *

*/ public java.util.List getKeySchema() { return keySchema; } /** *

* Specifies the attributes that make up the primary key for a table or an * index. The attributes in KeySchema must also be defined in * the AttributeDefinitions array. For more information, see Data Model in the Amazon DynamoDB Developer Guide. *

*

* Each KeySchemaElement in the array is composed of: *

*
    *
  • *

    * AttributeName - The name of this key attribute. *

    *
  • *
  • *

    * KeyType - The role that the key attribute will assume: *

    *
      *
    • *

      * HASH - partition key *

      *
    • *
    • *

      * RANGE - sort key *

      *
    • *
    *
  • *
* *

* The partition key of an item is also known as its hash attribute. * The term "hash attribute" derives from DynamoDB' 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 a simple primary key (partition key), you must provide exactly one * element with a KeyType of HASH. *

*

* For a composite primary key (partition key and sort key), you must * provide exactly two elements, in this order: The first element must have * a KeyType of HASH, and the second element must * have a KeyType of RANGE. *

*

* For more information, see Specifying the Primary Key in the Amazon DynamoDB Developer * Guide. *

* * @param keySchema

* Specifies the attributes that make up the primary key for a * table or an index. The attributes in KeySchema * must also be defined in the AttributeDefinitions * array. For more information, see Data Model in the Amazon DynamoDB Developer Guide. *

*

* Each KeySchemaElement in the array is composed * of: *

*
    *
  • *

    * AttributeName - The name of this key attribute. *

    *
  • *
  • *

    * KeyType - The role that the key attribute will * assume: *

    *
      *
    • *

      * HASH - partition key *

      *
    • *
    • *

      * RANGE - sort key *

      *
    • *
    *
  • *
* *

* The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from * DynamoDB' 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 a simple primary key (partition key), you must provide * exactly one element with a KeyType of * HASH. *

*

* For a composite primary key (partition key and sort key), you * must provide exactly two elements, in this order: The first * element must have a KeyType of HASH, * and the second element must have a KeyType of * RANGE. *

*

* For more information, see Specifying the Primary Key in the Amazon DynamoDB * Developer Guide. *

*/ public void setKeySchema(java.util.Collection keySchema) { if (keySchema == null) { this.keySchema = null; return; } this.keySchema = new java.util.ArrayList(keySchema); } /** *

* Specifies the attributes that make up the primary key for a table or an * index. The attributes in KeySchema must also be defined in * the AttributeDefinitions array. For more information, see Data Model in the Amazon DynamoDB Developer Guide. *

*

* Each KeySchemaElement in the array is composed of: *

*
    *
  • *

    * AttributeName - The name of this key attribute. *

    *
  • *
  • *

    * KeyType - The role that the key attribute will assume: *

    *
      *
    • *

      * HASH - partition key *

      *
    • *
    • *

      * RANGE - sort key *

      *
    • *
    *
  • *
* *

* The partition key of an item is also known as its hash attribute. * The term "hash attribute" derives from DynamoDB' 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 a simple primary key (partition key), you must provide exactly one * element with a KeyType of HASH. *

*

* For a composite primary key (partition key and sort key), you must * provide exactly two elements, in this order: The first element must have * a KeyType of HASH, and the second element must * have a KeyType of RANGE. *

*

* For more information, see Specifying the Primary Key in the Amazon DynamoDB Developer * Guide. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param keySchema

* Specifies the attributes that make up the primary key for a * table or an index. The attributes in KeySchema * must also be defined in the AttributeDefinitions * array. For more information, see Data Model in the Amazon DynamoDB Developer Guide. *

*

* Each KeySchemaElement in the array is composed * of: *

*
    *
  • *

    * AttributeName - The name of this key attribute. *

    *
  • *
  • *

    * KeyType - The role that the key attribute will * assume: *

    *
      *
    • *

      * HASH - partition key *

      *
    • *
    • *

      * RANGE - sort key *

      *
    • *
    *
  • *
* *

* The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from * DynamoDB' 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 a simple primary key (partition key), you must provide * exactly one element with a KeyType of * HASH. *

*

* For a composite primary key (partition key and sort key), you * must provide exactly two elements, in this order: The first * element must have a KeyType of HASH, * and the second element must have a KeyType of * RANGE. *

*

* For more information, see Specifying the Primary Key in the Amazon DynamoDB * Developer Guide. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateTableRequest withKeySchema(KeySchemaElement... keySchema) { if (getKeySchema() == null) { this.keySchema = new java.util.ArrayList(keySchema.length); } for (KeySchemaElement value : keySchema) { this.keySchema.add(value); } return this; } /** *

* Specifies the attributes that make up the primary key for a table or an * index. The attributes in KeySchema must also be defined in * the AttributeDefinitions array. For more information, see Data Model in the Amazon DynamoDB Developer Guide. *

*

* Each KeySchemaElement in the array is composed of: *

*
    *
  • *

    * AttributeName - The name of this key attribute. *

    *
  • *
  • *

    * KeyType - The role that the key attribute will assume: *

    *
      *
    • *

      * HASH - partition key *

      *
    • *
    • *

      * RANGE - sort key *

      *
    • *
    *
  • *
* *

* The partition key of an item is also known as its hash attribute. * The term "hash attribute" derives from DynamoDB' 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 a simple primary key (partition key), you must provide exactly one * element with a KeyType of HASH. *

*

* For a composite primary key (partition key and sort key), you must * provide exactly two elements, in this order: The first element must have * a KeyType of HASH, and the second element must * have a KeyType of RANGE. *

*

* For more information, see Specifying the Primary Key in the Amazon DynamoDB Developer * Guide. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param keySchema

* Specifies the attributes that make up the primary key for a * table or an index. The attributes in KeySchema * must also be defined in the AttributeDefinitions * array. For more information, see Data Model in the Amazon DynamoDB Developer Guide. *

*

* Each KeySchemaElement in the array is composed * of: *

*
    *
  • *

    * AttributeName - The name of this key attribute. *

    *
  • *
  • *

    * KeyType - The role that the key attribute will * assume: *

    *
      *
    • *

      * HASH - partition key *

      *
    • *
    • *

      * RANGE - sort key *

      *
    • *
    *
  • *
* *

* The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from * DynamoDB' 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 a simple primary key (partition key), you must provide * exactly one element with a KeyType of * HASH. *

*

* For a composite primary key (partition key and sort key), you * must provide exactly two elements, in this order: The first * element must have a KeyType of HASH, * and the second element must have a KeyType of * RANGE. *

*

* For more information, see Specifying the Primary Key in the Amazon DynamoDB * Developer Guide. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateTableRequest withKeySchema(java.util.Collection keySchema) { setKeySchema(keySchema); return this; } /** *

* One or more local secondary indexes (the maximum is five) to be created * on the table. Each index is scoped to a given partition key value. There * is a 10 GB size limit per partition key value; otherwise, the size of a * local secondary index is unconstrained. *

*

* Each local secondary index in the array includes the following: *

*
    *
  • *

    * IndexName - The name of the local secondary index. Must be * unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the local secondary * index. 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 are 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 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total. *

      *
    • *
    *
  • *
* * @return

* One or more local secondary indexes (the maximum is five) to be * created on the table. Each index is scoped to a given partition * key value. There is a 10 GB size limit per partition key value; * otherwise, the size of a local secondary index is unconstrained. *

*

* Each local secondary index in the array includes the following: *

*
    *
  • *

    * IndexName - The name of the local secondary index. * Must be unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the local * secondary index. 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 are 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 20. If you project the same attribute * into two different indexes, this counts as two distinct * attributes when determining the total. *

      *
    • *
    *
  • *
*/ public java.util.List getLocalSecondaryIndexes() { return localSecondaryIndexes; } /** *

* One or more local secondary indexes (the maximum is five) to be created * on the table. Each index is scoped to a given partition key value. There * is a 10 GB size limit per partition key value; otherwise, the size of a * local secondary index is unconstrained. *

*

* Each local secondary index in the array includes the following: *

*
    *
  • *

    * IndexName - The name of the local secondary index. Must be * unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the local secondary * index. 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 are 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 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total. *

      *
    • *
    *
  • *
* * @param localSecondaryIndexes

* One or more local secondary indexes (the maximum is five) to * be created on the table. Each index is scoped to a given * partition key value. There is a 10 GB size limit per partition * key value; otherwise, the size of a local secondary index is * unconstrained. *

*

* Each local secondary index in the array includes the * following: *

*
    *
  • *

    * IndexName - The name of the local secondary * index. Must be unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the * local secondary index. 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 are * 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 20. If you project the same * attribute into two different indexes, this counts as two * distinct attributes when determining the total. *

      *
    • *
    *
  • *
*/ public void setLocalSecondaryIndexes( java.util.Collection localSecondaryIndexes) { if (localSecondaryIndexes == null) { this.localSecondaryIndexes = null; return; } this.localSecondaryIndexes = new java.util.ArrayList( localSecondaryIndexes); } /** *

* One or more local secondary indexes (the maximum is five) to be created * on the table. Each index is scoped to a given partition key value. There * is a 10 GB size limit per partition key value; otherwise, the size of a * local secondary index is unconstrained. *

*

* Each local secondary index in the array includes the following: *

*
    *
  • *

    * IndexName - The name of the local secondary index. Must be * unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the local secondary * index. 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 are 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 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total. *

      *
    • *
    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param localSecondaryIndexes

* One or more local secondary indexes (the maximum is five) to * be created on the table. Each index is scoped to a given * partition key value. There is a 10 GB size limit per partition * key value; otherwise, the size of a local secondary index is * unconstrained. *

*

* Each local secondary index in the array includes the * following: *

*
    *
  • *

    * IndexName - The name of the local secondary * index. Must be unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the * local secondary index. 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 are * 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 20. If you project the same * attribute into two different indexes, this counts as two * distinct attributes when determining the total. *

      *
    • *
    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateTableRequest withLocalSecondaryIndexes( LocalSecondaryIndex... localSecondaryIndexes) { if (getLocalSecondaryIndexes() == null) { this.localSecondaryIndexes = new java.util.ArrayList( localSecondaryIndexes.length); } for (LocalSecondaryIndex value : localSecondaryIndexes) { this.localSecondaryIndexes.add(value); } return this; } /** *

* One or more local secondary indexes (the maximum is five) to be created * on the table. Each index is scoped to a given partition key value. There * is a 10 GB size limit per partition key value; otherwise, the size of a * local secondary index is unconstrained. *

*

* Each local secondary index in the array includes the following: *

*
    *
  • *

    * IndexName - The name of the local secondary index. Must be * unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the local secondary * index. 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 are 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 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total. *

      *
    • *
    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param localSecondaryIndexes

* One or more local secondary indexes (the maximum is five) to * be created on the table. Each index is scoped to a given * partition key value. There is a 10 GB size limit per partition * key value; otherwise, the size of a local secondary index is * unconstrained. *

*

* Each local secondary index in the array includes the * following: *

*
    *
  • *

    * IndexName - The name of the local secondary * index. Must be unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the * local secondary index. 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 are * 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 20. If you project the same * attribute into two different indexes, this counts as two * distinct attributes when determining the total. *

      *
    • *
    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateTableRequest withLocalSecondaryIndexes( java.util.Collection localSecondaryIndexes) { setLocalSecondaryIndexes(localSecondaryIndexes); return this; } /** *

* One or more global secondary indexes (the maximum is five) to be created * on the table. Each global secondary index in the array includes the * following: *

*
    *
  • *

    * IndexName - The name of the global secondary index. Must be * unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the global * secondary index. *

    *
  • *
  • *

    * 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 are 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 20. 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. *

    *
  • *
* * @return

* One or more global secondary indexes (the maximum is five) to be * created on the table. Each global secondary index in the array * includes the following: *

*
    *
  • *

    * IndexName - The name of the global secondary index. * Must be unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the global * secondary index. *

    *
  • *
  • *

    * 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 are 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 20. 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. *

    *
  • *
*/ public java.util.List getGlobalSecondaryIndexes() { return globalSecondaryIndexes; } /** *

* One or more global secondary indexes (the maximum is five) to be created * on the table. Each global secondary index in the array includes the * following: *

*
    *
  • *

    * IndexName - The name of the global secondary index. Must be * unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the global * secondary index. *

    *
  • *
  • *

    * 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 are 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 20. 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. *

    *
  • *
* * @param globalSecondaryIndexes

* One or more global secondary indexes (the maximum is five) to * be created on the table. Each global secondary index in the * array includes the following: *

*
    *
  • *

    * IndexName - The name of the global secondary * index. Must be unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the * global secondary index. *

    *
  • *
  • *

    * 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 are * 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 20. 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. *

    *
  • *
*/ public void setGlobalSecondaryIndexes( java.util.Collection globalSecondaryIndexes) { if (globalSecondaryIndexes == null) { this.globalSecondaryIndexes = null; return; } this.globalSecondaryIndexes = new java.util.ArrayList( globalSecondaryIndexes); } /** *

* One or more global secondary indexes (the maximum is five) to be created * on the table. Each global secondary index in the array includes the * following: *

*
    *
  • *

    * IndexName - The name of the global secondary index. Must be * unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the global * secondary index. *

    *
  • *
  • *

    * 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 are 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 20. 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. *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param globalSecondaryIndexes

* One or more global secondary indexes (the maximum is five) to * be created on the table. Each global secondary index in the * array includes the following: *

*
    *
  • *

    * IndexName - The name of the global secondary * index. Must be unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the * global secondary index. *

    *
  • *
  • *

    * 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 are * 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 20. 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. *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateTableRequest withGlobalSecondaryIndexes( GlobalSecondaryIndex... globalSecondaryIndexes) { if (getGlobalSecondaryIndexes() == null) { this.globalSecondaryIndexes = new java.util.ArrayList( globalSecondaryIndexes.length); } for (GlobalSecondaryIndex value : globalSecondaryIndexes) { this.globalSecondaryIndexes.add(value); } return this; } /** *

* One or more global secondary indexes (the maximum is five) to be created * on the table. Each global secondary index in the array includes the * following: *

*
    *
  • *

    * IndexName - The name of the global secondary index. Must be * unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the global * secondary index. *

    *
  • *
  • *

    * 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 are 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 20. 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. *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param globalSecondaryIndexes

* One or more global secondary indexes (the maximum is five) to * be created on the table. Each global secondary index in the * array includes the following: *

*
    *
  • *

    * IndexName - The name of the global secondary * index. Must be unique only for this table. *

    *

  • *
  • *

    * KeySchema - Specifies the key schema for the * global secondary index. *

    *
  • *
  • *

    * 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 are * 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 20. 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. *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateTableRequest withGlobalSecondaryIndexes( java.util.Collection globalSecondaryIndexes) { setGlobalSecondaryIndexes(globalSecondaryIndexes); return this; } /** *

* Represents the provisioned throughput settings for a specified table or * index. The settings can be modified using the UpdateTable * operation. *

*

* For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide. *

* * @return

* Represents the provisioned throughput settings for a specified * table or index. The settings can be modified using the * UpdateTable operation. *

*

* For current minimum and maximum provisioned throughput values, * see Limits in the Amazon DynamoDB Developer Guide. *

*/ public ProvisionedThroughput getProvisionedThroughput() { return provisionedThroughput; } /** *

* Represents the provisioned throughput settings for a specified table or * index. The settings can be modified using the UpdateTable * operation. *

*

* For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide. *

* * @param provisionedThroughput

* Represents the provisioned throughput settings for a specified * table or index. The settings can be modified using the * UpdateTable operation. *

*

* For current minimum and maximum provisioned throughput values, * see Limits in the Amazon DynamoDB Developer Guide. *

*/ public void setProvisionedThroughput(ProvisionedThroughput provisionedThroughput) { this.provisionedThroughput = provisionedThroughput; } /** *

* Represents the provisioned throughput settings for a specified table or * index. The settings can be modified using the UpdateTable * operation. *

*

* For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param provisionedThroughput

* Represents the provisioned throughput settings for a specified * table or index. The settings can be modified using the * UpdateTable operation. *

*

* For current minimum and maximum provisioned throughput values, * see Limits in the Amazon DynamoDB Developer Guide. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateTableRequest withProvisionedThroughput(ProvisionedThroughput provisionedThroughput) { this.provisionedThroughput = provisionedThroughput; return this; } /** *

* The settings for DynamoDB Streams on the table. These settings consist * of: *

*
    *
  • *

    * StreamEnabled - Indicates whether Streams is to be enabled * (true) or disabled (false). *

    *
  • *
  • *

    * StreamViewType - When an item in the table is modified, * StreamViewType determines what information is written to the * table's stream. Valid values for StreamViewType are: *

    *
      *
    • *

      * KEYS_ONLY - Only the key attributes of the modified item are * written to the stream. *

      *
    • *
    • *

      * NEW_IMAGE - The entire item, as it appears after it was * modified, is written to the stream. *

      *
    • *
    • *

      * OLD_IMAGE - The entire item, as it appeared before it was * modified, is written to the stream. *

      *
    • *
    • *

      * NEW_AND_OLD_IMAGES - Both the new and the old item images of * the item are written to the stream. *

      *
    • *
    *
  • *
* * @return

* The settings for DynamoDB Streams on the table. These settings * consist of: *

*
    *
  • *

    * StreamEnabled - Indicates whether Streams is to be * enabled (true) or disabled (false). *

    *
  • *
  • *

    * StreamViewType - When an item in the table is * modified, StreamViewType determines what information * is written to the table's stream. Valid values for * StreamViewType are: *

    *
      *
    • *

      * KEYS_ONLY - Only the key attributes of the modified * item are written to the stream. *

      *
    • *
    • *

      * NEW_IMAGE - The entire item, as it appears after it * was modified, is written to the stream. *

      *
    • *
    • *

      * OLD_IMAGE - The entire item, as it appeared before * it was modified, is written to the stream. *

      *
    • *
    • *

      * NEW_AND_OLD_IMAGES - Both the new and the old item * images of the item are written to the stream. *

      *
    • *
    *
  • *
*/ public StreamSpecification getStreamSpecification() { return streamSpecification; } /** *

* The settings for DynamoDB Streams on the table. These settings consist * of: *

*
    *
  • *

    * StreamEnabled - Indicates whether Streams is to be enabled * (true) or disabled (false). *

    *
  • *
  • *

    * StreamViewType - When an item in the table is modified, * StreamViewType determines what information is written to the * table's stream. Valid values for StreamViewType are: *

    *
      *
    • *

      * KEYS_ONLY - Only the key attributes of the modified item are * written to the stream. *

      *
    • *
    • *

      * NEW_IMAGE - The entire item, as it appears after it was * modified, is written to the stream. *

      *
    • *
    • *

      * OLD_IMAGE - The entire item, as it appeared before it was * modified, is written to the stream. *

      *
    • *
    • *

      * NEW_AND_OLD_IMAGES - Both the new and the old item images of * the item are written to the stream. *

      *
    • *
    *
  • *
* * @param streamSpecification

* The settings for DynamoDB Streams on the table. These settings * consist of: *

*
    *
  • *

    * StreamEnabled - Indicates whether Streams is to * be enabled (true) or disabled (false). *

    *
  • *
  • *

    * StreamViewType - When an item in the table is * modified, StreamViewType determines what * information is written to the table's stream. Valid values for * StreamViewType are: *

    *
      *
    • *

      * KEYS_ONLY - Only the key attributes of the * modified item are written to the stream. *

      *
    • *
    • *

      * NEW_IMAGE - The entire item, as it appears after * it was modified, is written to the stream. *

      *
    • *
    • *

      * OLD_IMAGE - The entire item, as it appeared * before it was modified, is written to the stream. *

      *
    • *
    • *

      * NEW_AND_OLD_IMAGES - Both the new and the old * item images of the item are written to the stream. *

      *
    • *
    *
  • *
*/ public void setStreamSpecification(StreamSpecification streamSpecification) { this.streamSpecification = streamSpecification; } /** *

* The settings for DynamoDB Streams on the table. These settings consist * of: *

*
    *
  • *

    * StreamEnabled - Indicates whether Streams is to be enabled * (true) or disabled (false). *

    *
  • *
  • *

    * StreamViewType - When an item in the table is modified, * StreamViewType determines what information is written to the * table's stream. Valid values for StreamViewType are: *

    *
      *
    • *

      * KEYS_ONLY - Only the key attributes of the modified item are * written to the stream. *

      *
    • *
    • *

      * NEW_IMAGE - The entire item, as it appears after it was * modified, is written to the stream. *

      *
    • *
    • *

      * OLD_IMAGE - The entire item, as it appeared before it was * modified, is written to the stream. *

      *
    • *
    • *

      * NEW_AND_OLD_IMAGES - Both the new and the old item images of * the item are written to the stream. *

      *
    • *
    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param streamSpecification

* The settings for DynamoDB Streams on the table. These settings * consist of: *

*
    *
  • *

    * StreamEnabled - Indicates whether Streams is to * be enabled (true) or disabled (false). *

    *
  • *
  • *

    * StreamViewType - When an item in the table is * modified, StreamViewType determines what * information is written to the table's stream. Valid values for * StreamViewType are: *

    *
      *
    • *

      * KEYS_ONLY - Only the key attributes of the * modified item are written to the stream. *

      *
    • *
    • *

      * NEW_IMAGE - The entire item, as it appears after * it was modified, is written to the stream. *

      *
    • *
    • *

      * OLD_IMAGE - The entire item, as it appeared * before it was modified, is written to the stream. *

      *
    • *
    • *

      * NEW_AND_OLD_IMAGES - Both the new and the old * item images of the item are written to the stream. *

      *
    • *
    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateTableRequest withStreamSpecification(StreamSpecification streamSpecification) { this.streamSpecification = streamSpecification; return this; } /** *

* Represents the settings used to enable server-side encryption. *

* * @return

* Represents the settings used to enable server-side encryption. *

*/ public SSESpecification getSSESpecification() { return sSESpecification; } /** *

* Represents the settings used to enable server-side encryption. *

* * @param sSESpecification

* Represents the settings used to enable server-side encryption. *

*/ public void setSSESpecification(SSESpecification sSESpecification) { this.sSESpecification = sSESpecification; } /** *

* Represents the settings used to enable server-side encryption. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param sSESpecification

* Represents the settings used to enable server-side encryption. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateTableRequest withSSESpecification(SSESpecification sSESpecification) { this.sSESpecification = sSESpecification; return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getAttributeDefinitions() != null) sb.append("AttributeDefinitions: " + getAttributeDefinitions() + ","); if (getTableName() != null) sb.append("TableName: " + getTableName() + ","); if (getKeySchema() != null) sb.append("KeySchema: " + getKeySchema() + ","); if (getLocalSecondaryIndexes() != null) sb.append("LocalSecondaryIndexes: " + getLocalSecondaryIndexes() + ","); if (getGlobalSecondaryIndexes() != null) sb.append("GlobalSecondaryIndexes: " + getGlobalSecondaryIndexes() + ","); if (getProvisionedThroughput() != null) sb.append("ProvisionedThroughput: " + getProvisionedThroughput() + ","); if (getStreamSpecification() != null) sb.append("StreamSpecification: " + getStreamSpecification() + ","); if (getSSESpecification() != null) sb.append("SSESpecification: " + getSSESpecification()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getAttributeDefinitions() == null) ? 0 : getAttributeDefinitions().hashCode()); hashCode = prime * hashCode + ((getTableName() == null) ? 0 : getTableName().hashCode()); hashCode = prime * hashCode + ((getKeySchema() == null) ? 0 : getKeySchema().hashCode()); hashCode = prime * hashCode + ((getLocalSecondaryIndexes() == null) ? 0 : getLocalSecondaryIndexes().hashCode()); hashCode = prime * hashCode + ((getGlobalSecondaryIndexes() == null) ? 0 : getGlobalSecondaryIndexes() .hashCode()); hashCode = prime * hashCode + ((getProvisionedThroughput() == null) ? 0 : getProvisionedThroughput().hashCode()); hashCode = prime * hashCode + ((getStreamSpecification() == null) ? 0 : getStreamSpecification().hashCode()); hashCode = prime * hashCode + ((getSSESpecification() == null) ? 0 : getSSESpecification().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CreateTableRequest == false) return false; CreateTableRequest other = (CreateTableRequest) 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.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.getProvisionedThroughput() == null ^ this.getProvisionedThroughput() == null) return false; if (other.getProvisionedThroughput() != null && other.getProvisionedThroughput().equals(this.getProvisionedThroughput()) == 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.getSSESpecification() == null ^ this.getSSESpecification() == null) return false; if (other.getSSESpecification() != null && other.getSSESpecification().equals(this.getSSESpecification()) == false) return false; return true; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy