Amazon DynamoDB Tables API

Operations for creating, describing, updating, listing, and deleting DynamoDB tables

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

dynamodb-tables-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon DynamoDB Backups Tables API
  description: Amazon DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. DynamoDB uses a JSON-based wire protocol with target-specific headers in an RPC style. The API exposes operations for creating and managing tables, reading and writing items, and executing queries and scans. All requests are authenticated via AWS Signature Version 4 and use the X-Amz-Target header to specify the operation.
  version: '2012-08-10'
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  x-logo:
    url: https://a0.awsstatic.com/libra-css/images/logos/aws_logo_smile_1200x630.png
servers:
- url: https://dynamodb.{region}.amazonaws.com
  description: Amazon DynamoDB Regional Endpoint
  variables:
    region:
      default: us-east-1
      description: AWS Region
      enum:
      - us-east-1
      - us-east-2
      - us-west-1
      - us-west-2
      - eu-west-1
      - eu-west-2
      - eu-west-3
      - eu-central-1
      - eu-north-1
      - ap-southeast-1
      - ap-southeast-2
      - ap-northeast-1
      - ap-northeast-2
      - ap-south-1
      - sa-east-1
      - ca-central-1
security:
- aws_sigv4: []
tags:
- name: Tables
  description: Operations for creating, describing, updating, listing, and deleting DynamoDB tables
paths:
  /:
    post:
      operationId: CreateTable
      summary: Amazon Dynamodb Create a Dynamodb Table
      description: Creates a new table in DynamoDB. The CreateTable operation adds a new table to your account. Table names must be unique within each Region. The table is created with the specified key schema, attribute definitions, provisioned throughput settings, and optional secondary indexes.
      tags:
      - Tables
      parameters:
      - $ref: '#/components/parameters/X-Amz-Target-CreateTable'
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/CreateTableInput'
      responses:
        '200':
          description: Table creation initiated successfully
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/CreateTableOutput'
        '400':
          description: Bad request
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource already exists
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too many requests - provisioned throughput exceeded
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /#DescribeTable:
    post:
      operationId: DescribeTable
      summary: Amazon Dynamodb Describe a Dynamodb Table
      description: Returns information about the table, including the current status of the table, when it was created, the primary key schema, and any indexes on the table.
      tags:
      - Tables
      parameters:
      - $ref: '#/components/parameters/X-Amz-Target-DescribeTable'
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/DescribeTableInput'
      responses:
        '200':
          description: Table description returned successfully
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/DescribeTableOutput'
        '400':
          description: Bad request
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Table not found
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /#UpdateTable:
    post:
      operationId: UpdateTable
      summary: Amazon Dynamodb Update a Dynamodb Table
      description: 'Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table. You can only perform one of the following operations at once: modify provisioned throughput, enable/disable Streams, remove a global secondary index, or create a new global secondary index.'
      tags:
      - Tables
      parameters:
      - $ref: '#/components/parameters/X-Amz-Target-UpdateTable'
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/UpdateTableInput'
      responses:
        '200':
          description: Table update initiated successfully
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/UpdateTableOutput'
        '400':
          description: Bad request
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Table not found
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Limit exceeded
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /#DeleteTable:
    post:
      operationId: DeleteTable
      summary: Amazon Dynamodb Delete a Dynamodb Table
      description: Deletes a table and all of its items. After a DeleteTable request, the specified table is in the DELETING state until DynamoDB completes the deletion. Any items in the table are deleted.
      tags:
      - Tables
      parameters:
      - $ref: '#/components/parameters/X-Amz-Target-DeleteTable'
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/DeleteTableInput'
      responses:
        '200':
          description: Table deletion initiated successfully
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/DeleteTableOutput'
        '400':
          description: Bad request
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Table not found
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /#ListTables:
    post:
      operationId: ListTables
      summary: Amazon Dynamodb List Dynamodb Tables
      description: Returns an array of table names associated with the current account and endpoint. The output from ListTables is paginated, with each page returning a maximum number of 100 table names.
      tags:
      - Tables
      parameters:
      - $ref: '#/components/parameters/X-Amz-Target-ListTables'
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/ListTablesInput'
      responses:
        '200':
          description: List of tables returned successfully
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ListTablesOutput'
        '400':
          description: Bad request
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  parameters:
    X-Amz-Target-DescribeTable:
      name: X-Amz-Target
      in: header
      required: true
      schema:
        type: string
        enum:
        - DynamoDB_20120810.DescribeTable
    X-Amz-Target-CreateTable:
      name: X-Amz-Target
      in: header
      required: true
      schema:
        type: string
        enum:
        - DynamoDB_20120810.CreateTable
    X-Amz-Target-DeleteTable:
      name: X-Amz-Target
      in: header
      required: true
      schema:
        type: string
        enum:
        - DynamoDB_20120810.DeleteTable
    X-Amz-Target-ListTables:
      name: X-Amz-Target
      in: header
      required: true
      schema:
        type: string
        enum:
        - DynamoDB_20120810.ListTables
    X-Amz-Target-UpdateTable:
      name: X-Amz-Target
      in: header
      required: true
      schema:
        type: string
        enum:
        - DynamoDB_20120810.UpdateTable
  schemas:
    StreamSpecification:
      type: object
      required:
      - StreamEnabled
      properties:
        StreamEnabled:
          type: boolean
          description: Indicates whether DynamoDB Streams is enabled on the table
          example: true
        StreamViewType:
          type: string
          enum:
          - NEW_IMAGE
          - OLD_IMAGE
          - NEW_AND_OLD_IMAGES
          - KEYS_ONLY
          description: Determines the information written to the stream for this table
          example: NEW_IMAGE
    AttributeDefinition:
      type: object
      required:
      - AttributeName
      - AttributeType
      properties:
        AttributeName:
          type: string
          description: A name for the attribute
          minLength: 1
          maxLength: 255
          example: example_value
        AttributeType:
          type: string
          enum:
          - S
          - N
          - B
          description: 'The data type for the attribute: S (String), N (Number), B (Binary)'
          example: S
    SSESpecification:
      type: object
      properties:
        Enabled:
          type: boolean
          description: Indicates whether server-side encryption is enabled
          example: true
        SSEType:
          type: string
          enum:
          - AES256
          - KMS
          description: Server-side encryption type
          example: AES256
        KMSMasterKeyId:
          type: string
          description: The KMS key that should be used for server-side encryption
          example: '500123'
    ListTablesInput:
      type: object
      properties:
        ExclusiveStartTableName:
          type: string
          minLength: 3
          maxLength: 255
          description: The first table name that this operation will evaluate. Use the value returned for LastEvaluatedTableName in a previous operation.
          example: example_value
        Limit:
          type: integer
          minimum: 1
          maximum: 100
          description: Maximum number of table names to return (1-100)
          example: 10
    CreateTableInput:
      type: object
      required:
      - TableName
      - KeySchema
      - AttributeDefinitions
      properties:
        TableName:
          type: string
          minLength: 3
          maxLength: 255
          pattern: '[a-zA-Z0-9_.-]+'
          description: The name of the table to create. Must be between 3 and 255 characters long.
          example: example_value
        AttributeDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/AttributeDefinition'
          description: An array of attributes that describe the key schema for the table and indexes
          example: []
        KeySchema:
          type: array
          items:
            $ref: '#/components/schemas/KeySchemaElement'
          minItems: 1
          maxItems: 2
          description: Specifies the attributes that make up the primary key for a table or an index
          example: []
        BillingMode:
          type: string
          enum:
          - PROVISIONED
          - PAY_PER_REQUEST
          description: Controls how you are charged for read and write throughput
          example: PROVISIONED
        ProvisionedThroughput:
          $ref: '#/components/schemas/ProvisionedThroughput'
        GlobalSecondaryIndexes:
          type: array
          items:
            $ref: '#/components/schemas/GlobalSecondaryIndex'
          description: One or more global secondary indexes to create on the table
          example: []
        LocalSecondaryIndexes:
          type: array
          items:
            $ref: '#/components/schemas/LocalSecondaryIndex'
          description: One or more local secondary indexes to create on the table
          example: []
        StreamSpecification:
          $ref: '#/components/schemas/StreamSpecification'
        SSESpecification:
          $ref: '#/components/schemas/SSESpecification'
        Tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          description: Tags to associate with the table
          example: []
        TableClass:
          type: string
          enum:
          - STANDARD
          - STANDARD_INFREQUENT_ACCESS
          description: The table class of the new table
          example: STANDARD
        DeletionProtectionEnabled:
          type: boolean
          description: Indicates whether deletion protection is enabled
          example: true
    LocalSecondaryIndex:
      type: object
      required:
      - IndexName
      - KeySchema
      - Projection
      properties:
        IndexName:
          type: string
          minLength: 3
          maxLength: 255
          description: The name of the local secondary index
          example: example_value
        KeySchema:
          type: array
          items:
            $ref: '#/components/schemas/KeySchemaElement'
          minItems: 2
          maxItems: 2
          description: The key schema for the local secondary index
          example: []
        Projection:
          $ref: '#/components/schemas/Projection'
    DescribeTableInput:
      type: object
      required:
      - TableName
      properties:
        TableName:
          type: string
          minLength: 3
          maxLength: 255
          description: The name of the table to describe
          example: example_value
    ListTablesOutput:
      type: object
      properties:
        TableNames:
          type: array
          items:
            type: string
          description: The names of the tables associated with the current account
          example: []
        LastEvaluatedTableName:
          type: string
          description: The name of the last table in the current page of results. Use this value as ExclusiveStartTableName for the next request.
          example: example_value
    ProvisionedThroughputDescription:
      type: object
      properties:
        LastIncreaseDateTime:
          type: string
          format: date-time
          description: The date and time of the last provisioned throughput increase
          example: '2026-01-15T10:30:00Z'
        LastDecreaseDateTime:
          type: string
          format: date-time
          description: The date and time of the last provisioned throughput decrease
          example: '2026-01-15T10:30:00Z'
        NumberOfDecreasesToday:
          type: integer
          description: The number of provisioned throughput decreases for this table during this UTC calendar day
          example: 10
        ReadCapacityUnits:
          type: integer
          description: The maximum number of strongly consistent reads consumed per second
          example: 10
        WriteCapacityUnits:
          type: integer
          description: The maximum number of writes consumed per second
          example: 10
    TableDescription:
      type: object
      properties:
        TableName:
          type: string
          description: The name of the table
          example: example_value
        TableStatus:
          type: string
          enum:
          - CREATING
          - UPDATING
          - DELETING
          - ACTIVE
          - INACCESSIBLE_ENCRYPTION_CREDENTIALS
          - ARCHIVING
          - ARCHIVED
          description: The current state of the table
          example: CREATING
        TableArn:
          type: string
          description: The Amazon Resource Name (ARN) of the table
          example: example_value
        TableId:
          type: string
          description: Unique identifier for the table
          example: '500123'
        TableSizeBytes:
          type: integer
          description: The total size of the specified table in bytes
          example: 10
        ItemCount:
          type: integer
          description: The number of items in the specified table
          example: 10
        CreationDateTime:
          type: string
          format: date-time
          description: The date and time when the table was created
          example: '2026-01-15T10:30:00Z'
        AttributeDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/AttributeDefinition'
          description: An array of AttributeDefinition objects
          example: []
        KeySchema:
          type: array
          items:
            $ref: '#/components/schemas/KeySchemaElement'
          description: The primary key structure for the table
          example: []
        ProvisionedThroughput:
          $ref: '#/components/schemas/ProvisionedThroughputDescription'
        BillingModeSummary:
          type: object
          properties:
            BillingMode:
              type: string
              enum:
              - PROVISIONED
              - PAY_PER_REQUEST
            LastUpdateToPayPerRequestDateTime:
              type: string
              format: date-time
          example: example_value
        GlobalSecondaryIndexes:
          type: array
          items:
            type: object
            properties:
              IndexName:
                type: string
              IndexStatus:
                type: string
                enum:
                - CREATING
                - UPDATING
                - DELETING
                - ACTIVE
              KeySchema:
                type: array
                items:
                  $ref: '#/components/schemas/KeySchemaElement'
              Projection:
                $ref: '#/components/schemas/Projection'
              IndexSizeBytes:
                type: integer
              ItemCount:
                type: integer
              IndexArn:
                type: string
              ProvisionedThroughput:
                $ref: '#/components/schemas/ProvisionedThroughputDescription'
          example: []
        LocalSecondaryIndexes:
          type: array
          items:
            type: object
            properties:
              IndexName:
                type: string
              KeySchema:
                type: array
                items:
                  $ref: '#/components/schemas/KeySchemaElement'
              Projection:
                $ref: '#/components/schemas/Projection'
              IndexSizeBytes:
                type: integer
              ItemCount:
                type: integer
              IndexArn:
                type: string
          example: []
        StreamSpecification:
          $ref: '#/components/schemas/StreamSpecification'
        LatestStreamLabel:
          type: string
          description: A timestamp in ISO 8601 format of the stream label
          example: example_value
        LatestStreamArn:
          type: string
          description: The ARN of the latest DynamoDB stream
          example: example_value
        DeletionProtectionEnabled:
          type: boolean
          description: Indicates whether deletion protection is enabled
          example: true
        TableClassSummary:
          type: object
          properties:
            TableClass:
              type: string
              enum:
              - STANDARD
              - STANDARD_INFREQUENT_ACCESS
            LastUpdateDateTime:
              type: string
              format: date-time
          example: example_value
        SSEDescription:
          type: object
          properties:
            Status:
              type: string
              enum:
              - ENABLING
              - ENABLED
              - DISABLING
              - DISABLED
              - UPDATING
            SSEType:
              type: string
              enum:
              - AES256
              - KMS
            KMSMasterKeyArn:
              type: string
          example: example_value
    ErrorResponse:
      type: object
      properties:
        __type:
          type: string
          description: The exception type
          examples:
          - com.amazonaws.dynamodb.v20120810#ResourceNotFoundException
          - com.amazonaws.dynamodb.v20120810#ValidationException
          - com.amazonaws.dynamodb.v20120810#ConditionalCheckFailedException
          - com.amazonaws.dynamodb.v20120810#ProvisionedThroughputExceededException
          - com.amazonaws.dynamodb.v20120810#ResourceInUseException
          - com.amazonaws.dynamodb.v20120810#ItemCollectionSizeLimitExceededException
          - com.amazonaws.dynamodb.v20120810#TransactionConflictException
          - com.amazonaws.dynamodb.v20120810#TransactionCanceledException
          - com.amazonaws.dynamodb.v20120810#InternalServerError
        message:
          type: string
          description: A human-readable description of the error
          example: example_value
        Message:
          type: string
          description: A human-readable description of the error (alternative casing)
          example: example_value
    DeleteTableInput:
      type: object
      required:
      - TableName
      properties:
        TableName:
          type: string
          minLength: 3
          maxLength: 255
          description: The name of the table to delete
          example: example_value
    GlobalSecondaryIndex:
      type: object
      required:
      - IndexName
      - KeySchema
      - Projection
      properties:
        IndexName:
          type: string
          minLength: 3
          maxLength: 255
          description: The name of the global secondary index
          example: example_value
        KeySchema:
          type: array
          items:
            $ref: '#/components/schemas/KeySchemaElement'
          minItems: 1
          maxItems: 2
          description: The key schema for the global secondary index
          example: []
        Projection:
          $ref: '#/components/schemas/Projection'
        ProvisionedThroughput:
          $ref: '#/components/schemas/ProvisionedThroughput'
    UpdateTableInput:
      type: object
      required:
      - TableName
      properties:
        TableName:
          type: string
          minLength: 3
          maxLength: 255
          description: The name of the table to update
          example: example_value
        AttributeDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/AttributeDefinition'
          example: []
        BillingMode:
          type: string
          enum:
          - PROVISIONED
          - PAY_PER_REQUEST
          example: PROVISIONED
        ProvisionedThroughput:
          $ref: '#/components/schemas/ProvisionedThroughput'
        GlobalSecondaryIndexUpdates:
          type: array
          items:
            type: object
            properties:
              Update:
                type: object
                properties:
                  IndexName:
                    type: string
                  ProvisionedThroughput:
                    $ref: '#/components/schemas/ProvisionedThroughput'
              Create:
                $ref: '#/components/schemas/GlobalSecondaryIndex'
              Delete:
                type: object
                properties:
                  IndexName:
                    type: string
          example: []
        StreamSpecification:
          $ref: '#/components/schemas/StreamSpecification'
        SSESpecification:
          $ref: '#/components/schemas/SSESpecification'
        TableClass:
          type: string
          enum:
          - STANDARD
          - STANDARD_INFREQUENT_ACCESS
          example: STANDARD
        DeletionProtectionEnabled:
          type: boolean
          example: true
    CreateTableOutput:
      type: object
      properties:
        TableDescription:
          $ref: '#/components/schemas/TableDescription'
    ProvisionedThroughput:
      type: object
      required:
      - ReadCapacityUnits
      - WriteCapacityUnits
      properties:
        ReadCapacityUnits:
          type: integer
          minimum: 1
          description: The maximum number of strongly consistent reads consumed per second
          example: 10
        WriteCapacityUnits:
          type: integer
          minimum: 1
          description: The maximum number of writes consumed per second
          example: 10
    Tag:
      type: object
      required:
      - Key
      - Value
      properties:
        Key:
          type: string
          minLength: 1
          maxLength: 128
          description: The key of the tag
          example: example_value
        Value:
          type: string
          minLength: 0
          maxLength: 256
          description: The value of the tag
          example: example_value
    UpdateTableOutput:
      type: object
      properties:
        TableDescription:
          $ref: '#/components/schemas/TableDescription'
    KeySchemaElement:
      type: object
      required:
      - AttributeName
      - KeyType
      properties:
        AttributeName:
          type: string
          description: The name of a key attribute
          minLength: 1
          maxLength: 255
          example: example_value
        KeyType:
          type: string
          enum:
          - HASH
          - RANGE
          description: 'The role of the key attribute: HASH (partition key) or RANGE (sort key)'
          example: HASH
    Projection:
      type: object
      properties:
        ProjectionType:
          type: string
          enum:
          - ALL
          - KEYS_ONLY
          - INCLUDE
          description: The set of attributes that are projected into the index
          example: ALL
        NonKeyAttributes:
          type: array
          items:
            type: string
          minItems: 1
          maxItems: 20
          description: List of non-key attribute names that are projected into the index
          example: []
    DeleteTableOutput:
      type: object
      properties:
        TableDescription:
          $ref: '#/components/schemas/TableDescription'
    DescribeTableOutput:
      type: object
      properties:
        Table:
          $ref: '#/components/schemas/TableDescription'
  securitySchemes:
    aws_sigv4:
      type: apiKey
      name: Authorization
      in: header
      description: AWS Signature Version 4 authentication. All DynamoDB requests must be signed using the AWS SigV4 signing process. The service name for signing is 'dynamodb'.
externalDocs:
  description: Amazon DynamoDB API Reference
  url: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/Welcome.html