@aws-sdk/client-dynamodb
Version:
AWS SDK for JavaScript Dynamodb Client for Node.js, Browser and React Native
1,221 lines • 450 kB
TypeScript
import type { ApproximateCreationDateTimePrecision, AttributeAction, BackupStatus, BackupType, BackupTypeFilter, BatchStatementErrorCodeEnum, BillingMode, ComparisonOperator, ConditionalOperator, ContinuousBackupsStatus, ContributorInsightsAction, ContributorInsightsMode, ContributorInsightsStatus, DestinationStatus, ExportFormat, ExportStatus, ExportType, ExportViewType, GlobalTableSettingsReplicationMode, GlobalTableStatus, ImportStatus, IndexStatus, InputCompressionType, InputFormat, KeyType, MultiRegionConsistency, PointInTimeRecoveryStatus, ProjectionType, ReplicaStatus, ReturnConsumedCapacity, ReturnItemCollectionMetrics, ReturnValue, ReturnValuesOnConditionCheckFailure, S3SseAlgorithm, ScalarAttributeType, Select, SSEStatus, SSEType, StreamViewType, TableClass, TableStatus, TimeToLiveStatus, WitnessStatus } from "./enums";
/**
* <p>Contains details of a table archival operation.</p>
* @public
*/
export interface ArchivalSummary {
/**
* <p>The date and time when table archival was initiated by DynamoDB, in UNIX epoch time
* format.</p>
* @public
*/
ArchivalDateTime?: Date | undefined;
/**
* <p>The reason DynamoDB archived the table. Currently, the only possible value is:</p>
* <ul>
* <li>
* <p>
* <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The table was archived due
* to the table's KMS key being inaccessible for more than seven
* days. An On-Demand backup was created at the archival time.</p>
* </li>
* </ul>
* @public
*/
ArchivalReason?: string | undefined;
/**
* <p>The Amazon Resource Name (ARN) of the backup the table was archived to, when
* applicable in the archival reason. If you wish to restore this backup to the same table
* name, you will need to delete the original table.</p>
* @public
*/
ArchivalBackupArn?: string | undefined;
}
/**
* <p>Represents an attribute for describing the schema for the table and indexes.</p>
* @public
*/
export interface AttributeDefinition {
/**
* <p>A name for the attribute.</p>
* @public
*/
AttributeName: string | undefined;
/**
* <p>The data type for the attribute, where:</p>
* <ul>
* <li>
* <p>
* <code>S</code> - the attribute is of type String</p>
* </li>
* <li>
* <p>
* <code>N</code> - the attribute is of type Number</p>
* </li>
* <li>
* <p>
* <code>B</code> - the attribute is of type Binary</p>
* </li>
* </ul>
* @public
*/
AttributeType: ScalarAttributeType | undefined;
}
/**
* <p>Represents the properties of a target tracking scaling policy.</p>
* @public
*/
export interface AutoScalingTargetTrackingScalingPolicyConfigurationDescription {
/**
* <p>Indicates whether scale in by the target tracking policy is disabled. If the value is
* true, scale in is disabled and the target tracking policy won't remove capacity from the
* scalable resource. Otherwise, scale in is enabled and the target tracking policy can
* remove capacity from the scalable resource. The default value is false.</p>
* @public
*/
DisableScaleIn?: boolean | undefined;
/**
* <p>The amount of time, in seconds, after a scale in activity completes before another
* scale in activity can start. The cooldown period is used to block subsequent scale in
* requests until it has expired. You should scale in conservatively to protect your
* application's availability. However, if another alarm triggers a scale out policy during
* the cooldown period after a scale-in, application auto scaling scales out your scalable
* target immediately. </p>
* @public
*/
ScaleInCooldown?: number | undefined;
/**
* <p>The amount of time, in seconds, after a scale out activity completes before another
* scale out activity can start. While the cooldown period is in effect, the capacity that
* has been added by the previous scale out event that initiated the cooldown is calculated
* as part of the desired capacity for the next scale out. You should continuously (but not
* excessively) scale out.</p>
* @public
*/
ScaleOutCooldown?: number | undefined;
/**
* <p>The target value for the metric. The range is 8.515920e-109 to 1.174271e+108 (Base 10)
* or 2e-360 to 2e360 (Base 2).</p>
* @public
*/
TargetValue: number | undefined;
}
/**
* <p>Represents the properties of the scaling policy.</p>
* @public
*/
export interface AutoScalingPolicyDescription {
/**
* <p>The name of the scaling policy.</p>
* @public
*/
PolicyName?: string | undefined;
/**
* <p>Represents a target tracking scaling policy configuration.</p>
* @public
*/
TargetTrackingScalingPolicyConfiguration?: AutoScalingTargetTrackingScalingPolicyConfigurationDescription | undefined;
}
/**
* <p>Represents the settings of a target tracking scaling policy that will be
* modified.</p>
* @public
*/
export interface AutoScalingTargetTrackingScalingPolicyConfigurationUpdate {
/**
* <p>Indicates whether scale in by the target tracking policy is disabled. If the value is
* true, scale in is disabled and the target tracking policy won't remove capacity from the
* scalable resource. Otherwise, scale in is enabled and the target tracking policy can
* remove capacity from the scalable resource. The default value is false.</p>
* @public
*/
DisableScaleIn?: boolean | undefined;
/**
* <p>The amount of time, in seconds, after a scale in activity completes before another
* scale in activity can start. The cooldown period is used to block subsequent scale in
* requests until it has expired. You should scale in conservatively to protect your
* application's availability. However, if another alarm triggers a scale out policy during
* the cooldown period after a scale-in, application auto scaling scales out your scalable
* target immediately. </p>
* @public
*/
ScaleInCooldown?: number | undefined;
/**
* <p>The amount of time, in seconds, after a scale out activity completes before another
* scale out activity can start. While the cooldown period is in effect, the capacity that
* has been added by the previous scale out event that initiated the cooldown is calculated
* as part of the desired capacity for the next scale out. You should continuously (but not
* excessively) scale out.</p>
* @public
*/
ScaleOutCooldown?: number | undefined;
/**
* <p>The target value for the metric. The range is 8.515920e-109 to 1.174271e+108 (Base 10)
* or 2e-360 to 2e360 (Base 2).</p>
* @public
*/
TargetValue: number | undefined;
}
/**
* <p>Represents the auto scaling policy to be modified.</p>
* @public
*/
export interface AutoScalingPolicyUpdate {
/**
* <p>The name of the scaling policy.</p>
* @public
*/
PolicyName?: string | undefined;
/**
* <p>Represents a target tracking scaling policy configuration.</p>
* @public
*/
TargetTrackingScalingPolicyConfiguration: AutoScalingTargetTrackingScalingPolicyConfigurationUpdate | undefined;
}
/**
* <p>Represents the auto scaling settings for a global table or global secondary
* index.</p>
* @public
*/
export interface AutoScalingSettingsDescription {
/**
* <p>The minimum capacity units that a global table or global secondary index should be
* scaled down to.</p>
* @public
*/
MinimumUnits?: number | undefined;
/**
* <p>The maximum capacity units that a global table or global secondary index should be
* scaled up to.</p>
* @public
*/
MaximumUnits?: number | undefined;
/**
* <p>Disabled auto scaling for this global table or global secondary index.</p>
* @public
*/
AutoScalingDisabled?: boolean | undefined;
/**
* <p>Role ARN used for configuring the auto scaling policy.</p>
* @public
*/
AutoScalingRoleArn?: string | undefined;
/**
* <p>Information about the scaling policies.</p>
* @public
*/
ScalingPolicies?: AutoScalingPolicyDescription[] | undefined;
}
/**
* <p>Represents the auto scaling settings to be modified for a global table or global
* secondary index.</p>
* @public
*/
export interface AutoScalingSettingsUpdate {
/**
* <p>The minimum capacity units that a global table or global secondary index should be
* scaled down to.</p>
* @public
*/
MinimumUnits?: number | undefined;
/**
* <p>The maximum capacity units that a global table or global secondary index should be
* scaled up to.</p>
* @public
*/
MaximumUnits?: number | undefined;
/**
* <p>Disabled auto scaling for this global table or global secondary index.</p>
* @public
*/
AutoScalingDisabled?: boolean | undefined;
/**
* <p>Role ARN used for configuring auto scaling policy.</p>
* @public
*/
AutoScalingRoleArn?: string | undefined;
/**
* <p>The scaling policy to apply for scaling target global table or global secondary index
* capacity units.</p>
* @public
*/
ScalingPolicyUpdate?: AutoScalingPolicyUpdate | undefined;
}
/**
* <p>Contains the details of the backup created for the table.</p>
* @public
*/
export interface BackupDetails {
/**
* <p>ARN associated with the backup.</p>
* @public
*/
BackupArn: string | undefined;
/**
* <p>Name of the requested backup.</p>
* @public
*/
BackupName: string | undefined;
/**
* <p>Size of the backup in bytes. DynamoDB updates this value approximately every six
* hours. Recent changes might not be reflected in this value.</p>
* @public
*/
BackupSizeBytes?: number | undefined;
/**
* <p>Backup can be in one of the following states: CREATING, ACTIVE, DELETED. </p>
* @public
*/
BackupStatus: BackupStatus | undefined;
/**
* <p>BackupType:</p>
* <ul>
* <li>
* <p>
* <code>USER</code> - You create and manage these using the on-demand backup
* feature.</p>
* </li>
* <li>
* <p>
* <code>SYSTEM</code> - If you delete a table with point-in-time recovery enabled,
* a <code>SYSTEM</code> backup is automatically created and is retained for 35
* days (at no additional cost). System backups allow you to restore the deleted
* table to the state it was in just before the point of deletion. </p>
* </li>
* <li>
* <p>
* <code>AWS_BACKUP</code> - On-demand backup created by you from Backup service.</p>
* </li>
* </ul>
* @public
*/
BackupType: BackupType | undefined;
/**
* <p>Time at which the backup was created. This is the request time of the backup. </p>
* @public
*/
BackupCreationDateTime: Date | undefined;
/**
* <p>Time at which the automatic on-demand backup created by DynamoDB will
* expire. This <code>SYSTEM</code> on-demand backup expires automatically 35 days after
* its creation.</p>
* @public
*/
BackupExpiryDateTime?: Date | undefined;
}
/**
* <p>Represents <i>a single element</i> 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.</p>
* <p>A <code>KeySchemaElement</code> represents exactly one attribute of the primary key.
* For example, a simple primary key would be represented by one
* <code>KeySchemaElement</code> (for the partition key). A composite primary key would
* require one <code>KeySchemaElement</code> for the partition key, and another
* <code>KeySchemaElement</code> for the sort key.</p>
* <p>A <code>KeySchemaElement</code> 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.</p>
* @public
*/
export interface KeySchemaElement {
/**
* <p>The name of a key attribute.</p>
* @public
*/
AttributeName: string | undefined;
/**
* <p>The role that this key attribute will assume:</p>
* <ul>
* <li>
* <p>
* <code>HASH</code> - partition key</p>
* </li>
* <li>
* <p>
* <code>RANGE</code> - sort key</p>
* </li>
* </ul>
* <note>
* <p>The partition key of an item is also known as its <i>hash
* attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across
* partitions, based on their partition key values.</p>
* <p>The sort key of an item is also known as its <i>range attribute</i>.
* 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.</p>
* </note>
* @public
*/
KeyType: KeyType | undefined;
}
/**
* <p>Sets the maximum number of read and write units for the specified on-demand table. If
* you use this parameter, you must specify <code>MaxReadRequestUnits</code>,
* <code>MaxWriteRequestUnits</code>, or both.</p>
* @public
*/
export interface OnDemandThroughput {
/**
* <p>Maximum number of read request units for the specified table.</p>
* <p>To specify a maximum <code>OnDemandThroughput</code> on your table, set the value of
* <code>MaxReadRequestUnits</code> as greater than or equal to 1. To remove the
* maximum <code>OnDemandThroughput</code> that is currently set on your table, set the
* value of <code>MaxReadRequestUnits</code> to -1.</p>
* @public
*/
MaxReadRequestUnits?: number | undefined;
/**
* <p>Maximum number of write request units for the specified table.</p>
* <p>To specify a maximum <code>OnDemandThroughput</code> on your table, set the value of
* <code>MaxWriteRequestUnits</code> as greater than or equal to 1. To remove the
* maximum <code>OnDemandThroughput</code> that is currently set on your table, set the
* value of <code>MaxWriteRequestUnits</code> to -1.</p>
* @public
*/
MaxWriteRequestUnits?: number | undefined;
}
/**
* <p>Represents the provisioned throughput settings for the specified global secondary
* index. You must use <code>ProvisionedThroughput</code> or
* <code>OnDemandThroughput</code> based on your table’s capacity mode.</p>
* <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service,
* Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer
* Guide</i>.</p>
* @public
*/
export interface ProvisionedThroughput {
/**
* <p>The maximum number of strongly consistent reads consumed per second before DynamoDB
* returns a <code>ThrottlingException</code>. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html">Specifying
* Read and Write Requirements</a> in the <i>Amazon DynamoDB Developer
* Guide</i>.</p>
* <p>If read/write capacity mode is <code>PAY_PER_REQUEST</code> the value is set to
* 0.</p>
* @public
*/
ReadCapacityUnits: number | undefined;
/**
* <p>The maximum number of writes consumed per second before DynamoDB returns a
* <code>ThrottlingException</code>. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html">Specifying
* Read and Write Requirements</a> in the <i>Amazon DynamoDB Developer
* Guide</i>.</p>
* <p>If read/write capacity mode is <code>PAY_PER_REQUEST</code> the value is set to
* 0.</p>
* @public
*/
WriteCapacityUnits: number | undefined;
}
/**
* <p>Contains the details of the table when the backup was created. </p>
* @public
*/
export interface SourceTableDetails {
/**
* <p>The name of the table for which the backup was created. </p>
* @public
*/
TableName: string | undefined;
/**
* <p>Unique identifier for the table for which the backup was created. </p>
* @public
*/
TableId: string | undefined;
/**
* <p>ARN of the table for which backup was created. </p>
* @public
*/
TableArn?: string | undefined;
/**
* <p>Size of the table in bytes. Note that this is an approximate value.</p>
* @public
*/
TableSizeBytes?: number | undefined;
/**
* <p>Schema of the table. </p>
* @public
*/
KeySchema: KeySchemaElement[] | undefined;
/**
* <p>Time when the source table was created. </p>
* @public
*/
TableCreationDateTime: Date | undefined;
/**
* <p>Read IOPs and Write IOPS on the table when the backup was created.</p>
* @public
*/
ProvisionedThroughput: ProvisionedThroughput | undefined;
/**
* <p>Sets the maximum number of read and write units for the specified on-demand table. If
* you use this parameter, you must specify <code>MaxReadRequestUnits</code>,
* <code>MaxWriteRequestUnits</code>, or both.</p>
* @public
*/
OnDemandThroughput?: OnDemandThroughput | undefined;
/**
* <p>Number of items in the table. Note that this is an approximate value. </p>
* @public
*/
ItemCount?: number | undefined;
/**
* <p>Controls how you are charged for read and write throughput and how you manage
* capacity. This setting can be changed later.</p>
* <ul>
* <li>
* <p>
* <code>PROVISIONED</code> - Sets the read/write capacity mode to
* <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for
* predictable workloads.</p>
* </li>
* <li>
* <p>
* <code>PAY_PER_REQUEST</code> - Sets the read/write capacity mode to
* <code>PAY_PER_REQUEST</code>. We recommend using
* <code>PAY_PER_REQUEST</code> for unpredictable workloads. </p>
* </li>
* </ul>
* @public
*/
BillingMode?: BillingMode | undefined;
}
/**
* <p>Represents attributes that are copied (projected) from the table into an index. These
* are in addition to the primary key attributes and index key attributes, which are
* automatically projected.</p>
* @public
*/
export interface Projection {
/**
* <p>The set of attributes that are projected into the index:</p>
* <ul>
* <li>
* <p>
* <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the
* index.</p>
* </li>
* <li>
* <p>
* <code>INCLUDE</code> - In addition to the attributes described in
* <code>KEYS_ONLY</code>, the secondary index will include other non-key
* attributes that you specify.</p>
* </li>
* <li>
* <p>
* <code>ALL</code> - All of the table attributes are projected into the
* index.</p>
* </li>
* </ul>
* <p>When using the DynamoDB console, <code>ALL</code> is selected by default.</p>
* @public
*/
ProjectionType?: ProjectionType | undefined;
/**
* <p>Represents the non-key attribute names which will be projected into the index.</p>
* <p>For global and local secondary indexes, the total count of
* <code>NonKeyAttributes</code> summed across all of the secondary indexes, must not
* exceed 100. If you project the same attribute into two different indexes, this counts as
* two distinct attributes when determining the total. This limit only applies when you
* specify the ProjectionType of <code>INCLUDE</code>. You still can specify the
* ProjectionType of <code>ALL</code> to project all attributes from the source table, even
* if the table has more than 100 attributes.</p>
* @public
*/
NonKeyAttributes?: string[] | undefined;
}
/**
* <p>Represents the properties of a global secondary index for the table when the backup
* was created.</p>
* @public
*/
export interface GlobalSecondaryIndexInfo {
/**
* <p>The name of the global secondary index.</p>
* @public
*/
IndexName?: string | undefined;
/**
* <p>The complete key schema for a global secondary index, which consists of one or more
* pairs of attribute names and key types:</p>
* <ul>
* <li>
* <p>
* <code>HASH</code> - partition key</p>
* </li>
* <li>
* <p>
* <code>RANGE</code> - sort key</p>
* </li>
* </ul>
* <note>
* <p>The partition key of an item is also known as its <i>hash
* attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across
* partitions, based on their partition key values.</p>
* <p>The sort key of an item is also known as its <i>range attribute</i>.
* 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.</p>
* </note>
* @public
*/
KeySchema?: KeySchemaElement[] | undefined;
/**
* <p>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. </p>
* @public
*/
Projection?: Projection | undefined;
/**
* <p>Represents the provisioned throughput settings for the specified global secondary
* index. </p>
* @public
*/
ProvisionedThroughput?: ProvisionedThroughput | undefined;
/**
* <p>Sets the maximum number of read and write units for the specified on-demand table. If
* you use this parameter, you must specify <code>MaxReadRequestUnits</code>,
* <code>MaxWriteRequestUnits</code>, or both.</p>
* @public
*/
OnDemandThroughput?: OnDemandThroughput | undefined;
}
/**
* <p>Represents the properties of a local secondary index for the table when the backup was
* created.</p>
* @public
*/
export interface LocalSecondaryIndexInfo {
/**
* <p>Represents the name of the local secondary index.</p>
* @public
*/
IndexName?: string | undefined;
/**
* <p>The complete key schema for a local secondary index, which consists of one or more
* pairs of attribute names and key types:</p>
* <ul>
* <li>
* <p>
* <code>HASH</code> - partition key</p>
* </li>
* <li>
* <p>
* <code>RANGE</code> - sort key</p>
* </li>
* </ul>
* <note>
* <p>The partition key of an item is also known as its <i>hash
* attribute</i>. The term "hash attribute" derives from DynamoDB's usage of
* an internal hash function to evenly distribute data items across partitions, based
* on their partition key values.</p>
* <p>The sort key of an item is also known as its <i>range attribute</i>.
* 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.</p>
* </note>
* @public
*/
KeySchema?: KeySchemaElement[] | undefined;
/**
* <p>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. </p>
* @public
*/
Projection?: Projection | undefined;
}
/**
* <p>The description of the server-side encryption status on the specified table.</p>
* @public
*/
export interface SSEDescription {
/**
* <p>Represents the current state of server-side encryption. The only supported values
* are:</p>
* <ul>
* <li>
* <p>
* <code>ENABLED</code> - Server-side encryption is enabled.</p>
* </li>
* <li>
* <p>
* <code>UPDATING</code> - Server-side encryption is being updated.</p>
* </li>
* </ul>
* @public
*/
Status?: SSEStatus | undefined;
/**
* <p>Server-side encryption type. The only supported value is:</p>
* <ul>
* <li>
* <p>
* <code>KMS</code> - Server-side encryption that uses Key Management Service. The
* key is stored in your account and is managed by KMS (KMS charges apply).</p>
* </li>
* </ul>
* @public
*/
SSEType?: SSEType | undefined;
/**
* <p>The KMS key ARN used for the KMS encryption.</p>
* @public
*/
KMSMasterKeyArn?: string | undefined;
/**
* <p>Indicates the time, in UNIX epoch date format, when DynamoDB detected that
* the table's KMS key was inaccessible. This attribute will automatically
* be cleared when DynamoDB detects that the table's KMS key is accessible
* again. DynamoDB will initiate the table archival process when table's KMS key remains inaccessible for more than seven days from this date.</p>
* @public
*/
InaccessibleEncryptionDateTime?: Date | undefined;
}
/**
* <p>Represents the DynamoDB Streams configuration for a table in DynamoDB.</p>
* @public
*/
export interface StreamSpecification {
/**
* <p>Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the
* table.</p>
* @public
*/
StreamEnabled: boolean | undefined;
/**
* <p> When an item in the table is modified, <code>StreamViewType</code> determines what
* information is written to the stream for this table. Valid values for
* <code>StreamViewType</code> are:</p>
* <ul>
* <li>
* <p>
* <code>KEYS_ONLY</code> - Only the key attributes of the modified item are
* written to the stream.</p>
* </li>
* <li>
* <p>
* <code>NEW_IMAGE</code> - The entire item, as it appears after it was modified,
* is written to the stream.</p>
* </li>
* <li>
* <p>
* <code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified,
* is written to the stream.</p>
* </li>
* <li>
* <p>
* <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the
* item are written to the stream.</p>
* </li>
* </ul>
* @public
*/
StreamViewType?: StreamViewType | undefined;
}
/**
* <p>The description of the Time to Live (TTL) status on the specified table. </p>
* @public
*/
export interface TimeToLiveDescription {
/**
* <p> The TTL status for the table.</p>
* @public
*/
TimeToLiveStatus?: TimeToLiveStatus | undefined;
/**
* <p> The name of the TTL attribute for items in the table.</p>
* @public
*/
AttributeName?: string | undefined;
}
/**
* <p>Contains the details of the features enabled on the table when the backup was created.
* For example, LSIs, GSIs, streams, TTL. </p>
* @public
*/
export interface SourceTableFeatureDetails {
/**
* <p>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.
* </p>
* @public
*/
LocalSecondaryIndexes?: LocalSecondaryIndexInfo[] | undefined;
/**
* <p>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. </p>
* @public
*/
GlobalSecondaryIndexes?: GlobalSecondaryIndexInfo[] | undefined;
/**
* <p>Stream settings on the table when the backup was created.</p>
* @public
*/
StreamDescription?: StreamSpecification | undefined;
/**
* <p>Time to Live settings on the table when the backup was created.</p>
* @public
*/
TimeToLiveDescription?: TimeToLiveDescription | undefined;
/**
* <p>The description of the server-side encryption status on the table when the backup was
* created.</p>
* @public
*/
SSEDescription?: SSEDescription | undefined;
}
/**
* <p>Contains the description of the backup created for the table.</p>
* @public
*/
export interface BackupDescription {
/**
* <p>Contains the details of the backup created for the table. </p>
* @public
*/
BackupDetails?: BackupDetails | undefined;
/**
* <p>Contains the details of the table when the backup was created. </p>
* @public
*/
SourceTableDetails?: SourceTableDetails | undefined;
/**
* <p>Contains the details of the features enabled on the table when the backup was created.
* For example, LSIs, GSIs, streams, TTL.</p>
* @public
*/
SourceTableFeatureDetails?: SourceTableFeatureDetails | undefined;
}
/**
* <p>Contains details for the backup.</p>
* @public
*/
export interface BackupSummary {
/**
* <p>Name of the table.</p>
* @public
*/
TableName?: string | undefined;
/**
* <p>Unique identifier for the table.</p>
* @public
*/
TableId?: string | undefined;
/**
* <p>ARN associated with the table.</p>
* @public
*/
TableArn?: string | undefined;
/**
* <p>ARN associated with the backup.</p>
* @public
*/
BackupArn?: string | undefined;
/**
* <p>Name of the specified backup.</p>
* @public
*/
BackupName?: string | undefined;
/**
* <p>Time at which the backup was created.</p>
* @public
*/
BackupCreationDateTime?: Date | undefined;
/**
* <p>Time at which the automatic on-demand backup created by DynamoDB will
* expire. This <code>SYSTEM</code> on-demand backup expires automatically 35 days after
* its creation.</p>
* @public
*/
BackupExpiryDateTime?: Date | undefined;
/**
* <p>Backup can be in one of the following states: CREATING, ACTIVE, DELETED.</p>
* @public
*/
BackupStatus?: BackupStatus | undefined;
/**
* <p>BackupType:</p>
* <ul>
* <li>
* <p>
* <code>USER</code> - You create and manage these using the on-demand backup
* feature.</p>
* </li>
* <li>
* <p>
* <code>SYSTEM</code> - If you delete a table with point-in-time recovery enabled,
* a <code>SYSTEM</code> backup is automatically created and is retained for 35
* days (at no additional cost). System backups allow you to restore the deleted
* table to the state it was in just before the point of deletion. </p>
* </li>
* <li>
* <p>
* <code>AWS_BACKUP</code> - On-demand backup created by you from Backup service.</p>
* </li>
* </ul>
* @public
*/
BackupType?: BackupType | undefined;
/**
* <p>Size of the backup in bytes.</p>
* @public
*/
BackupSizeBytes?: number | undefined;
}
/**
* <p>Represents the amount of provisioned throughput capacity consumed on a table or an
* index.</p>
* @public
*/
export interface Capacity {
/**
* <p>The total number of read capacity units consumed on a table or an index.</p>
* @public
*/
ReadCapacityUnits?: number | undefined;
/**
* <p>The total number of write capacity units consumed on a table or an index.</p>
* @public
*/
WriteCapacityUnits?: number | undefined;
/**
* <p>The total number of capacity units consumed on a table or an index.</p>
* @public
*/
CapacityUnits?: number | undefined;
}
/**
* <p>The capacity units consumed by an operation. The data returned includes the total
* provisioned throughput consumed, along with statistics for the table and any indexes
* involved in the operation. <code>ConsumedCapacity</code> is only returned if the request
* asked for it. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html">Provisioned capacity mode</a> in the <i>Amazon DynamoDB Developer
* Guide</i>.</p>
* @public
*/
export interface ConsumedCapacity {
/**
* <p>The name of the table that was affected by the operation. If you had specified the
* Amazon Resource Name (ARN) of a table in the input, you'll see the table ARN in the response.</p>
* @public
*/
TableName?: string | undefined;
/**
* <p>The total number of capacity units consumed by the operation.</p>
* @public
*/
CapacityUnits?: number | undefined;
/**
* <p>The total number of read capacity units consumed by the operation.</p>
* @public
*/
ReadCapacityUnits?: number | undefined;
/**
* <p>The total number of write capacity units consumed by the operation.</p>
* @public
*/
WriteCapacityUnits?: number | undefined;
/**
* <p>The amount of throughput consumed on the table affected by the operation.</p>
* @public
*/
Table?: Capacity | undefined;
/**
* <p>The amount of throughput consumed on each local index affected by the
* operation.</p>
* @public
*/
LocalSecondaryIndexes?: Record<string, Capacity> | undefined;
/**
* <p>The amount of throughput consumed on each global index affected by the
* operation.</p>
* @public
*/
GlobalSecondaryIndexes?: Record<string, Capacity> | undefined;
}
/**
* <p>Represents the specific reason why a DynamoDB request was throttled and the
* ARN of the impacted resource. This helps identify exactly what resource is being throttled,
* what type of operation caused it, and why the throttling occurred.</p>
* @public
*/
export interface ThrottlingReason {
/**
* <p>The reason for throttling. The throttling reason follows a specific format:
* <code>ResourceType+OperationType+LimitType</code>:</p>
* <ul>
* <li>
* <p>Resource Type (What is being throttled): Table or Index</p>
* </li>
* <li>
* <p>Operation Type (What kind of operation): Read or Write</p>
* </li>
* <li>
* <p>Limit Type (Why the throttling occurred):</p>
* <ul>
* <li>
* <p>
* <code>ProvisionedThroughputExceeded</code>: The request rate is
* exceeding the <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html">provisioned throughput capacity</a> (read or write capacity
* units) configured for a table or a global secondary index (GSI) in
* provisioned capacity mode.</p>
* </li>
* <li>
* <p>
* <code>AccountLimitExceeded</code>: The request rate has caused a table
* or global secondary index (GSI) in on-demand mode to exceed the <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ServiceQuotas.html#default-limits-throughput">per-table account-level service quotas</a> for read/write
* throughput in the current Amazon Web Services Region. </p>
* </li>
* <li>
* <p>
* <code>KeyRangeThroughputExceeded</code>: The request rate directed at
* a specific partition key value has exceeded the <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html">internal partition-level throughput limits</a>, indicating
* uneven access patterns across the table's or GSI's key space.</p>
* </li>
* <li>
* <p>
* <code>MaxOnDemandThroughputExceeded</code>: The request rate has
* exceeded the <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode-max-throughput.html">configured maximum throughput limits</a> set for a table or
* index in on-demand capacity mode.</p>
* </li>
* </ul>
* </li>
* </ul>
* <p>Examples of complete throttling reasons:</p>
* <ul>
* <li>
* <p>TableReadProvisionedThroughputExceeded</p>
* </li>
* <li>
* <p>IndexWriteAccountLimitExceeded</p>
* </li>
* </ul>
* <p>This helps identify exactly what resource is being throttled, what type of operation
* caused it, and why the throttling occurred.</p>
* @public
*/
reason?: string | undefined;
/**
* <p>The Amazon Resource Name (ARN) of the DynamoDB table or index that experienced the
* throttling event.</p>
* @public
*/
resource?: string | undefined;
}
/**
* <p>Contains the details for the read/write capacity mode. This page talks about
* <code>PROVISIONED</code> and <code>PAY_PER_REQUEST</code> billing modes. For more
* information about these modes, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html">Read/write capacity mode</a>.</p>
* <note>
* <p>You may need to switch to on-demand mode at least once in order to return a
* <code>BillingModeSummary</code> response.</p>
* </note>
* @public
*/
export interface BillingModeSummary {
/**
* <p>Controls how you are charged for read and write throughput and how you manage
* capacity. This setting can be changed later.</p>
* <ul>
* <li>
* <p>
* <code>PROVISIONED</code> - Sets the read/write capacity mode to
* <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for
* predictable workloads.</p>
* </li>
* <li>
* <p>
* <code>PAY_PER_REQUEST</code> - Sets the read/write capacity mode to
* <code>PAY_PER_REQUEST</code>. We recommend using
* <code>PAY_PER_REQUEST</code> for unpredictable workloads. </p>
* </li>
* </ul>
* @public
*/
BillingMode?: BillingMode | undefined;
/**
* <p>Represents the time when <code>PAY_PER_REQUEST</code> was last set as the read/write
* capacity mode.</p>
* @public
*/
LastUpdateToPayPerRequestDateTime?: Date | undefined;
}
/**
* <p>The description of the point in time settings applied to the table.</p>
* @public
*/
export interface PointInTimeRecoveryDescription {
/**
* <p>The current state of point in time recovery:</p>
* <ul>
* <li>
* <p>
* <code>ENABLED</code> - Point in time recovery is enabled.</p>
* </li>
* <li>
* <p>
* <code>DISABLED</code> - Point in time recovery is disabled.</p>
* </li>
* </ul>
* @public
*/
PointInTimeRecoveryStatus?: PointInTimeRecoveryStatus | undefined;
/**
* <p>The number of preceding days for which continuous backups are taken and maintained.
* Your table data is only recoverable to any point-in-time from within the configured
* recovery period. This parameter is optional.</p>
* @public
*/
RecoveryPeriodInDays?: number | undefined;
/**
* <p>Specifies the earliest point in time you can restore your table to. You can restore
* your table to any point in time during the last 35 days. </p>
* @public
*/
EarliestRestorableDateTime?: Date | undefined;
/**
* <p>
* <code>LatestRestorableDateTime</code> is typically 5 minutes before the current time.
* </p>
* @public
*/
LatestRestorableDateTime?: Date | undefined;
}
/**
* <p>Represents the continuous backups and point in time recovery settings on the
* table.</p>
* @public
*/
export interface ContinuousBackupsDescription {
/**
* <p>
* <code>ContinuousBackupsStatus</code> can be one of the following states: ENABLED,
* DISABLED</p>
* @public
*/
ContinuousBackupsStatus: ContinuousBackupsStatus | undefined;
/**
* <p>The description of the point in time recovery settings applied to the table.</p>
* @public
*/
PointInTimeRecoveryDescription?: PointInTimeRecoveryDescription | undefined;
}
/**
* <p>Represents a Contributor Insights summary entry.</p>
* @public
*/
export interface ContributorInsightsSummary {
/**
* <p>Name of the table associated with the summary.</p>
* @public
*/
TableName?: string | undefined;
/**
* <p>Name of the index associated with the summary, if any.</p>
* @public
*/
IndexName?: string | undefined;
/**
* <p>Describes the current status for contributor insights for the given table and index,
* if applicable.</p>
* @public
*/
ContributorInsightsStatus?: ContributorInsightsStatus | undefined;
/**
* <p>Indicates the current mode of CloudWatch Contributor Insights, specifying whether it
* tracks all access and throttled events or throttled events only for the DynamoDB
* table or index.</p>
* @public
*/
ContributorInsightsMode?: ContributorInsightsMode | undefined;
}
/**
* @public
*/
export interface CreateBackupInput {
/**
* <p>The name of the table. You can also provide the Amazon Resource Name (ARN) of the table in this
* parameter.</p>
* @public
*/
TableName: string | undefined;
/**
* <p>Specified name for the backup.</p>
* @public
*/
BackupName: string | undefined;
}
/**
* @public
*/
export interface CreateBackupOutput {
/**
* <p>Contains the details of the backup created for the table.</p>
* @public
*/
BackupDetails?: BackupDetails | undefined;
}
/**
* <p>Provides visibility into the number of read and write operations your table or
* secondary index can instantaneously support. The settings can be modified using the
* <code>UpdateTable</code> operation to meet the throughput requirements of an
* upcoming peak event.</p>
* @public
*/
export interface WarmThroughput {
/**
* <p>Represents the number of read operations your base table can instantaneously
* support.</p>
* @public
*/
ReadUnitsPerSecond?: number | undefined;
/**
* <p>Represents the number of write operations your base table can instantaneously
* support.</p>
* @public
*/
WriteUnitsPerSecond?: number | undefined;
}
/**
* <p>Represents a new global secondary index to be added to an existing table.</p>
* @public
*/
export interface CreateGlobalSecondaryIndexAction {
/**
* <p>The name of the global secondary index to be created.</p>
* @public
*/
IndexName: string | undefined;
/**
* <p>The key schema for the global secondary index.
* Global secondary index supports up to 4 partition and up to 4 sort keys.</p>
* @public
*/
KeySchema: KeySchemaElement[] | undefined;
/**
* <p>Represents attributes that are copied (projected) from the table into an index. These
* are in addition to the primary key attributes and index key attributes, which are
* automatically projected.</p>
* @public
*/
Projection: Projection | undefined;
/**
* <p>Represents the provisioned throughput settings for the specified global secondary
* index.</p>
* <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service,
* Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer
* Guide</i>.</p>
* @public
*/
ProvisionedThroughput?: ProvisionedThroughput | undefined;
/**
* <p>The maximum number of read and write units for the global secondary index being
* created. If you use this parameter, you must specify <code>MaxReadRequestUnits</code>,
* <code>MaxWriteRequestUnits</code>, or both. You must use either <code>OnDemand
* Throughput</code> or <code>ProvisionedThroughput</code> based on your table's
* capacity mode.</p>
* @public
*/
OnDemandThroughput?: OnDemandThroughput | undefined;
/**
* <p>Represents the warm throughput value (in read units per