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

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

Go to download

The AWS Java SDK for Amazon DynamoDB module holds the client classes that are used for communicating with Amazon DynamoDB Service

There is a newer version: 1.12.778
Show newest version
/*
 * Copyright 2019-2024 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.AmazonWebServiceRequest;

/**
 * 

* Represents the input of a CreateTable operation. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateTableRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* 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. You can also provide the Amazon Resource Name (ARN) of the table in this * parameter. *

*/ 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 * the 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 Working with Tables in the Amazon DynamoDB Developer Guide. *

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

* One or more local secondary indexes (the maximum is 5) 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 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. *

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

* One or more global secondary indexes (the maximum is 20) 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 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. *

      *
    • *
    *
  • *
  • *

    * ProvisionedThroughput - The provisioned throughput settings for the global secondary index, * consisting of read and write capacity units. *

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

* Controls how you are charged for read and write throughput and how you manage capacity. This setting can be * changed later. *

*
    *
  • *

    * PROVISIONED - We recommend using PROVISIONED for predictable workloads. * PROVISIONED sets the billing mode to Provisioned capacity mode. *

    *
  • *
  • *

    * PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for unpredictable workloads. * PAY_PER_REQUEST sets the billing mode to On-demand * capacity mode. *

    *
  • *
*/ private String billingMode; /** *

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

*

* If you set BillingMode as PROVISIONED, you must specify this property. If you set BillingMode as * PAY_PER_REQUEST, you cannot specify this property. *

*

* For current minimum and maximum provisioned throughput values, see Service, Account, and Table * Quotas in the Amazon DynamoDB Developer Guide. *

*/ private ProvisionedThroughput provisionedThroughput; /** *

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

*
    *
  • *

    * StreamEnabled - Indicates whether DynamoDB 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; /** *

* A list of key-value pairs to label the table. For more information, see Tagging for DynamoDB. *

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

* The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS. *

*/ private String tableClass; /** *

* Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table. *

*/ private Boolean deletionProtectionEnabled; /** *

* An Amazon Web Services resource-based policy document in JSON format that will be attached to the table. *

*

* When you attach a resource-based policy while creating a table, the policy application is strongly * consistent. *

*

* The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when * calculating the size of a policy against this limit. For a full list of all considerations that apply for * resource-based policies, see Resource-based * policy considerations. *

* *

* You need to specify the CreateTable and PutResourcePolicy IAM actions for authorizing a * user to create a table with a resource-based policy. *

*
*/ private String resourcePolicy; /** *

* Sets the maximum number of read and write units for the specified table in on-demand capacity mode. If you use * this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both. *

*/ private OnDemandThroughput onDemandThroughput; /** * Default constructor for CreateTableRequest object. Callers should use the setter or fluent setter (with...) * methods to initialize the object after creating it. */ 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. You can also provide the Amazon Resource Name (ARN) of the table in this * parameter. * @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 the 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 Working with Tables 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. You can also provide the Amazon Resource Name (ARN) of the table in this * parameter. * @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 the 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 Working with Tables 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. *

*

* If you set BillingMode as PROVISIONED, you must specify this property. If you set BillingMode * as PAY_PER_REQUEST, you cannot specify this property. *

*

* For current minimum and maximum provisioned throughput values, see Service, Account, and * Table Quotas 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. *

*

* 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 of attributes that describe the key schema for the table and indexes. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withAttributeDefinitions(AttributeDefinition... attributeDefinitions) { if (this.attributeDefinitions == null) { setAttributeDefinitions(new java.util.ArrayList(attributeDefinitions.length)); } for (AttributeDefinition ele : attributeDefinitions) { this.attributeDefinitions.add(ele); } return this; } /** *

* 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. * @return Returns a reference to this 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. You can also provide the Amazon Resource Name (ARN) of the table in this * parameter. *

* * @param tableName * The name of the table to create. You can also provide the Amazon Resource Name (ARN) of the table in this * parameter. */ public void setTableName(String tableName) { this.tableName = tableName; } /** *

* The name of the table to create. You can also provide the Amazon Resource Name (ARN) of the table in this * parameter. *

* * @return The name of the table to create. You can also provide the Amazon Resource Name (ARN) of the table in this * parameter. */ public String getTableName() { return this.tableName; } /** *

* The name of the table to create. You can also provide the Amazon Resource Name (ARN) of the table in this * parameter. *

* * @param tableName * The name of the table to create. You can also provide the Amazon Resource Name (ARN) of the table in this * parameter. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withTableName(String tableName) { setTableName(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 * the 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 Working with Tables 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 the 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 Working with Tables 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 * the 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 Working with Tables 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 the 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 Working with Tables 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 * the 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 Working with Tables 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. *

* * @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 the 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 Working with Tables in the Amazon DynamoDB Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withKeySchema(KeySchemaElement... keySchema) { if (this.keySchema == null) { setKeySchema(new java.util.ArrayList(keySchema.length)); } for (KeySchemaElement ele : keySchema) { this.keySchema.add(ele); } 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 * the 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 Working with Tables 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 the 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 Working with Tables in the Amazon DynamoDB Developer Guide. * @return Returns a reference to this 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 5) 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 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. *

      *
    • *
    *
  • *
* * @return One or more local secondary indexes (the maximum is 5) 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 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. *

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

    * One or more local secondary indexes (the maximum is 5) 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 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. *

        *
      • *
      *
    • *
    * * @param localSecondaryIndexes * One or more local secondary indexes (the maximum is 5) 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 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. *

        *
      • *
      *
    • */ 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 5) 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 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. *

          *
        • *
        *
      • *
      *

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

      * * @param localSecondaryIndexes * One or more local secondary indexes (the maximum is 5) 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 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. *

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

        * One or more local secondary indexes (the maximum is 5) 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 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. *

            *
          • *
          *
        • *
        * * @param localSecondaryIndexes * One or more local secondary indexes (the maximum is 5) 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 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. *

            *
          • *
          *
        • * @return Returns a reference to this 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 20) 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 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. *

              *
            • *
            *
          • *
          • *

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

              *
            • *
            *
          • *
          • *

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

                *
              • *
              *
            • *
            • *

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

                *
              • *
              *
            • *
            • *

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

                  *
                • *
                *
              • *
              • *

                * ProvisionedThroughput - The provisioned throughput settings for the global secondary index, * consisting of read and write capacity units. *

                *
              • *
              *

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

              * * @param globalSecondaryIndexes * One or more global secondary indexes (the maximum is 20) 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 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. *

                  *
                • *
                *
              • *
              • *

                * ProvisionedThroughput - The provisioned throughput settings for the global secondary index, * consisting of read and write capacity units. *

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

                * One or more global secondary indexes (the maximum is 20) 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 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. *

                    *
                  • *
                  *
                • *
                • *

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

                    *
                  • *
                  *
                • *
                • *

                  * ProvisionedThroughput - The provisioned throughput settings for the global secondary index, * consisting of read and write capacity units. *

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

                  * Controls how you are charged for read and write throughput and how you manage capacity. This setting can be * changed later. *

                  *
                    *
                  • *

                    * PROVISIONED - We recommend using PROVISIONED for predictable workloads. * PROVISIONED sets the billing mode to Provisioned capacity mode. *

                    *
                  • *
                  • *

                    * PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for unpredictable workloads. * PAY_PER_REQUEST sets the billing mode to On-demand * capacity mode. *

                    *
                  • *
                  * * @param billingMode * Controls how you are charged for read and write throughput and how you manage capacity. This setting can * be changed later.

                  *
                    *
                  • *

                    * PROVISIONED - We recommend using PROVISIONED for predictable workloads. * PROVISIONED sets the billing mode to Provisioned capacity mode. *

                    *
                  • *
                  • *

                    * PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for unpredictable * workloads. PAY_PER_REQUEST sets the billing mode to On-demand capacity mode. *

                    *
                  • * @see BillingMode */ public void setBillingMode(String billingMode) { this.billingMode = billingMode; } /** *

                    * Controls how you are charged for read and write throughput and how you manage capacity. This setting can be * changed later. *

                    *
                      *
                    • *

                      * PROVISIONED - We recommend using PROVISIONED for predictable workloads. * PROVISIONED sets the billing mode to Provisioned capacity mode. *

                      *
                    • *
                    • *

                      * PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for unpredictable workloads. * PAY_PER_REQUEST sets the billing mode to On-demand * capacity mode. *

                      *
                    • *
                    * * @return Controls how you are charged for read and write throughput and how you manage capacity. This setting can * be changed later.

                    *
                      *
                    • *

                      * PROVISIONED - We recommend using PROVISIONED for predictable workloads. * PROVISIONED sets the billing mode to Provisioned capacity mode. *

                      *
                    • *
                    • *

                      * PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for unpredictable * workloads. PAY_PER_REQUEST sets the billing mode to On-demand capacity mode. *

                      *
                    • * @see BillingMode */ public String getBillingMode() { return this.billingMode; } /** *

                      * Controls how you are charged for read and write throughput and how you manage capacity. This setting can be * changed later. *

                      *
                        *
                      • *

                        * PROVISIONED - We recommend using PROVISIONED for predictable workloads. * PROVISIONED sets the billing mode to Provisioned capacity mode. *

                        *
                      • *
                      • *

                        * PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for unpredictable workloads. * PAY_PER_REQUEST sets the billing mode to On-demand * capacity mode. *

                        *
                      • *
                      * * @param billingMode * Controls how you are charged for read and write throughput and how you manage capacity. This setting can * be changed later.

                      *
                        *
                      • *

                        * PROVISIONED - We recommend using PROVISIONED for predictable workloads. * PROVISIONED sets the billing mode to Provisioned capacity mode. *

                        *
                      • *
                      • *

                        * PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for unpredictable * workloads. PAY_PER_REQUEST sets the billing mode to On-demand capacity mode. *

                        *
                      • * @return Returns a reference to this object so that method calls can be chained together. * @see BillingMode */ public CreateTableRequest withBillingMode(String billingMode) { setBillingMode(billingMode); return this; } /** *

                        * Controls how you are charged for read and write throughput and how you manage capacity. This setting can be * changed later. *

                        *
                          *
                        • *

                          * PROVISIONED - We recommend using PROVISIONED for predictable workloads. * PROVISIONED sets the billing mode to Provisioned capacity mode. *

                          *
                        • *
                        • *

                          * PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for unpredictable workloads. * PAY_PER_REQUEST sets the billing mode to On-demand * capacity mode. *

                          *
                        • *
                        * * @param billingMode * Controls how you are charged for read and write throughput and how you manage capacity. This setting can * be changed later.

                        *
                          *
                        • *

                          * PROVISIONED - We recommend using PROVISIONED for predictable workloads. * PROVISIONED sets the billing mode to Provisioned capacity mode. *

                          *
                        • *
                        • *

                          * PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for unpredictable * workloads. PAY_PER_REQUEST sets the billing mode to On-demand capacity mode. *

                          *
                        • * @return Returns a reference to this object so that method calls can be chained together. * @see BillingMode */ public CreateTableRequest withBillingMode(BillingMode billingMode) { this.billingMode = billingMode.toString(); return this; } /** *

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

                          *

                          * If you set BillingMode as PROVISIONED, you must specify this property. If you set BillingMode as * PAY_PER_REQUEST, you cannot specify this property. *

                          *

                          * For current minimum and maximum provisioned throughput values, see Service, Account, and Table * Quotas 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.

                          *

                          * If you set BillingMode as PROVISIONED, you must specify this property. If you set BillingMode * as PAY_PER_REQUEST, you cannot specify this property. *

                          *

                          * For current minimum and maximum provisioned throughput values, see Service, Account, and * Table Quotas 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. *

                          *

                          * If you set BillingMode as PROVISIONED, you must specify this property. If you set BillingMode as * PAY_PER_REQUEST, you cannot specify this property. *

                          *

                          * For current minimum and maximum provisioned throughput values, see Service, Account, and Table * Quotas 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.

                          *

                          * If you set BillingMode as PROVISIONED, you must specify this property. If you set * BillingMode as PAY_PER_REQUEST, you cannot specify this property. *

                          *

                          * For current minimum and maximum provisioned throughput values, see Service, Account, and * Table Quotas in the Amazon DynamoDB Developer Guide. */ public ProvisionedThroughput getProvisionedThroughput() { return this.provisionedThroughput; } /** *

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

                          *

                          * If you set BillingMode as PROVISIONED, you must specify this property. If you set BillingMode as * PAY_PER_REQUEST, you cannot specify this property. *

                          *

                          * For current minimum and maximum provisioned throughput values, see Service, Account, and Table * Quotas 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.

                          *

                          * If you set BillingMode as PROVISIONED, you must specify this property. If you set BillingMode * as PAY_PER_REQUEST, you cannot specify this property. *

                          *

                          * For current minimum and maximum provisioned throughput values, see Service, Account, and * Table Quotas in the Amazon DynamoDB Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withProvisionedThroughput(ProvisionedThroughput provisionedThroughput) { setProvisionedThroughput(provisionedThroughput); return this; } /** *

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

                          *
                            *
                          • *

                            * StreamEnabled - Indicates whether DynamoDB 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 DynamoDB 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 DynamoDB 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 DynamoDB 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 this.streamSpecification; } /** *

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

                              *
                                *
                              • *

                                * StreamEnabled - Indicates whether DynamoDB 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 DynamoDB 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 Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withStreamSpecification(StreamSpecification streamSpecification) { setStreamSpecification(streamSpecification); return this; } /** *

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

                                * * @return Represents the settings used to enable server-side encryption. */ public SSESpecification getSSESpecification() { return this.sSESpecification; } /** *

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

                                * * @param sSESpecification * Represents the settings used to enable server-side encryption. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withSSESpecification(SSESpecification sSESpecification) { setSSESpecification(sSESpecification); return this; } /** *

                                * A list of key-value pairs to label the table. For more information, see Tagging for DynamoDB. *

                                * * @return A list of key-value pairs to label the table. For more information, see Tagging for * DynamoDB. */ public java.util.List getTags() { return tags; } /** *

                                * A list of key-value pairs to label the table. For more information, see Tagging for DynamoDB. *

                                * * @param tags * A list of key-value pairs to label the table. For more information, see Tagging for * DynamoDB. */ public void setTags(java.util.Collection tags) { if (tags == null) { this.tags = null; return; } this.tags = new java.util.ArrayList(tags); } /** *

                                * A list of key-value pairs to label the table. For more information, see Tagging for DynamoDB. *

                                *

                                * NOTE: This method appends the values to the existing list (if any). Use * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the * existing values. *

                                * * @param tags * A list of key-value pairs to label the table. For more information, see Tagging for * DynamoDB. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withTags(Tag... tags) { if (this.tags == null) { setTags(new java.util.ArrayList(tags.length)); } for (Tag ele : tags) { this.tags.add(ele); } return this; } /** *

                                * A list of key-value pairs to label the table. For more information, see Tagging for DynamoDB. *

                                * * @param tags * A list of key-value pairs to label the table. For more information, see Tagging for * DynamoDB. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withTags(java.util.Collection tags) { setTags(tags); return this; } /** *

                                * The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS. *

                                * * @param tableClass * The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS. * @see TableClass */ public void setTableClass(String tableClass) { this.tableClass = tableClass; } /** *

                                * The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS. *

                                * * @return The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS. * @see TableClass */ public String getTableClass() { return this.tableClass; } /** *

                                * The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS. *

                                * * @param tableClass * The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS. * @return Returns a reference to this object so that method calls can be chained together. * @see TableClass */ public CreateTableRequest withTableClass(String tableClass) { setTableClass(tableClass); return this; } /** *

                                * The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS. *

                                * * @param tableClass * The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS. * @return Returns a reference to this object so that method calls can be chained together. * @see TableClass */ public CreateTableRequest withTableClass(TableClass tableClass) { this.tableClass = tableClass.toString(); return this; } /** *

                                * Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table. *

                                * * @param deletionProtectionEnabled * Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table. */ public void setDeletionProtectionEnabled(Boolean deletionProtectionEnabled) { this.deletionProtectionEnabled = deletionProtectionEnabled; } /** *

                                * Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table. *

                                * * @return Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table. */ public Boolean getDeletionProtectionEnabled() { return this.deletionProtectionEnabled; } /** *

                                * Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table. *

                                * * @param deletionProtectionEnabled * Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withDeletionProtectionEnabled(Boolean deletionProtectionEnabled) { setDeletionProtectionEnabled(deletionProtectionEnabled); return this; } /** *

                                * Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table. *

                                * * @return Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table. */ public Boolean isDeletionProtectionEnabled() { return this.deletionProtectionEnabled; } /** *

                                * An Amazon Web Services resource-based policy document in JSON format that will be attached to the table. *

                                *

                                * When you attach a resource-based policy while creating a table, the policy application is strongly * consistent. *

                                *

                                * The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when * calculating the size of a policy against this limit. For a full list of all considerations that apply for * resource-based policies, see Resource-based * policy considerations. *

                                * *

                                * You need to specify the CreateTable and PutResourcePolicy IAM actions for authorizing a * user to create a table with a resource-based policy. *

                                *
                                * * @param resourcePolicy * An Amazon Web Services resource-based policy document in JSON format that will be attached to the * table.

                                *

                                * When you attach a resource-based policy while creating a table, the policy application is strongly * consistent. *

                                *

                                * The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when * calculating the size of a policy against this limit. For a full list of all considerations that apply for * resource-based policies, see Resource-based policy considerations. *

                                * *

                                * You need to specify the CreateTable and PutResourcePolicy IAM actions for * authorizing a user to create a table with a resource-based policy. *

                                */ public void setResourcePolicy(String resourcePolicy) { this.resourcePolicy = resourcePolicy; } /** *

                                * An Amazon Web Services resource-based policy document in JSON format that will be attached to the table. *

                                *

                                * When you attach a resource-based policy while creating a table, the policy application is strongly * consistent. *

                                *

                                * The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when * calculating the size of a policy against this limit. For a full list of all considerations that apply for * resource-based policies, see Resource-based * policy considerations. *

                                * *

                                * You need to specify the CreateTable and PutResourcePolicy IAM actions for authorizing a * user to create a table with a resource-based policy. *

                                *
                                * * @return An Amazon Web Services resource-based policy document in JSON format that will be attached to the * table.

                                *

                                * When you attach a resource-based policy while creating a table, the policy application is strongly * consistent. *

                                *

                                * The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces * when calculating the size of a policy against this limit. For a full list of all considerations that * apply for resource-based policies, see Resource-based policy considerations. *

                                * *

                                * You need to specify the CreateTable and PutResourcePolicy IAM actions for * authorizing a user to create a table with a resource-based policy. *

                                */ public String getResourcePolicy() { return this.resourcePolicy; } /** *

                                * An Amazon Web Services resource-based policy document in JSON format that will be attached to the table. *

                                *

                                * When you attach a resource-based policy while creating a table, the policy application is strongly * consistent. *

                                *

                                * The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when * calculating the size of a policy against this limit. For a full list of all considerations that apply for * resource-based policies, see Resource-based * policy considerations. *

                                * *

                                * You need to specify the CreateTable and PutResourcePolicy IAM actions for authorizing a * user to create a table with a resource-based policy. *

                                *
                                * * @param resourcePolicy * An Amazon Web Services resource-based policy document in JSON format that will be attached to the * table.

                                *

                                * When you attach a resource-based policy while creating a table, the policy application is strongly * consistent. *

                                *

                                * The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when * calculating the size of a policy against this limit. For a full list of all considerations that apply for * resource-based policies, see Resource-based policy considerations. *

                                * *

                                * You need to specify the CreateTable and PutResourcePolicy IAM actions for * authorizing a user to create a table with a resource-based policy. *

                                * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withResourcePolicy(String resourcePolicy) { setResourcePolicy(resourcePolicy); return this; } /** *

                                * Sets the maximum number of read and write units for the specified table in on-demand capacity mode. If you use * this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both. *

                                * * @param onDemandThroughput * Sets the maximum number of read and write units for the specified table in on-demand capacity mode. If you * use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, * or both. */ public void setOnDemandThroughput(OnDemandThroughput onDemandThroughput) { this.onDemandThroughput = onDemandThroughput; } /** *

                                * Sets the maximum number of read and write units for the specified table in on-demand capacity mode. If you use * this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both. *

                                * * @return Sets the maximum number of read and write units for the specified table in on-demand capacity mode. If * you use this parameter, you must specify MaxReadRequestUnits, * MaxWriteRequestUnits, or both. */ public OnDemandThroughput getOnDemandThroughput() { return this.onDemandThroughput; } /** *

                                * Sets the maximum number of read and write units for the specified table in on-demand capacity mode. If you use * this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both. *

                                * * @param onDemandThroughput * Sets the maximum number of read and write units for the specified table in on-demand capacity mode. If you * use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, * or both. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withOnDemandThroughput(OnDemandThroughput onDemandThroughput) { setOnDemandThroughput(onDemandThroughput); return this; } /** * 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 (getLocalSecondaryIndexes() != null) sb.append("LocalSecondaryIndexes: ").append(getLocalSecondaryIndexes()).append(","); if (getGlobalSecondaryIndexes() != null) sb.append("GlobalSecondaryIndexes: ").append(getGlobalSecondaryIndexes()).append(","); if (getBillingMode() != null) sb.append("BillingMode: ").append(getBillingMode()).append(","); if (getProvisionedThroughput() != null) sb.append("ProvisionedThroughput: ").append(getProvisionedThroughput()).append(","); if (getStreamSpecification() != null) sb.append("StreamSpecification: ").append(getStreamSpecification()).append(","); if (getSSESpecification() != null) sb.append("SSESpecification: ").append(getSSESpecification()).append(","); if (getTags() != null) sb.append("Tags: ").append(getTags()).append(","); if (getTableClass() != null) sb.append("TableClass: ").append(getTableClass()).append(","); if (getDeletionProtectionEnabled() != null) sb.append("DeletionProtectionEnabled: ").append(getDeletionProtectionEnabled()).append(","); if (getResourcePolicy() != null) sb.append("ResourcePolicy: ").append(getResourcePolicy()).append(","); if (getOnDemandThroughput() != null) sb.append("OnDemandThroughput: ").append(getOnDemandThroughput()); sb.append("}"); return sb.toString(); } @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.getBillingMode() == null ^ this.getBillingMode() == null) return false; if (other.getBillingMode() != null && other.getBillingMode().equals(this.getBillingMode()) == 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; if (other.getTags() == null ^ this.getTags() == null) return false; if (other.getTags() != null && other.getTags().equals(this.getTags()) == false) return false; if (other.getTableClass() == null ^ this.getTableClass() == null) return false; if (other.getTableClass() != null && other.getTableClass().equals(this.getTableClass()) == false) return false; if (other.getDeletionProtectionEnabled() == null ^ this.getDeletionProtectionEnabled() == null) return false; if (other.getDeletionProtectionEnabled() != null && other.getDeletionProtectionEnabled().equals(this.getDeletionProtectionEnabled()) == false) return false; if (other.getResourcePolicy() == null ^ this.getResourcePolicy() == null) return false; if (other.getResourcePolicy() != null && other.getResourcePolicy().equals(this.getResourcePolicy()) == false) return false; if (other.getOnDemandThroughput() == null ^ this.getOnDemandThroughput() == null) return false; if (other.getOnDemandThroughput() != null && other.getOnDemandThroughput().equals(this.getOnDemandThroughput()) == 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 + ((getLocalSecondaryIndexes() == null) ? 0 : getLocalSecondaryIndexes().hashCode()); hashCode = prime * hashCode + ((getGlobalSecondaryIndexes() == null) ? 0 : getGlobalSecondaryIndexes().hashCode()); hashCode = prime * hashCode + ((getBillingMode() == null) ? 0 : getBillingMode().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()); hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); hashCode = prime * hashCode + ((getTableClass() == null) ? 0 : getTableClass().hashCode()); hashCode = prime * hashCode + ((getDeletionProtectionEnabled() == null) ? 0 : getDeletionProtectionEnabled().hashCode()); hashCode = prime * hashCode + ((getResourcePolicy() == null) ? 0 : getResourcePolicy().hashCode()); hashCode = prime * hashCode + ((getOnDemandThroughput() == null) ? 0 : getOnDemandThroughput().hashCode()); return hashCode; } @Override public CreateTableRequest clone() { return (CreateTableRequest) super.clone(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy