368 lines
15 KiB
TypeScript
368 lines
15 KiB
TypeScript
import * as cdk from "../../core/lib";
|
|
import * as constructs from "constructs";
|
|
import * as cfn_parse from "../../core/lib/helpers-internal";
|
|
import { aws_ec2 as ec2Refs, aws_kms as kmsRefs } from "../../interfaces";
|
|
import { ClusterReference, IClusterRef } from "../../interfaces/generated/aws-docdbelastic-interfaces.generated";
|
|
/**
|
|
* Creates a new Amazon DocumentDB elastic cluster and returns its cluster structure.
|
|
*
|
|
* @cloudformationResource AWS::DocDBElastic::Cluster
|
|
* @stability external
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html
|
|
*/
|
|
export declare class CfnCluster extends cdk.CfnResource implements cdk.IInspectable, IClusterRef, cdk.ITaggable {
|
|
/**
|
|
* The CloudFormation resource type name for this resource class.
|
|
*/
|
|
static readonly CFN_RESOURCE_TYPE_NAME: string;
|
|
/**
|
|
* Build a CfnCluster from CloudFormation properties
|
|
*
|
|
* 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): CfnCluster;
|
|
/**
|
|
* Checks whether the given object is a CfnCluster
|
|
*/
|
|
static isCfnCluster(x: any): x is CfnCluster;
|
|
static arnForCluster(resource: IClusterRef): string;
|
|
/**
|
|
* The name of the Amazon DocumentDB elastic clusters administrator.
|
|
*/
|
|
private _adminUserName;
|
|
/**
|
|
* The password for the Elastic DocumentDB cluster administrator and can contain any printable ASCII characters.
|
|
*/
|
|
private _adminUserPassword?;
|
|
/**
|
|
* The authentication type used to determine where to fetch the password used for accessing the elastic cluster.
|
|
*/
|
|
private _authType;
|
|
/**
|
|
* The number of days for which automatic snapshots are retained.
|
|
*/
|
|
private _backupRetentionPeriod?;
|
|
/**
|
|
* The name of the new elastic cluster. This parameter is stored as a lowercase string.
|
|
*/
|
|
private _clusterName;
|
|
/**
|
|
* The KMS key identifier to use to encrypt the new elastic cluster.
|
|
*/
|
|
private _kmsKeyId?;
|
|
/**
|
|
* The daily time range during which automated backups are created if automated backups are enabled, as determined by `backupRetentionPeriod` .
|
|
*/
|
|
private _preferredBackupWindow?;
|
|
/**
|
|
* The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).
|
|
*/
|
|
private _preferredMaintenanceWindow?;
|
|
/**
|
|
* The number of vCPUs assigned to each elastic cluster shard.
|
|
*/
|
|
private _shardCapacity;
|
|
/**
|
|
* The number of shards assigned to the elastic cluster.
|
|
*/
|
|
private _shardCount;
|
|
/**
|
|
* The number of replica instances applying to all shards in the cluster.
|
|
*/
|
|
private _shardInstanceCount?;
|
|
/**
|
|
* The Amazon EC2 subnet IDs for the new elastic cluster.
|
|
*/
|
|
private _subnetIds?;
|
|
/**
|
|
* Tag Manager which manages the tags for this resource
|
|
*/
|
|
readonly tags: cdk.TagManager;
|
|
/**
|
|
* The tags to be assigned to the new elastic cluster.
|
|
*/
|
|
private _tagsRaw?;
|
|
/**
|
|
* A list of EC2 VPC security groups to associate with the new elastic cluster.
|
|
*/
|
|
private _vpcSecurityGroupIds?;
|
|
protected readonly cfnPropertyNames: Record<string, string>;
|
|
/**
|
|
* Create a new `AWS::DocDBElastic::Cluster`.
|
|
*
|
|
* @param scope Scope in which this resource is defined
|
|
* @param id Construct identifier for this resource (unique in its scope)
|
|
* @param props Resource properties
|
|
*/
|
|
constructor(scope: constructs.Construct, id: string, props: CfnClusterProps);
|
|
get clusterRef(): ClusterReference;
|
|
/**
|
|
* The name of the Amazon DocumentDB elastic clusters administrator.
|
|
*/
|
|
get adminUserName(): string;
|
|
/**
|
|
* The name of the Amazon DocumentDB elastic clusters administrator.
|
|
*/
|
|
set adminUserName(value: string);
|
|
/**
|
|
* The password for the Elastic DocumentDB cluster administrator and can contain any printable ASCII characters.
|
|
*/
|
|
get adminUserPassword(): string | undefined;
|
|
/**
|
|
* The password for the Elastic DocumentDB cluster administrator and can contain any printable ASCII characters.
|
|
*/
|
|
set adminUserPassword(value: string | undefined);
|
|
/**
|
|
* The authentication type used to determine where to fetch the password used for accessing the elastic cluster.
|
|
*/
|
|
get authType(): string;
|
|
/**
|
|
* The authentication type used to determine where to fetch the password used for accessing the elastic cluster.
|
|
*/
|
|
set authType(value: string);
|
|
/**
|
|
* The number of days for which automatic snapshots are retained.
|
|
*/
|
|
get backupRetentionPeriod(): number | undefined;
|
|
/**
|
|
* The number of days for which automatic snapshots are retained.
|
|
*/
|
|
set backupRetentionPeriod(value: number | undefined);
|
|
/**
|
|
* The name of the new elastic cluster. This parameter is stored as a lowercase string.
|
|
*/
|
|
get clusterName(): string;
|
|
/**
|
|
* The name of the new elastic cluster. This parameter is stored as a lowercase string.
|
|
*/
|
|
set clusterName(value: string);
|
|
/**
|
|
* The KMS key identifier to use to encrypt the new elastic cluster.
|
|
*/
|
|
get kmsKeyId(): string | undefined;
|
|
/**
|
|
* The KMS key identifier to use to encrypt the new elastic cluster.
|
|
*/
|
|
set kmsKeyId(value: string | undefined);
|
|
/**
|
|
* The daily time range during which automated backups are created if automated backups are enabled, as determined by `backupRetentionPeriod` .
|
|
*/
|
|
get preferredBackupWindow(): string | undefined;
|
|
/**
|
|
* The daily time range during which automated backups are created if automated backups are enabled, as determined by `backupRetentionPeriod` .
|
|
*/
|
|
set preferredBackupWindow(value: string | undefined);
|
|
/**
|
|
* The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).
|
|
*/
|
|
get preferredMaintenanceWindow(): string | undefined;
|
|
/**
|
|
* The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).
|
|
*/
|
|
set preferredMaintenanceWindow(value: string | undefined);
|
|
/**
|
|
* The number of vCPUs assigned to each elastic cluster shard.
|
|
*/
|
|
get shardCapacity(): number;
|
|
/**
|
|
* The number of vCPUs assigned to each elastic cluster shard.
|
|
*/
|
|
set shardCapacity(value: number);
|
|
/**
|
|
* The number of shards assigned to the elastic cluster.
|
|
*/
|
|
get shardCount(): number;
|
|
/**
|
|
* The number of shards assigned to the elastic cluster.
|
|
*/
|
|
set shardCount(value: number);
|
|
/**
|
|
* The number of replica instances applying to all shards in the cluster.
|
|
*/
|
|
get shardInstanceCount(): number | undefined;
|
|
/**
|
|
* The number of replica instances applying to all shards in the cluster.
|
|
*/
|
|
set shardInstanceCount(value: number | undefined);
|
|
/**
|
|
* The Amazon EC2 subnet IDs for the new elastic cluster.
|
|
*/
|
|
get subnetIds(): Array<string> | undefined;
|
|
/**
|
|
* The Amazon EC2 subnet IDs for the new elastic cluster.
|
|
*/
|
|
set subnetIds(value: Array<string> | undefined);
|
|
/**
|
|
* The tags to be assigned to the new elastic cluster.
|
|
*/
|
|
get tagsRaw(): Array<cdk.CfnTag> | undefined;
|
|
/**
|
|
* The tags to be assigned to the new elastic cluster.
|
|
*/
|
|
set tagsRaw(value: Array<cdk.CfnTag> | undefined);
|
|
/**
|
|
* A list of EC2 VPC security groups to associate with the new elastic cluster.
|
|
*/
|
|
get vpcSecurityGroupIds(): Array<string> | undefined;
|
|
/**
|
|
* A list of EC2 VPC security groups to associate with the new elastic cluster.
|
|
*/
|
|
set vpcSecurityGroupIds(value: Array<string> | undefined);
|
|
/**
|
|
* @cloudformationAttribute ClusterArn
|
|
*/
|
|
get attrClusterArn(): string;
|
|
/**
|
|
* The URL used to connect to the elastic cluster.
|
|
*
|
|
* @cloudformationAttribute ClusterEndpoint
|
|
*/
|
|
get attrClusterEndpoint(): string;
|
|
protected get cfnProperties(): Record<string, any>;
|
|
/**
|
|
* Examines the CloudFormation resource and discloses attributes
|
|
*
|
|
* @param inspector tree inspector to collect and process attributes
|
|
*/
|
|
inspect(inspector: cdk.TreeInspector): void;
|
|
protected renderProperties(props: Record<string, any>): Record<string, any>;
|
|
}
|
|
/**
|
|
* Properties for defining a `CfnCluster`
|
|
*
|
|
* @struct
|
|
* @stability external
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html
|
|
*/
|
|
export interface CfnClusterProps {
|
|
/**
|
|
* The name of the Amazon DocumentDB elastic clusters administrator.
|
|
*
|
|
* *Constraints* :
|
|
*
|
|
* - Must be from 1 to 63 letters or numbers.
|
|
* - The first character must be a letter.
|
|
* - Cannot be a reserved word.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-adminusername
|
|
*/
|
|
readonly adminUserName: string;
|
|
/**
|
|
* The password for the Elastic DocumentDB cluster administrator and can contain any printable ASCII characters.
|
|
*
|
|
* *Constraints* :
|
|
*
|
|
* - Must contain from 8 to 100 characters.
|
|
* - Cannot contain a forward slash (/), double quote ("), or the "at" symbol (@).
|
|
* - A valid `AdminUserName` entry is also required.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-adminuserpassword
|
|
*/
|
|
readonly adminUserPassword?: string;
|
|
/**
|
|
* The authentication type used to determine where to fetch the password used for accessing the elastic cluster.
|
|
*
|
|
* Valid types are `PLAIN_TEXT` or `SECRET_ARN` .
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-authtype
|
|
*/
|
|
readonly authType: string;
|
|
/**
|
|
* The number of days for which automatic snapshots are retained.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-backupretentionperiod
|
|
*/
|
|
readonly backupRetentionPeriod?: number;
|
|
/**
|
|
* The name of the new elastic cluster. This parameter is stored as a lowercase string.
|
|
*
|
|
* *Constraints* :
|
|
*
|
|
* - Must contain from 1 to 63 letters, numbers, or hyphens.
|
|
* - The first character must be a letter.
|
|
* - Cannot end with a hyphen or contain two consecutive hyphens.
|
|
*
|
|
* *Example* : `my-cluster`
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-clustername
|
|
*/
|
|
readonly clusterName: string;
|
|
/**
|
|
* The KMS key identifier to use to encrypt the new elastic cluster.
|
|
*
|
|
* The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias instead of the ARN as the KMS encryption key.
|
|
*
|
|
* If an encryption key is not specified, Amazon DocumentDB uses the default encryption key that KMS creates for your account. Your account has a different default encryption key for each Amazon Region.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-kmskeyid
|
|
*/
|
|
readonly kmsKeyId?: kmsRefs.IKeyRef | string;
|
|
/**
|
|
* The daily time range during which automated backups are created if automated backups are enabled, as determined by `backupRetentionPeriod` .
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-preferredbackupwindow
|
|
*/
|
|
readonly preferredBackupWindow?: string;
|
|
/**
|
|
* The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).
|
|
*
|
|
* *Format* : `ddd:hh24:mi-ddd:hh24:mi`
|
|
*
|
|
* *Default* : a 30-minute window selected at random from an 8-hour block of time for each AWS Region , occurring on a random day of the week.
|
|
*
|
|
* *Valid days* : Mon, Tue, Wed, Thu, Fri, Sat, Sun
|
|
*
|
|
* *Constraints* : Minimum 30-minute window.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-preferredmaintenancewindow
|
|
*/
|
|
readonly preferredMaintenanceWindow?: string;
|
|
/**
|
|
* The number of vCPUs assigned to each elastic cluster shard.
|
|
*
|
|
* Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-shardcapacity
|
|
*/
|
|
readonly shardCapacity: number;
|
|
/**
|
|
* The number of shards assigned to the elastic cluster.
|
|
*
|
|
* Maximum is 32.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-shardcount
|
|
*/
|
|
readonly shardCount: number;
|
|
/**
|
|
* The number of replica instances applying to all shards in the cluster.
|
|
*
|
|
* A `shardInstanceCount` value of 1 means there is one writer instance, and any additional instances are replicas that can be used for reads and to improve availability.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-shardinstancecount
|
|
*/
|
|
readonly shardInstanceCount?: number;
|
|
/**
|
|
* The Amazon EC2 subnet IDs for the new elastic cluster.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-subnetids
|
|
*/
|
|
readonly subnetIds?: Array<string>;
|
|
/**
|
|
* The tags to be assigned to the new elastic cluster.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-tags
|
|
*/
|
|
readonly tags?: Array<cdk.CfnTag>;
|
|
/**
|
|
* A list of EC2 VPC security groups to associate with the new elastic cluster.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-vpcsecuritygroupids
|
|
*/
|
|
readonly vpcSecurityGroupIds?: Array<ec2Refs.ISecurityGroupRef | string>;
|
|
}
|
|
export type { IClusterRef, ClusterReference };
|