class Aws::DynamoDB::Types::UpdateTableInput

Represents the input of an `UpdateTable` operation.

@note When making an API call, you may pass UpdateTableInput

data as a hash:

    {
      attribute_definitions: [
        {
          attribute_name: "KeySchemaAttributeName", # required
          attribute_type: "S", # required, accepts S, N, B
        },
      ],
      table_name: "TableName", # required
      billing_mode: "PROVISIONED", # accepts PROVISIONED, PAY_PER_REQUEST
      provisioned_throughput: {
        read_capacity_units: 1, # required
        write_capacity_units: 1, # required
      },
      global_secondary_index_updates: [
        {
          update: {
            index_name: "IndexName", # required
            provisioned_throughput: { # required
              read_capacity_units: 1, # required
              write_capacity_units: 1, # required
            },
          },
          create: {
            index_name: "IndexName", # required
            key_schema: [ # required
              {
                attribute_name: "KeySchemaAttributeName", # required
                key_type: "HASH", # required, accepts HASH, RANGE
              },
            ],
            projection: { # required
              projection_type: "ALL", # accepts ALL, KEYS_ONLY, INCLUDE
              non_key_attributes: ["NonKeyAttributeName"],
            },
            provisioned_throughput: {
              read_capacity_units: 1, # required
              write_capacity_units: 1, # required
            },
          },
          delete: {
            index_name: "IndexName", # required
          },
        },
      ],
      stream_specification: {
        stream_enabled: false, # required
        stream_view_type: "NEW_IMAGE", # accepts NEW_IMAGE, OLD_IMAGE, NEW_AND_OLD_IMAGES, KEYS_ONLY
      },
      sse_specification: {
        enabled: false,
        sse_type: "AES256", # accepts AES256, KMS
        kms_master_key_id: "KMSMasterKeyId",
      },
      replica_updates: [
        {
          create: {
            region_name: "RegionName", # required
            kms_master_key_id: "KMSMasterKeyId",
            provisioned_throughput_override: {
              read_capacity_units: 1,
            },
            global_secondary_indexes: [
              {
                index_name: "IndexName", # required
                provisioned_throughput_override: {
                  read_capacity_units: 1,
                },
              },
            ],
          },
          update: {
            region_name: "RegionName", # required
            kms_master_key_id: "KMSMasterKeyId",
            provisioned_throughput_override: {
              read_capacity_units: 1,
            },
            global_secondary_indexes: [
              {
                index_name: "IndexName", # required
                provisioned_throughput_override: {
                  read_capacity_units: 1,
                },
              },
            ],
          },
          delete: {
            region_name: "RegionName", # required
          },
        },
      ],
    }

@!attribute [rw] attribute_definitions

An array of attributes that describe the key schema for the table
and indexes. If you are adding a new global secondary index to the
table, `AttributeDefinitions` must include the key element(s) of the
new index.
@return [Array<Types::AttributeDefinition>]

@!attribute [rw] table_name

The name of the table to be updated.
@return [String]

@!attribute [rw] billing_mode

Controls how you are charged for read and write throughput and how
you manage capacity. When switching from pay-per-request to
provisioned capacity, initial provisioned capacity values must be
set. The initial provisioned capacity values are estimated based on
the consumed read and write capacity of your table and global
secondary indexes over the past 30 minutes.

* `PROVISIONED` - We recommend using `PROVISIONED` for predictable
  workloads. `PROVISIONED` sets the billing mode to [Provisioned
  Mode][1].

* `PAY_PER_REQUEST` - We recommend using `PAY_PER_REQUEST` for
  unpredictable workloads. `PAY_PER_REQUEST` sets the billing mode
  to [On-Demand Mode][2].

[1]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual
[2]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand
@return [String]

@!attribute [rw] provisioned_throughput

The new provisioned throughput settings for the specified table or
index.
@return [Types::ProvisionedThroughput]

@!attribute [rw] global_secondary_index_updates

An array of one or more global secondary indexes for the table. For
each index in the array, you can request one action:

* `Create` - add a new global secondary index to the table.

* `Update` - modify the provisioned throughput settings of an
  existing global secondary index.

* `Delete` - remove a global secondary index from the table.

You can create or delete only one global secondary index per
`UpdateTable` operation.

For more information, see [Managing Global Secondary Indexes][1] in
the *Amazon DynamoDB Developer Guide*.

[1]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html
@return [Array<Types::GlobalSecondaryIndexUpdate>]

@!attribute [rw] stream_specification

Represents the DynamoDB Streams configuration for the table.

<note markdown="1"> You receive a `ResourceInUseException` if you try to enable a stream
on a table that already has a stream, or if you try to disable a
stream on a table that doesn't have a stream.

 </note>
@return [Types::StreamSpecification]

@!attribute [rw] sse_specification

The new server-side encryption settings for the specified table.
@return [Types::SSESpecification]

@!attribute [rw] replica_updates

A list of replica update actions (create, delete, or update) for the
table.

<note markdown="1"> This property only applies to [Version 2019.11.21][1] of global
tables.

 </note>

[1]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html
@return [Array<Types::ReplicationGroupUpdate>]

@see docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTableInput AWS API Documentation

Constants

SENSITIVE