UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

652 lines (651 loc) 24.8 kB
import * as cdk from "../../core/lib"; import * as constructs from "constructs"; import * as cfn_parse from "../../core/lib/helpers-internal"; import { ClusterReference, IClusterRef, IParameterGroupRef, ISubnetGroupRef, ParameterGroupReference, SubnetGroupReference } from "../../interfaces/generated/aws-dax-interfaces.generated"; /** * Creates a DAX cluster. * * All nodes in the cluster run the same DAX caching software. * * @cloudformationResource AWS::DAX::Cluster * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-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; /** * Creates a new IClusterRef from an ARN */ static fromClusterArn(scope: constructs.Construct, id: string, arn: string): IClusterRef; /** * Creates a new IClusterRef from a clusterName */ static fromClusterName(scope: constructs.Construct, id: string, clusterName: string): IClusterRef; static arnForCluster(resource: IClusterRef): string; /** * The Availability Zones (AZs) in which the cluster nodes will reside after the cluster has been created or updated. */ private _availabilityZones?; /** * The encryption type of the cluster's endpoint. Available values are:. */ private _clusterEndpointEncryptionType?; /** * The name of the DAX cluster. */ private _clusterName?; /** * The description of the cluster. */ private _description?; /** * A valid Amazon Resource Name (ARN) that identifies an IAM role. */ private _iamRoleArn; /** * The IP address type of the cluster. Values are:. */ private _networkType?; /** * The node type for the nodes in the cluster. */ private _nodeType; /** * The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications will be sent. */ private _notificationTopicArn?; /** * The parameter group to be associated with the DAX cluster. */ private _parameterGroupName?; /** * A range of time when maintenance of DAX cluster software will be performed. */ private _preferredMaintenanceWindow?; /** * The number of nodes in the DAX cluster. */ private _replicationFactor; /** * A list of security group IDs to be assigned to each node in the DAX cluster. */ private _securityGroupIds?; /** * Represents the settings used to enable server-side encryption on the cluster. */ private _sseSpecification?; /** * The name of the subnet group to be used for the replication group. */ private _subnetGroupName?; /** * Tag Manager which manages the tags for this resource */ readonly tags: cdk.TagManager; /** * A set of tags to associate with the DAX cluster. */ private _tagsRaw?; /** * Create a new `AWS::DAX::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 Availability Zones (AZs) in which the cluster nodes will reside after the cluster has been created or updated. */ get availabilityZones(): Array<string> | undefined; /** * The Availability Zones (AZs) in which the cluster nodes will reside after the cluster has been created or updated. */ set availabilityZones(value: Array<string> | undefined); /** * The encryption type of the cluster's endpoint. Available values are:. */ get clusterEndpointEncryptionType(): string | undefined; /** * The encryption type of the cluster's endpoint. Available values are:. */ set clusterEndpointEncryptionType(value: string | undefined); /** * The name of the DAX cluster. */ get clusterName(): string | undefined; /** * The name of the DAX cluster. */ set clusterName(value: string | undefined); /** * The description of the cluster. */ get description(): string | undefined; /** * The description of the cluster. */ set description(value: string | undefined); /** * A valid Amazon Resource Name (ARN) that identifies an IAM role. */ get iamRoleArn(): string; /** * A valid Amazon Resource Name (ARN) that identifies an IAM role. */ set iamRoleArn(value: string); /** * The IP address type of the cluster. Values are:. */ get networkType(): string | undefined; /** * The IP address type of the cluster. Values are:. */ set networkType(value: string | undefined); /** * The node type for the nodes in the cluster. */ get nodeType(): string; /** * The node type for the nodes in the cluster. */ set nodeType(value: string); /** * The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications will be sent. */ get notificationTopicArn(): string | undefined; /** * The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications will be sent. */ set notificationTopicArn(value: string | undefined); /** * The parameter group to be associated with the DAX cluster. */ get parameterGroupName(): string | undefined; /** * The parameter group to be associated with the DAX cluster. */ set parameterGroupName(value: string | undefined); /** * A range of time when maintenance of DAX cluster software will be performed. */ get preferredMaintenanceWindow(): string | undefined; /** * A range of time when maintenance of DAX cluster software will be performed. */ set preferredMaintenanceWindow(value: string | undefined); /** * The number of nodes in the DAX cluster. */ get replicationFactor(): number; /** * The number of nodes in the DAX cluster. */ set replicationFactor(value: number); /** * A list of security group IDs to be assigned to each node in the DAX cluster. */ get securityGroupIds(): Array<string> | undefined; /** * A list of security group IDs to be assigned to each node in the DAX cluster. */ set securityGroupIds(value: Array<string> | undefined); /** * Represents the settings used to enable server-side encryption on the cluster. */ get sseSpecification(): cdk.IResolvable | CfnCluster.SSESpecificationProperty | undefined; /** * Represents the settings used to enable server-side encryption on the cluster. */ set sseSpecification(value: cdk.IResolvable | CfnCluster.SSESpecificationProperty | undefined); /** * The name of the subnet group to be used for the replication group. */ get subnetGroupName(): string | undefined; /** * The name of the subnet group to be used for the replication group. */ set subnetGroupName(value: string | undefined); /** * A set of tags to associate with the DAX cluster. */ get tagsRaw(): any | undefined; /** * A set of tags to associate with the DAX cluster. */ set tagsRaw(value: any | undefined); /** * Returns the ARN of the DAX cluster. For example: * * `{ "Fn::GetAtt": [" MyDAXCluster ", "Arn"] }` * * Returns a value similar to the following: * * `arn:aws:dax:us-east-1:111122223333:cache/MyDAXCluster` * * @cloudformationAttribute Arn */ get attrArn(): string; /** * Returns the endpoint of the DAX cluster. For example: * * `{ "Fn::GetAtt": [" MyDAXCluster ", "ClusterDiscoveryEndpoint"] }` * * Returns a value similar to the following: * * `mydaxcluster.0h3d6x.clustercfg.dax.use1.cache.amazonaws.com:8111` * * @cloudformationAttribute ClusterDiscoveryEndpoint */ get attrClusterDiscoveryEndpoint(): string; /** * Returns the endpoint URL of the DAX cluster. * * @cloudformationAttribute ClusterDiscoveryEndpointURL */ get attrClusterDiscoveryEndpointUrl(): string; /** * @cloudformationAttribute Id */ get attrId(): 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 { /** * Represents the settings used to enable server-side encryption. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dax-cluster-ssespecification.html */ interface SSESpecificationProperty { /** * Indicates whether server-side encryption is enabled (true) or disabled (false) on the cluster. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dax-cluster-ssespecification.html#cfn-dax-cluster-ssespecification-sseenabled */ readonly sseEnabled?: boolean | cdk.IResolvable; } } /** * Properties for defining a `CfnCluster` * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html */ export interface CfnClusterProps { /** * The Availability Zones (AZs) in which the cluster nodes will reside after the cluster has been created or updated. * * If provided, the length of this list must equal the `ReplicationFactor` parameter. If you omit this parameter, DAX will spread the nodes across Availability Zones for the highest availability. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-availabilityzones */ readonly availabilityZones?: Array<string>; /** * The encryption type of the cluster's endpoint. Available values are:. * * - `NONE` - The cluster's endpoint will be unencrypted. * - `TLS` - The cluster's endpoint will be encrypted with Transport Layer Security, and will provide an x509 certificate for authentication. * * The default value is `NONE` . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-clusterendpointencryptiontype */ readonly clusterEndpointEncryptionType?: string; /** * The name of the DAX cluster. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-clustername */ readonly clusterName?: string; /** * The description of the cluster. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-description */ readonly description?: string; /** * A valid Amazon Resource Name (ARN) that identifies an IAM role. * * At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-iamrolearn */ readonly iamRoleArn: string; /** * The IP address type of the cluster. Values are:. * * - `ipv4` - IPv4 addresses only * - `ipv6` - IPv6 addresses only * - `dual_stack` - Both IPv4 and IPv6 addresses * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-networktype */ readonly networkType?: string; /** * The node type for the nodes in the cluster. * * (All nodes in a DAX cluster are of the same type.) * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-nodetype */ readonly nodeType: string; /** * The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications will be sent. * * > The Amazon SNS topic owner must be same as the DAX cluster owner. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-notificationtopicarn */ readonly notificationTopicArn?: string; /** * The parameter group to be associated with the DAX cluster. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-parametergroupname */ readonly parameterGroupName?: string; /** * A range of time when maintenance of DAX cluster software will be performed. * * For example: `sun:01:00-sun:09:00` . Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-preferredmaintenancewindow */ readonly preferredMaintenanceWindow?: string; /** * The number of nodes in the DAX cluster. * * A replication factor of 1 will create a single-node cluster, without any read replicas. For additional fault tolerance, you can create a multiple node cluster with one or more read replicas. To do this, set `ReplicationFactor` to a number between 3 (one primary and two read replicas) and 10 (one primary and nine read replicas). `If the AvailabilityZones` parameter is provided, its length must equal the `ReplicationFactor` . * * > AWS recommends that you have at least two read replicas per cluster. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-replicationfactor */ readonly replicationFactor: number; /** * A list of security group IDs to be assigned to each node in the DAX cluster. * * (Each of the security group ID is system-generated.) * * If this parameter is not specified, DAX assigns the default VPC security group to each node. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-securitygroupids */ readonly securityGroupIds?: Array<string>; /** * Represents the settings used to enable server-side encryption on the cluster. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-ssespecification */ readonly sseSpecification?: cdk.IResolvable | CfnCluster.SSESpecificationProperty; /** * The name of the subnet group to be used for the replication group. * * > DAX clusters can only run in an Amazon VPC environment. All of the subnets that you specify in a subnet group must exist in the same VPC. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-subnetgroupname */ readonly subnetGroupName?: string; /** * A set of tags to associate with the DAX cluster. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-tags */ readonly tags?: any; } /** * A named set of parameters that are applied to all of the nodes in a DAX cluster. * * @cloudformationResource AWS::DAX::ParameterGroup * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html */ export declare class CfnParameterGroup extends cdk.CfnResource implements cdk.IInspectable, IParameterGroupRef { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnParameterGroup 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): CfnParameterGroup; /** * Checks whether the given object is a CfnParameterGroup */ static isCfnParameterGroup(x: any): x is CfnParameterGroup; /** * A description of the parameter group. */ private _description?; /** * The name of the parameter group. */ private _parameterGroupName?; /** * An array of name-value pairs for the parameters in the group. */ private _parameterNameValues?; /** * Create a new `AWS::DAX::ParameterGroup`. * * @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?: CfnParameterGroupProps); get parameterGroupRef(): ParameterGroupReference; /** * A description of the parameter group. */ get description(): string | undefined; /** * A description of the parameter group. */ set description(value: string | undefined); /** * The name of the parameter group. */ get parameterGroupName(): string | undefined; /** * The name of the parameter group. */ set parameterGroupName(value: string | undefined); /** * An array of name-value pairs for the parameters in the group. */ get parameterNameValues(): any | cdk.IResolvable | undefined; /** * An array of name-value pairs for the parameters in the group. */ set parameterNameValues(value: any | cdk.IResolvable | undefined); /** * @cloudformationAttribute Id */ get attrId(): 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 `CfnParameterGroup` * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html */ export interface CfnParameterGroupProps { /** * A description of the parameter group. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-description */ readonly description?: string; /** * The name of the parameter group. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parametergroupname */ readonly parameterGroupName?: string; /** * An array of name-value pairs for the parameters in the group. * * Each element in the array represents a single parameter. * * > `record-ttl-millis` and `query-ttl-millis` are the only supported parameter names. For more details, see [Configuring TTL Settings](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.cluster-management.html#DAX.cluster-management.custom-settings.ttl) . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parameternamevalues */ readonly parameterNameValues?: any | cdk.IResolvable; } /** * Creates a new subnet group. * * @cloudformationResource AWS::DAX::SubnetGroup * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html */ export declare class CfnSubnetGroup extends cdk.CfnResource implements cdk.IInspectable, ISubnetGroupRef { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnSubnetGroup 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): CfnSubnetGroup; /** * Checks whether the given object is a CfnSubnetGroup */ static isCfnSubnetGroup(x: any): x is CfnSubnetGroup; /** * The description of the subnet group. */ private _description?; /** * The name of the subnet group. */ private _subnetGroupName?; /** * A list of VPC subnet IDs for the subnet group. */ private _subnetIds; /** * Create a new `AWS::DAX::SubnetGroup`. * * @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: CfnSubnetGroupProps); get subnetGroupRef(): SubnetGroupReference; /** * The description of the subnet group. */ get description(): string | undefined; /** * The description of the subnet group. */ set description(value: string | undefined); /** * The name of the subnet group. */ get subnetGroupName(): string | undefined; /** * The name of the subnet group. */ set subnetGroupName(value: string | undefined); /** * A list of VPC subnet IDs for the subnet group. */ get subnetIds(): Array<string>; /** * A list of VPC subnet IDs for the subnet group. */ set subnetIds(value: Array<string>); /** * @cloudformationAttribute Id */ get attrId(): 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 `CfnSubnetGroup` * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html */ export interface CfnSubnetGroupProps { /** * The description of the subnet group. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-description */ readonly description?: string; /** * The name of the subnet group. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-subnetgroupname */ readonly subnetGroupName?: string; /** * A list of VPC subnet IDs for the subnet group. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-subnetids */ readonly subnetIds: Array<string>; } export type { IClusterRef, ClusterReference }; export type { IParameterGroupRef, ParameterGroupReference }; export type { ISubnetGroupRef, SubnetGroupReference };