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

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

/*
 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 * 
 *  http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.dynamodbv2.model;

import java.io.Serializable;

import com.amazonaws.AmazonWebServiceRequest;

/**
 * Container for the parameters to the {@link com.amazonaws.services.dynamodbv2.AmazonDynamoDB#createTable(CreateTableRequest) CreateTable operation}.
 * 

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

*

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

*

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

*

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

* * @see com.amazonaws.services.dynamodbv2.AmazonDynamoDB#createTable(CreateTableRequest) */ public class CreateTableRequest extends AmazonWebServiceRequest implements Serializable { /** * An array of attributes that describe the key schema for the table and * indexes. */ private com.amazonaws.internal.ListWithAutoConstructFlag attributeDefinitions; /** * The name of the table to create. *

* Constraints:
* Length: 3 - 255
* Pattern: [a-zA-Z0-9_.-]+
*/ private String tableName; /** * Specifies the attributes that make up the primary key for a table or * an index. The attributes in KeySchema must also be defined in * the AttributeDefinitions array. For more information, see Data * Model in the Amazon DynamoDB Developer Guide.

Each * KeySchemaElement in the array is composed of:

  • *

    AttributeName - The name of this key attribute.

  • *

    KeyType - The role that the key attribute will assume:

      *
    • HASH - partition key

    • *
    • RANGE - sort key

*

The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from DynamoDB' usage * of an internal hash function to evenly distribute data items across * partitions, based on their partition key values.

The sort key of an * item is also known as its range attribute. The term "range * attribute" derives from the way DynamoDB stores items with the same * partition key physically close together, in sorted order by the sort * key value.

For a simple primary key (partition key), you * must provide exactly one element with a KeyType of * HASH.

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

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

* Constraints:
* Length: 1 - 2
*/ private com.amazonaws.internal.ListWithAutoConstructFlag keySchema; /** * One or more local secondary indexes (the maximum is five) to be * created on the table. Each index is scoped to a given partition key * value. There is a 10 GB size limit per partition key value; otherwise, * the size of a local secondary index is unconstrained.

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

  • *

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

  • KeySchema - * Specifies the key schema for the local secondary index. The key schema * must begin with the same partition key as the table.

  • *

    Projection - Specifies attributes that are copied * (projected) from the table into the index. These are in addition to * the primary key attributes and index key attributes, which are * automatically projected. Each attribute specification is composed of: *

    • ProjectionType - One of the following:

      • *

        KEYS_ONLY - Only the index and primary keys are * projected into the index.

      • INCLUDE - Only * the specified table attributes are projected into the index. The list * of projected attributes are in NonKeyAttributes.

      • *

        ALL - All of the table attributes are projected into * the index.

    • NonKeyAttributes - A list * of one or more non-key attribute names that are projected into the * secondary index. The total count of attributes provided in * NonKeyAttributes, summed across all of the secondary indexes, * must not exceed 20. If you project the same attribute into two * different indexes, this counts as two distinct attributes when * determining the total.

*/ private com.amazonaws.internal.ListWithAutoConstructFlag localSecondaryIndexes; /** * One or more global secondary indexes (the maximum is five) to be * created on the table. Each global secondary index in the array * includes the following:
  • IndexName - The name of * the global secondary index. Must be unique only for this table.

    *

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

  • Projection - Specifies * attributes that are copied (projected) from the table into the index. * These are in addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of:

    • ProjectionType - One * of the following:

      • KEYS_ONLY - Only the index * and primary keys are projected into the index.

      • *

        INCLUDE - Only the specified table attributes are * projected into the index. The list of projected attributes are in * NonKeyAttributes.

      • ALL - All of the * table attributes are projected into the index.

    • *

      NonKeyAttributes - A list of one or more non-key attribute * names that are projected into the secondary index. The total count of * attributes provided in NonKeyAttributes, summed across all of * the secondary indexes, must not exceed 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total.

  • *

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

*/ private com.amazonaws.internal.ListWithAutoConstructFlag globalSecondaryIndexes; /** * Represents the provisioned throughput settings for a specified table * or index. The settings can be modified using the UpdateTable * operation.

For current minimum and maximum provisioned throughput * values, see Limits * in the Amazon DynamoDB Developer Guide. */ private ProvisionedThroughput provisionedThroughput; /** * The settings for DynamoDB Streams on the table. These settings consist * of:

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

  • *

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

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

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

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

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

*/ private StreamSpecification streamSpecification; /** * Default constructor for a new CreateTableRequest object. Callers should use the * setter or fluent setter (with...) methods to initialize this 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. * @param keySchema Specifies the attributes that make up the primary key * for a table or an index. The attributes in KeySchema must also * be defined in the AttributeDefinitions array. For more * information, see Data * Model in the Amazon DynamoDB Developer Guide.

Each * KeySchemaElement in the array is composed of:

  • *

    AttributeName - The name of this key attribute.

  • *

    KeyType - The role that the key attribute will assume:

      *
    • HASH - partition key

    • *
    • RANGE - sort key

*

The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from DynamoDB' usage * of an internal hash function to evenly distribute data items across * partitions, based on their partition key values.

The sort key of an * item is also known as its range attribute. The term "range * attribute" derives from the way DynamoDB stores items with the same * partition key physically close together, in sorted order by the sort * key value.

For a simple primary key (partition key), you * must provide exactly one element with a KeyType of * HASH.

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

For more information, see Specifying * the Primary Key in the Amazon DynamoDB Developer Guide. */ public CreateTableRequest(String tableName, java.util.List keySchema) { setTableName(tableName); setKeySchema(keySchema); } /** * Constructs a new CreateTableRequest object. * Callers should use the setter or fluent setter (with...) methods to * initialize any additional object members. * * @param attributeDefinitions An array of attributes that describe the * key schema for the table and indexes. * @param tableName The name of the table to create. * @param keySchema Specifies the attributes that make up the primary key * for a table or an index. The attributes in KeySchema must also * be defined in the AttributeDefinitions array. For more * information, see Data * Model in the Amazon DynamoDB Developer Guide.

Each * KeySchemaElement in the array is composed of:

  • *

    AttributeName - The name of this key attribute.

  • *

    KeyType - The role that the key attribute will assume:

      *
    • HASH - partition key

    • *
    • RANGE - sort key

*

The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from DynamoDB' usage * of an internal hash function to evenly distribute data items across * partitions, based on their partition key values.

The sort key of an * item is also known as its range attribute. The term "range * attribute" derives from the way DynamoDB stores items with the same * partition key physically close together, in sorted order by the sort * key value.

For a simple primary key (partition key), you * must provide exactly one element with a KeyType of * HASH.

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

For more information, see Specifying * the Primary Key in the Amazon DynamoDB Developer Guide. * @param provisionedThroughput Represents the provisioned throughput * settings for a specified table or index. The settings can be modified * using the UpdateTable operation.

For current minimum and * maximum provisioned throughput values, see Limits * in the Amazon DynamoDB Developer Guide. */ public CreateTableRequest(java.util.List attributeDefinitions, String tableName, java.util.List keySchema, ProvisionedThroughput provisionedThroughput) { setAttributeDefinitions(attributeDefinitions); setTableName(tableName); setKeySchema(keySchema); setProvisionedThroughput(provisionedThroughput); } /** * An array of attributes that describe the key schema for the table and * indexes. * * @return An array of attributes that describe the key schema for the table and * indexes. */ public java.util.List getAttributeDefinitions() { return attributeDefinitions; } /** * An array of attributes that describe the key schema for the table and * indexes. * * @param attributeDefinitions An array of attributes that describe the key schema for the table and * indexes. */ public void setAttributeDefinitions(java.util.Collection attributeDefinitions) { if (attributeDefinitions == null) { this.attributeDefinitions = null; return; } com.amazonaws.internal.ListWithAutoConstructFlag attributeDefinitionsCopy = new com.amazonaws.internal.ListWithAutoConstructFlag(attributeDefinitions.size()); attributeDefinitionsCopy.addAll(attributeDefinitions); this.attributeDefinitions = attributeDefinitionsCopy; } /** * An array of attributes that describe the key schema for the table and * indexes. *

* Returns a reference to this object so that method calls can be chained together. * * @param attributeDefinitions An array of attributes that describe the key schema for the table and * indexes. * * @return A reference to this updated object so that method calls can be chained * together. */ public CreateTableRequest withAttributeDefinitions(AttributeDefinition... attributeDefinitions) { if (getAttributeDefinitions() == null) setAttributeDefinitions(new java.util.ArrayList(attributeDefinitions.length)); for (AttributeDefinition value : attributeDefinitions) { getAttributeDefinitions().add(value); } return this; } /** * An array of attributes that describe the key schema for the table and * indexes. *

* Returns a reference to this object so that method calls can be chained together. * * @param attributeDefinitions An array of attributes that describe the key schema for the table and * indexes. * * @return A reference to this updated object so that method calls can be chained * together. */ public CreateTableRequest withAttributeDefinitions(java.util.Collection attributeDefinitions) { if (attributeDefinitions == null) { this.attributeDefinitions = null; } else { com.amazonaws.internal.ListWithAutoConstructFlag attributeDefinitionsCopy = new com.amazonaws.internal.ListWithAutoConstructFlag(attributeDefinitions.size()); attributeDefinitionsCopy.addAll(attributeDefinitions); this.attributeDefinitions = attributeDefinitionsCopy; } return this; } /** * The name of the table to create. *

* Constraints:
* Length: 3 - 255
* Pattern: [a-zA-Z0-9_.-]+
* * @return The name of the table to create. */ public String getTableName() { return tableName; } /** * The name of the table to create. *

* Constraints:
* Length: 3 - 255
* Pattern: [a-zA-Z0-9_.-]+
* * @param tableName The name of the table to create. */ public void setTableName(String tableName) { this.tableName = tableName; } /** * The name of the table to create. *

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

* Constraints:
* Length: 3 - 255
* Pattern: [a-zA-Z0-9_.-]+
* * @param tableName The name of the table to create. * * @return A reference to this updated object so that method calls can be chained * together. */ public CreateTableRequest withTableName(String tableName) { this.tableName = tableName; return this; } /** * Specifies the attributes that make up the primary key for a table or * an index. The attributes in KeySchema must also be defined in * the AttributeDefinitions array. For more information, see Data * Model in the Amazon DynamoDB Developer Guide.

Each * KeySchemaElement in the array is composed of:

  • *

    AttributeName - The name of this key attribute.

  • *

    KeyType - The role that the key attribute will assume:

      *
    • HASH - partition key

    • *
    • RANGE - sort key

*

The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from DynamoDB' usage * of an internal hash function to evenly distribute data items across * partitions, based on their partition key values.

The sort key of an * item is also known as its range attribute. The term "range * attribute" derives from the way DynamoDB stores items with the same * partition key physically close together, in sorted order by the sort * key value.

For a simple primary key (partition key), you * must provide exactly one element with a KeyType of * HASH.

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

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

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

Each * KeySchemaElement in the array is composed of:

  • *

    AttributeName - The name of this key attribute.

  • *

    KeyType - The role that the key attribute will assume:

      *
    • HASH - partition key

    • *
    • RANGE - sort key

*

The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from DynamoDB' usage * of an internal hash function to evenly distribute data items across * partitions, based on their partition key values.

The sort key of an * item is also known as its range attribute. The term "range * attribute" derives from the way DynamoDB stores items with the same * partition key physically close together, in sorted order by the sort * key value.

For a simple primary key (partition key), you * must provide exactly one element with a KeyType of * HASH.

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

For more information, see Specifying * the Primary Key in the Amazon DynamoDB Developer Guide. */ public java.util.List getKeySchema() { return keySchema; } /** * Specifies the attributes that make up the primary key for a table or * an index. The attributes in KeySchema must also be defined in * the AttributeDefinitions array. For more information, see Data * Model in the Amazon DynamoDB Developer Guide.

Each * KeySchemaElement in the array is composed of:

  • *

    AttributeName - The name of this key attribute.

  • *

    KeyType - The role that the key attribute will assume:

      *
    • HASH - partition key

    • *
    • RANGE - sort key

*

The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from DynamoDB' usage * of an internal hash function to evenly distribute data items across * partitions, based on their partition key values.

The sort key of an * item is also known as its range attribute. The term "range * attribute" derives from the way DynamoDB stores items with the same * partition key physically close together, in sorted order by the sort * key value.

For a simple primary key (partition key), you * must provide exactly one element with a KeyType of * HASH.

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

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

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

Each * KeySchemaElement in the array is composed of:

  • *

    AttributeName - The name of this key attribute.

  • *

    KeyType - The role that the key attribute will assume:

      *
    • HASH - partition key

    • *
    • RANGE - sort key

*

The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from DynamoDB' usage * of an internal hash function to evenly distribute data items across * partitions, based on their partition key values.

The sort key of an * item is also known as its range attribute. The term "range * attribute" derives from the way DynamoDB stores items with the same * partition key physically close together, in sorted order by the sort * key value.

For a simple primary key (partition key), you * must provide exactly one element with a KeyType of * HASH.

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

For more information, see Specifying * the Primary Key in the Amazon DynamoDB Developer Guide. */ public void setKeySchema(java.util.Collection keySchema) { if (keySchema == null) { this.keySchema = null; return; } com.amazonaws.internal.ListWithAutoConstructFlag keySchemaCopy = new com.amazonaws.internal.ListWithAutoConstructFlag(keySchema.size()); keySchemaCopy.addAll(keySchema); this.keySchema = keySchemaCopy; } /** * Specifies the attributes that make up the primary key for a table or * an index. The attributes in KeySchema must also be defined in * the AttributeDefinitions array. For more information, see Data * Model in the Amazon DynamoDB Developer Guide.

Each * KeySchemaElement in the array is composed of:

  • *

    AttributeName - The name of this key attribute.

  • *

    KeyType - The role that the key attribute will assume:

      *
    • HASH - partition key

    • *
    • RANGE - sort key

*

The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from DynamoDB' usage * of an internal hash function to evenly distribute data items across * partitions, based on their partition key values.

The sort key of an * item is also known as its range attribute. The term "range * attribute" derives from the way DynamoDB stores items with the same * partition key physically close together, in sorted order by the sort * key value.

For a simple primary key (partition key), you * must provide exactly one element with a KeyType of * HASH.

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

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

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

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

Each * KeySchemaElement in the array is composed of:

  • *

    AttributeName - The name of this key attribute.

  • *

    KeyType - The role that the key attribute will assume:

      *
    • HASH - partition key

    • *
    • RANGE - sort key

*

The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from DynamoDB' usage * of an internal hash function to evenly distribute data items across * partitions, based on their partition key values.

The sort key of an * item is also known as its range attribute. The term "range * attribute" derives from the way DynamoDB stores items with the same * partition key physically close together, in sorted order by the sort * key value.

For a simple primary key (partition key), you * must provide exactly one element with a KeyType of * HASH.

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

For more information, see Specifying * the Primary Key in the Amazon DynamoDB Developer Guide. * * @return A reference to this updated object so that method calls can be chained * together. */ public CreateTableRequest withKeySchema(KeySchemaElement... keySchema) { if (getKeySchema() == null) setKeySchema(new java.util.ArrayList(keySchema.length)); for (KeySchemaElement value : keySchema) { getKeySchema().add(value); } return this; } /** * Specifies the attributes that make up the primary key for a table or * an index. The attributes in KeySchema must also be defined in * the AttributeDefinitions array. For more information, see Data * Model in the Amazon DynamoDB Developer Guide.

Each * KeySchemaElement in the array is composed of:

  • *

    AttributeName - The name of this key attribute.

  • *

    KeyType - The role that the key attribute will assume:

      *
    • HASH - partition key

    • *
    • RANGE - sort key

*

The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from DynamoDB' usage * of an internal hash function to evenly distribute data items across * partitions, based on their partition key values.

The sort key of an * item is also known as its range attribute. The term "range * attribute" derives from the way DynamoDB stores items with the same * partition key physically close together, in sorted order by the sort * key value.

For a simple primary key (partition key), you * must provide exactly one element with a KeyType of * HASH.

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

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

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

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

Each * KeySchemaElement in the array is composed of:

  • *

    AttributeName - The name of this key attribute.

  • *

    KeyType - The role that the key attribute will assume:

      *
    • HASH - partition key

    • *
    • RANGE - sort key

*

The partition key of an item is also known as its hash * attribute. The term "hash attribute" derives from DynamoDB' usage * of an internal hash function to evenly distribute data items across * partitions, based on their partition key values.

The sort key of an * item is also known as its range attribute. The term "range * attribute" derives from the way DynamoDB stores items with the same * partition key physically close together, in sorted order by the sort * key value.

For a simple primary key (partition key), you * must provide exactly one element with a KeyType of * HASH.

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

For more information, see Specifying * the Primary Key in the Amazon DynamoDB Developer Guide. * * @return A reference to this updated object so that method calls can be chained * together. */ public CreateTableRequest withKeySchema(java.util.Collection keySchema) { if (keySchema == null) { this.keySchema = null; } else { com.amazonaws.internal.ListWithAutoConstructFlag keySchemaCopy = new com.amazonaws.internal.ListWithAutoConstructFlag(keySchema.size()); keySchemaCopy.addAll(keySchema); this.keySchema = keySchemaCopy; } return this; } /** * One or more local secondary indexes (the maximum is five) to be * created on the table. Each index is scoped to a given partition key * value. There is a 10 GB size limit per partition key value; otherwise, * the size of a local secondary index is unconstrained.

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

  • *

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

  • KeySchema - * Specifies the key schema for the local secondary index. The key schema * must begin with the same partition key as the table.

  • *

    Projection - Specifies attributes that are copied * (projected) from the table into the index. These are in addition to * the primary key attributes and index key attributes, which are * automatically projected. Each attribute specification is composed of: *

    • ProjectionType - One of the following:

      • *

        KEYS_ONLY - Only the index and primary keys are * projected into the index.

      • INCLUDE - Only * the specified table attributes are projected into the index. The list * of projected attributes are in NonKeyAttributes.

      • *

        ALL - All of the table attributes are projected into * the index.

    • NonKeyAttributes - A list * of one or more non-key attribute names that are projected into the * secondary index. The total count of attributes provided in * NonKeyAttributes, summed across all of the secondary indexes, * must not exceed 20. If you project the same attribute into two * different indexes, this counts as two distinct attributes when * determining the total.

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

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

  • *

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

  • KeySchema - * Specifies the key schema for the local secondary index. The key schema * must begin with the same partition key as the table.

  • *

    Projection - Specifies attributes that are copied * (projected) from the table into the index. These are in addition to * the primary key attributes and index key attributes, which are * automatically projected. Each attribute specification is composed of: *

    • ProjectionType - One of the following:

      • *

        KEYS_ONLY - Only the index and primary keys are * projected into the index.

      • INCLUDE - Only * the specified table attributes are projected into the index. The list * of projected attributes are in NonKeyAttributes.

      • *

        ALL - All of the table attributes are projected into * the index.

    • NonKeyAttributes - A list * of one or more non-key attribute names that are projected into the * secondary index. The total count of attributes provided in * NonKeyAttributes, summed across all of the secondary indexes, * must not exceed 20. If you project the same attribute into two * different indexes, this counts as two distinct attributes when * determining the total.

*/ public java.util.List getLocalSecondaryIndexes() { return localSecondaryIndexes; } /** * One or more local secondary indexes (the maximum is five) to be * created on the table. Each index is scoped to a given partition key * value. There is a 10 GB size limit per partition key value; otherwise, * the size of a local secondary index is unconstrained.

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

  • *

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

  • KeySchema - * Specifies the key schema for the local secondary index. The key schema * must begin with the same partition key as the table.

  • *

    Projection - Specifies attributes that are copied * (projected) from the table into the index. These are in addition to * the primary key attributes and index key attributes, which are * automatically projected. Each attribute specification is composed of: *

    • ProjectionType - One of the following:

      • *

        KEYS_ONLY - Only the index and primary keys are * projected into the index.

      • INCLUDE - Only * the specified table attributes are projected into the index. The list * of projected attributes are in NonKeyAttributes.

      • *

        ALL - All of the table attributes are projected into * the index.

    • NonKeyAttributes - A list * of one or more non-key attribute names that are projected into the * secondary index. The total count of attributes provided in * NonKeyAttributes, summed across all of the secondary indexes, * must not exceed 20. If you project the same attribute into two * different indexes, this counts as two distinct attributes when * determining the total.

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

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

  • *

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

  • KeySchema - * Specifies the key schema for the local secondary index. The key schema * must begin with the same partition key as the table.

  • *

    Projection - Specifies attributes that are copied * (projected) from the table into the index. These are in addition to * the primary key attributes and index key attributes, which are * automatically projected. Each attribute specification is composed of: *

    • ProjectionType - One of the following:

      • *

        KEYS_ONLY - Only the index and primary keys are * projected into the index.

      • INCLUDE - Only * the specified table attributes are projected into the index. The list * of projected attributes are in NonKeyAttributes.

      • *

        ALL - All of the table attributes are projected into * the index.

    • NonKeyAttributes - A list * of one or more non-key attribute names that are projected into the * secondary index. The total count of attributes provided in * NonKeyAttributes, summed across all of the secondary indexes, * must not exceed 20. If you project the same attribute into two * different indexes, this counts as two distinct attributes when * determining the total.

*/ public void setLocalSecondaryIndexes(java.util.Collection localSecondaryIndexes) { if (localSecondaryIndexes == null) { this.localSecondaryIndexes = null; return; } com.amazonaws.internal.ListWithAutoConstructFlag localSecondaryIndexesCopy = new com.amazonaws.internal.ListWithAutoConstructFlag(localSecondaryIndexes.size()); localSecondaryIndexesCopy.addAll(localSecondaryIndexes); this.localSecondaryIndexes = localSecondaryIndexesCopy; } /** * One or more local secondary indexes (the maximum is five) to be * created on the table. Each index is scoped to a given partition key * value. There is a 10 GB size limit per partition key value; otherwise, * the size of a local secondary index is unconstrained.

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

  • *

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

  • KeySchema - * Specifies the key schema for the local secondary index. The key schema * must begin with the same partition key as the table.

  • *

    Projection - Specifies attributes that are copied * (projected) from the table into the index. These are in addition to * the primary key attributes and index key attributes, which are * automatically projected. Each attribute specification is composed of: *

    • ProjectionType - One of the following:

      • *

        KEYS_ONLY - Only the index and primary keys are * projected into the index.

      • INCLUDE - Only * the specified table attributes are projected into the index. The list * of projected attributes are in NonKeyAttributes.

      • *

        ALL - All of the table attributes are projected into * the index.

    • NonKeyAttributes - A list * of one or more non-key attribute names that are projected into the * secondary index. The total count of attributes provided in * NonKeyAttributes, summed across all of the secondary indexes, * must not exceed 20. If you project the same attribute into two * different indexes, this counts as two distinct attributes when * determining the total.

*

* Returns a reference to this object so that method calls can be chained together. * * @param localSecondaryIndexes One or more local secondary indexes (the maximum is five) to be * created on the table. Each index is scoped to a given partition key * value. There is a 10 GB size limit per partition key value; otherwise, * the size of a local secondary index is unconstrained.

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

  • *

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

  • KeySchema - * Specifies the key schema for the local secondary index. The key schema * must begin with the same partition key as the table.

  • *

    Projection - Specifies attributes that are copied * (projected) from the table into the index. These are in addition to * the primary key attributes and index key attributes, which are * automatically projected. Each attribute specification is composed of: *

    • ProjectionType - One of the following:

      • *

        KEYS_ONLY - Only the index and primary keys are * projected into the index.

      • INCLUDE - Only * the specified table attributes are projected into the index. The list * of projected attributes are in NonKeyAttributes.

      • *

        ALL - All of the table attributes are projected into * the index.

    • NonKeyAttributes - A list * of one or more non-key attribute names that are projected into the * secondary index. The total count of attributes provided in * NonKeyAttributes, summed across all of the secondary indexes, * must not exceed 20. If you project the same attribute into two * different indexes, this counts as two distinct attributes when * determining the total.

* * @return A reference to this updated object so that method calls can be chained * together. */ public CreateTableRequest withLocalSecondaryIndexes(LocalSecondaryIndex... localSecondaryIndexes) { if (getLocalSecondaryIndexes() == null) setLocalSecondaryIndexes(new java.util.ArrayList(localSecondaryIndexes.length)); for (LocalSecondaryIndex value : localSecondaryIndexes) { getLocalSecondaryIndexes().add(value); } return this; } /** * One or more local secondary indexes (the maximum is five) to be * created on the table. Each index is scoped to a given partition key * value. There is a 10 GB size limit per partition key value; otherwise, * the size of a local secondary index is unconstrained.

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

  • *

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

  • KeySchema - * Specifies the key schema for the local secondary index. The key schema * must begin with the same partition key as the table.

  • *

    Projection - Specifies attributes that are copied * (projected) from the table into the index. These are in addition to * the primary key attributes and index key attributes, which are * automatically projected. Each attribute specification is composed of: *

    • ProjectionType - One of the following:

      • *

        KEYS_ONLY - Only the index and primary keys are * projected into the index.

      • INCLUDE - Only * the specified table attributes are projected into the index. The list * of projected attributes are in NonKeyAttributes.

      • *

        ALL - All of the table attributes are projected into * the index.

    • NonKeyAttributes - A list * of one or more non-key attribute names that are projected into the * secondary index. The total count of attributes provided in * NonKeyAttributes, summed across all of the secondary indexes, * must not exceed 20. If you project the same attribute into two * different indexes, this counts as two distinct attributes when * determining the total.

*

* Returns a reference to this object so that method calls can be chained together. * * @param localSecondaryIndexes One or more local secondary indexes (the maximum is five) to be * created on the table. Each index is scoped to a given partition key * value. There is a 10 GB size limit per partition key value; otherwise, * the size of a local secondary index is unconstrained.

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

  • *

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

  • KeySchema - * Specifies the key schema for the local secondary index. The key schema * must begin with the same partition key as the table.

  • *

    Projection - Specifies attributes that are copied * (projected) from the table into the index. These are in addition to * the primary key attributes and index key attributes, which are * automatically projected. Each attribute specification is composed of: *

    • ProjectionType - One of the following:

      • *

        KEYS_ONLY - Only the index and primary keys are * projected into the index.

      • INCLUDE - Only * the specified table attributes are projected into the index. The list * of projected attributes are in NonKeyAttributes.

      • *

        ALL - All of the table attributes are projected into * the index.

    • NonKeyAttributes - A list * of one or more non-key attribute names that are projected into the * secondary index. The total count of attributes provided in * NonKeyAttributes, summed across all of the secondary indexes, * must not exceed 20. If you project the same attribute into two * different indexes, this counts as two distinct attributes when * determining the total.

* * @return A reference to this updated object so that method calls can be chained * together. */ public CreateTableRequest withLocalSecondaryIndexes(java.util.Collection localSecondaryIndexes) { if (localSecondaryIndexes == null) { this.localSecondaryIndexes = null; } else { com.amazonaws.internal.ListWithAutoConstructFlag localSecondaryIndexesCopy = new com.amazonaws.internal.ListWithAutoConstructFlag(localSecondaryIndexes.size()); localSecondaryIndexesCopy.addAll(localSecondaryIndexes); this.localSecondaryIndexes = localSecondaryIndexesCopy; } return this; } /** * One or more global secondary indexes (the maximum is five) to be * created on the table. Each global secondary index in the array * includes the following:
  • IndexName - The name of * the global secondary index. Must be unique only for this table.

    *

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

  • Projection - Specifies * attributes that are copied (projected) from the table into the index. * These are in addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of:

    • ProjectionType - One * of the following:

      • KEYS_ONLY - Only the index * and primary keys are projected into the index.

      • *

        INCLUDE - Only the specified table attributes are * projected into the index. The list of projected attributes are in * NonKeyAttributes.

      • ALL - All of the * table attributes are projected into the index.

    • *

      NonKeyAttributes - A list of one or more non-key attribute * names that are projected into the secondary index. The total count of * attributes provided in NonKeyAttributes, summed across all of * the secondary indexes, must not exceed 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total.

  • *

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

* * @return One or more global secondary indexes (the maximum is five) to be * created on the table. Each global secondary index in the array * includes the following:
  • IndexName - The name of * the global secondary index. Must be unique only for this table.

    *

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

  • Projection - Specifies * attributes that are copied (projected) from the table into the index. * These are in addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of:

    • ProjectionType - One * of the following:

      • KEYS_ONLY - Only the index * and primary keys are projected into the index.

      • *

        INCLUDE - Only the specified table attributes are * projected into the index. The list of projected attributes are in * NonKeyAttributes.

      • ALL - All of the * table attributes are projected into the index.

    • *

      NonKeyAttributes - A list of one or more non-key attribute * names that are projected into the secondary index. The total count of * attributes provided in NonKeyAttributes, summed across all of * the secondary indexes, must not exceed 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total.

  • *

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

*/ public java.util.List getGlobalSecondaryIndexes() { return globalSecondaryIndexes; } /** * One or more global secondary indexes (the maximum is five) to be * created on the table. Each global secondary index in the array * includes the following:
  • IndexName - The name of * the global secondary index. Must be unique only for this table.

    *

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

  • Projection - Specifies * attributes that are copied (projected) from the table into the index. * These are in addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of:

    • ProjectionType - One * of the following:

      • KEYS_ONLY - Only the index * and primary keys are projected into the index.

      • *

        INCLUDE - Only the specified table attributes are * projected into the index. The list of projected attributes are in * NonKeyAttributes.

      • ALL - All of the * table attributes are projected into the index.

    • *

      NonKeyAttributes - A list of one or more non-key attribute * names that are projected into the secondary index. The total count of * attributes provided in NonKeyAttributes, summed across all of * the secondary indexes, must not exceed 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total.

  • *

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

* * @param globalSecondaryIndexes One or more global secondary indexes (the maximum is five) to be * created on the table. Each global secondary index in the array * includes the following:
  • IndexName - The name of * the global secondary index. Must be unique only for this table.

    *

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

  • Projection - Specifies * attributes that are copied (projected) from the table into the index. * These are in addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of:

    • ProjectionType - One * of the following:

      • KEYS_ONLY - Only the index * and primary keys are projected into the index.

      • *

        INCLUDE - Only the specified table attributes are * projected into the index. The list of projected attributes are in * NonKeyAttributes.

      • ALL - All of the * table attributes are projected into the index.

    • *

      NonKeyAttributes - A list of one or more non-key attribute * names that are projected into the secondary index. The total count of * attributes provided in NonKeyAttributes, summed across all of * the secondary indexes, must not exceed 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total.

  • *

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

*/ public void setGlobalSecondaryIndexes(java.util.Collection globalSecondaryIndexes) { if (globalSecondaryIndexes == null) { this.globalSecondaryIndexes = null; return; } com.amazonaws.internal.ListWithAutoConstructFlag globalSecondaryIndexesCopy = new com.amazonaws.internal.ListWithAutoConstructFlag(globalSecondaryIndexes.size()); globalSecondaryIndexesCopy.addAll(globalSecondaryIndexes); this.globalSecondaryIndexes = globalSecondaryIndexesCopy; } /** * One or more global secondary indexes (the maximum is five) to be * created on the table. Each global secondary index in the array * includes the following:
  • IndexName - The name of * the global secondary index. Must be unique only for this table.

    *

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

  • Projection - Specifies * attributes that are copied (projected) from the table into the index. * These are in addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of:

    • ProjectionType - One * of the following:

      • KEYS_ONLY - Only the index * and primary keys are projected into the index.

      • *

        INCLUDE - Only the specified table attributes are * projected into the index. The list of projected attributes are in * NonKeyAttributes.

      • ALL - All of the * table attributes are projected into the index.

    • *

      NonKeyAttributes - A list of one or more non-key attribute * names that are projected into the secondary index. The total count of * attributes provided in NonKeyAttributes, summed across all of * the secondary indexes, must not exceed 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total.

  • *

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

*

* Returns a reference to this object so that method calls can be chained together. * * @param globalSecondaryIndexes One or more global secondary indexes (the maximum is five) to be * created on the table. Each global secondary index in the array * includes the following:

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

    *

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

  • Projection - Specifies * attributes that are copied (projected) from the table into the index. * These are in addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of:

    • ProjectionType - One * of the following:

      • KEYS_ONLY - Only the index * and primary keys are projected into the index.

      • *

        INCLUDE - Only the specified table attributes are * projected into the index. The list of projected attributes are in * NonKeyAttributes.

      • ALL - All of the * table attributes are projected into the index.

    • *

      NonKeyAttributes - A list of one or more non-key attribute * names that are projected into the secondary index. The total count of * attributes provided in NonKeyAttributes, summed across all of * the secondary indexes, must not exceed 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total.

  • *

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

* * @return A reference to this updated object so that method calls can be chained * together. */ public CreateTableRequest withGlobalSecondaryIndexes(GlobalSecondaryIndex... globalSecondaryIndexes) { if (getGlobalSecondaryIndexes() == null) setGlobalSecondaryIndexes(new java.util.ArrayList(globalSecondaryIndexes.length)); for (GlobalSecondaryIndex value : globalSecondaryIndexes) { getGlobalSecondaryIndexes().add(value); } return this; } /** * One or more global secondary indexes (the maximum is five) to be * created on the table. Each global secondary index in the array * includes the following:
  • IndexName - The name of * the global secondary index. Must be unique only for this table.

    *

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

  • Projection - Specifies * attributes that are copied (projected) from the table into the index. * These are in addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of:

    • ProjectionType - One * of the following:

      • KEYS_ONLY - Only the index * and primary keys are projected into the index.

      • *

        INCLUDE - Only the specified table attributes are * projected into the index. The list of projected attributes are in * NonKeyAttributes.

      • ALL - All of the * table attributes are projected into the index.

    • *

      NonKeyAttributes - A list of one or more non-key attribute * names that are projected into the secondary index. The total count of * attributes provided in NonKeyAttributes, summed across all of * the secondary indexes, must not exceed 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total.

  • *

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

*

* Returns a reference to this object so that method calls can be chained together. * * @param globalSecondaryIndexes One or more global secondary indexes (the maximum is five) to be * created on the table. Each global secondary index in the array * includes the following:

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

    *

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

  • Projection - Specifies * attributes that are copied (projected) from the table into the index. * These are in addition to the primary key attributes and index key * attributes, which are automatically projected. Each attribute * specification is composed of:

    • ProjectionType - One * of the following:

      • KEYS_ONLY - Only the index * and primary keys are projected into the index.

      • *

        INCLUDE - Only the specified table attributes are * projected into the index. The list of projected attributes are in * NonKeyAttributes.

      • ALL - All of the * table attributes are projected into the index.

    • *

      NonKeyAttributes - A list of one or more non-key attribute * names that are projected into the secondary index. The total count of * attributes provided in NonKeyAttributes, summed across all of * the secondary indexes, must not exceed 20. If you project the same * attribute into two different indexes, this counts as two distinct * attributes when determining the total.

  • *

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

* * @return A reference to this updated object so that method calls can be chained * together. */ public CreateTableRequest withGlobalSecondaryIndexes(java.util.Collection globalSecondaryIndexes) { if (globalSecondaryIndexes == null) { this.globalSecondaryIndexes = null; } else { com.amazonaws.internal.ListWithAutoConstructFlag globalSecondaryIndexesCopy = new com.amazonaws.internal.ListWithAutoConstructFlag(globalSecondaryIndexes.size()); globalSecondaryIndexesCopy.addAll(globalSecondaryIndexes); this.globalSecondaryIndexes = globalSecondaryIndexesCopy; } return this; } /** * Represents the provisioned throughput settings for a specified table * or index. The settings can be modified using the UpdateTable * operation.

For current minimum and maximum provisioned throughput * values, see Limits * in the Amazon DynamoDB Developer Guide. * * @return Represents the provisioned throughput settings for a specified table * or index. The settings can be modified using the UpdateTable * operation.

For current minimum and maximum provisioned throughput * values, see Limits * in the Amazon DynamoDB Developer Guide. */ public ProvisionedThroughput getProvisionedThroughput() { return provisionedThroughput; } /** * Represents the provisioned throughput settings for a specified table * or index. The settings can be modified using the UpdateTable * operation.

For current minimum and maximum provisioned throughput * values, see Limits * in the Amazon DynamoDB Developer Guide. * * @param provisionedThroughput Represents the provisioned throughput settings for a specified table * or index. The settings can be modified using the UpdateTable * operation.

For current minimum and maximum provisioned throughput * values, see Limits * in the Amazon DynamoDB Developer Guide. */ public void setProvisionedThroughput(ProvisionedThroughput provisionedThroughput) { this.provisionedThroughput = provisionedThroughput; } /** * Represents the provisioned throughput settings for a specified table * or index. The settings can be modified using the UpdateTable * operation.

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

* Returns a reference to this object so that method calls can be chained together. * * @param provisionedThroughput Represents the provisioned throughput settings for a specified table * or index. The settings can be modified using the UpdateTable * operation.

For current minimum and maximum provisioned throughput * values, see Limits * in the Amazon DynamoDB Developer Guide. * * @return A reference to this updated object so that method calls can be chained * together. */ public CreateTableRequest withProvisionedThroughput(ProvisionedThroughput provisionedThroughput) { this.provisionedThroughput = provisionedThroughput; return this; } /** * The settings for DynamoDB Streams on the table. These settings consist * of:

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

  • *

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

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

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

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

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

* * @return The settings for DynamoDB Streams on the table. These settings consist * of:
  • StreamEnabled - Indicates whether Streams is * to be enabled (true) or disabled (false).

  • *

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

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

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

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

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

*/ public StreamSpecification getStreamSpecification() { return streamSpecification; } /** * The settings for DynamoDB Streams on the table. These settings consist * of:
  • StreamEnabled - Indicates whether Streams is * to be enabled (true) or disabled (false).

  • *

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

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

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

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

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

* * @param streamSpecification The settings for DynamoDB Streams on the table. These settings consist * of:
  • StreamEnabled - Indicates whether Streams is * to be enabled (true) or disabled (false).

  • *

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

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

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

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

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

*/ public void setStreamSpecification(StreamSpecification streamSpecification) { this.streamSpecification = streamSpecification; } /** * The settings for DynamoDB Streams on the table. These settings consist * of:
  • StreamEnabled - Indicates whether Streams is * to be enabled (true) or disabled (false).

  • *

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

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

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

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

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

*

* Returns a reference to this object so that method calls can be chained together. * * @param streamSpecification The settings for DynamoDB Streams on the table. These settings consist * of:

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

  • *

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

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

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

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy