304 lines
12 KiB
TypeScript
304 lines
12 KiB
TypeScript
import * as cdk from "../../core/lib";
|
|
import * as constructs from "constructs";
|
|
import * as cfn_parse from "../../core/lib/helpers-internal";
|
|
import { ClusterReference, IClusterRef } from "../../interfaces/generated/aws-dsql-interfaces.generated";
|
|
/**
|
|
* The `AWS::DSQL::Cluster` resource specifies an cluster. You can use this resource to create, modify, and manage clusters.
|
|
*
|
|
* This resource supports both single-Region clusters and multi-Region clusters through the `MultiRegionProperties` parameter.
|
|
*
|
|
* > Creating multi-Region clusters requires additional IAM permissions beyond those needed for single-Region clusters. > - The witness Region specified in `multiRegionProperties.witnessRegion` cannot be the same as the cluster's Region.
|
|
*
|
|
* *Required permissions*
|
|
*
|
|
* - **dsql:CreateCluster** - Required to create a cluster.
|
|
*
|
|
* Resources: `arn:aws:dsql:region:account-id:cluster/*`
|
|
* - **dsql:TagResource** - Permission to add tags to a resource.
|
|
*
|
|
* Resources: `arn:aws:dsql:region:account-id:cluster/*`
|
|
* - **dsql:PutMultiRegionProperties** - Permission to configure multi-Region properties for a cluster.
|
|
*
|
|
* Resources: `arn:aws:dsql:region:account-id:cluster/*`
|
|
* - **dsql:AddPeerCluster** - When specifying `multiRegionProperties.clusters` , permission to add peer clusters.
|
|
*
|
|
* Resources:
|
|
*
|
|
* - Local cluster: `arn:aws:dsql:region:account-id:cluster/*`
|
|
* - Each peer cluster: exact ARN of each specified peer cluster
|
|
* - **dsql:PutWitnessRegion** - When specifying `multiRegionProperties.witnessRegion` , permission to set a witness Region. This permission is checked both in the cluster Region and in the witness Region.
|
|
*
|
|
* Resources: `arn:aws:dsql:region:account-id:cluster/*`
|
|
*
|
|
* Condition Keys: `dsql:WitnessRegion` (matching the specified witness region)
|
|
*
|
|
* @cloudformationResource AWS::DSQL::Cluster
|
|
* @stability external
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dsql-cluster.html
|
|
*/
|
|
export declare class CfnCluster extends cdk.CfnResource implements cdk.IInspectable, IClusterRef, cdk.ITaggableV2 {
|
|
/**
|
|
* 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;
|
|
/**
|
|
* Creates a new IClusterRef from a identifier
|
|
*/
|
|
static fromIdentifier(scope: constructs.Construct, id: string, identifier: string): IClusterRef;
|
|
static arnForCluster(resource: IClusterRef): string;
|
|
/**
|
|
* Tag Manager which manages the tags for this resource
|
|
*/
|
|
readonly cdkTagManager: cdk.TagManager;
|
|
/**
|
|
* Whether deletion protection is enabled on this cluster.
|
|
*/
|
|
private _deletionProtectionEnabled?;
|
|
/**
|
|
* The KMS key that encrypts data on the cluster.
|
|
*/
|
|
private _kmsEncryptionKey?;
|
|
/**
|
|
* Defines the structure for multi-Region cluster configurations, containing the witness Region and peered cluster settings.
|
|
*/
|
|
private _multiRegionProperties?;
|
|
/**
|
|
* A resource-based policy document in JSON format.
|
|
*/
|
|
private _policyDocument?;
|
|
/**
|
|
* A map of key and value pairs this cluster is tagged with.
|
|
*/
|
|
private _tags?;
|
|
protected readonly cfnPropertyNames: Record<string, string>;
|
|
/**
|
|
* Create a new `AWS::DSQL::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;
|
|
/**
|
|
* Whether deletion protection is enabled on this cluster.
|
|
*/
|
|
get deletionProtectionEnabled(): boolean | cdk.IResolvable | undefined;
|
|
/**
|
|
* Whether deletion protection is enabled on this cluster.
|
|
*/
|
|
set deletionProtectionEnabled(value: boolean | cdk.IResolvable | undefined);
|
|
/**
|
|
* The KMS key that encrypts data on the cluster.
|
|
*/
|
|
get kmsEncryptionKey(): string | undefined;
|
|
/**
|
|
* The KMS key that encrypts data on the cluster.
|
|
*/
|
|
set kmsEncryptionKey(value: string | undefined);
|
|
/**
|
|
* Defines the structure for multi-Region cluster configurations, containing the witness Region and peered cluster settings.
|
|
*/
|
|
get multiRegionProperties(): cdk.IResolvable | CfnCluster.MultiRegionPropertiesProperty | undefined;
|
|
/**
|
|
* Defines the structure for multi-Region cluster configurations, containing the witness Region and peered cluster settings.
|
|
*/
|
|
set multiRegionProperties(value: cdk.IResolvable | CfnCluster.MultiRegionPropertiesProperty | undefined);
|
|
/**
|
|
* A resource-based policy document in JSON format.
|
|
*/
|
|
get policyDocument(): string | undefined;
|
|
/**
|
|
* A resource-based policy document in JSON format.
|
|
*/
|
|
set policyDocument(value: string | undefined);
|
|
/**
|
|
* A map of key and value pairs this cluster is tagged with.
|
|
*/
|
|
get tags(): Array<cdk.CfnTag> | undefined;
|
|
/**
|
|
* A map of key and value pairs this cluster is tagged with.
|
|
*/
|
|
set tags(value: Array<cdk.CfnTag> | undefined);
|
|
/**
|
|
* The timestamp when the cluster was created, in ISO 8601 format.
|
|
*
|
|
* @cloudformationAttribute CreationTime
|
|
*/
|
|
get attrCreationTime(): string;
|
|
/**
|
|
* The encryption configuration details for the cluster.
|
|
*
|
|
* @cloudformationAttribute EncryptionDetails
|
|
*/
|
|
get attrEncryptionDetails(): cdk.IResolvable;
|
|
/**
|
|
* The connection endpoint for the created cluster.
|
|
*
|
|
* @cloudformationAttribute Endpoint
|
|
*/
|
|
get attrEndpoint(): string;
|
|
/**
|
|
* The unique identifier assigned to the cluster upon creation.
|
|
*
|
|
* @cloudformationAttribute Identifier
|
|
*/
|
|
get attrIdentifier(): string;
|
|
/**
|
|
* The version number of the cluster's resource based policy
|
|
*
|
|
* @cloudformationAttribute PolicyVersion
|
|
*/
|
|
get attrPolicyVersion(): string;
|
|
/**
|
|
* The Amazon Resource Name (ARN) of the cluster. Used for IAM permissions and resource identification.
|
|
*
|
|
* @cloudformationAttribute ResourceArn
|
|
*/
|
|
get attrResourceArn(): string;
|
|
/**
|
|
* The current status of the cluster. Possible values include: CREATING, ACTIVE, DELETING, FAILED.
|
|
*
|
|
* The cluster can have two additional status values when working with multi-Region clusters:
|
|
*
|
|
* `PENDING_SETUP` —Indicates the cluster is being configured
|
|
*
|
|
* `PENDING_DELETE` —Indicates the cluster is being deleted
|
|
*
|
|
* *Note:* These status values only appear for multi-Region cluster operations.
|
|
*
|
|
* @cloudformationAttribute Status
|
|
*/
|
|
get attrStatus(): string;
|
|
/**
|
|
* The DSQL cluster VPC endpoint.
|
|
*
|
|
* @cloudformationAttribute VpcEndpoint
|
|
*/
|
|
get attrVpcEndpoint(): string;
|
|
/**
|
|
* The VPC Endpoint Service name for the cluster. This can be used to create a VPC endpoint to connect to the cluster from within a VPC.
|
|
*
|
|
* @cloudformationAttribute VpcEndpointServiceName
|
|
*/
|
|
get attrVpcEndpointServiceName(): 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>;
|
|
}
|
|
export declare namespace CfnCluster {
|
|
/**
|
|
* Defines the structure for multi-Region cluster configurations, containing the witness Region and peered cluster settings.
|
|
*
|
|
* @struct
|
|
* @stability external
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dsql-cluster-multiregionproperties.html
|
|
*/
|
|
interface MultiRegionPropertiesProperty {
|
|
/**
|
|
* The set of peered clusters that form the multi-Region cluster configuration.
|
|
*
|
|
* Each peered cluster represents a database instance in a different Region.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dsql-cluster-multiregionproperties.html#cfn-dsql-cluster-multiregionproperties-clusters
|
|
*/
|
|
readonly clusters?: Array<string>;
|
|
/**
|
|
* The Region that serves as the witness Region for a multi-Region cluster.
|
|
*
|
|
* The witness Region helps maintain cluster consistency and quorum.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dsql-cluster-multiregionproperties.html#cfn-dsql-cluster-multiregionproperties-witnessregion
|
|
*/
|
|
readonly witnessRegion?: string;
|
|
}
|
|
/**
|
|
* Configuration details about encryption for the cluster including the AWS key ARN, encryption type, and encryption status.
|
|
*
|
|
* @struct
|
|
* @stability external
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dsql-cluster-encryptiondetails.html
|
|
*/
|
|
interface EncryptionDetailsProperty {
|
|
/**
|
|
* The status of encryption for the cluster.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dsql-cluster-encryptiondetails.html#cfn-dsql-cluster-encryptiondetails-encryptionstatus
|
|
*/
|
|
readonly encryptionStatus?: string;
|
|
/**
|
|
* The type of encryption that protects the data on your cluster.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dsql-cluster-encryptiondetails.html#cfn-dsql-cluster-encryptiondetails-encryptiontype
|
|
*/
|
|
readonly encryptionType?: string;
|
|
/**
|
|
* The ARN of the AWS key that encrypts data in the cluster.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dsql-cluster-encryptiondetails.html#cfn-dsql-cluster-encryptiondetails-kmskeyarn
|
|
*/
|
|
readonly kmsKeyArn?: string;
|
|
}
|
|
}
|
|
/**
|
|
* Properties for defining a `CfnCluster`
|
|
*
|
|
* @struct
|
|
* @stability external
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dsql-cluster.html
|
|
*/
|
|
export interface CfnClusterProps {
|
|
/**
|
|
* Whether deletion protection is enabled on this cluster.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dsql-cluster.html#cfn-dsql-cluster-deletionprotectionenabled
|
|
*/
|
|
readonly deletionProtectionEnabled?: boolean | cdk.IResolvable;
|
|
/**
|
|
* The KMS key that encrypts data on the cluster.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dsql-cluster.html#cfn-dsql-cluster-kmsencryptionkey
|
|
*/
|
|
readonly kmsEncryptionKey?: string;
|
|
/**
|
|
* Defines the structure for multi-Region cluster configurations, containing the witness Region and peered cluster settings.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dsql-cluster.html#cfn-dsql-cluster-multiregionproperties
|
|
*/
|
|
readonly multiRegionProperties?: cdk.IResolvable | CfnCluster.MultiRegionPropertiesProperty;
|
|
/**
|
|
* A resource-based policy document in JSON format.
|
|
*
|
|
* Length constraints: Minimum length of 1. Maximum length of 20480 characters (approximately 20KB).
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dsql-cluster.html#cfn-dsql-cluster-policydocument
|
|
*/
|
|
readonly policyDocument?: string;
|
|
/**
|
|
* A map of key and value pairs this cluster is tagged with.
|
|
*
|
|
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dsql-cluster.html#cfn-dsql-cluster-tags
|
|
*/
|
|
readonly tags?: Array<cdk.CfnTag>;
|
|
}
|
|
export type { IClusterRef, ClusterReference };
|