UNPKG

@aws-sdk/client-dynamodb

Version:

AWS SDK for JavaScript Dynamodb Client for Node.js, Browser and React Native

1,221 lines 450 kB
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