@aws-sdk/client-dynamodb
Version:
AWS SDK for JavaScript Dynamodb Client for Node.js, Browser and React Native
1,384 lines • 476 kB
TypeScript
import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client";
import { DynamoDBServiceException as __BaseException } from "./DynamoDBServiceException";
/**
* @public
* @enum
*/
export declare const ApproximateCreationDateTimePrecision: {
readonly MICROSECOND: "MICROSECOND";
readonly MILLISECOND: "MILLISECOND";
};
/**
* @public
*/
export type ApproximateCreationDateTimePrecision = (typeof ApproximateCreationDateTimePrecision)[keyof typeof ApproximateCreationDateTimePrecision];
/**
* <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;
}
/**
* @public
* @enum
*/
export declare const AttributeAction: {
readonly ADD: "ADD";
readonly DELETE: "DELETE";
readonly PUT: "PUT";
};
/**
* @public
*/
export type AttributeAction = (typeof AttributeAction)[keyof typeof AttributeAction];
/**
* @public
* @enum
*/
export declare const ScalarAttributeType: {
readonly B: "B";
readonly N: "N";
readonly S: "S";
};
/**
* @public
*/
export type ScalarAttributeType = (typeof ScalarAttributeType)[keyof typeof ScalarAttributeType];
/**
* <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;
}
/**
* @public
* @enum
*/
export declare const BackupStatus: {
readonly AVAILABLE: "AVAILABLE";
readonly CREATING: "CREATING";
readonly DELETED: "DELETED";
};
/**
* @public
*/
export type BackupStatus = (typeof BackupStatus)[keyof typeof BackupStatus];
/**
* @public
* @enum
*/
export declare const BackupType: {
readonly AWS_BACKUP: "AWS_BACKUP";
readonly SYSTEM: "SYSTEM";
readonly USER: "USER";
};
/**
* @public
*/
export type BackupType = (typeof BackupType)[keyof typeof BackupType];
/**
* <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;
}
/**
* @public
* @enum
*/
export declare const BillingMode: {
readonly PAY_PER_REQUEST: "PAY_PER_REQUEST";
readonly PROVISIONED: "PROVISIONED";
};
/**
* @public
*/
export type BillingMode = (typeof BillingMode)[keyof typeof BillingMode];
/**
* @public
* @enum
*/
export declare const KeyType: {
readonly HASH: "HASH";
readonly RANGE: "RANGE";
};
/**
* @public
*/
export type KeyType = (typeof KeyType)[keyof typeof KeyType];
/**
* <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 a specified table or index. The
* settings can be modified using the <code>UpdateTable</code> operation.</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;
}
/**
* @public
* @enum
*/
export declare const ProjectionType: {
readonly ALL: "ALL";
readonly INCLUDE: "INCLUDE";
readonly KEYS_ONLY: "KEYS_ONLY";
};
/**
* @public
*/
export type ProjectionType = (typeof ProjectionType)[keyof typeof ProjectionType];
/**
* <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 local secondary indexes, the total count of <code>NonKeyAttributes</code> summed
* across all of the local 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.</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;
}
/**
* @public
* @enum
*/
export declare const SSEType: {
readonly AES256: "AES256";
readonly KMS: "KMS";
};
/**
* @public
*/
export type SSEType = (typeof SSEType)[keyof typeof SSEType];
/**
* @public
* @enum
*/
export declare const SSEStatus: {
readonly DISABLED: "DISABLED";
readonly DISABLING: "DISABLING";
readonly ENABLED: "ENABLED";
readonly ENABLING: "ENABLING";
readonly UPDATING: "UPDATING";
};
/**
* @public
*/
export type SSEStatus = (typeof SSEStatus)[keyof typeof SSEStatus];
/**
* <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;
}
/**
* @public
* @enum
*/
export declare const StreamViewType: {
readonly KEYS_ONLY: "KEYS_ONLY";
readonly NEW_AND_OLD_IMAGES: "NEW_AND_OLD_IMAGES";
readonly NEW_IMAGE: "NEW_IMAGE";
readonly OLD_IMAGE: "OLD_IMAGE";
};
/**
* @public
*/
export type StreamViewType = (typeof StreamViewType)[keyof typeof StreamViewType];
/**
* <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;
}
/**
* @public
* @enum
*/
export declare const TimeToLiveStatus: {
readonly DISABLED: "DISABLED";
readonly DISABLING: "DISABLING";
readonly ENABLED: "ENABLED";
readonly ENABLING: "ENABLING";
};
/**
* @public
*/
export type TimeToLiveStatus = (typeof TimeToLiveStatus)[keyof typeof TimeToLiveStatus];
/**
* <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>There is another ongoing conflicting backup control plane operation on the table.
* The backup is either being created, deleted or restored to a table.</p>
* @public
*/
export declare class BackupInUseException extends __BaseException {
readonly name: "BackupInUseException";
readonly $fault: "client";
/**
* @internal
*/
constructor(opts: __ExceptionOptionType<BackupInUseException, __BaseException>);
}
/**
* <p>Backup not found for the given BackupARN. </p>
* @public
*/
export declare class BackupNotFoundException extends __BaseException {
readonly name: "BackupNotFoundException";
readonly $fault: "client";
/**
* @internal
*/
constructor(opts: __ExceptionOptionType<BackupNotFoundException, __BaseException>);
}
/**
* <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;
}
/**
* @public
* @enum
*/
export declare const BackupTypeFilter: {
readonly ALL: "ALL";
readonly AWS_BACKUP: "AWS_BACKUP";
readonly SYSTEM: "SYSTEM";
readonly USER: "USER";
};
/**
* @public
*/
export type BackupTypeFilter = (typeof BackupTypeFilter)[keyof typeof BackupTypeFilter];
/**
* @public
* @enum
*/
export declare const ReturnConsumedCapacity: {
readonly INDEXES: "INDEXES";
readonly NONE: "NONE";
readonly TOTAL: "TOTAL";
};
/**
* @public
*/
export type ReturnConsumedCapacity = (typeof ReturnConsumedCapacity)[keyof typeof ReturnConsumedCapacity];
/**
* @public
* @enum
*/
export declare const ReturnValuesOnConditionCheckFailure: {
readonly ALL_OLD: "ALL_OLD";
readonly NONE: "NONE";
};
/**
* @public
*/
export type ReturnValuesOnConditionCheckFailure = (typeof ReturnValuesOnConditionCheckFailure)[keyof typeof ReturnValuesOnConditionCheckFailure];
/**
* <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;
}
/**
* @public
* @enum
*/
export declare const BatchStatementErrorCodeEnum: {
readonly AccessDenied: "AccessDenied";
readonly ConditionalCheckFailed: "ConditionalCheckFailed";
readonly DuplicateItem: "DuplicateItem";
readonly InternalServerError: "InternalServerError";
readonly ItemCollectionSizeLimitExceeded: "ItemCollectionSizeLimitExceeded";
readonly ProvisionedThroughputExceeded: "ProvisionedThroughputExceeded";
readonly RequestLimitExceeded: "RequestLimitExceeded";
readonly ResourceNotFound: "ResourceNotFound";
readonly ThrottlingError: "ThrottlingError";
readonly TransactionConflict: "TransactionConflict";
readonly ValidationError: "ValidationError";
};
/**
* @public
*/
export type BatchStatementErrorCodeEnum = (typeof BatchStatementErrorCodeEnum)[keyof typeof BatchStatementErrorCodeEnum];
/**
* <p>An error occurred on the server side.</p>
* @public
*/
export declare class InternalServerError extends __BaseException {
readonly name: "InternalServerError";
readonly $fault: "server";
/**
* @internal
*/
constructor(opts: __ExceptionOptionType<InternalServerError, __BaseException>);
}
/**
* <p>Throughput exceeds the current throughput quota for your account. Please contact
* <a href="https://aws.amazon.com/support">Amazon Web Services Support</a> to request a
* quota increase.</p>
* @public
*/
export declare class RequestLimitExceeded extends __BaseException {
readonly name: "RequestLimitExceeded";
readonly $fault: "client";
/**
* @internal
*/
constructor(opts: __ExceptionOptionType<RequestLimitExceeded, __BaseException>);
}
/**
* @public
*/
export declare class InvalidEndpointException extends __BaseException {
readonly name: "InvalidEndpointException";
readonly $fault: "client";
Message?: string | undefined;
/**
* @internal
*/
constructor(opts: __ExceptionOptionType<InvalidEndpointException, __BaseException>);
}
/**
* <p>Your request rate is too high. The Amazon Web Services SDKs for DynamoDB
* automatically retry requests that receive this exception. Your request is eventually
* successful, unless your retry queue is too large to finish. Reduce the frequency of
* requests and use exponential backoff. For more information, go to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff">Error Retries and Exponential Backoff</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
* @public
*/
export declare class ProvisionedThroughputExceededException extends __BaseException {
readonly name: "ProvisionedThroughputExceededException";
readonly $fault: "client";
/**
* @internal
*/
constructor(opts: __ExceptionOptionType<ProvisionedThroughputExceededException, __BaseException>);
}
/**
* <p>The operation tried to access a nonexistent table or index. The resource might not
* be specified correctly, or its status might not be <code>ACTIVE</code>.</p>
* @public
*/
export declare class ResourceNotFoundException extends __BaseException {
readonly name: "ResourceNotFoundException";
readonly $fault: "client";
/**
* @internal
*/
constructor(opts: __ExceptionOptionType<ResourceNotFoundException, __BaseException>);
}
/**
* @public
* @enum
*/
export declare const ReturnItemCollectionMetrics: {
readonly NONE: "NONE";
readonly SIZE: "SIZE";
};
/**
* @public
*/
export type ReturnItemCollectionMetrics = (typeof ReturnItemCollectionMetrics)[keyof typeof ReturnItemCollectionMetrics];
/**
* <p>An item collection is too large. This exception is only returned for tables that
* have one or more local secondary indexes.</p>
* @public
*/
export declare class ItemCollectionSizeLimitExceededException extends __BaseException {
readonly name: "ItemCollectionSizeLimitExceededException";
readonly $fault: "client";
/**
* @internal
*/
constructor(opts: __ExceptionOptionType<ItemCollectionSizeLimitExceededException, __BaseException>);
}
/**
* <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;
}
/**
* @public
* @enum
*/
export declare const ComparisonOperator: {
readonly BEGINS_WITH: "BEGINS_WITH";
readonly BETWEEN: "BETWEEN";
readonly CONTAINS: "CONTAINS";
readonly EQ: "EQ";
readonly GE: "GE";
readonly GT: "GT";
readonly IN: "IN";
readonly LE: "LE";
readonly LT: "LT";
readonly NE: "NE";
readonly NOT_CONTAINS: "NOT_CONTAINS";
readonly NOT_NULL: "NOT_NULL";
readonly NULL: "NULL";
};
/**
* @public
*/
export type ComparisonOperator = (typeof ComparisonOperator)[keyof typeof ComparisonOperator];
/**
* @public
* @enum
*/
export declare const ConditionalOperator: {
readonly AND: "AND";
readonly OR: "OR";
};
/**
* @public
*/
export type ConditionalOperator = (typeof ConditionalOperator)[keyof typeof ConditionalOperator];
/**
* @public
* @enum
*/
export declare const ContinuousBackupsStatus: {
readonly DISABLED: "DISABLED";
readonly ENABLED: "ENABLED";
};
/**
* @public
*/
export type ContinuousBackupsStatus = (typeof ContinuousBackupsStatus)[keyof typeof ContinuousBackupsStatus];
/**
* @public
* @enum
*/
export declare const PointInTimeRecoveryStatus: {
readonly DISABLED: "DISABLED";
readonly ENABLED: "ENABLED";
};
/**
* @public
*/
export type PointInTimeRecoveryStatus = (typeof PointInTimeRecoveryStatus)[keyof typeof PointInTimeRecoveryStatus];
/**
* <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 on