675 lines
23 KiB
TypeScript
675 lines
23 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import type { Billing } from './billing';
|
|
import type { Capacity } from './capacity';
|
|
import type { TableEncryptionV2 } from './encryption';
|
|
import type { Attribute, ContributorInsightsSpecification, GlobalTableSettingsReplicationMode, LocalSecondaryIndexProps, PointInTimeRecoverySpecification, SecondaryIndexProps, TableClass, WarmThroughput } from './shared';
|
|
import { MultiRegionConsistency, StreamViewType } from './shared';
|
|
import { TableGrants } from './table-grants';
|
|
import type { ITableV2 } from './table-v2-base';
|
|
import { TableBaseV2 } from './table-v2-base';
|
|
import type { AddToResourcePolicyResult, PolicyStatement } from '../../aws-iam';
|
|
import { PolicyDocument } from '../../aws-iam';
|
|
import type { IStream } from '../../aws-kinesis';
|
|
import type { IKey } from '../../aws-kms';
|
|
import type { CfnTag, RemovalPolicy } from '../../core';
|
|
import { TagManager } from '../../core';
|
|
/**
|
|
* Options used to configure global secondary indexes on a replica table.
|
|
*/
|
|
export interface ReplicaGlobalSecondaryIndexOptions extends IContributorInsightsConfigurable {
|
|
/**
|
|
* Whether CloudWatch contributor insights is enabled for a specific global secondary
|
|
* index on a replica table.
|
|
* @deprecated use `contributorInsightsSpecification` instead
|
|
* @default - inherited from the primary table
|
|
*/
|
|
readonly contributorInsights?: boolean;
|
|
/**
|
|
* Whether CloudWatch contributor insights is enabled and what mode is selected
|
|
* for a specific global secondary index on a replica table.
|
|
* @default - contributor insights is not enabled
|
|
*/
|
|
readonly contributorInsightsSpecification?: ContributorInsightsSpecification;
|
|
/**
|
|
* The read capacity for a specific global secondary index on a replica table.
|
|
*
|
|
* Note: This can only be configured if primary table billing is provisioned.
|
|
*
|
|
* @default - inherited from the primary table
|
|
*/
|
|
readonly readCapacity?: Capacity;
|
|
/**
|
|
* The maximum read request units for a specific global secondary index on a replica table.
|
|
*
|
|
* Note: This can only be configured if primary table billing is PAY_PER_REQUEST.
|
|
*
|
|
* @default - inherited from the primary table
|
|
*/
|
|
readonly maxReadRequestUnits?: number;
|
|
}
|
|
/**
|
|
* Properties used to configure a global secondary index.
|
|
*/
|
|
export interface GlobalSecondaryIndexPropsV2 extends SecondaryIndexProps {
|
|
/**
|
|
* Partition key attribute definition.
|
|
*
|
|
* If a single field forms the partition key, you can use this field. Use the
|
|
* `partitionKeys` field if the partition key is a multi-attribute key (consists of
|
|
* multiple fields).
|
|
*
|
|
* @default - exactly one of `partitionKey` and `partitionKeys` must be specified.
|
|
*/
|
|
readonly partitionKey?: Attribute;
|
|
/**
|
|
* Sort key attribute definition.
|
|
*
|
|
* If a single field forms the sort key, you can use this field. Use the
|
|
* `sortKeys` field if the sort key is a multi-attribute key (consists of multiple
|
|
* fields).
|
|
*
|
|
* @default - no sort key
|
|
*/
|
|
readonly sortKey?: Attribute;
|
|
/**
|
|
* Multi-attribute partition key
|
|
*
|
|
* If a single field forms the partition key, you can use either
|
|
* `partitionKey` or `partitionKeys` to specify the partition key. Exactly
|
|
* one of these must be specified.
|
|
*
|
|
* You must use `partitionKeys` field if the partition key is a multi-attribute key
|
|
* (consists of multiple fields).
|
|
*
|
|
* NOTE: although the name of this field makes it sound like it creates
|
|
* multiple keys, it does not. It defines a single key that consists of
|
|
* of multiple fields.
|
|
*
|
|
* The order of fields is not important.
|
|
*
|
|
* @default - exactly one of `partitionKey` and `partitionKeys` must be specified.
|
|
*/
|
|
readonly partitionKeys?: Attribute[];
|
|
/**
|
|
* Multi-attribute sort key
|
|
*
|
|
* If a single field forms the sort key, you can use either
|
|
* `sortKey` or `sortKeys` to specify the sort key. At most one of these
|
|
* may be specified.
|
|
*
|
|
* You must use `sortKeys` field if the sort key is a multi-attribute key
|
|
* (consists of multiple fields).
|
|
*
|
|
* NOTE: although the name of this field makes it sound like it creates
|
|
* multiple keys, it does not. It defines a single key that consists of
|
|
* of multiple fields at the same time.
|
|
*
|
|
* NOTE: The order of fields is important!
|
|
*
|
|
* @default - no sort key
|
|
*/
|
|
readonly sortKeys?: Attribute[];
|
|
/**
|
|
* The read capacity.
|
|
*
|
|
* Note: This can only be configured if the primary table billing is provisioned.
|
|
*
|
|
* @default - inherited from the primary table.
|
|
*/
|
|
readonly readCapacity?: Capacity;
|
|
/**
|
|
* The write capacity.
|
|
*
|
|
* Note: This can only be configured if the primary table billing is provisioned.
|
|
*
|
|
* @default - inherited from the primary table.
|
|
*/
|
|
readonly writeCapacity?: Capacity;
|
|
/**
|
|
* The maximum read request units.
|
|
*
|
|
* Note: This can only be configured if the primary table billing is PAY_PER_REQUEST.
|
|
*
|
|
* @default - inherited from the primary table.
|
|
*/
|
|
readonly maxReadRequestUnits?: number;
|
|
/**
|
|
* The maximum write request units.
|
|
*
|
|
* Note: This can only be configured if the primary table billing is PAY_PER_REQUEST.
|
|
*
|
|
* @default - inherited from the primary table.
|
|
*/
|
|
readonly maxWriteRequestUnits?: number;
|
|
/**
|
|
* The warm throughput configuration for the global secondary index.
|
|
*
|
|
* @default - no warm throughput is configured
|
|
*/
|
|
readonly warmThroughput?: WarmThroughput;
|
|
}
|
|
/**
|
|
* Common interface for types that can configure contributor insights
|
|
* @internal
|
|
*/
|
|
interface IContributorInsightsConfigurable {
|
|
/**
|
|
* Whether CloudWatch contributor insights is enabled.
|
|
* @deprecated use `contributorInsightsSpecification` instead
|
|
*/
|
|
readonly contributorInsights?: boolean;
|
|
/**
|
|
* Whether CloudWatch contributor insights is enabled and what mode is selected
|
|
*/
|
|
readonly contributorInsightsSpecification?: ContributorInsightsSpecification;
|
|
}
|
|
/**
|
|
* Options used to configure a DynamoDB table.
|
|
*/
|
|
export interface TableOptionsV2 extends IContributorInsightsConfigurable {
|
|
/**
|
|
* Whether CloudWatch contributor insights is enabled.
|
|
* @deprecated use `contributorInsightsSpecification` instead
|
|
* @default false
|
|
*/
|
|
readonly contributorInsights?: boolean;
|
|
/**
|
|
* Whether CloudWatch contributor insights is enabled and what mode is selected
|
|
* @default - contributor insights is not enabled
|
|
*/
|
|
readonly contributorInsightsSpecification?: ContributorInsightsSpecification;
|
|
/**
|
|
* Whether deletion protection is enabled.
|
|
*
|
|
* @default false
|
|
*/
|
|
readonly deletionProtection?: boolean;
|
|
/**
|
|
* Whether point-in-time recovery is enabled.
|
|
* @deprecated use `pointInTimeRecoverySpecification` instead
|
|
* @default false - point in time recovery is not enabled.
|
|
*/
|
|
readonly pointInTimeRecovery?: boolean;
|
|
/**
|
|
* Whether point-in-time recovery is enabled
|
|
* and recoveryPeriodInDays is set.
|
|
*
|
|
* @default - point in time recovery is not enabled.
|
|
*/
|
|
readonly pointInTimeRecoverySpecification?: PointInTimeRecoverySpecification;
|
|
/**
|
|
* The table class.
|
|
*
|
|
* @default TableClass.STANDARD
|
|
*/
|
|
readonly tableClass?: TableClass;
|
|
/**
|
|
* Kinesis Data Stream to capture item level changes.
|
|
*
|
|
* @default - no Kinesis Data Stream
|
|
*/
|
|
readonly kinesisStream?: IStream;
|
|
/**
|
|
* Tags to be applied to the primary table (default replica table).
|
|
*
|
|
* @default - no tags
|
|
*/
|
|
readonly tags?: CfnTag[];
|
|
/**
|
|
* Resource policy to assign to DynamoDB Table.
|
|
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-resourcepolicy
|
|
* @default - No resource policy statements are added to the created table.
|
|
*/
|
|
readonly resourcePolicy?: PolicyDocument;
|
|
}
|
|
/**
|
|
* Properties used to configure a replica table.
|
|
*/
|
|
export interface ReplicaTableProps extends TableOptionsV2 {
|
|
/**
|
|
* The region that the replica table will be created in.
|
|
*/
|
|
readonly region: string;
|
|
/**
|
|
* The read capacity.
|
|
*
|
|
* Note: This can only be configured if the primary table billing is provisioned.
|
|
*
|
|
* @default - inherited from the primary table
|
|
*/
|
|
readonly readCapacity?: Capacity;
|
|
/**
|
|
* The maximum read request units.
|
|
*
|
|
* Note: This can only be configured if the primary table billing is PAY_PER_REQUEST.
|
|
*
|
|
* @default - inherited from the primary table
|
|
*/
|
|
readonly maxReadRequestUnits?: number;
|
|
/**
|
|
* Options used to configure global secondary index properties.
|
|
*
|
|
* @default - inherited from the primary table
|
|
*/
|
|
readonly globalSecondaryIndexOptions?: {
|
|
[indexName: string]: ReplicaGlobalSecondaryIndexOptions;
|
|
};
|
|
}
|
|
/**
|
|
* Properties used to configure a DynamoDB table.
|
|
*/
|
|
export interface TablePropsV2 extends TableOptionsV2 {
|
|
/**
|
|
* Partition key attribute definition.
|
|
*/
|
|
readonly partitionKey: Attribute;
|
|
/**
|
|
* Sort key attribute definition.
|
|
*
|
|
* @default - no sort key
|
|
*/
|
|
readonly sortKey?: Attribute;
|
|
/**
|
|
* The name of the table.
|
|
*
|
|
* @default - generated by CloudFormation
|
|
*/
|
|
readonly tableName?: string;
|
|
/**
|
|
* The name of the TTL attribute.
|
|
*
|
|
* @default - TTL is disabled
|
|
*/
|
|
readonly timeToLiveAttribute?: string;
|
|
/**
|
|
* When an item in the table is modified, StreamViewType determines what information is
|
|
* written to the stream.
|
|
*
|
|
* @default - streams are disabled if replicas are not configured and this property is
|
|
* not specified. If this property is not specified when replicas are configured, then
|
|
* NEW_AND_OLD_IMAGES will be the StreamViewType for all replicas
|
|
*/
|
|
readonly dynamoStream?: StreamViewType;
|
|
/**
|
|
* The removal policy applied to the table.
|
|
*
|
|
* @default RemovalPolicy.RETAIN
|
|
*/
|
|
readonly removalPolicy?: RemovalPolicy;
|
|
/**
|
|
* The billing mode and capacity settings to apply to the table.
|
|
*
|
|
* @default Billing.onDemand()
|
|
*/
|
|
readonly billing?: Billing;
|
|
/**
|
|
* Replica tables to deploy with the primary table.
|
|
*
|
|
* Note: Adding replica tables allows you to use your table as a global table. You
|
|
* cannot specify a replica table in the region that the primary table will be deployed
|
|
* to. Replica tables will only be supported if the stack deployment region is defined.
|
|
*
|
|
* @default - no replica tables
|
|
*/
|
|
readonly replicas?: ReplicaTableProps[];
|
|
/**
|
|
* Controls whether table settings are synchronized across replicas.
|
|
*
|
|
* When set to ALL, synchronizable settings (billing mode, throughput, TTL, streams view type, GSIs)
|
|
* are automatically replicated across all replicas. When set to NONE, each replica manages its own
|
|
* settings independently (billing mode must be PAY_PER_REQUEST).
|
|
*
|
|
* Note: Some settings are always synchronized (key schema, LSIs) regardless of this setting,
|
|
* and some are never synchronized (table class, SSE, deletion protection, PITR, tags, resource policy).
|
|
*
|
|
* @default GlobalTableSettingsReplicationMode.NONE
|
|
*/
|
|
readonly globalTableSettingsReplicationMode?: GlobalTableSettingsReplicationMode;
|
|
/**
|
|
* The witness Region for the MRSC global table.
|
|
* A MRSC global table can be configured with either three replicas, or with two replicas and one witness.
|
|
*
|
|
* Note: Witness region cannot be specified for a Multi-Region Eventual Consistency (MREC) Global Table.
|
|
* Witness regions are only supported for Multi-Region Strong Consistency (MRSC) Global Tables.
|
|
*
|
|
* @default - no witness region
|
|
*/
|
|
readonly witnessRegion?: string;
|
|
/**
|
|
* Specifies the consistency mode for a new global table.
|
|
*
|
|
* @default MultiRegionConsistency.EVENTUAL
|
|
*/
|
|
readonly multiRegionConsistency?: MultiRegionConsistency;
|
|
/**
|
|
* Global secondary indexes.
|
|
*
|
|
* Note: You can provide a maximum of 20 global secondary indexes.
|
|
*
|
|
* @default - no global secondary indexes
|
|
*/
|
|
readonly globalSecondaryIndexes?: GlobalSecondaryIndexPropsV2[];
|
|
/**
|
|
* Local secondary indexes.
|
|
*
|
|
* Note: You can only provide a maximum of 5 local secondary indexes.
|
|
*
|
|
* @default - no local secondary indexes
|
|
*/
|
|
readonly localSecondaryIndexes?: LocalSecondaryIndexProps[];
|
|
/**
|
|
* The server-side encryption.
|
|
*
|
|
* @default TableEncryptionV2.dynamoOwnedKey()
|
|
*/
|
|
readonly encryption?: TableEncryptionV2;
|
|
/**
|
|
* The warm throughput configuration for the table.
|
|
*
|
|
* @default - no warm throughput is configured
|
|
*/
|
|
readonly warmThroughput?: WarmThroughput;
|
|
}
|
|
/**
|
|
* Properties for creating a multi-account replica table.
|
|
*
|
|
* Note: partitionKey, sortKey, and localSecondaryIndexes are not options because CloudFormation
|
|
* automatically inherits the key schema and LSIs from the source table via globalTableSourceArn.
|
|
*/
|
|
export interface TableV2MultiAccountReplicaProps extends TableOptionsV2 {
|
|
/**
|
|
* The source table to replicate from.
|
|
*
|
|
* [disable-awslint:prefer-ref-interface]
|
|
*
|
|
* @default - must be provided
|
|
*/
|
|
readonly replicaSourceTable?: ITableV2;
|
|
/**
|
|
* Enforces a particular physical table name.
|
|
*
|
|
* @default - generated by CloudFormation
|
|
*/
|
|
readonly tableName?: string;
|
|
/**
|
|
* The server-side encryption configuration for the replica table.
|
|
*
|
|
* Note: Each replica manages its own encryption independently. This is not synchronized
|
|
* across replicas.
|
|
*
|
|
* @default TableEncryptionV2.dynamoOwnedKey()
|
|
*/
|
|
readonly encryption?: TableEncryptionV2;
|
|
/**
|
|
* The removal policy applied to the table.
|
|
*
|
|
* @default RemovalPolicy.RETAIN
|
|
*/
|
|
readonly removalPolicy?: RemovalPolicy;
|
|
/**
|
|
* Controls whether table settings are synchronized across replicas.
|
|
*
|
|
* When set to ALL, synchronizable settings (billing mode, throughput, TTL, streams view type, GSIs)
|
|
* are automatically replicated across all replicas. When set to NONE, each replica manages its own
|
|
* settings independently (billing mode must be PAY_PER_REQUEST).
|
|
*
|
|
* Note: Some settings are always synchronized (key schema, LSIs) regardless of this setting,
|
|
* and some are never synchronized (table class, SSE, deletion protection, PITR, tags, resource policy).
|
|
*
|
|
* @default GlobalTableSettingsReplicationMode.ALL
|
|
*/
|
|
readonly globalTableSettingsReplicationMode?: GlobalTableSettingsReplicationMode;
|
|
/**
|
|
* Whether or not to grant permissions for all indexes of the table.
|
|
*
|
|
* Note: If false, permissions will only be granted to indexes when `globalIndexes` is specified.
|
|
*
|
|
* @default false
|
|
*/
|
|
readonly grantIndexPermissions?: boolean;
|
|
}
|
|
/**
|
|
* Attributes of a DynamoDB table.
|
|
*/
|
|
export interface TableAttributesV2 {
|
|
/**
|
|
* The ARN of the table.
|
|
*
|
|
* Note: You must specify this or the `tableName`.
|
|
*
|
|
* @default - table arn generated using `tableName` and region of stack
|
|
*/
|
|
readonly tableArn?: string;
|
|
/**
|
|
* The name of the table.
|
|
*
|
|
* Note: You must specify this or the `tableArn`.
|
|
*
|
|
* @default - table name retrieved from provided `tableArn`
|
|
*/
|
|
readonly tableName?: string;
|
|
/**
|
|
* The ID of the table.
|
|
*
|
|
* @default - no table id
|
|
*/
|
|
readonly tableId?: string;
|
|
/**
|
|
* The stream ARN of the table.
|
|
*
|
|
* @default - no table stream ARN
|
|
*/
|
|
readonly tableStreamArn?: string;
|
|
/**
|
|
* KMS encryption key for the table.
|
|
*
|
|
* @default - no KMS encryption key
|
|
*/
|
|
readonly encryptionKey?: IKey;
|
|
/**
|
|
* The name of the global indexes set for the table.
|
|
*
|
|
* Note: You must set either this property or `localIndexes` if you want permissions
|
|
* to be granted for indexes as well as the table itself.
|
|
*
|
|
* @default - no global indexes
|
|
*/
|
|
readonly globalIndexes?: string[];
|
|
/**
|
|
* The name of the local indexes set for the table.
|
|
*
|
|
* Note: You must set either this property or `globalIndexes` if you want permissions
|
|
* to be granted for indexes as well as the table itself.
|
|
*
|
|
* @default - no local indexes
|
|
*/
|
|
readonly localIndexes?: string[];
|
|
/**
|
|
* Whether or not to grant permissions for all indexes of the table.
|
|
*
|
|
* Note: If false, permissions will only be granted to indexes when `globalIndexes`
|
|
* or `localIndexes` is specified.
|
|
*
|
|
* @default false
|
|
*/
|
|
readonly grantIndexPermissions?: boolean;
|
|
}
|
|
/**
|
|
* A DynamoDB Table.
|
|
*/
|
|
export declare class TableV2 extends TableBaseV2 {
|
|
/**
|
|
* Uniquely identifies this class.
|
|
*/
|
|
static readonly PROPERTY_INJECTION_ID: string;
|
|
/**
|
|
* Creates a Table construct that represents an external table via table name.
|
|
*
|
|
* @param scope the parent creating construct (usually `this`)
|
|
* @param id the construct's name
|
|
* @param tableName the table's name
|
|
*/
|
|
static fromTableName(scope: Construct, id: string, tableName: string): ITableV2;
|
|
/**
|
|
* Creates a Table construct that represents an external table via table ARN.
|
|
*
|
|
* @param scope the parent creating construct (usually `this`)
|
|
* @param id the construct's name
|
|
* @param tableArn the table's ARN
|
|
*/
|
|
static fromTableArn(scope: Construct, id: string, tableArn: string): ITableV2;
|
|
/**
|
|
* Creates a Table construct that represents an external table.
|
|
*
|
|
* @param scope the parent creating construct (usually `this`)
|
|
* @param id the construct's name
|
|
* @param attrs attributes of the table
|
|
*/
|
|
static fromTableAttributes(scope: Construct, id: string, attrs: TableAttributesV2): ITableV2;
|
|
readonly encryptionKey?: IKey;
|
|
/**
|
|
* @attribute
|
|
*/
|
|
resourcePolicy?: PolicyDocument;
|
|
/**
|
|
* Grants for this table
|
|
*/
|
|
readonly grants: TableGrants;
|
|
protected readonly region: string;
|
|
protected readonly tags: TagManager;
|
|
private readonly billingMode;
|
|
private readonly partitionKey;
|
|
private readonly hasSortKey;
|
|
private readonly tableOptions;
|
|
private readonly encryption?;
|
|
private readonly resource;
|
|
private readonly keySchema;
|
|
private readonly _attributeDefinitions;
|
|
private readonly nonKeyAttributes;
|
|
private readonly readProvisioning?;
|
|
private readonly writeProvisioning?;
|
|
private readonly maxReadRequestUnits?;
|
|
private readonly maxWriteRequestUnits?;
|
|
private readonly replicaTables;
|
|
private readonly replicaKeys;
|
|
private readonly replicaTableArns;
|
|
private readonly replicaStreamArns;
|
|
private readonly globalSecondaryIndexes;
|
|
private readonly localSecondaryIndexes;
|
|
private readonly globalSecondaryIndexReadCapacitys;
|
|
private readonly globalSecondaryIndexMaxReadUnits;
|
|
private readonly globalTableSettingsReplicationMode?;
|
|
get tableArn(): string;
|
|
get tableName(): string;
|
|
get tableStreamArn(): string | undefined;
|
|
get tableId(): string | undefined;
|
|
constructor(scope: Construct, id: string, props: TablePropsV2);
|
|
/**
|
|
* Adds a statement to the resource policy associated with this table.
|
|
* A resource policy will be automatically created upon the first call to `addToResourcePolicy`.
|
|
*
|
|
* Note that this does not work with imported tables.
|
|
*
|
|
* @param statement The policy statement to add
|
|
*/
|
|
addToResourcePolicy(statement: PolicyStatement): AddToResourcePolicyResult;
|
|
/**
|
|
* Add a replica table.
|
|
*
|
|
* Note: Adding a replica table will allow you to use your table as a global table.
|
|
*
|
|
* @param props the properties of the replica table to add
|
|
*/
|
|
addReplica(props: ReplicaTableProps): void;
|
|
/**
|
|
* Add a global secondary index to the table.
|
|
*
|
|
* Note: Global secondary indexes will be inherited by all replica tables.
|
|
*
|
|
* @param props the properties of the global secondary index
|
|
*/
|
|
addGlobalSecondaryIndex(props: GlobalSecondaryIndexPropsV2): void;
|
|
/**
|
|
* Add a local secondary index to the table.
|
|
*
|
|
* Note: Local secondary indexes will be inherited by all replica tables.
|
|
*
|
|
* @param props the properties of the local secondary index
|
|
*/
|
|
addLocalSecondaryIndex(props: LocalSecondaryIndexProps): void;
|
|
/**
|
|
* Retrieve a replica table.
|
|
*
|
|
* Note: Replica tables are not supported in a region agnostic stack.
|
|
*
|
|
* @param region the region of the replica table
|
|
*/
|
|
replica(region: string): ITableV2;
|
|
private configureReplicaTable;
|
|
private configureGlobalSecondaryIndex;
|
|
private configureLocalSecondaryIndex;
|
|
private configureReplicaGlobalSecondaryIndexes;
|
|
private configureIndexKeySchema;
|
|
private configureIndexProjection;
|
|
private configureReplicaKeys;
|
|
private renderReplicaTables;
|
|
private renderStreamSpecification;
|
|
private addKey;
|
|
private addAttributeDefinition;
|
|
protected get hasIndex(): boolean;
|
|
private validateIndexName;
|
|
private validateIndexProjection;
|
|
private validateReplicaIndexOptions;
|
|
private validateReplica;
|
|
private validateGlobalSecondaryIndex;
|
|
private validateLocalSecondaryIndex;
|
|
private validatePitr;
|
|
private validateMrscConfiguration;
|
|
private validateCCI;
|
|
}
|
|
/**
|
|
* A multi-account replica of a DynamoDB table.
|
|
*
|
|
* This construct represents a replica table in a different AWS account from the source table.
|
|
* It inherits the schema (partition key, sort key, and indexes) from the source table.
|
|
*
|
|
* Permissions on the replica side are automatically configured. You must manually add
|
|
* permissions to the source table using `sourceTable.grants.nultiAccountReplicationTo(replica.tableArn)`.
|
|
*
|
|
* @resource AWS::DynamoDB::GlobalTable
|
|
*/
|
|
export declare class TableV2MultiAccountReplica extends TableBaseV2 {
|
|
/** Uniquely identifies this class. */
|
|
static readonly PROPERTY_INJECTION_ID: string;
|
|
/**
|
|
* @attribute
|
|
*/
|
|
readonly tableStreamArn?: string;
|
|
/**
|
|
* @attribute
|
|
*/
|
|
readonly tableId?: string;
|
|
readonly encryptionKey?: IKey;
|
|
/**
|
|
* @attribute
|
|
*/
|
|
resourcePolicy?: PolicyDocument;
|
|
/**
|
|
* Grants for this table
|
|
*/
|
|
readonly grants: TableGrants;
|
|
protected readonly region: string;
|
|
private readonly resource;
|
|
private readonly _hasIndex;
|
|
get tableArn(): string;
|
|
get tableName(): string;
|
|
constructor(scope: Construct, id: string, props?: TableV2MultiAccountReplicaProps);
|
|
/**
|
|
* Adds a statement to the resource policy associated with this table.
|
|
*/
|
|
addToResourcePolicy(statement: PolicyStatement): AddToResourcePolicyResult;
|
|
protected get hasIndex(): boolean;
|
|
private validateMultiAccountReplica;
|
|
}
|
|
export {};
|