@aws-sdk/client-dynamodb
Version:
AWS SDK for JavaScript Dynamodb Client for Node.js, Browser and React Native
1,544 lines (1,343 loc) • 394 kB
text/typescript
import { SmithyException as __SmithyException } from "@aws-sdk/smithy-client";
import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types";
/**
* <p>Contains details of a table archival operation.</p>
*/
export interface ArchivalSummary {
/**
* <p>The date and time when table archival was initiated by DynamoDB,
* in UNIX epoch time format.</p>
*/
ArchivalDateTime?: Date;
/**
* <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 AWS KMS key being inaccessible
* for more than seven days. An On-Demand backup was created at the archival
* time.</p>
* </li>
* </ul>
*/
ArchivalReason?: string;
/**
* <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>
*/
ArchivalBackupArn?: string;
}
export namespace ArchivalSummary {
export const filterSensitiveLog = (obj: ArchivalSummary): any => ({
...obj,
});
}
export type AttributeAction = "ADD" | "DELETE" | "PUT";
export type ScalarAttributeType = "B" | "N" | "S";
/**
* <p>Represents an attribute for describing the key schema for the table and indexes.</p>
*/
export interface AttributeDefinition {
/**
* <p>A name for the attribute.</p>
*/
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>
*/
AttributeType: ScalarAttributeType | string | undefined;
}
export namespace AttributeDefinition {
export const filterSensitiveLog = (obj: AttributeDefinition): any => ({
...obj,
});
}
/**
* <p>Represents the properties of a target tracking scaling policy.</p>
*/
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>
*/
DisableScaleIn?: boolean;
/**
* <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>
*/
ScaleInCooldown?: number;
/**
* <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>
*/
ScaleOutCooldown?: number;
/**
* <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>
*/
TargetValue: number | undefined;
}
export namespace AutoScalingTargetTrackingScalingPolicyConfigurationDescription {
export const filterSensitiveLog = (obj: AutoScalingTargetTrackingScalingPolicyConfigurationDescription): any => ({
...obj,
});
}
/**
* <p>Represents the properties of the scaling policy.</p>
*/
export interface AutoScalingPolicyDescription {
/**
* <p>The name of the scaling policy.</p>
*/
PolicyName?: string;
/**
* <p>Represents a target tracking scaling policy configuration.</p>
*/
TargetTrackingScalingPolicyConfiguration?: AutoScalingTargetTrackingScalingPolicyConfigurationDescription;
}
export namespace AutoScalingPolicyDescription {
export const filterSensitiveLog = (obj: AutoScalingPolicyDescription): any => ({
...obj,
});
}
/**
* <p>Represents the settings of a target tracking scaling policy that will be modified.</p>
*/
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>
*/
DisableScaleIn?: boolean;
/**
* <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>
*/
ScaleInCooldown?: number;
/**
* <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>
*/
ScaleOutCooldown?: number;
/**
* <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>
*/
TargetValue: number | undefined;
}
export namespace AutoScalingTargetTrackingScalingPolicyConfigurationUpdate {
export const filterSensitiveLog = (obj: AutoScalingTargetTrackingScalingPolicyConfigurationUpdate): any => ({
...obj,
});
}
/**
* <p>Represents the auto scaling policy to be modified.</p>
*/
export interface AutoScalingPolicyUpdate {
/**
* <p>The name of the scaling policy.</p>
*/
PolicyName?: string;
/**
* <p>Represents a target tracking scaling policy configuration.</p>
*/
TargetTrackingScalingPolicyConfiguration: AutoScalingTargetTrackingScalingPolicyConfigurationUpdate | undefined;
}
export namespace AutoScalingPolicyUpdate {
export const filterSensitiveLog = (obj: AutoScalingPolicyUpdate): any => ({
...obj,
});
}
/**
* <p>Represents the auto scaling settings for a global table or global secondary
* index.</p>
*/
export interface AutoScalingSettingsDescription {
/**
* <p>The minimum capacity units that a global table or global secondary index should be scaled down to.</p>
*/
MinimumUnits?: number;
/**
* <p>The maximum capacity units that a global table or global secondary index should be scaled up to.</p>
*/
MaximumUnits?: number;
/**
* <p>Disabled auto scaling for this global table or global secondary index.</p>
*/
AutoScalingDisabled?: boolean;
/**
* <p>Role ARN used for configuring the auto scaling policy.</p>
*/
AutoScalingRoleArn?: string;
/**
* <p>Information about the scaling policies.</p>
*/
ScalingPolicies?: AutoScalingPolicyDescription[];
}
export namespace AutoScalingSettingsDescription {
export const filterSensitiveLog = (obj: AutoScalingSettingsDescription): any => ({
...obj,
});
}
/**
* <p>Represents the auto scaling settings to be modified for a global table or global
* secondary index.</p>
*/
export interface AutoScalingSettingsUpdate {
/**
* <p>The minimum capacity units that a global table or global secondary index should be scaled down to.</p>
*/
MinimumUnits?: number;
/**
* <p>The maximum capacity units that a global table or global secondary index should be scaled up to.</p>
*/
MaximumUnits?: number;
/**
* <p>Disabled auto scaling for this global table or global secondary index.</p>
*/
AutoScalingDisabled?: boolean;
/**
* <p>Role ARN used for configuring auto scaling policy.</p>
*/
AutoScalingRoleArn?: string;
/**
* <p>The scaling policy to apply for scaling target global table or global secondary index capacity units.</p>
*/
ScalingPolicyUpdate?: AutoScalingPolicyUpdate;
}
export namespace AutoScalingSettingsUpdate {
export const filterSensitiveLog = (obj: AutoScalingSettingsUpdate): any => ({
...obj,
});
}
export type BackupStatus = "AVAILABLE" | "CREATING" | "DELETED";
export enum BackupType {
AWS_BACKUP = "AWS_BACKUP",
SYSTEM = "SYSTEM",
USER = "USER",
}
/**
* <p>Contains the details of the backup created for the table.</p>
*/
export interface BackupDetails {
/**
* <p>ARN associated with the backup.</p>
*/
BackupArn: string | undefined;
/**
* <p>Name of the requested backup.</p>
*/
BackupName: string | undefined;
/**
* <p>Size of the backup in bytes.</p>
*/
BackupSizeBytes?: number;
/**
* <p>Backup can be in one of the following states: CREATING, ACTIVE, DELETED. </p>
*/
BackupStatus: BackupStatus | string | 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 AWS Backup service.</p>
* </li>
* </ul>
*/
BackupType: BackupType | string | undefined;
/**
* <p>Time at which the backup was created. This is the request time of the backup. </p>
*/
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>
*/
BackupExpiryDateTime?: Date;
}
export namespace BackupDetails {
export const filterSensitiveLog = (obj: BackupDetails): any => ({
...obj,
});
}
export type BillingMode = "PAY_PER_REQUEST" | "PROVISIONED";
export type KeyType = "HASH" | "RANGE";
/**
* <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>
*/
export interface KeySchemaElement {
/**
* <p>The name of a key attribute.</p>
*/
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>
*/
KeyType: KeyType | string | undefined;
}
export namespace KeySchemaElement {
export const filterSensitiveLog = (obj: KeySchemaElement): any => ({
...obj,
});
}
/**
* <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>
*/
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/WorkingWithTables.html#ProvisionedThroughput">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>
*/
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/WorkingWithTables.html#ProvisionedThroughput">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>
*/
WriteCapacityUnits: number | undefined;
}
export namespace ProvisionedThroughput {
export const filterSensitiveLog = (obj: ProvisionedThroughput): any => ({
...obj,
});
}
/**
* <p>Contains the details of the table when the backup was created. </p>
*/
export interface SourceTableDetails {
/**
* <p>The name of the table for which the backup was created. </p>
*/
TableName: string | undefined;
/**
* <p>Unique identifier for the table for which the backup was created. </p>
*/
TableId: string | undefined;
/**
* <p>ARN of the table for which backup was created. </p>
*/
TableArn?: string;
/**
* <p>Size of the table in bytes. Note that this is an approximate value.</p>
*/
TableSizeBytes?: number;
/**
* <p>Schema of the table. </p>
*/
KeySchema: KeySchemaElement[] | undefined;
/**
* <p>Time when the source table was created. </p>
*/
TableCreationDateTime: Date | undefined;
/**
* <p>Read IOPs and Write IOPS on the table when the backup was created.</p>
*/
ProvisionedThroughput: ProvisionedThroughput | undefined;
/**
* <p>Number of items in the table. Note that this is an approximate value. </p>
*/
ItemCount?: number;
/**
* <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>
*/
BillingMode?: BillingMode | string;
}
export namespace SourceTableDetails {
export const filterSensitiveLog = (obj: SourceTableDetails): any => ({
...obj,
});
}
export type ProjectionType = "ALL" | "INCLUDE" | "KEYS_ONLY";
/**
* <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>
*/
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>
*/
ProjectionType?: ProjectionType | string;
/**
* <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 20. If you project the same attribute into two
* different indexes, this counts as two distinct attributes when determining the total.</p>
*/
NonKeyAttributes?: string[];
}
export namespace Projection {
export const filterSensitiveLog = (obj: Projection): any => ({
...obj,
});
}
/**
* <p>Represents the properties of a global secondary index for the table
* when the backup was created.</p>
*/
export interface GlobalSecondaryIndexInfo {
/**
* <p>The name of the global secondary index.</p>
*/
IndexName?: string;
/**
* <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>
*/
KeySchema?: KeySchemaElement[];
/**
* <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>
*/
Projection?: Projection;
/**
* <p>Represents the provisioned throughput settings for the specified global secondary index. </p>
*/
ProvisionedThroughput?: ProvisionedThroughput;
}
export namespace GlobalSecondaryIndexInfo {
export const filterSensitiveLog = (obj: GlobalSecondaryIndexInfo): any => ({
...obj,
});
}
/**
* <p>Represents the properties of a local secondary index for the table
* when the backup was created.</p>
*/
export interface LocalSecondaryIndexInfo {
/**
* <p>Represents the name of the local secondary index.</p>
*/
IndexName?: string;
/**
* <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>
*/
KeySchema?: KeySchemaElement[];
/**
* <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>
*/
Projection?: Projection;
}
export namespace LocalSecondaryIndexInfo {
export const filterSensitiveLog = (obj: LocalSecondaryIndexInfo): any => ({
...obj,
});
}
export type SSEType = "AES256" | "KMS";
export type SSEStatus = "DISABLED" | "DISABLING" | "ENABLED" | "ENABLING" | "UPDATING";
/**
* <p>The description of the server-side encryption status on the specified table.</p>
*/
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>
*/
Status?: SSEStatus | string;
/**
* <p>Server-side encryption type. The only supported value is:</p>
* <ul>
* <li>
* <p>
* <code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The
* key is stored in your account and is managed by AWS KMS (AWS KMS charges
* apply).</p>
* </li>
* </ul>
*/
SSEType?: SSEType | string;
/**
* <p>The AWS KMS customer master key (CMK) ARN used for the AWS KMS encryption.</p>
*/
KMSMasterKeyArn?: string;
/**
* <p>Indicates the time, in UNIX epoch date format, when DynamoDB detected that the table's
* AWS KMS key was inaccessible. This attribute will automatically be cleared when DynamoDB
* detects that the table's AWS KMS key is accessible again. DynamoDB will initiate the table
* archival process when table's AWS KMS key remains inaccessible for more than seven days
* from this date.</p>
*/
InaccessibleEncryptionDateTime?: Date;
}
export namespace SSEDescription {
export const filterSensitiveLog = (obj: SSEDescription): any => ({
...obj,
});
}
export type StreamViewType = "KEYS_ONLY" | "NEW_AND_OLD_IMAGES" | "NEW_IMAGE" | "OLD_IMAGE";
/**
* <p>Represents the DynamoDB Streams configuration for a table in DynamoDB.</p>
*/
export interface StreamSpecification {
/**
* <p>Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.</p>
*/
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>
*/
StreamViewType?: StreamViewType | string;
}
export namespace StreamSpecification {
export const filterSensitiveLog = (obj: StreamSpecification): any => ({
...obj,
});
}
export type TimeToLiveStatus = "DISABLED" | "DISABLING" | "ENABLED" | "ENABLING";
/**
* <p>The description of the Time to Live (TTL) status on the specified table. </p>
*/
export interface TimeToLiveDescription {
/**
* <p> The TTL status for the table.</p>
*/
TimeToLiveStatus?: TimeToLiveStatus | string;
/**
* <p> The name of the TTL attribute for items in the table.</p>
*/
AttributeName?: string;
}
export namespace TimeToLiveDescription {
export const filterSensitiveLog = (obj: TimeToLiveDescription): any => ({
...obj,
});
}
/**
* <p>Contains the details of the features enabled on the table when the backup was created. For example, LSIs, GSIs, streams, TTL. </p>
*/
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>
*/
LocalSecondaryIndexes?: LocalSecondaryIndexInfo[];
/**
* <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>
*/
GlobalSecondaryIndexes?: GlobalSecondaryIndexInfo[];
/**
* <p>Stream settings on the table when the backup was created.</p>
*/
StreamDescription?: StreamSpecification;
/**
* <p>Time to Live settings on the table when the backup was created.</p>
*/
TimeToLiveDescription?: TimeToLiveDescription;
/**
* <p>The description of the server-side encryption status on the table when the backup was created.</p>
*/
SSEDescription?: SSEDescription;
}
export namespace SourceTableFeatureDetails {
export const filterSensitiveLog = (obj: SourceTableFeatureDetails): any => ({
...obj,
});
}
/**
* <p>Contains the description of the backup created for the table.</p>
*/
export interface BackupDescription {
/**
* <p>Contains the details of the backup created for the table. </p>
*/
BackupDetails?: BackupDetails;
/**
* <p>Contains the details of the table when the backup was created. </p>
*/
SourceTableDetails?: SourceTableDetails;
/**
* <p>Contains the details of the features enabled on the table when the backup was created. For example, LSIs, GSIs, streams, TTL.</p>
*/
SourceTableFeatureDetails?: SourceTableFeatureDetails;
}
export namespace BackupDescription {
export const filterSensitiveLog = (obj: BackupDescription): any => ({
...obj,
});
}
/**
* <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>
*/
export interface BackupInUseException extends __SmithyException, $MetadataBearer {
name: "BackupInUseException";
$fault: "client";
message?: string;
}
export namespace BackupInUseException {
export const filterSensitiveLog = (obj: BackupInUseException): any => ({
...obj,
});
}
/**
* <p>Backup not found for the given BackupARN. </p>
*/
export interface BackupNotFoundException extends __SmithyException, $MetadataBearer {
name: "BackupNotFoundException";
$fault: "client";
message?: string;
}
export namespace BackupNotFoundException {
export const filterSensitiveLog = (obj: BackupNotFoundException): any => ({
...obj,
});
}
/**
* <p>Contains details for the backup.</p>
*/
export interface BackupSummary {
/**
* <p>Name of the table.</p>
*/
TableName?: string;
/**
* <p>Unique identifier for the table.</p>
*/
TableId?: string;
/**
* <p>ARN associated with the table.</p>
*/
TableArn?: string;
/**
* <p>ARN associated with the backup.</p>
*/
BackupArn?: string;
/**
* <p>Name of the specified backup.</p>
*/
BackupName?: string;
/**
* <p>Time at which the backup was created.</p>
*/
BackupCreationDateTime?: Date;
/**
* <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>
*/
BackupExpiryDateTime?: Date;
/**
* <p>Backup can be in one of the following states: CREATING, ACTIVE, DELETED.</p>
*/
BackupStatus?: BackupStatus | string;
/**
* <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 AWS Backup service.</p>
* </li>
* </ul>
*/
BackupType?: BackupType | string;
/**
* <p>Size of the backup in bytes.</p>
*/
BackupSizeBytes?: number;
}
export namespace BackupSummary {
export const filterSensitiveLog = (obj: BackupSummary): any => ({
...obj,
});
}
export enum BackupTypeFilter {
ALL = "ALL",
AWS_BACKUP = "AWS_BACKUP",
SYSTEM = "SYSTEM",
USER = "USER",
}
export enum BatchStatementErrorCodeEnum {
AccessDenied = "AccessDenied",
ConditionalCheckFailed = "ConditionalCheckFailed",
DuplicateItem = "DuplicateItem",
InternalServerError = "InternalServerError",
ItemCollectionSizeLimitExceeded = "ItemCollectionSizeLimitExceeded",
ProvisionedThroughputExceeded = "ProvisionedThroughputExceeded",
RequestLimitExceeded = "RequestLimitExceeded",
ResourceNotFound = "ResourceNotFound",
ThrottlingError = "ThrottlingError",
TransactionConflict = "TransactionConflict",
ValidationError = "ValidationError",
}
/**
* <p>
* An error associated with a statement in a PartiQL batch that was run.
* </p>
*/
export interface BatchStatementError {
/**
* <p>
* The error code associated with the failed PartiQL batch statement.
* </p>
*/
Code?: BatchStatementErrorCodeEnum | string;
/**
* <p>
* The error message associated with the PartiQL batch resposne.
* </p>
*/
Message?: string;
}
export namespace BatchStatementError {
export const filterSensitiveLog = (obj: BatchStatementError): any => ({
...obj,
});
}
/**
* <p>An error occurred on the server side.</p>
*/
export interface InternalServerError extends __SmithyException, $MetadataBearer {
name: "InternalServerError";
$fault: "server";
/**
* <p>The server encountered an internal error trying to fulfill the request.</p>
*/
message?: string;
}
export namespace InternalServerError {
export const filterSensitiveLog = (obj: InternalServerError): any => ({
...obj,
});
}
/**
* <p>Throughput exceeds the current throughput quota for your account. Please contact AWS Support at <a href="https://aws.amazon.com/support">AWS Support</a> to request a quota increase.</p>
*/
export interface RequestLimitExceeded extends __SmithyException, $MetadataBearer {
name: "RequestLimitExceeded";
$fault: "client";
message?: string;
}
export namespace RequestLimitExceeded {
export const filterSensitiveLog = (obj: RequestLimitExceeded): any => ({
...obj,
});
}
export type ReturnConsumedCapacity = "INDEXES" | "NONE" | "TOTAL";
/**
* <p>Represents the amount of provisioned throughput capacity consumed on a table or an index.</p>
*/
export interface Capacity {
/**
* <p>The total number of read capacity units consumed on a table or an index.</p>
*/
ReadCapacityUnits?: number;
/**
* <p>The total number of write capacity units consumed on a table or an index.</p>
*/
WriteCapacityUnits?: number;
/**
* <p>The total number of capacity units consumed on a table or an index.</p>
*/
CapacityUnits?: number;
}
export namespace Capacity {
export const filterSensitiveLog = (obj: Capacity): any => ({
...obj,
});
}
/**
* <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/ProvisionedThroughputIntro.html">Provisioned
* Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
*/
export interface ConsumedCapacity {
/**
* <p>The name of the table that was affected by the operation.</p>
*/
TableName?: string;
/**
* <p>The total number of capacity units consumed by the operation.</p>
*/
CapacityUnits?: number;
/**
* <p>The total number of read capacity units consumed by the operation.</p>
*/
ReadCapacityUnits?: number;
/**
* <p>The total number of write capacity units consumed by the operation.</p>
*/
WriteCapacityUnits?: number;
/**
* <p>The amount of throughput consumed on the table affected by the operation.</p>
*/
Table?: Capacity;
/**
* <p>The amount of throughput consumed on each local index affected by the operation.</p>
*/
LocalSecondaryIndexes?: { [key: string]: Capacity };
/**
* <p>The amount of throughput consumed on each global index affected by the operation.</p>
*/
GlobalSecondaryIndexes?: { [key: string]: Capacity };
}
export namespace ConsumedCapacity {
export const filterSensitiveLog = (obj: ConsumedCapacity): any => ({
...obj,
});
}
export interface InvalidEndpointException extends __SmithyException, $MetadataBearer {
name: "InvalidEndpointException";
$fault: "client";
Message?: string;
}
export namespace InvalidEndpointException {
export const filterSensitiveLog = (obj: InvalidEndpointException): any => ({
...obj,
});
}
/**
* <p>Your request rate is too high. The AWS 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>
*/
export interface ProvisionedThroughputExceededException extends __SmithyException, $MetadataBearer {
name: "ProvisionedThroughputExceededException";
$fault: "client";
/**
* <p>You exceeded your maximum allowed provisioned throughput.</p>
*/
message?: string;
}
export namespace ProvisionedThroughputExceededException {
export const filterSensitiveLog = (obj: ProvisionedThroughputExceededException): any => ({
...obj,
});
}
/**
* <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>
*/
export interface ResourceNotFoundException extends __SmithyException, $MetadataBearer {
name: "ResourceNotFoundException";
$fault: "client";
/**
* <p>The resource which is being requested does not exist.</p>
*/
message?: string;
}
export namespace ResourceNotFoundException {
export const filterSensitiveLog = (obj: ResourceNotFoundException): any => ({
...obj,
});
}
export type ReturnItemCollectionMetrics = "NONE" | "SIZE";
/**
* <p>An item collection is too large. This exception is only returned for tables that have one or more local secondary indexes.</p>
*/
export interface ItemCollectionSizeLimitExceededException extends __SmithyException, $MetadataBearer {
name: "ItemCollectionSizeLimitExceededException";
$fault: "client";
/**
* <p>The total size of an item collection has exceeded the maximum limit of 10 gigabytes.</p>
*/
message?: string;
}
export namespace ItemCollectionSizeLimitExceededException {
export const filterSensitiveLog = (obj: ItemCollectionSizeLimitExceededException): any => ({
...obj,
});
}
/**
* <p>Contains the details for the read/write capacity mode.</p>
*/
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>
*/
BillingMode?: BillingMode | string;
/**
* <p>Represents the time when <code>PAY_PER_REQUEST</code> was last set as the read/write capacity mode.</p>
*/
LastUpdateToPayPerRequestDateTime?: Date;
}
export namespace BillingModeSummary {
export const filterSensitiveLog = (obj: BillingModeSummary): any => ({
...obj,
});
}
export type ComparisonOperator =
| "BEGINS_WITH"
| "BETWEEN"
| "CONTAINS"
| "EQ"
| "GE"
| "GT"
| "IN"
| "LE"
| "LT"
| "NE"
| "NOT_CONTAINS"
| "NOT_NULL"
| "NULL";
/**
* <p>A condition specified in the operation could not be evaluated.</p>
*/
export interface ConditionalCheckFailedException extends __SmithyException, $MetadataBearer {
name: "ConditionalCheckFailedException";
$fault: "client";
/**
* <p>The conditional request failed.</p>
*/
message?: string;
}
export namespace ConditionalCheckFailedException {
export const filterSensitiveLog = (obj: ConditionalCheckFailedException): any => ({
...obj,
});
}
export type ConditionalOperator = "AND" | "OR";
export type ReturnValuesOnConditionCheckFailure = "ALL_OLD" | "NONE";
export type ContinuousBackupsStatus = "DISABLED" | "ENABLED";
export type PointInTimeRecoveryStatus = "DISABLED" | "ENABLED";
/**
* <p>The description of the point in time settings applied to the table.</p>
*/
export interface PointInTimeRecoveryDescription {
/**
* <p>The current state of point in time recovery:</p>
* <ul>
* <li>
* <p>
* <code>ENABLING</code> - Point in time recovery is being enabled.</p>
* </li>
* <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>
*/
PointInTimeRecoveryStatus?: PointInTimeRecoveryStatus | string;
/**
* <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>
*/
EarliestRestorableDateTime?: Date;
/**
* <p>
* <code>LatestRestorableDateTime</code> is typically 5 minutes before the current time.
* </p>
*/
LatestRestorableDateTime?: Date;
}
export namespace PointInTimeRecoveryDescription {
export const filterSensitiveLog = (obj: PointInTimeRecoveryDescription): any => ({
...obj,
});
}
/**
* <p>Represents the continuous backups and point in time recovery settings on the table.</p>
*/
export interface ContinuousBackupsDescription {
/**
* <p>
* <code>ContinuousBackupsStatus</code> can be one of the following states: ENABLED,
* DISABLED</p>
*/
ContinuousBackupsStatus: ContinuousBackupsStatus | string | undefined;
/**
* <p>The description of the point in time recovery settings applied to the table.</p>
*/
PointInTimeRecoveryDescription?: PointInTimeRecoveryDescription;
}
export namespace ContinuousBackupsDescription {
export const filterSensitiveLog = (obj: ContinuousBackupsDescription): any => ({
...obj,
});
}
/**
* <p>Backups have not yet been enabled for this table.</p>
*/
export interface ContinuousBackupsUnavailableException extends __SmithyException, $MetadataBearer {
name: "ContinuousBackupsUnavailableException";
$fault: "client";
message?: string;
}
export namespace ContinuousBackupsUnavailableException {
export const filterSensitiveLog = (obj: ContinuousBackupsUnavailableException): any => ({
...obj,
});
}
export type ContributorInsightsAction = "DISABLE" | "ENABLE";
export type ContributorInsightsStatus = "DISABLED" | "DISABLING" | "ENABLED" | "ENABLING" | "FAILED";
/**
* <p>Represents a Contributor Insights summary entry.</p>
*/
export interface ContributorInsightsSummary {
/**
* <p>Name of the table associated with the summary.</p>
*/
TableName?: string;
/**
* <p>Name of the index associated with the summary, if any.</p>
*/
IndexName?: string;
/**
* <p>Describes the current status for contributor insights for the given table and index, if applicable.</p>
*/
ContributorInsightsStatus?: ContributorInsightsStatus | string;
}
export namespace ContributorInsightsSummary {
export const filterSensitiveLog = (obj: ContributorInsightsSummary): any => ({
...obj,
});
}
export interface CreateBackupInput {
/**
* <p>The name of the table.</p>
*/
TableName: string | undefined;
/**
* <p>Specified name for the backup.</p>
*/
BackupName: string | undefined;
}
export namespace CreateBackupInput {
export const filterSensitiveLog = (obj: CreateBackupInput): any => ({
...obj,
});
}
export interface CreateBackupOutput {
/**
* <p>Contains the details of the backup created for the table.</p>
*/
BackupDetails?: BackupDetails;
}
export namespace CreateBackupOutput {
export const filterSensitiveLog = (obj: CreateBackupOutput): any => ({
...obj,
});
}
/**
* <p>There is no limit to the number of daily on-demand backups that can be taken. </p>
* <p>Up to 50 simultaneous table operations are allowed per account. These operations
* include <code>CreateTable</code>, <code>UpdateTable</code>,
* <code>DeleteTable</code>,<code>UpdateTimeToLive</code>,
* <code>RestoreTableFromBackup</code>, and <code>RestoreTableToPointInTime</code>. </p>
* <p>The only exception is when you are creating a table with one or more secondary indexes. You can have up to
* 25 such requests running at a time; however, if the table or index specifications are complex, DynamoDB might temporarily
* reduce the number of concurrent operations.</p>
* <p>There is a soft account quota of 256 tables.</p>
*/
export interface LimitExceededException extends __SmithyException, $MetadataBearer {
name: "LimitExceededException";
$fault: "client";
/**
* <p>Too many operations for a given subscriber.</p>
*/
message?: string;
}
export namespace LimitExceededException {
export const filterSensitiveLog = (obj: LimitExceededException): any => ({
...obj,
});
}
/**
* <p>A target table with the specified name is either being created or deleted. </p>
*/
export interface TableInUseException extends __SmithyException, $MetadataBearer {
name: "TableInUseException";
$fault: "client";
message?: string;
}
export namespace TableInUseException {
export const filterSensitiveLog = (obj: TableInUseException): any => ({
...obj,
});
}
/**
* <p>A source table with the name <code>TableName</code> does not currently exist within the subscriber's account.</p>
*/
export interface TableNotFoundException extends __SmithyException, $MetadataBearer {
name: "TableNotFoundException";
$fault: "client";
message?: string;
}
export namespace TableNotFoundException {
export const filterSensitiveLog = (obj: TableNotFoundException): any => ({
...obj,
});
}
/**
* <p>Represents a new global secondary index to be added to an existing table.</p>
*/
export interface CreateGlobalSecondaryIndexAction {
/**
* <p>The name of the global secondary index to be created.</p>
*/
IndexName: string | undefined;
/**
* <p>The key schema for the global secondary index.</p>
*/
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>
*/
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>
*/
ProvisionedThroughput?: ProvisionedThroughput;
}
export namespace CreateGlobalSecondaryIndexAction {
export const filterSensitiveLog = (obj: CreateGlobalSecondaryIndexAction): any => ({
...obj,
});
}
/**
* <p>Represents the properties of a replica.</p>
*/
export interface Replica {
/**
* <p>The Region where the replica needs to be created.</p>
*/
RegionName?: string;
}
export namespace Replica {
export const filterSensitiveLog = (obj: Replica): any => ({
...obj,
});
}
export interface CreateGlobalTableInput {
/**
* <p>The global table name.</p>
*/
GlobalTableName: string | undefined;
/**
* <p>The Regions where the global table needs to be created.</p>
*/
ReplicationGroup: Replica[] | undefined;
}
export namespace CreateGlobalTableInput {
export const filterSensitiveLog = (obj: CreateGlobalTableInput): any => ({
...obj,
});
}
export type GlobalTableStatus = "ACTIVE" | "CREATING" | "DELETING" | "UPDATING";
/**
* <p>Replica-specific provisioned throughput settings. If not specified, uses the
* source table's provisioned throughput settings.</p>
*/
export interface ProvisionedThroughputOverride {
/**
* <p>Replica-specific read capacity units. If not specified, uses the source table's
* read capacity settings.</p>
*/
ReadCapacityUnits?: number;
}
export namespace ProvisionedThroughputOverride {
export const filterSensitiveLog = (obj: ProvisionedThroughputOverride): any => ({
...obj,
});
}
/**
* <p>Represents the properties of a replica global secondary index.</p>
*/
export interface ReplicaGlobalSecondaryIndexDescription {
/**
* <p>The name of the global secondary index.</p>
*/
IndexName?: string;
/**