Class: AWSCDK::DocDBElastic::CfnClusterProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
doc_db_elastic/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(admin_user_name:, auth_type:, cluster_name:, shard_capacity:, shard_count:, admin_user_password: nil, backup_retention_period: nil, kms_key_id: nil, preferred_backup_window: nil, preferred_maintenance_window: nil, shard_instance_count: nil, subnet_ids: nil, tags: nil, vpc_security_group_ids: nil) ⇒ CfnClusterProps

Returns a new instance of CfnClusterProps.

Parameters:

  • admin_user_name (String)

    The name of the Amazon DocumentDB elastic clusters administrator.

  • auth_type (String)

    The authentication type used to determine where to fetch the password used for accessing the elastic cluster.

  • cluster_name (String)

    The name of the new elastic cluster. This parameter is stored as a lowercase string.

  • shard_capacity (Numeric)

    The number of vCPUs assigned to each elastic cluster shard.

  • shard_count (Numeric)

    The number of shards assigned to the elastic cluster.

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

    The password for the Elastic DocumentDB cluster administrator and can contain any printable ASCII characters.

  • backup_retention_period (Numeric, nil) (defaults to: nil)

    The number of days for which automatic snapshots are retained.

  • kms_key_id (String, AWSCDK::Interfaces::AWSKMS::IKeyRef, nil) (defaults to: nil)

    The KMS key identifier to use to encrypt the new elastic cluster.

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

    The daily time range during which automated backups are created if automated backups are enabled, as determined by backupRetentionPeriod .

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

    The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

  • shard_instance_count (Numeric, nil) (defaults to: nil)

    The number of replica instances applying to all shards in the cluster.

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

    The Amazon EC2 subnet IDs for the new elastic cluster.

  • tags (Array<AWSCDK::CfnTag>, nil) (defaults to: nil)

    The tags to be assigned to the new elastic cluster.

  • vpc_security_group_ids (Array<String, AWSCDK::Interfaces::AWSEC2::ISecurityGroupRef>, nil) (defaults to: nil)

    A list of EC2 VPC security groups to associate with the new elastic cluster.



23
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
# File 'doc_db_elastic/cfn_cluster_props.rb', line 23

def initialize(admin_user_name:, auth_type:, cluster_name:, shard_capacity:, shard_count:, admin_user_password: nil, backup_retention_period: nil, kms_key_id: nil, preferred_backup_window: nil, preferred_maintenance_window: nil, shard_instance_count: nil, subnet_ids: nil, tags: nil, vpc_security_group_ids: nil)
  @admin_user_name = admin_user_name
  Jsii::Type.check_type(@admin_user_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "adminUserName")
  @auth_type = auth_type
  Jsii::Type.check_type(@auth_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "authType")
  @cluster_name = cluster_name
  Jsii::Type.check_type(@cluster_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "clusterName")
  @shard_capacity = shard_capacity
  Jsii::Type.check_type(@shard_capacity, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "shardCapacity")
  @shard_count = shard_count
  Jsii::Type.check_type(@shard_count, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "shardCount")
  @admin_user_password = admin_user_password
  Jsii::Type.check_type(@admin_user_password, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "adminUserPassword") unless @admin_user_password.nil?
  @backup_retention_period = backup_retention_period
  Jsii::Type.check_type(@backup_retention_period, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "backupRetentionPeriod") unless @backup_retention_period.nil?
  @kms_key_id = kms_key_id
  Jsii::Type.check_type(@kms_key_id, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19rbXMuSUtleVJlZiJ9XX19")), "kmsKeyId") unless @kms_key_id.nil?
  @preferred_backup_window = preferred_backup_window
  Jsii::Type.check_type(@preferred_backup_window, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "preferredBackupWindow") unless @preferred_backup_window.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?
  @shard_instance_count = shard_instance_count
  Jsii::Type.check_type(@shard_instance_count, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "shardInstanceCount") unless @shard_instance_count.nil?
  @subnet_ids = subnet_ids
  Jsii::Type.check_type(@subnet_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "subnetIds") unless @subnet_ids.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
  @vpc_security_group_ids = vpc_security_group_ids
  Jsii::Type.check_type(@vpc_security_group_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InVuaW9uIjp7InR5cGVzIjpbeyJwcmltaXRpdmUiOiJzdHJpbmcifSx7ImZxbiI6ImF3cy1jZGstbGliLmludGVyZmFjZXMuYXdzX2VjMi5JU2VjdXJpdHlHcm91cFJlZiJ9XX19LCJraW5kIjoiYXJyYXkifX0=")), "vpcSecurityGroupIds") unless @vpc_security_group_ids.nil?
end

Instance Attribute Details

#admin_user_nameString (readonly)

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.


64
65
66
# File 'doc_db_elastic/cfn_cluster_props.rb', line 64

def admin_user_name
  @admin_user_name
end

#admin_user_passwordString? (readonly)

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.


109
110
111
# File 'doc_db_elastic/cfn_cluster_props.rb', line 109

def admin_user_password
  @admin_user_password
end

#auth_typeString (readonly)

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 .



71
72
73
# File 'doc_db_elastic/cfn_cluster_props.rb', line 71

def auth_type
  @auth_type
end

#backup_retention_periodNumeric? (readonly)

The number of days for which automatic snapshots are retained.



114
115
116
# File 'doc_db_elastic/cfn_cluster_props.rb', line 114

def backup_retention_period
  @backup_retention_period
end

#cluster_nameString (readonly)

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



84
85
86
# File 'doc_db_elastic/cfn_cluster_props.rb', line 84

def cluster_name
  @cluster_name
end

#kms_key_idString, ... (readonly)

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.



123
124
125
# File 'doc_db_elastic/cfn_cluster_props.rb', line 123

def kms_key_id
  @kms_key_id
end

#preferred_backup_windowString? (readonly)

The daily time range during which automated backups are created if automated backups are enabled, as determined by backupRetentionPeriod .



128
129
130
# File 'doc_db_elastic/cfn_cluster_props.rb', line 128

def preferred_backup_window
  @preferred_backup_window
end

#preferred_maintenance_windowString? (readonly)

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.



141
142
143
# File 'doc_db_elastic/cfn_cluster_props.rb', line 141

def preferred_maintenance_window
  @preferred_maintenance_window
end

#shard_capacityNumeric (readonly)

The number of vCPUs assigned to each elastic cluster shard.

Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64.



91
92
93
# File 'doc_db_elastic/cfn_cluster_props.rb', line 91

def shard_capacity
  @shard_capacity
end

#shard_countNumeric (readonly)

The number of shards assigned to the elastic cluster.

Maximum is 32.



98
99
100
# File 'doc_db_elastic/cfn_cluster_props.rb', line 98

def shard_count
  @shard_count
end

#shard_instance_countNumeric? (readonly)

The number of replica instances applying to all shards in the cluster.

A shard_instance_count 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.



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

def shard_instance_count
  @shard_instance_count
end

#subnet_idsArray<String>? (readonly)

The Amazon EC2 subnet IDs for the new elastic cluster.



153
154
155
# File 'doc_db_elastic/cfn_cluster_props.rb', line 153

def subnet_ids
  @subnet_ids
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

The tags to be assigned to the new elastic cluster.



158
159
160
# File 'doc_db_elastic/cfn_cluster_props.rb', line 158

def tags
  @tags
end

#vpc_security_group_idsArray<String, AWSCDK::Interfaces::AWSEC2::ISecurityGroupRef>? (readonly)

A list of EC2 VPC security groups to associate with the new elastic cluster.



163
164
165
# File 'doc_db_elastic/cfn_cluster_props.rb', line 163

def vpc_security_group_ids
  @vpc_security_group_ids
end

Class Method Details

.jsii_propertiesObject



165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# File 'doc_db_elastic/cfn_cluster_props.rb', line 165

def self.jsii_properties
  {
    :admin_user_name => "adminUserName",
    :auth_type => "authType",
    :cluster_name => "clusterName",
    :shard_capacity => "shardCapacity",
    :shard_count => "shardCount",
    :admin_user_password => "adminUserPassword",
    :backup_retention_period => "backupRetentionPeriod",
    :kms_key_id => "kmsKeyId",
    :preferred_backup_window => "preferredBackupWindow",
    :preferred_maintenance_window => "preferredMaintenanceWindow",
    :shard_instance_count => "shardInstanceCount",
    :subnet_ids => "subnetIds",
    :tags => "tags",
    :vpc_security_group_ids => "vpcSecurityGroupIds",
  }
end

Instance Method Details

#to_jsiiObject



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

def to_jsii
  result = {}
  result.merge!({
    "adminUserName" => @admin_user_name,
    "authType" => @auth_type,
    "clusterName" => @cluster_name,
    "shardCapacity" => @shard_capacity,
    "shardCount" => @shard_count,
    "adminUserPassword" => @admin_user_password,
    "backupRetentionPeriod" => @backup_retention_period,
    "kmsKeyId" => @kms_key_id,
    "preferredBackupWindow" => @preferred_backup_window,
    "preferredMaintenanceWindow" => @preferred_maintenance_window,
    "shardInstanceCount" => @shard_instance_count,
    "subnetIds" => @subnet_ids,
    "tags" => @tags,
    "vpcSecurityGroupIds" => @vpc_security_group_ids,
  })
  result.compact
end