aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
471 lines (470 loc) • 25.1 kB
TypeScript
import * as constructs from 'constructs';
import * as cdk from '../../core';
import * as cfn_parse from '../../core/lib/helpers-internal';
/**
* Properties for defining a `CfnKeyspace`
*
* @struct
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html
*/
export interface CfnKeyspaceProps {
/**
* The name of the keyspace to be created. The keyspace name is case sensitive. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the keyspace name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) .
*
* *Length constraints:* Minimum length of 3. Maximum length of 255.
*
* *Pattern:* `^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$`
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html#cfn-cassandra-keyspace-keyspacename
*/
readonly keyspaceName?: string;
/**
* A list of key-value pair tags to be attached to the resource.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html#cfn-cassandra-keyspace-tags
*/
readonly tags?: cdk.CfnTag[];
}
/**
* A CloudFormation `AWS::Cassandra::Keyspace`
*
* You can use the `AWS::Cassandra::Keyspace` resource to create a new keyspace in Amazon Keyspaces (for Apache Cassandra). For more information, see [Create a keyspace and a table](https://docs.aws.amazon.com/keyspaces/latest/devguide/getting-started.ddl.html) in the *Amazon Keyspaces Developer Guide* .
*
* @cloudformationResource AWS::Cassandra::Keyspace
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html
*/
export declare class CfnKeyspace extends cdk.CfnResource implements cdk.IInspectable {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Cassandra::Keyspace";
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnKeyspace;
/**
* The name of the keyspace to be created. The keyspace name is case sensitive. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the keyspace name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) .
*
* *Length constraints:* Minimum length of 3. Maximum length of 255.
*
* *Pattern:* `^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$`
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html#cfn-cassandra-keyspace-keyspacename
*/
keyspaceName: string | undefined;
/**
* A list of key-value pair tags to be attached to the resource.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html#cfn-cassandra-keyspace-tags
*/
readonly tags: cdk.TagManager;
/**
* Create a new `AWS::Cassandra::Keyspace`.
*
* @param scope - scope in which this resource is defined
* @param id - scoped id of the resource
* @param props - resource properties
*/
constructor(scope: constructs.Construct, id: string, props?: CfnKeyspaceProps);
/**
* Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes
*
*/
inspect(inspector: cdk.TreeInspector): void;
protected get cfnProperties(): {
[key: string]: any;
};
protected renderProperties(props: {
[key: string]: any;
}): {
[key: string]: any;
};
}
/**
* Properties for defining a `CfnTable`
*
* @struct
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html
*/
export interface CfnTableProps {
/**
* The name of the keyspace to create the table in. The keyspace must already exist.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-keyspacename
*/
readonly keyspaceName: string;
/**
* One or more columns that uniquely identify every row in the table. Every table must have a partition key.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-partitionkeycolumns
*/
readonly partitionKeyColumns: Array<CfnTable.ColumnProperty | cdk.IResolvable> | cdk.IResolvable;
/**
* The billing mode for the table, which determines how you'll be charged for reads and writes:
*
* - *On-demand mode* (default) - You pay based on the actual reads and writes your application performs.
* - *Provisioned mode* - Lets you specify the number of reads and writes per second that you need for your application.
*
* If you don't specify a value for this property, then the table will use on-demand mode.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-billingmode
*/
readonly billingMode?: CfnTable.BillingModeProperty | cdk.IResolvable;
/**
* Enables client-side timestamps for the table. By default, the setting is disabled. You can enable client-side timestamps with the following option:
*
* - `status: "enabled"`
*
* After client-side timestamps are enabled for a table, you can't disable this setting.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-clientsidetimestampsenabled
*/
readonly clientSideTimestampsEnabled?: boolean | cdk.IResolvable;
/**
* One or more columns that determine how the table data is sorted.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-clusteringkeycolumns
*/
readonly clusteringKeyColumns?: Array<CfnTable.ClusteringKeyColumnProperty | cdk.IResolvable> | cdk.IResolvable;
/**
* The default Time To Live (TTL) value for all rows in a table in seconds. The maximum configurable value is 630,720,000 seconds, which is the equivalent of 20 years. By default, the TTL value for a table is 0, which means data does not expire.
*
* For more information, see [Setting the default TTL value for a table](https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl) in the *Amazon Keyspaces Developer Guide* .
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-defaulttimetolive
*/
readonly defaultTimeToLive?: number;
/**
* The encryption at rest options for the table.
*
* - *AWS owned key* (default) - The key is owned by Amazon Keyspaces.
* - *Customer managed key* - The key is stored in your account and is created, owned, and managed by you.
*
* > If you choose encryption with a customer managed key, you must specify a valid customer managed KMS key with permissions granted to Amazon Keyspaces.
*
* For more information, see [Encryption at rest in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in the *Amazon Keyspaces Developer Guide* .
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-encryptionspecification
*/
readonly encryptionSpecification?: CfnTable.EncryptionSpecificationProperty | cdk.IResolvable;
/**
* Specifies if point-in-time recovery is enabled or disabled for the table. The options are `PointInTimeRecoveryEnabled=true` and `PointInTimeRecoveryEnabled=false` . If not specified, the default is `PointInTimeRecoveryEnabled=false` .
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-pointintimerecoveryenabled
*/
readonly pointInTimeRecoveryEnabled?: boolean | cdk.IResolvable;
/**
* One or more columns that are not part of the primary key - that is, columns that are *not* defined as partition key columns or clustering key columns.
*
* You can add regular columns to existing tables by adding them to the template.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-regularcolumns
*/
readonly regularColumns?: Array<CfnTable.ColumnProperty | cdk.IResolvable> | cdk.IResolvable;
/**
* The name of the table to be created. The table name is case sensitive. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the table name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) .
*
* > If you specify a name, you can't perform updates that require replacing this resource. You can perform updates that require no interruption or some interruption. If you must replace the resource, specify a new name.
*
* *Length constraints:* Minimum length of 3. Maximum length of 255.
*
* *Pattern:* `^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$`
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-tablename
*/
readonly tableName?: string;
/**
* A list of key-value pair tags to be attached to the resource.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-tags
*/
readonly tags?: cdk.CfnTag[];
}
/**
* A CloudFormation `AWS::Cassandra::Table`
*
* You can use the `AWS::Cassandra::Table` resource to create a new table in Amazon Keyspaces (for Apache Cassandra). For more information, see [Create a keyspace and a table](https://docs.aws.amazon.com/keyspaces/latest/devguide/getting-started.ddl.html) in the *Amazon Keyspaces Developer Guide* .
*
* @cloudformationResource AWS::Cassandra::Table
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html
*/
export declare class CfnTable extends cdk.CfnResource implements cdk.IInspectable {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Cassandra::Table";
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnTable;
/**
* The name of the keyspace to create the table in. The keyspace must already exist.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-keyspacename
*/
keyspaceName: string;
/**
* One or more columns that uniquely identify every row in the table. Every table must have a partition key.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-partitionkeycolumns
*/
partitionKeyColumns: Array<CfnTable.ColumnProperty | cdk.IResolvable> | cdk.IResolvable;
/**
* The billing mode for the table, which determines how you'll be charged for reads and writes:
*
* - *On-demand mode* (default) - You pay based on the actual reads and writes your application performs.
* - *Provisioned mode* - Lets you specify the number of reads and writes per second that you need for your application.
*
* If you don't specify a value for this property, then the table will use on-demand mode.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-billingmode
*/
billingMode: CfnTable.BillingModeProperty | cdk.IResolvable | undefined;
/**
* Enables client-side timestamps for the table. By default, the setting is disabled. You can enable client-side timestamps with the following option:
*
* - `status: "enabled"`
*
* After client-side timestamps are enabled for a table, you can't disable this setting.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-clientsidetimestampsenabled
*/
clientSideTimestampsEnabled: boolean | cdk.IResolvable | undefined;
/**
* One or more columns that determine how the table data is sorted.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-clusteringkeycolumns
*/
clusteringKeyColumns: Array<CfnTable.ClusteringKeyColumnProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
/**
* The default Time To Live (TTL) value for all rows in a table in seconds. The maximum configurable value is 630,720,000 seconds, which is the equivalent of 20 years. By default, the TTL value for a table is 0, which means data does not expire.
*
* For more information, see [Setting the default TTL value for a table](https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl) in the *Amazon Keyspaces Developer Guide* .
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-defaulttimetolive
*/
defaultTimeToLive: number | undefined;
/**
* The encryption at rest options for the table.
*
* - *AWS owned key* (default) - The key is owned by Amazon Keyspaces.
* - *Customer managed key* - The key is stored in your account and is created, owned, and managed by you.
*
* > If you choose encryption with a customer managed key, you must specify a valid customer managed KMS key with permissions granted to Amazon Keyspaces.
*
* For more information, see [Encryption at rest in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in the *Amazon Keyspaces Developer Guide* .
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-encryptionspecification
*/
encryptionSpecification: CfnTable.EncryptionSpecificationProperty | cdk.IResolvable | undefined;
/**
* Specifies if point-in-time recovery is enabled or disabled for the table. The options are `PointInTimeRecoveryEnabled=true` and `PointInTimeRecoveryEnabled=false` . If not specified, the default is `PointInTimeRecoveryEnabled=false` .
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-pointintimerecoveryenabled
*/
pointInTimeRecoveryEnabled: boolean | cdk.IResolvable | undefined;
/**
* One or more columns that are not part of the primary key - that is, columns that are *not* defined as partition key columns or clustering key columns.
*
* You can add regular columns to existing tables by adding them to the template.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-regularcolumns
*/
regularColumns: Array<CfnTable.ColumnProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
/**
* The name of the table to be created. The table name is case sensitive. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the table name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) .
*
* > If you specify a name, you can't perform updates that require replacing this resource. You can perform updates that require no interruption or some interruption. If you must replace the resource, specify a new name.
*
* *Length constraints:* Minimum length of 3. Maximum length of 255.
*
* *Pattern:* `^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$`
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-tablename
*/
tableName: string | undefined;
/**
* A list of key-value pair tags to be attached to the resource.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-tags
*/
readonly tags: cdk.TagManager;
/**
* Create a new `AWS::Cassandra::Table`.
*
* @param scope - scope in which this resource is defined
* @param id - scoped id of the resource
* @param props - resource properties
*/
constructor(scope: constructs.Construct, id: string, props: CfnTableProps);
/**
* Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes
*
*/
inspect(inspector: cdk.TreeInspector): void;
protected get cfnProperties(): {
[key: string]: any;
};
protected renderProperties(props: {
[key: string]: any;
}): {
[key: string]: any;
};
}
export declare namespace CfnTable {
/**
* Determines the billing mode for the table - on-demand or provisioned.
*
* @struct
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-billingmode.html
*/
interface BillingModeProperty {
/**
* The billing mode for the table:
*
* - On-demand mode - `ON_DEMAND`
* - Provisioned mode - `PROVISIONED`
*
* > If you choose `PROVISIONED` mode, then you also need to specify provisioned throughput (read and write capacity) for the table.
*
* Valid values: `ON_DEMAND` | `PROVISIONED`
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-billingmode.html#cfn-cassandra-table-billingmode-mode
*/
readonly mode: string;
/**
* The provisioned read capacity and write capacity for the table. For more information, see [Provisioned throughput capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html#ReadWriteCapacityMode.Provisioned) in the *Amazon Keyspaces Developer Guide* .
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-billingmode.html#cfn-cassandra-table-billingmode-provisionedthroughput
*/
readonly provisionedThroughput?: CfnTable.ProvisionedThroughputProperty | cdk.IResolvable;
}
}
export declare namespace CfnTable {
/**
* Defines an individual column within the clustering key.
*
* @struct
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-clusteringkeycolumn.html
*/
interface ClusteringKeyColumnProperty {
/**
* The name and data type of this clustering key column.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-clusteringkeycolumn.html#cfn-cassandra-table-clusteringkeycolumn-column
*/
readonly column: CfnTable.ColumnProperty | cdk.IResolvable;
/**
* The order in which this column's data is stored:
*
* - `ASC` (default) - The column's data is stored in ascending order.
* - `DESC` - The column's data is stored in descending order.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-clusteringkeycolumn.html#cfn-cassandra-table-clusteringkeycolumn-orderby
*/
readonly orderBy?: string;
}
}
export declare namespace CfnTable {
/**
* The name and data type of an individual column in a table.
*
* @struct
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html
*/
interface ColumnProperty {
/**
* The name of the column. For more information, see [Identifiers](https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.elements.identifier) in the *Amazon Keyspaces Developer Guide* .
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html#cfn-cassandra-table-column-columnname
*/
readonly columnName: string;
/**
* The data type of the column. For more information, see [Data types](https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types) in the *Amazon Keyspaces Developer Guide* .
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html#cfn-cassandra-table-column-columntype
*/
readonly columnType: string;
}
}
export declare namespace CfnTable {
/**
* Specifies the encryption at rest option selected for the table.
*
* @struct
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-encryptionspecification.html
*/
interface EncryptionSpecificationProperty {
/**
* The encryption at rest options for the table.
*
* - *AWS owned key* (default) - `AWS_OWNED_KMS_KEY`
* - *Customer managed key* - `CUSTOMER_MANAGED_KMS_KEY`
*
* > If you choose `CUSTOMER_MANAGED_KMS_KEY` , a `kms_key_identifier` in the format of a key ARN is required.
*
* Valid values: `CUSTOMER_MANAGED_KMS_KEY` | `AWS_OWNED_KMS_KEY` .
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-encryptionspecification.html#cfn-cassandra-table-encryptionspecification-encryptiontype
*/
readonly encryptionType: string;
/**
* Requires a `kms_key_identifier` in the format of a key ARN.
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-encryptionspecification.html#cfn-cassandra-table-encryptionspecification-kmskeyidentifier
*/
readonly kmsKeyIdentifier?: string;
}
}
export declare namespace CfnTable {
/**
* The provisioned throughput for the table, which consists of `ReadCapacityUnits` and `WriteCapacityUnits` .
*
* @struct
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-provisionedthroughput.html
*/
interface ProvisionedThroughputProperty {
/**
* The amount of read capacity that's provisioned for the table. For more information, see [Read/write capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) in the *Amazon Keyspaces Developer Guide* .
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-provisionedthroughput.html#cfn-cassandra-table-provisionedthroughput-readcapacityunits
*/
readonly readCapacityUnits: number;
/**
* The amount of write capacity that's provisioned for the table. For more information, see [Read/write capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) in the *Amazon Keyspaces Developer Guide* .
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-provisionedthroughput.html#cfn-cassandra-table-provisionedthroughput-writecapacityunits
*/
readonly writeCapacityUnits: number;
}
}