def update(options = {})
      options = options.merge(table_name: @name)
      resp = @client.update_table(options)
      Table.new(
        name: @name,
        data: resp.data.table_description,
        client: @client
      )
    end
def update(options = {})
      options = options.merge(table_name: @name)
      resp = @client.update_table(options)
      Table.new(
        name: @name,
        data: resp.data.table_description,
        client: @client
      )
    end
@example Request syntax with placeholder values

   table = table.update({
     attribute_definitions: [
       {
         attribute_name: "KeySchemaAttributeName", # required
         attribute_type: "S", # required, accepts S, N, B
       },
     ],
     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,
       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",
     },
   })
 @param [Hash] options ({})
 @option options [Array<Types::AttributeDefinition>] :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.
 @option options [String] :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` - Sets the billing mode to `PROVISIONED`. We recommend
     using `PROVISIONED` for predictable workloads.

   * `PAY_PER_REQUEST` - Sets the billing mode to `PAY_PER_REQUEST`. We
     recommend using `PAY_PER_REQUEST` for unpredictable workloads.
 @option options [Types::ProvisionedThroughput] :provisioned_throughput
   The new provisioned throughput settings for the specified table or
   index.
 @option options [Array<Types::GlobalSecondaryIndexUpdate>] :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.

   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
 @option options [Types::StreamSpecification] :stream_specification
   Represents the DynamoDB Streams configuration for the table.

   <note markdown="1"> You will receive a `ResourceInUseException` if you attempt to enable a
   stream on a table that already has a stream, or if you attempt to
   disable a stream on a table which does not have a stream.

    </note>
 @option options [Types::SSESpecification] :sse_specification
   The new server-side encryption settings for the specified table.
 @return [Table]