Class: AWSCDK::DAX::CfnClusterProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
dax/cfn_cluster_props.rb

Overview

Properties for defining a CfnCluster.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(iam_role_arn:, node_type:, replication_factor:, availability_zones: nil, cluster_endpoint_encryption_type: nil, cluster_name: nil, description: nil, network_type: nil, notification_topic_arn: nil, parameter_group_name: nil, preferred_maintenance_window: nil, security_group_ids: nil, sse_specification: nil, subnet_group_name: nil, tags: nil) ⇒ CfnClusterProps

Returns a new instance of CfnClusterProps.

Parameters:

  • iam_role_arn (String)

    A valid Amazon Resource Name (ARN) that identifies an IAM role.

  • node_type (String)

    The node type for the nodes in the cluster.

  • replication_factor (Numeric)

    The number of nodes in the DAX cluster.

  • availability_zones (Array<String>, nil) (defaults to: nil)

    The Availability Zones (AZs) in which the cluster nodes will reside after the cluster has been created or updated.

  • cluster_endpoint_encryption_type (String, nil) (defaults to: nil)

    The encryption type of the cluster's endpoint. Available values are:.

  • cluster_name (String, nil) (defaults to: nil)

    The name of the DAX cluster.

  • description (String, nil) (defaults to: nil)

    The description of the cluster.

  • network_type (String, nil) (defaults to: nil)

    The IP address type of the cluster. Values are:.

  • notification_topic_arn (String, nil) (defaults to: nil)

    The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications will be sent.

  • parameter_group_name (String, nil) (defaults to: nil)

    The parameter group to be associated with the DAX cluster.

  • preferred_maintenance_window (String, nil) (defaults to: nil)

    A range of time when maintenance of DAX cluster software will be performed.

  • security_group_ids (Array<String>, nil) (defaults to: nil)

    A list of security group IDs to be assigned to each node in the DAX cluster.

  • sse_specification (AWSCDK::IResolvable, AWSCDK::DAX::CfnCluster::SSESpecificationProperty, nil) (defaults to: nil)

    Represents the settings used to enable server-side encryption on the cluster.

  • subnet_group_name (String, nil) (defaults to: nil)

    The name of the subnet group to be used for the replication group.

  • tags (Object, nil) (defaults to: nil)

    A set of tags to associate with the DAX cluster.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'dax/cfn_cluster_props.rb', line 24

def initialize(iam_role_arn:, node_type:, replication_factor:, availability_zones: nil, cluster_endpoint_encryption_type: nil, cluster_name: nil, description: nil, network_type: nil, notification_topic_arn: nil, parameter_group_name: nil, preferred_maintenance_window: nil, security_group_ids: nil, sse_specification: nil, subnet_group_name: nil, tags: nil)
  @iam_role_arn = iam_role_arn
  Jsii::Type.check_type(@iam_role_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "iamRoleArn")
  @node_type = node_type
  Jsii::Type.check_type(@node_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "nodeType")
  @replication_factor = replication_factor
  Jsii::Type.check_type(@replication_factor, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "replicationFactor")
  @availability_zones = availability_zones
  Jsii::Type.check_type(@availability_zones, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "availabilityZones") unless @availability_zones.nil?
  @cluster_endpoint_encryption_type = cluster_endpoint_encryption_type
  Jsii::Type.check_type(@cluster_endpoint_encryption_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "clusterEndpointEncryptionType") unless @cluster_endpoint_encryption_type.nil?
  @cluster_name = cluster_name
  Jsii::Type.check_type(@cluster_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "clusterName") unless @cluster_name.nil?
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @network_type = network_type
  Jsii::Type.check_type(@network_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "networkType") unless @network_type.nil?
  @notification_topic_arn = notification_topic_arn
  Jsii::Type.check_type(@notification_topic_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "notificationTopicArn") unless @notification_topic_arn.nil?
  @parameter_group_name = parameter_group_name
  Jsii::Type.check_type(@parameter_group_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "parameterGroupName") unless @parameter_group_name.nil?
  @preferred_maintenance_window = preferred_maintenance_window
  Jsii::Type.check_type(@preferred_maintenance_window, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "preferredMaintenanceWindow") unless @preferred_maintenance_window.nil?
  @security_group_ids = security_group_ids
  Jsii::Type.check_type(@security_group_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "securityGroupIds") unless @security_group_ids.nil?
  @sse_specification = sse_specification.is_a?(Hash) ? ::AWSCDK::DAX::CfnCluster::SSESpecificationProperty.new(**sse_specification.transform_keys(&:to_sym)) : sse_specification
  Jsii::Type.check_type(@sse_specification, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19kYXguQ2ZuQ2x1c3Rlci5TU0VTcGVjaWZpY2F0aW9uUHJvcGVydHkifV19fQ==")), "sseSpecification") unless @sse_specification.nil?
  @subnet_group_name = subnet_group_name
  Jsii::Type.check_type(@subnet_group_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "subnetGroupName") unless @subnet_group_name.nil?
  @tags = tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "tags") unless @tags.nil?
end

Instance Attribute Details

#availability_zonesArray<String>? (readonly)

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.



86
87
88
# File 'dax/cfn_cluster_props.rb', line 86

def availability_zones
  @availability_zones
end

#cluster_endpoint_encryption_typeString? (readonly)

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 .



96
97
98
# File 'dax/cfn_cluster_props.rb', line 96

def cluster_endpoint_encryption_type
  @cluster_endpoint_encryption_type
end

#cluster_nameString? (readonly)

The name of the DAX cluster.



101
102
103
# File 'dax/cfn_cluster_props.rb', line 101

def cluster_name
  @cluster_name
end

#descriptionString? (readonly)

The description of the cluster.



106
107
108
# File 'dax/cfn_cluster_props.rb', line 106

def description
  @description
end

#iam_role_arnString (readonly)

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.



63
64
65
# File 'dax/cfn_cluster_props.rb', line 63

def iam_role_arn
  @iam_role_arn
end

#network_typeString? (readonly)

The IP address type of the cluster. Values are:.

  • ipv4 - IPv4 addresses only
  • ipv6 - IPv6 addresses only
  • dual_stack - Both IPv4 and IPv6 addresses


115
116
117
# File 'dax/cfn_cluster_props.rb', line 115

def network_type
  @network_type
end

#node_typeString (readonly)

The node type for the nodes in the cluster.

(All nodes in a DAX cluster are of the same type.)



70
71
72
# File 'dax/cfn_cluster_props.rb', line 70

def node_type
  @node_type
end

#notification_topic_arnString? (readonly)

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.



122
123
124
# File 'dax/cfn_cluster_props.rb', line 122

def notification_topic_arn
  @notification_topic_arn
end

#parameter_group_nameString? (readonly)

The parameter group to be associated with the DAX cluster.



127
128
129
# File 'dax/cfn_cluster_props.rb', line 127

def parameter_group_name
  @parameter_group_name
end

#preferred_maintenance_windowString? (readonly)

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.



134
135
136
# File 'dax/cfn_cluster_props.rb', line 134

def preferred_maintenance_window
  @preferred_maintenance_window
end

#replication_factorNumeric (readonly)

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.



79
80
81
# File 'dax/cfn_cluster_props.rb', line 79

def replication_factor
  @replication_factor
end

#security_group_idsArray<String>? (readonly)

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.



143
144
145
# File 'dax/cfn_cluster_props.rb', line 143

def security_group_ids
  @security_group_ids
end

#sse_specificationAWSCDK::IResolvable, ... (readonly)

Represents the settings used to enable server-side encryption on the cluster.



148
149
150
# File 'dax/cfn_cluster_props.rb', line 148

def sse_specification
  @sse_specification
end

#subnet_group_nameString? (readonly)

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.



155
156
157
# File 'dax/cfn_cluster_props.rb', line 155

def subnet_group_name
  @subnet_group_name
end

#tagsObject? (readonly)

A set of tags to associate with the DAX cluster.



160
161
162
# File 'dax/cfn_cluster_props.rb', line 160

def tags
  @tags
end

Class Method Details

.jsii_propertiesObject



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'dax/cfn_cluster_props.rb', line 162

def self.jsii_properties
  {
    :iam_role_arn => "iamRoleArn",
    :node_type => "nodeType",
    :replication_factor => "replicationFactor",
    :availability_zones => "availabilityZones",
    :cluster_endpoint_encryption_type => "clusterEndpointEncryptionType",
    :cluster_name => "clusterName",
    :description => "description",
    :network_type => "networkType",
    :notification_topic_arn => "notificationTopicArn",
    :parameter_group_name => "parameterGroupName",
    :preferred_maintenance_window => "preferredMaintenanceWindow",
    :security_group_ids => "securityGroupIds",
    :sse_specification => "sseSpecification",
    :subnet_group_name => "subnetGroupName",
    :tags => "tags",
  }
end

Instance Method Details

#to_jsiiObject



182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
# File 'dax/cfn_cluster_props.rb', line 182

def to_jsii
  result = {}
  result.merge!({
    "iamRoleArn" => @iam_role_arn,
    "nodeType" => @node_type,
    "replicationFactor" => @replication_factor,
    "availabilityZones" => @availability_zones,
    "clusterEndpointEncryptionType" => @cluster_endpoint_encryption_type,
    "clusterName" => @cluster_name,
    "description" => @description,
    "networkType" => @network_type,
    "notificationTopicArn" => @notification_topic_arn,
    "parameterGroupName" => @parameter_group_name,
    "preferredMaintenanceWindow" => @preferred_maintenance_window,
    "securityGroupIds" => @security_group_ids,
    "sseSpecification" => @sse_specification,
    "subnetGroupName" => @subnet_group_name,
    "tags" => @tags,
  })
  result.compact
end