Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
  • Blog
  • Pricing
  • Documentation
Yandex project
© 2025 Yandex.Cloud LLC
Yandex Managed Service for YDB
  • Getting started
  • Access management
      • All methods
        • BatchGetItem
        • BatchWriteItem
        • CreateTable
        • DeleteItem
        • DeleteTable
        • DescribeTable
        • DescribeTimeToLive
        • GetItem
        • ListTables
        • PutItem
        • Query
        • Scan
        • TransactGetItems
        • TransactWriteItems
        • UpdateItem
        • UpdateTimeToLive
        • UpdateTable
    • Common errors when working with the Document API
  • Monitoring metrics
  • Audit Trails events
  • FAQ
  • Public materials

In this article:

  • Request
  • Parameters
  • Response
  • Parameters
  • Errors
  1. Amazon DynamoDB-compatible Document API
  2. Document API reference
  3. Actions
  4. UpdateTable

UpdateTable method

Written by
Yandex Cloud
Updated at March 18, 2024
  • Request
    • Parameters
  • Response
    • Parameters
  • Errors

Updates global secondary indexes and streaming settings for a specific table.

You can perform only one of the following operations per query:

  • Add a global secondary index to the table.
  • Delete a global secondary index from the table.
  • Enable/disable update streaming.

RequestRequest

The request contains data in JSON format.

{
   "AttributeDefinitions": [
      {
         "AttributeName": "string",
         "AttributeType": "string"
      }
   ],
   "BillingMode": "string",
   "GlobalSecondaryIndexUpdates": [
      {
         "Create": {
            "IndexName": "string",
            "KeySchema": [
               {
                  "AttributeName": "string",
                  "KeyType": "string"
               }
            ],
            "Projection": {
               "NonKeyAttributes": [ "string" ],
               "ProjectionType": "string"
            }
         },
         "Delete": {
            "IndexName": "string"
         }
      }
   ],
   "StreamSpecification": {
      "StreamEnabled": boolean,
      "StreamViewType": "string"
   },
   "TableName": "string"
}

ParametersParameters

Parameter Description
TableName Name of the table to update.
May contain a path in the hierarchical directory structure in path/to/table format.

Type: String
Length: 3-255 characters
Template: [a-zA-Z0-9_.-]+
Required: Yes
AttributeDefinitions Array of attributes describing the key schema for the table and indexes.

Type: Array of AttributeDefinition type objects
Required: No
GlobalSecondaryIndexUpdates Array of operations describing actions on global secondary indexes:
  • Create adds a new global secondary index to the table.
    Type: Array of GlobalSecondaryIndexUpdate objects
    Required: No
  • Delete deletes a global secondary index from the table.
You can add or delete only one index per query.
When creating an index, specify the following parameters:
  • IndexName: Index name. The name must be unique and at least three characters long. This is a required parameter.
  • KeySchema: Attributes that constitute the primary key of the index.
  • Projection: Specifies attributes copied from the table into the index. Currently the only supported ProjectionType is ALL.
  • NonKeyAttributes: List of one or more non-key attribute names that are projected to the secondary index.

  • Required: No

When deleting a table, it is enough to specify IndexName.
StreamSpecification Description of the update stream settings for a table:
  • StreamEnabled defines whether update streaming for the table is active or not.
  • StreamViewType defines the streaming type:
    • KEYS_ONLY: Only the primary key components and the change flag are written.
    • NEW_IMAGE: Any column values resulting from updates are written.
    • OLD_IMAGE: Any column values before updates are written.
    • NEW_AND_OLD_IMAGES: Combination of the NEW_IMAGE and OLD_IMAGE modes. Writes the values of all columns before and after the update.

  • Type: StreamSpecification type object
    Required: No

ResponseResponse

If successful, HTTP code 200 is returned.
The response is returned in JSON format.

{
   "TableDescription": {
      "ArchivalSummary": {
         "ArchivalBackupArn": "string",
         "ArchivalDateTime": number,
         "ArchivalReason": "string"
      },
      "AttributeDefinitions": [
         {
            "AttributeName": "string",
            "AttributeType": "string"
         }
      ],
      "BillingModeSummary": {
         "BillingMode": "string",
         "LastUpdateToPayPerRequestDateTime": number
      },
      "CreationDateTime": number,
      "GlobalTableVersion": "string",
      "ItemCount": number,
      "KeySchema": [
         {
            "AttributeName": "string",
            "KeyType": "string"
         }
      ],
      "LatestStreamArn": "string",
      "LatestStreamLabel": "string",
      "Replicas": [
         {             
            "KMSMainKeyId": "string",
            "RegionName": "string",
            "ReplicaStatus": "string",
            "ReplicaStatusDescription": "string",
            "ReplicaStatusPercentProgress": "string"
         }
      ],
      "RestoreSummary": {
         "RestoreDateTime": number,
         "RestoreInProgress": boolean,
         "SourceBackupArn": "string",
         "SourceTableArn": "string"
      },
      "SSEDescription": {
         "InaccessibleEncryptionDateTime": number,
         "KMSMainKeyArn": "string",
         "SSEType": "string",
         "Status": "string"
      },
      "StreamSpecification": {
          "StreamEnabled": boolean,
          "StreamViewType": "string"
      },
      "TableArn": "string",
      "TableId": "string",
      "TableName": "string",
      "TableSizeBytes": number,
      "TableStatus": "string"
   }
}

ParametersParameters

Parameter Description
TableDescription Properties of the created table.

Type: TableDescription type object

ErrorsErrors

Parameter Description
InternalServerError An internal error occurred on the server side.

HTTP status code: 500
LimitExceededException Table operations limit exceeded.
You can simultaneously perform up to 50 operations on tables, including CreateTable, UpdateTable, DeleteTable, UpdateTimeToLive, RestoreTableFromBackup, and RestoreTableToPointInTime.

HTTP status code: 400
ResourceInUseException An attempt to create a table with a name that already exists.

HTTP status code: 400
ResourceNotFoundException The specified table does not exist or is still being created using the createTable method

HTTP status code: 400
ValidationException Attempt to enable update streaming if already enabled. Attempt to disable update streaming if it is disabled. Attempt to add an index with a name already taken.

There may be some common errors as well that are the same for all methods.

Was the article helpful?

Previous
UpdateTimeToLive
Next
Common errors when working with the Document API
Yandex project
© 2025 Yandex.Cloud LLC