Amazon DynamoDB

2018/08/06 - Amazon DynamoDB - 4 updated api methods

Changes  Amazon DynamoDB Point-in-time recovery (PITR) provides continuous backups of your table data. DynamoDB now supports the ability to self-restore a deleted PITR enabled table. Now, when a table with PITR enabled is deleted, a system backup is automatically created and retained for 35 days (at no additional cost). System backups allow you to restore the deleted PITR enabled table to the state it was just before the point of deletion. For more information, see the Amazon DynamoDB Developer Guide.

CreateBackup (updated) Link ¶
Changes (response)
{'BackupDetails': {'BackupExpiryDateTime': 'timestamp',
                   'BackupType': 'USER | SYSTEM'}}

Creates a backup for an existing table.

Each time you create an On-Demand Backup, the entire table data is backed up. There is no limit to the number of on-demand backups that can be taken.

When you create an On-Demand Backup, a time marker of the request is cataloged, and the backup is created asynchronously, by applying all changes until the time of the request to the last full table snapshot. Backup requests are processed instantaneously and become available for restore within minutes.

You can call CreateBackup at a maximum rate of 50 times per second.

All backups in DynamoDB work without consuming any provisioned throughput on the table.

If you submit a backup request on 2018-12-14 at 14:25:00, the backup is guaranteed to contain all data committed to the table up to 14:24:00, and data committed after 14:26:00 will not be. The backup may or may not contain data modifications made between 14:24:00 and 14:26:00. On-Demand Backup does not support causal consistency.

Along with data, the following are also included on the backups:

  • Global secondary indexes (GSIs)

  • Local secondary indexes (LSIs)

  • Streams

  • Provisioned read and write capacity

See also: AWS API Documentation

Request Syntax

client.create_backup(
    TableName='string',
    BackupName='string'
)
type TableName

string

param TableName

[REQUIRED]

The name of the table.

type BackupName

string

param BackupName

[REQUIRED]

Specified name for the backup.

rtype

dict

returns

Response Syntax

{
    'BackupDetails': {
        'BackupArn': 'string',
        'BackupName': 'string',
        'BackupSizeBytes': 123,
        'BackupStatus': 'CREATING'|'DELETED'|'AVAILABLE',
        'BackupType': 'USER'|'SYSTEM',
        'BackupCreationDateTime': datetime(2015, 1, 1),
        'BackupExpiryDateTime': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • BackupDetails (dict) --

      Contains the details of the backup created for the table.

      • BackupArn (string) --

        ARN associated with the backup.

      • BackupName (string) --

        Name of the requested backup.

      • BackupSizeBytes (integer) --

        Size of the backup in bytes.

      • BackupStatus (string) --

        Backup can be in one of the following states: CREATING, ACTIVE, DELETED.

      • BackupType (string) --

        BackupType:

        • USER - On demand backup created by you.

        • SYSTEM - On demand backup automatically created by DynamoDB.

      • BackupCreationDateTime (datetime) --

        Time at which the backup was created. This is the request time of the backup.

      • BackupExpiryDateTime (datetime) --

        Time at which the automatic on demand backup created by DynamoDB will expire. This SYSTEM on demand backup expires automatically 35 days after its creation.

DeleteBackup (updated) Link ¶
Changes (response)
{'BackupDescription': {'BackupDetails': {'BackupExpiryDateTime': 'timestamp',
                                         'BackupType': 'USER | SYSTEM'}}}

Deletes an existing backup of a table.

You can call DeleteBackup at a maximum rate of 10 times per second.

See also: AWS API Documentation

Request Syntax

client.delete_backup(
    BackupArn='string'
)
type BackupArn

string

param BackupArn

[REQUIRED]

The ARN associated with the backup.

rtype

dict

returns

Response Syntax

{
    'BackupDescription': {
        'BackupDetails': {
            'BackupArn': 'string',
            'BackupName': 'string',
            'BackupSizeBytes': 123,
            'BackupStatus': 'CREATING'|'DELETED'|'AVAILABLE',
            'BackupType': 'USER'|'SYSTEM',
            'BackupCreationDateTime': datetime(2015, 1, 1),
            'BackupExpiryDateTime': datetime(2015, 1, 1)
        },
        'SourceTableDetails': {
            'TableName': 'string',
            'TableId': 'string',
            'TableArn': 'string',
            'TableSizeBytes': 123,
            'KeySchema': [
                {
                    'AttributeName': 'string',
                    'KeyType': 'HASH'|'RANGE'
                },
            ],
            'TableCreationDateTime': datetime(2015, 1, 1),
            'ProvisionedThroughput': {
                'ReadCapacityUnits': 123,
                'WriteCapacityUnits': 123
            },
            'ItemCount': 123
        },
        'SourceTableFeatureDetails': {
            'LocalSecondaryIndexes': [
                {
                    'IndexName': 'string',
                    'KeySchema': [
                        {
                            'AttributeName': 'string',
                            'KeyType': 'HASH'|'RANGE'
                        },
                    ],
                    'Projection': {
                        'ProjectionType': 'ALL'|'KEYS_ONLY'|'INCLUDE',
                        'NonKeyAttributes': [
                            'string',
                        ]
                    }
                },
            ],
            'GlobalSecondaryIndexes': [
                {
                    'IndexName': 'string',
                    'KeySchema': [
                        {
                            'AttributeName': 'string',
                            'KeyType': 'HASH'|'RANGE'
                        },
                    ],
                    'Projection': {
                        'ProjectionType': 'ALL'|'KEYS_ONLY'|'INCLUDE',
                        'NonKeyAttributes': [
                            'string',
                        ]
                    },
                    'ProvisionedThroughput': {
                        'ReadCapacityUnits': 123,
                        'WriteCapacityUnits': 123
                    }
                },
            ],
            'StreamDescription': {
                'StreamEnabled': True|False,
                'StreamViewType': 'NEW_IMAGE'|'OLD_IMAGE'|'NEW_AND_OLD_IMAGES'|'KEYS_ONLY'
            },
            'TimeToLiveDescription': {
                'TimeToLiveStatus': 'ENABLING'|'DISABLING'|'ENABLED'|'DISABLED',
                'AttributeName': 'string'
            },
            'SSEDescription': {
                'Status': 'ENABLING'|'ENABLED'|'DISABLING'|'DISABLED',
                'SSEType': 'AES256'|'KMS',
                'KMSMasterKeyArn': 'string'
            }
        }
    }
}

Response Structure

  • (dict) --

    • BackupDescription (dict) --

      Contains the description of the backup created for the table.

      • BackupDetails (dict) --

        Contains the details of the backup created for the table.

        • BackupArn (string) --

          ARN associated with the backup.

        • BackupName (string) --

          Name of the requested backup.

        • BackupSizeBytes (integer) --

          Size of the backup in bytes.

        • BackupStatus (string) --

          Backup can be in one of the following states: CREATING, ACTIVE, DELETED.

        • BackupType (string) --

          BackupType:

          • USER - On demand backup created by you.

          • SYSTEM - On demand backup automatically created by DynamoDB.

        • BackupCreationDateTime (datetime) --

          Time at which the backup was created. This is the request time of the backup.

        • BackupExpiryDateTime (datetime) --

          Time at which the automatic on demand backup created by DynamoDB will expire. This SYSTEM on demand backup expires automatically 35 days after its creation.

      • SourceTableDetails (dict) --

        Contains the details of the table when the backup was created.

        • TableName (string) --

          The name of the table for which the backup was created.

        • TableId (string) --

          Unique identifier for the table for which the backup was created.

        • TableArn (string) --

          ARN of the table for which backup was created.

        • TableSizeBytes (integer) --

          Size of the table in bytes. Please note this is an approximate value.

        • KeySchema (list) --

          Schema of the table.

          • (dict) --

            Represents a single element of a key schema. A key schema specifies the attributes that make up the primary key of a table, or the key attributes of an index.

            A KeySchemaElement represents exactly one attribute of the primary key. For example, a simple primary key would be represented by one KeySchemaElement (for the partition key). A composite primary key would require one KeySchemaElement for the partition key, and another KeySchemaElement for the sort key.

            A KeySchemaElement must be a scalar, top-level attribute (not a nested attribute). The data type must be one of String, Number, or Binary. The attribute cannot be nested within a List or a Map.

            • AttributeName (string) --

              The name of a key attribute.

            • KeyType (string) --

              The role that this key attribute will assume:

              • HASH - partition key

              • RANGE - sort key

              Note

              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.

        • TableCreationDateTime (datetime) --

          Time when the source table was created.

        • ProvisionedThroughput (dict) --

          Read IOPs and Write IOPS on the table when the backup was created.

          • ReadCapacityUnits (integer) --

            The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ThrottlingException . For more information, see Specifying Read and Write Requirements in the Amazon DynamoDB Developer Guide .

          • WriteCapacityUnits (integer) --

            The maximum number of writes consumed per second before DynamoDB returns a ThrottlingException . For more information, see Specifying Read and Write Requirements in the Amazon DynamoDB Developer Guide .

        • ItemCount (integer) --

          Number of items in the table. Please note this is an approximate value.

      • SourceTableFeatureDetails (dict) --

        Contains the details of the features enabled on the table when the backup was created. For example, LSIs, GSIs, streams, TTL.

        • LocalSecondaryIndexes (list) --

          Represents the LSI properties for the table when the backup was created. It includes the IndexName, KeySchema and Projection for the LSIs on the table at the time of backup.

          • (dict) --

            Represents the properties of a local secondary index for the table when the backup was created.

            • IndexName (string) --

              Represents the name of the local secondary index.

            • KeySchema (list) --

              The complete key schema for a local secondary index, which consists of one or more pairs of attribute names and key types:

              • HASH - partition key

              • RANGE - sort key

              Note

              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.

              • (dict) --

                Represents a single element of a key schema. A key schema specifies the attributes that make up the primary key of a table, or the key attributes of an index.

                A KeySchemaElement represents exactly one attribute of the primary key. For example, a simple primary key would be represented by one KeySchemaElement (for the partition key). A composite primary key would require one KeySchemaElement for the partition key, and another KeySchemaElement for the sort key.

                A KeySchemaElement must be a scalar, top-level attribute (not a nested attribute). The data type must be one of String, Number, or Binary. The attribute cannot be nested within a List or a Map.

                • AttributeName (string) --

                  The name of a key attribute.

                • KeyType (string) --

                  The role that this key attribute will assume:

                  • HASH - partition key

                  • RANGE - sort key

                  Note

                  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.

            • Projection (dict) --

              Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

              • ProjectionType (string) --

                The set of attributes that are projected into the index:

                • 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 (list) --

                Represents the non-key attribute names which will be projected into the index.

                For local secondary indexes, the total count of NonKeyAttributes summed across all of the local 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.

                • (string) --

        • GlobalSecondaryIndexes (list) --

          Represents the GSI properties for the table when the backup was created. It includes the IndexName, KeySchema, Projection and ProvisionedThroughput for the GSIs on the table at the time of backup.

          • (dict) --

            Represents the properties of a global secondary index for the table when the backup was created.

            • IndexName (string) --

              The name of the global secondary index.

            • KeySchema (list) --

              The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:

              • HASH - partition key

              • RANGE - sort key

              Note

              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.

              • (dict) --

                Represents a single element of a key schema. A key schema specifies the attributes that make up the primary key of a table, or the key attributes of an index.

                A KeySchemaElement represents exactly one attribute of the primary key. For example, a simple primary key would be represented by one KeySchemaElement (for the partition key). A composite primary key would require one KeySchemaElement for the partition key, and another KeySchemaElement for the sort key.

                A KeySchemaElement must be a scalar, top-level attribute (not a nested attribute). The data type must be one of String, Number, or Binary. The attribute cannot be nested within a List or a Map.

                • AttributeName (string) --

                  The name of a key attribute.

                • KeyType (string) --

                  The role that this key attribute will assume:

                  • HASH - partition key

                  • RANGE - sort key

                  Note

                  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.

            • Projection (dict) --

              Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

              • ProjectionType (string) --

                The set of attributes that are projected into the index:

                • 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 (list) --

                Represents the non-key attribute names which will be projected into the index.

                For local secondary indexes, the total count of NonKeyAttributes summed across all of the local 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.

                • (string) --

            • ProvisionedThroughput (dict) --

              Represents the provisioned throughput settings for the specified global secondary index.

              • ReadCapacityUnits (integer) --

                The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ThrottlingException . For more information, see Specifying Read and Write Requirements in the Amazon DynamoDB Developer Guide .

              • WriteCapacityUnits (integer) --

                The maximum number of writes consumed per second before DynamoDB returns a ThrottlingException . For more information, see Specifying Read and Write Requirements in the Amazon DynamoDB Developer Guide .

        • StreamDescription (dict) --

          Stream settings on the table when the backup was created.

          • StreamEnabled (boolean) --

            Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.

          • StreamViewType (string) --

            When an item in the table is modified, StreamViewType determines what information is written to the stream for this table. 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.

        • TimeToLiveDescription (dict) --

          Time to Live settings on the table when the backup was created.

          • TimeToLiveStatus (string) --

            The Time to Live status for the table.

          • AttributeName (string) --

            The name of the Time to Live attribute for items in the table.

        • SSEDescription (dict) --

          The description of the server-side encryption status on the table when the backup was created.

          • Status (string) --

            The current state of server-side encryption:

            • ENABLING - Server-side encryption is being enabled.

            • ENABLED - Server-side encryption is enabled.

            • DISABLING - Server-side encryption is being disabled.

            • DISABLED - Server-side encryption is disabled.

          • SSEType (string) --

            Server-side encryption type:

            • AES256 - Server-side encryption which uses the AES256 algorithm.

            • KMS - Server-side encryption which uses AWS Key Management Service.

          • KMSMasterKeyArn (string) --

            The KMS master key ARN used for the KMS encryption.

DescribeBackup (updated) Link ¶
Changes (response)
{'BackupDescription': {'BackupDetails': {'BackupExpiryDateTime': 'timestamp',
                                         'BackupType': 'USER | SYSTEM'}}}

Describes an existing backup of a table.

You can call DescribeBackup at a maximum rate of 10 times per second.

See also: AWS API Documentation

Request Syntax

client.describe_backup(
    BackupArn='string'
)
type BackupArn

string

param BackupArn

[REQUIRED]

The ARN associated with the backup.

rtype

dict

returns

Response Syntax

{
    'BackupDescription': {
        'BackupDetails': {
            'BackupArn': 'string',
            'BackupName': 'string',
            'BackupSizeBytes': 123,
            'BackupStatus': 'CREATING'|'DELETED'|'AVAILABLE',
            'BackupType': 'USER'|'SYSTEM',
            'BackupCreationDateTime': datetime(2015, 1, 1),
            'BackupExpiryDateTime': datetime(2015, 1, 1)
        },
        'SourceTableDetails': {
            'TableName': 'string',
            'TableId': 'string',
            'TableArn': 'string',
            'TableSizeBytes': 123,
            'KeySchema': [
                {
                    'AttributeName': 'string',
                    'KeyType': 'HASH'|'RANGE'
                },
            ],
            'TableCreationDateTime': datetime(2015, 1, 1),
            'ProvisionedThroughput': {
                'ReadCapacityUnits': 123,
                'WriteCapacityUnits': 123
            },
            'ItemCount': 123
        },
        'SourceTableFeatureDetails': {
            'LocalSecondaryIndexes': [
                {
                    'IndexName': 'string',
                    'KeySchema': [
                        {
                            'AttributeName': 'string',
                            'KeyType': 'HASH'|'RANGE'
                        },
                    ],
                    'Projection': {
                        'ProjectionType': 'ALL'|'KEYS_ONLY'|'INCLUDE',
                        'NonKeyAttributes': [
                            'string',
                        ]
                    }
                },
            ],
            'GlobalSecondaryIndexes': [
                {
                    'IndexName': 'string',
                    'KeySchema': [
                        {
                            'AttributeName': 'string',
                            'KeyType': 'HASH'|'RANGE'
                        },
                    ],
                    'Projection': {
                        'ProjectionType': 'ALL'|'KEYS_ONLY'|'INCLUDE',
                        'NonKeyAttributes': [
                            'string',
                        ]
                    },
                    'ProvisionedThroughput': {
                        'ReadCapacityUnits': 123,
                        'WriteCapacityUnits': 123
                    }
                },
            ],
            'StreamDescription': {
                'StreamEnabled': True|False,
                'StreamViewType': 'NEW_IMAGE'|'OLD_IMAGE'|'NEW_AND_OLD_IMAGES'|'KEYS_ONLY'
            },
            'TimeToLiveDescription': {
                'TimeToLiveStatus': 'ENABLING'|'DISABLING'|'ENABLED'|'DISABLED',
                'AttributeName': 'string'
            },
            'SSEDescription': {
                'Status': 'ENABLING'|'ENABLED'|'DISABLING'|'DISABLED',
                'SSEType': 'AES256'|'KMS',
                'KMSMasterKeyArn': 'string'
            }
        }
    }
}

Response Structure

  • (dict) --

    • BackupDescription (dict) --

      Contains the description of the backup created for the table.

      • BackupDetails (dict) --

        Contains the details of the backup created for the table.

        • BackupArn (string) --

          ARN associated with the backup.

        • BackupName (string) --

          Name of the requested backup.

        • BackupSizeBytes (integer) --

          Size of the backup in bytes.

        • BackupStatus (string) --

          Backup can be in one of the following states: CREATING, ACTIVE, DELETED.

        • BackupType (string) --

          BackupType:

          • USER - On demand backup created by you.

          • SYSTEM - On demand backup automatically created by DynamoDB.

        • BackupCreationDateTime (datetime) --

          Time at which the backup was created. This is the request time of the backup.

        • BackupExpiryDateTime (datetime) --

          Time at which the automatic on demand backup created by DynamoDB will expire. This SYSTEM on demand backup expires automatically 35 days after its creation.

      • SourceTableDetails (dict) --

        Contains the details of the table when the backup was created.

        • TableName (string) --

          The name of the table for which the backup was created.

        • TableId (string) --

          Unique identifier for the table for which the backup was created.

        • TableArn (string) --

          ARN of the table for which backup was created.

        • TableSizeBytes (integer) --

          Size of the table in bytes. Please note this is an approximate value.

        • KeySchema (list) --

          Schema of the table.

          • (dict) --

            Represents a single element of a key schema. A key schema specifies the attributes that make up the primary key of a table, or the key attributes of an index.

            A KeySchemaElement represents exactly one attribute of the primary key. For example, a simple primary key would be represented by one KeySchemaElement (for the partition key). A composite primary key would require one KeySchemaElement for the partition key, and another KeySchemaElement for the sort key.

            A KeySchemaElement must be a scalar, top-level attribute (not a nested attribute). The data type must be one of String, Number, or Binary. The attribute cannot be nested within a List or a Map.

            • AttributeName (string) --

              The name of a key attribute.

            • KeyType (string) --

              The role that this key attribute will assume:

              • HASH - partition key

              • RANGE - sort key

              Note

              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.

        • TableCreationDateTime (datetime) --

          Time when the source table was created.

        • ProvisionedThroughput (dict) --

          Read IOPs and Write IOPS on the table when the backup was created.

          • ReadCapacityUnits (integer) --

            The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ThrottlingException . For more information, see Specifying Read and Write Requirements in the Amazon DynamoDB Developer Guide .

          • WriteCapacityUnits (integer) --

            The maximum number of writes consumed per second before DynamoDB returns a ThrottlingException . For more information, see Specifying Read and Write Requirements in the Amazon DynamoDB Developer Guide .

        • ItemCount (integer) --

          Number of items in the table. Please note this is an approximate value.

      • SourceTableFeatureDetails (dict) --

        Contains the details of the features enabled on the table when the backup was created. For example, LSIs, GSIs, streams, TTL.

        • LocalSecondaryIndexes (list) --

          Represents the LSI properties for the table when the backup was created. It includes the IndexName, KeySchema and Projection for the LSIs on the table at the time of backup.

          • (dict) --

            Represents the properties of a local secondary index for the table when the backup was created.

            • IndexName (string) --

              Represents the name of the local secondary index.

            • KeySchema (list) --

              The complete key schema for a local secondary index, which consists of one or more pairs of attribute names and key types:

              • HASH - partition key

              • RANGE - sort key

              Note

              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.

              • (dict) --

                Represents a single element of a key schema. A key schema specifies the attributes that make up the primary key of a table, or the key attributes of an index.

                A KeySchemaElement represents exactly one attribute of the primary key. For example, a simple primary key would be represented by one KeySchemaElement (for the partition key). A composite primary key would require one KeySchemaElement for the partition key, and another KeySchemaElement for the sort key.

                A KeySchemaElement must be a scalar, top-level attribute (not a nested attribute). The data type must be one of String, Number, or Binary. The attribute cannot be nested within a List or a Map.

                • AttributeName (string) --

                  The name of a key attribute.

                • KeyType (string) --

                  The role that this key attribute will assume:

                  • HASH - partition key

                  • RANGE - sort key

                  Note

                  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.

            • Projection (dict) --

              Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

              • ProjectionType (string) --

                The set of attributes that are projected into the index:

                • 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 (list) --

                Represents the non-key attribute names which will be projected into the index.

                For local secondary indexes, the total count of NonKeyAttributes summed across all of the local 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.

                • (string) --

        • GlobalSecondaryIndexes (list) --

          Represents the GSI properties for the table when the backup was created. It includes the IndexName, KeySchema, Projection and ProvisionedThroughput for the GSIs on the table at the time of backup.

          • (dict) --

            Represents the properties of a global secondary index for the table when the backup was created.

            • IndexName (string) --

              The name of the global secondary index.

            • KeySchema (list) --

              The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:

              • HASH - partition key

              • RANGE - sort key

              Note

              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.

              • (dict) --

                Represents a single element of a key schema. A key schema specifies the attributes that make up the primary key of a table, or the key attributes of an index.

                A KeySchemaElement represents exactly one attribute of the primary key. For example, a simple primary key would be represented by one KeySchemaElement (for the partition key). A composite primary key would require one KeySchemaElement for the partition key, and another KeySchemaElement for the sort key.

                A KeySchemaElement must be a scalar, top-level attribute (not a nested attribute). The data type must be one of String, Number, or Binary. The attribute cannot be nested within a List or a Map.

                • AttributeName (string) --

                  The name of a key attribute.

                • KeyType (string) --

                  The role that this key attribute will assume:

                  • HASH - partition key

                  • RANGE - sort key

                  Note

                  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.

            • Projection (dict) --

              Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

              • ProjectionType (string) --

                The set of attributes that are projected into the index:

                • 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 (list) --

                Represents the non-key attribute names which will be projected into the index.

                For local secondary indexes, the total count of NonKeyAttributes summed across all of the local 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.

                • (string) --

            • ProvisionedThroughput (dict) --

              Represents the provisioned throughput settings for the specified global secondary index.

              • ReadCapacityUnits (integer) --

                The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ThrottlingException . For more information, see Specifying Read and Write Requirements in the Amazon DynamoDB Developer Guide .

              • WriteCapacityUnits (integer) --

                The maximum number of writes consumed per second before DynamoDB returns a ThrottlingException . For more information, see Specifying Read and Write Requirements in the Amazon DynamoDB Developer Guide .

        • StreamDescription (dict) --

          Stream settings on the table when the backup was created.

          • StreamEnabled (boolean) --

            Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.

          • StreamViewType (string) --

            When an item in the table is modified, StreamViewType determines what information is written to the stream for this table. 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.

        • TimeToLiveDescription (dict) --

          Time to Live settings on the table when the backup was created.

          • TimeToLiveStatus (string) --

            The Time to Live status for the table.

          • AttributeName (string) --

            The name of the Time to Live attribute for items in the table.

        • SSEDescription (dict) --

          The description of the server-side encryption status on the table when the backup was created.

          • Status (string) --

            The current state of server-side encryption:

            • ENABLING - Server-side encryption is being enabled.

            • ENABLED - Server-side encryption is enabled.

            • DISABLING - Server-side encryption is being disabled.

            • DISABLED - Server-side encryption is disabled.

          • SSEType (string) --

            Server-side encryption type:

            • AES256 - Server-side encryption which uses the AES256 algorithm.

            • KMS - Server-side encryption which uses AWS Key Management Service.

          • KMSMasterKeyArn (string) --

            The KMS master key ARN used for the KMS encryption.

ListBackups (updated) Link ¶
Changes (request, response)
Request
{'BackupType': 'USER | SYSTEM | ALL'}
Response
{'BackupSummaries': {'BackupExpiryDateTime': 'timestamp',
                     'BackupType': 'USER | SYSTEM'}}

List backups associated with an AWS account. To list backups for a given table, specify TableName . ListBackups returns a paginated list of results with at most 1MB worth of items in a page. You can also specify a limit for the maximum number of entries to be returned in a page.

In the request, start time is inclusive but end time is exclusive. Note that these limits are for the time at which the original backup was requested.

You can call ListBackups a maximum of 5 times per second.

See also: AWS API Documentation

Request Syntax

client.list_backups(
    TableName='string',
    Limit=123,
    TimeRangeLowerBound=datetime(2015, 1, 1),
    TimeRangeUpperBound=datetime(2015, 1, 1),
    ExclusiveStartBackupArn='string',
    BackupType='USER'|'SYSTEM'|'ALL'
)
type TableName

string

param TableName

The backups from the table specified by TableName are listed.

type Limit

integer

param Limit

Maximum number of backups to return at once.

type TimeRangeLowerBound

datetime

param TimeRangeLowerBound

Only backups created after this time are listed. TimeRangeLowerBound is inclusive.

type TimeRangeUpperBound

datetime

param TimeRangeUpperBound

Only backups created before this time are listed. TimeRangeUpperBound is exclusive.

type ExclusiveStartBackupArn

string

param ExclusiveStartBackupArn

LastEvaluatedBackupArn is the ARN of the backup last evaluated when the current page of results was returned, inclusive of the current page of results. This value may be specified as the ExclusiveStartBackupArn of a new ListBackups operation in order to fetch the next page of results.

type BackupType

string

param BackupType

The backups from the table specified by BackupType are listed.

Where BackupType can be:

  • USER - On demand backup created by you.

  • SYSTEM - On demand backup automatically created by DynamoDB.

  • ALL - All types of on demand backups (USER and SYSTEM).

rtype

dict

returns

Response Syntax

{
    'BackupSummaries': [
        {
            'TableName': 'string',
            'TableId': 'string',
            'TableArn': 'string',
            'BackupArn': 'string',
            'BackupName': 'string',
            'BackupCreationDateTime': datetime(2015, 1, 1),
            'BackupExpiryDateTime': datetime(2015, 1, 1),
            'BackupStatus': 'CREATING'|'DELETED'|'AVAILABLE',
            'BackupType': 'USER'|'SYSTEM',
            'BackupSizeBytes': 123
        },
    ],
    'LastEvaluatedBackupArn': 'string'
}

Response Structure

  • (dict) --

    • BackupSummaries (list) --

      List of BackupSummary objects.

      • (dict) --

        Contains details for the backup.

        • TableName (string) --

          Name of the table.

        • TableId (string) --

          Unique identifier for the table.

        • TableArn (string) --

          ARN associated with the table.

        • BackupArn (string) --

          ARN associated with the backup.

        • BackupName (string) --

          Name of the specified backup.

        • BackupCreationDateTime (datetime) --

          Time at which the backup was created.

        • BackupExpiryDateTime (datetime) --

          Time at which the automatic on demand backup created by DynamoDB will expire. This SYSTEM on demand backup expires automatically 35 days after its creation.

        • BackupStatus (string) --

          Backup can be in one of the following states: CREATING, ACTIVE, DELETED.

        • BackupType (string) --

          BackupType:

          • USER - On demand backup created by you.

          • SYSTEM - On demand backup automatically created by DynamoDB.

        • BackupSizeBytes (integer) --

          Size of the backup in bytes.

    • LastEvaluatedBackupArn (string) --

      The ARN of the backup last evaluated when the current page of results was returned, inclusive of the current page of results. This value may be specified as the ExclusiveStartBackupArn of a new ListBackups operation in order to fetch the next page of results.

      If LastEvaluatedBackupArn is empty, then the last page of results has been processed and there are no more results to be retrieved.

      If LastEvaluatedBackupArn is not empty, this may or may not indicate there is more data to be returned. All results are guaranteed to have been returned if and only if no value for LastEvaluatedBackupArn is returned.