Class: AWSCDK::RDS::DatabaseCluster

Inherits:
DatabaseClusterBase
  • Object
show all
Defined in:
rds/database_cluster.rb

Overview

Create a clustered database with a given number of instances.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scope, id, props) ⇒ DatabaseCluster

Returns a new instance of DatabaseCluster.

Parameters:



11
12
13
14
15
16
17
# File 'rds/database_cluster.rb', line 11

def initialize(scope, id, props)
  props = props.is_a?(Hash) ? ::AWSCDK::RDS::DatabaseClusterProps.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(scope, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLkNvbnN0cnVjdCJ9")), "scope")
  Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id")
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfcmRzLkRhdGFiYXNlQ2x1c3RlclByb3BzIn0=")), "props")
  Jsii::Object.instance_method(:initialize).bind(self).call(scope, id, props)
end

Class Method Details

.from_database_cluster_attributes(scope, id, attrs) ⇒ AWSCDK::RDS::IDatabaseCluster

Import an existing DatabaseCluster from properties.

Parameters:

Returns:



95
96
97
98
99
100
101
# File 'rds/database_cluster.rb', line 95

def self.from_database_cluster_attributes(scope, id, attrs)
  Jsii::Type.check_type(scope, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLkNvbnN0cnVjdCJ9")), "scope")
  Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id")
  attrs = attrs.is_a?(Hash) ? ::AWSCDK::RDS::DatabaseClusterAttributes.new(**attrs.transform_keys(&:to_sym)) : attrs
  Jsii::Type.check_type(attrs, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfcmRzLkRhdGFiYXNlQ2x1c3RlckF0dHJpYnV0ZXMifQ==")), "attrs")
  Jsii::Kernel.instance.call_static("aws-cdk-lib.aws_rds.DatabaseCluster", "fromDatabaseClusterAttributes", [scope, id, attrs])
end

.from_lookup(scope, id, options) ⇒ AWSCDK::RDS::IDatabaseCluster

Lookup an existing DatabaseCluster using clusterIdentifier.

Parameters:

Returns:



109
110
111
112
113
114
115
# File 'rds/database_cluster.rb', line 109

def self.from_lookup(scope, id, options)
  Jsii::Type.check_type(scope, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLkNvbnN0cnVjdCJ9")), "scope")
  Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id")
  options = options.is_a?(Hash) ? ::AWSCDK::RDS::DatabaseClusterLookupOptions.new(**options.transform_keys(&:to_sym)) : options
  Jsii::Type.check_type(options, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfcmRzLkRhdGFiYXNlQ2x1c3Rlckxvb2t1cE9wdGlvbnMifQ==")), "options")
  Jsii::Kernel.instance.call_static("aws-cdk-lib.aws_rds.DatabaseCluster", "fromLookup", [scope, id, options])
end

.jsii_overridable_methodsObject



19
20
21
22
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'rds/database_cluster.rb', line 19

def self.jsii_overridable_methods
  {
    :node => { kind: :property, name: "node", is_optional: false },
    :env => { kind: :property, name: "env", is_optional: false },
    :physical_name => { kind: :property, name: "physicalName", is_optional: false },
    :stack => { kind: :property, name: "stack", is_optional: false },
    :cluster_arn => { kind: :property, name: "clusterArn", is_optional: false },
    :cluster_endpoint => { kind: :property, name: "clusterEndpoint", is_optional: false },
    :cluster_identifier => { kind: :property, name: "clusterIdentifier", is_optional: false },
    :cluster_read_endpoint => { kind: :property, name: "clusterReadEndpoint", is_optional: false },
    :cluster_resource_identifier => { kind: :property, name: "clusterResourceIdentifier", is_optional: false },
    :connections => { kind: :property, name: "connections", is_optional: false },
    :db_cluster_ref => { kind: :property, name: "dbClusterRef", is_optional: false },
    :instance_endpoints => { kind: :property, name: "instanceEndpoints", is_optional: false },
    :instance_identifiers => { kind: :property, name: "instanceIdentifiers", is_optional: false },
    :engine => { kind: :property, name: "engine", is_optional: true },
    :secret => { kind: :property, name: "secret", is_optional: true },
    :enable_data_api => { kind: :property, name: "enableDataApi", is_optional: true },
    :cloudwatch_log_groups => { kind: :property, name: "cloudwatchLogGroups", is_optional: false },
    :multi_user_rotation_application => { kind: :property, name: "multiUserRotationApplication", is_optional: false },
    :new_cfn_props => { kind: :property, name: "newCfnProps", is_optional: false },
    :performance_insights_enabled => { kind: :property, name: "performanceInsightsEnabled", is_optional: false },
    :security_groups => { kind: :property, name: "securityGroups", is_optional: false },
    :serverless_v2_max_capacity => { kind: :property, name: "serverlessV2MaxCapacity", is_optional: false },
    :serverless_v2_min_capacity => { kind: :property, name: "serverlessV2MinCapacity", is_optional: false },
    :single_user_rotation_application => { kind: :property, name: "singleUserRotationApplication", is_optional: false },
    :subnet_group => { kind: :property, name: "subnetGroup", is_optional: false },
    :subnet_group_ref => { kind: :property, name: "subnetGroupRef", is_optional: false },
    :vpc => { kind: :property, name: "vpc", is_optional: false },
    :database_insights_mode => { kind: :property, name: "databaseInsightsMode", is_optional: true },
    :monitoring_role => { kind: :property, name: "monitoringRole", is_optional: true },
    :performance_insight_encryption_key => { kind: :property, name: "performanceInsightEncryptionKey", is_optional: true },
    :performance_insight_retention => { kind: :property, name: "performanceInsightRetention", is_optional: true },
    :serverless_v2_auto_pause_duration => { kind: :property, name: "serverlessV2AutoPauseDuration", is_optional: true },
    :vpc_subnets => { kind: :property, name: "vpcSubnets", is_optional: true },
    :has_serverless_instance => { kind: :property, name: "hasServerlessInstance", is_optional: true },
    :manage_master_user_password => { kind: :property, name: "manageMasterUserPassword", is_optional: true },
    :to_string => { kind: :method, name: "toString", is_optional: false },
    :with => { kind: :method, name: "with", is_optional: false },
    :apply_cross_stack_reference_strength => { kind: :method, name: "applyCrossStackReferenceStrength", is_optional: false },
    :apply_removal_policy => { kind: :method, name: "applyRemovalPolicy", is_optional: false },
    :generate_physical_name => { kind: :method, name: "generatePhysicalName", is_optional: false },
    :get_resource_arn_attribute => { kind: :method, name: "getResourceArnAttribute", is_optional: false },
    :get_resource_name_attribute => { kind: :method, name: "getResourceNameAttribute", is_optional: false },
    :add_proxy => { kind: :method, name: "addProxy", is_optional: false },
    :as_secret_attachment_target => { kind: :method, name: "asSecretAttachmentTarget", is_optional: false },
    :grant_connect => { kind: :method, name: "grantConnect", is_optional: false },
    :grant_data_api_access => { kind: :method, name: "grantDataApiAccess", is_optional: false },
    :metric => { kind: :method, name: "metric", is_optional: false },
    :metric_cpu_utilization => { kind: :method, name: "metricCPUUtilization", is_optional: false },
    :metric_database_connections => { kind: :method, name: "metricDatabaseConnections", is_optional: false },
    :metric_deadlocks => { kind: :method, name: "metricDeadlocks", is_optional: false },
    :metric_engine_uptime => { kind: :method, name: "metricEngineUptime", is_optional: false },
    :metric_freeable_memory => { kind: :method, name: "metricFreeableMemory", is_optional: false },
    :metric_free_local_storage => { kind: :method, name: "metricFreeLocalStorage", is_optional: false },
    :metric_network_receive_throughput => { kind: :method, name: "metricNetworkReceiveThroughput", is_optional: false },
    :metric_network_throughput => { kind: :method, name: "metricNetworkThroughput", is_optional: false },
    :metric_network_transmit_throughput => { kind: :method, name: "metricNetworkTransmitThroughput", is_optional: false },
    :metric_snapshot_storage_used => { kind: :method, name: "metricSnapshotStorageUsed", is_optional: false },
    :metric_total_backup_storage_billed => { kind: :method, name: "metricTotalBackupStorageBilled", is_optional: false },
    :metric_volume_bytes_used => { kind: :method, name: "metricVolumeBytesUsed", is_optional: false },
    :metric_volume_read_io_ps => { kind: :method, name: "metricVolumeReadIOPs", is_optional: false },
    :metric_volume_write_io_ps => { kind: :method, name: "metricVolumeWriteIOPs", is_optional: false },
    :add_rotation_multi_user => { kind: :method, name: "addRotationMultiUser", is_optional: false },
    :add_rotation_single_user => { kind: :method, name: "addRotationSingleUser", is_optional: false },
    :metric_acu_utilization => { kind: :method, name: "metricACUUtilization", is_optional: false },
    :metric_serverless_database_capacity => { kind: :method, name: "metricServerlessDatabaseCapacity", is_optional: false },
  }
end

.PROPERTY_INJECTION_IDString

Uniquely identifies this class.

Returns:

  • (String)


254
255
256
# File 'rds/database_cluster.rb', line 254

def self.PROPERTY_INJECTION_ID()
  Jsii::Kernel.instance.get_static("aws-cdk-lib.aws_rds.DatabaseCluster", "PROPERTY_INJECTION_ID")
end

Instance Method Details

#add_proxy(id, options) ⇒ AWSCDK::RDS::DatabaseProxy

Add a new db proxy to this cluster.

Parameters:

Returns:



480
481
482
483
484
485
# File 'rds/database_cluster.rb', line 480

def add_proxy(id, options)
  Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id")
  options = options.is_a?(Hash) ? ::AWSCDK::RDS::DatabaseProxyOptions.new(**options.transform_keys(&:to_sym)) : options
  Jsii::Type.check_type(options, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfcmRzLkRhdGFiYXNlUHJveHlPcHRpb25zIn0=")), "options")
  jsii_call_method("addProxy", [id, options])
end

#add_rotation_multi_user(id, options) ⇒ AWSCDK::SecretsManager::SecretRotation

Adds the multi user rotation to this cluster.

See Alternating users rotation strategy



709
710
711
712
713
714
# File 'rds/database_cluster.rb', line 709

def add_rotation_multi_user(id, options)
  Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id")
  options = options.is_a?(Hash) ? ::AWSCDK::RDS::RotationMultiUserOptions.new(**options.transform_keys(&:to_sym)) : options
  Jsii::Type.check_type(options, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfcmRzLlJvdGF0aW9uTXVsdGlVc2VyT3B0aW9ucyJ9")), "options")
  jsii_call_method("addRotationMultiUser", [id, options])
end

#add_rotation_single_user(options = nil) ⇒ AWSCDK::SecretsManager::SecretRotation

Adds the single user rotation of the master password to this cluster.

See Single user rotation strategy

Parameters:

Returns:



722
723
724
725
726
# File 'rds/database_cluster.rb', line 722

def add_rotation_single_user(options = nil)
  options = options.is_a?(Hash) ? ::AWSCDK::RDS::RotationSingleUserOptions.new(**options.transform_keys(&:to_sym)) : options
  Jsii::Type.check_type(options, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfcmRzLlJvdGF0aW9uU2luZ2xlVXNlck9wdGlvbnMifQ==")), "options") unless options.nil?
  jsii_call_method("addRotationSingleUser", [options])
end

#apply_cross_stack_reference_strength(strength) ⇒ void

This method returns an undefined value.

Override the cross-stack reference strength for this resource.

When set, any cross-stack reference to this resource will use the specified mechanism instead of the global default determined by the @aws-cdk/core:defaultCrossStackReferences context key. This is useful for selectively weakening specific references to avoid the "deadly embrace" problem without changing the app-wide default.

Parameters:



418
419
420
421
# File 'rds/database_cluster.rb', line 418

def apply_cross_stack_reference_strength(strength)
  Jsii::Type.check_type(strength, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5SZWZlcmVuY2VTdHJlbmd0aCJ9")), "strength")
  jsii_call_method("applyCrossStackReferenceStrength", [strength])
end

#apply_removal_policy(policy) ⇒ void

This method returns an undefined value.

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.

The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN).

Parameters:



435
436
437
438
# File 'rds/database_cluster.rb', line 435

def apply_removal_policy(policy)
  Jsii::Type.check_type(policy, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5SZW1vdmFsUG9saWN5In0=")), "policy")
  jsii_call_method("applyRemovalPolicy", [policy])
end

#as_secret_attachment_targetAWSCDK::SecretsManager::SecretAttachmentTargetProps

Renders the secret attachment target specifications.



490
491
492
# File 'rds/database_cluster.rb', line 490

def as_secret_attachment_target()
  jsii_call_method("asSecretAttachmentTarget", [])
end

#cloudwatch_log_groupsHash{String => AWSCDK::Logs::ILogGroup}

The log group is created when cloudwatchLogsExports is set.

Each export value will create a separate log group.

Returns:



263
264
265
# File 'rds/database_cluster.rb', line 263

def cloudwatch_log_groups()
  jsii_get_property("cloudwatchLogGroups")
end

#cluster_arnString

The ARN of the cluster.

Returns:

  • (String)


163
164
165
# File 'rds/database_cluster.rb', line 163

def cluster_arn()
  jsii_get_property("clusterArn")
end

#cluster_endpointAWSCDK::RDS::Endpoint

The endpoint to use for read/write operations.



170
171
172
# File 'rds/database_cluster.rb', line 170

def cluster_endpoint()
  jsii_get_property("clusterEndpoint")
end

#cluster_identifierString

Identifier of the cluster.

Returns:

  • (String)


177
178
179
# File 'rds/database_cluster.rb', line 177

def cluster_identifier()
  jsii_get_property("clusterIdentifier")
end

#cluster_read_endpointAWSCDK::RDS::Endpoint

Endpoint to use for load-balanced read-only operations.



184
185
186
# File 'rds/database_cluster.rb', line 184

def cluster_read_endpoint()
  jsii_get_property("clusterReadEndpoint")
end

#cluster_resource_identifierString

The immutable identifier for the cluster; for example: cluster-ABCD1234EFGH5678IJKL90MNOP.

This AWS Region-unique identifier is used in things like IAM authentication policies.

Returns:

  • (String)


193
194
195
# File 'rds/database_cluster.rb', line 193

def cluster_resource_identifier()
  jsii_get_property("clusterResourceIdentifier")
end

#connectionsAWSCDK::EC2::Connections

Access to the network connections.



200
201
202
# File 'rds/database_cluster.rb', line 200

def connections()
  jsii_get_property("connections")
end

#database_insights_modeAWSCDK::RDS::DatabaseInsightsMode?

The database insights mode.



328
329
330
# File 'rds/database_cluster.rb', line 328

def database_insights_mode()
  jsii_get_property("databaseInsightsMode")
end

#db_cluster_refAWSCDK::Interfaces::AWSRDS::DBClusterReference

A reference to this database cluster.



207
208
209
# File 'rds/database_cluster.rb', line 207

def db_cluster_ref()
  jsii_get_property("dbClusterRef")
end

#enable_data_apiBoolean?

Returns:

  • (Boolean, nil)


242
243
244
# File 'rds/database_cluster.rb', line 242

def enable_data_api()
  jsii_get_property("enableDataApi")
end

#enable_data_api=(value) ⇒ Object



246
247
248
249
# File 'rds/database_cluster.rb', line 246

def enable_data_api=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "enableDataApi") unless value.nil?
  jsii_set_property("enableDataApi", value)
end

#engineAWSCDK::RDS::IClusterEngine?

The engine for this Cluster.

Never undefined.

Returns:



230
231
232
# File 'rds/database_cluster.rb', line 230

def engine()
  jsii_get_property("engine")
end

#envAWSCDK::Interfaces::ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed in a Stack (those created by creating new class instances like new Role(), new Bucket(), etc.), this is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like Role.fromRoleArn(), Bucket.fromBucketName(), etc.), they might be different than the stack they were imported into.



135
136
137
# File 'rds/database_cluster.rb', line 135

def env()
  jsii_get_property("env")
end

#generate_physical_nameString

Returns:

  • (String)


441
442
443
# File 'rds/database_cluster.rb', line 441

def generate_physical_name()
  jsii_call_method("generatePhysicalName", [])
end

#get_resource_arn_attribute(arn_attr, arn_components) ⇒ String

Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. bucket.bucketArn).

Normally, this token will resolve to arn_attr, but if the resource is referenced across environments, arn_components will be used to synthesize a concrete ARN with the resource's physical name. Make sure to reference this.physicalName in arn_components.

Parameters:

  • arn_attr (String)

    The CFN attribute which resolves to the ARN of the resource.

  • arn_components (AWSCDK::ARNComponents)

    The format of the ARN of this resource.

Returns:

  • (String)


455
456
457
458
459
460
# File 'rds/database_cluster.rb', line 455

def get_resource_arn_attribute(arn_attr, arn_components)
  Jsii::Type.check_type(arn_attr, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "arnAttr")
  arn_components = arn_components.is_a?(Hash) ? ::AWSCDK::ARNComponents.new(**arn_components.transform_keys(&:to_sym)) : arn_components
  Jsii::Type.check_type(arn_components, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5Bcm5Db21wb25lbnRzIn0=")), "arnComponents")
  jsii_call_method("getResourceArnAttribute", [arn_attr, arn_components])
end

#get_resource_name_attribute(name_attr) ⇒ String

Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. bucket.bucketName).

Normally, this token will resolve to name_attr, but if the resource is referenced across environments, it will be resolved to this.physicalName, which will be a concrete name.

Parameters:

  • name_attr (String)

    The CFN attribute which resolves to the resource's name.

Returns:

  • (String)


470
471
472
473
# File 'rds/database_cluster.rb', line 470

def get_resource_name_attribute(name_attr)
  Jsii::Type.check_type(name_attr, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "nameAttr")
  jsii_call_method("getResourceNameAttribute", [name_attr])
end

#grant_connect(grantee, db_user) ⇒ AWSCDK::IAM::Grant

[disable-awslint:no-grants].

Parameters:

Returns:



499
500
501
502
503
# File 'rds/database_cluster.rb', line 499

def grant_connect(grantee, db_user)
  Jsii::Type.check_type(grantee, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfaWFtLklHcmFudGFibGUifQ==")), "grantee")
  Jsii::Type.check_type(db_user, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "dbUser")
  jsii_call_method("grantConnect", [grantee, db_user])
end

#grant_data_api_access(grantee) ⇒ AWSCDK::IAM::Grant

Grant the given identity to access the Data API.

[disable-awslint:no-grants]

Parameters:

Returns:



511
512
513
514
# File 'rds/database_cluster.rb', line 511

def grant_data_api_access(grantee)
  Jsii::Type.check_type(grantee, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfaWFtLklHcmFudGFibGUifQ==")), "grantee")
  jsii_call_method("grantDataApiAccess", [grantee])
end

#has_serverless_instanceBoolean?

Returns:

  • (Boolean, nil)


366
367
368
# File 'rds/database_cluster.rb', line 366

def has_serverless_instance()
  jsii_get_property("hasServerlessInstance")
end

#has_serverless_instance=(value) ⇒ Object



370
371
372
373
# File 'rds/database_cluster.rb', line 370

def has_serverless_instance=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "hasServerlessInstance") unless value.nil?
  jsii_set_property("hasServerlessInstance", value)
end

#instance_endpointsArray<AWSCDK::RDS::Endpoint>

Endpoints which address each individual replica.

Returns:



214
215
216
# File 'rds/database_cluster.rb', line 214

def instance_endpoints()
  jsii_get_property("instanceEndpoints")
end

#instance_identifiersArray<String>

Identifiers of the replicas.

Returns:

  • (Array<String>)


221
222
223
# File 'rds/database_cluster.rb', line 221

def instance_identifiers()
  jsii_get_property("instanceIdentifiers")
end

#manage_master_user_passwordBoolean?

Returns:

  • (Boolean, nil)


376
377
378
# File 'rds/database_cluster.rb', line 376

def manage_master_user_password()
  jsii_get_property("manageMasterUserPassword")
end

#manage_master_user_password=(value) ⇒ Object



380
381
382
383
# File 'rds/database_cluster.rb', line 380

def manage_master_user_password=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "manageMasterUserPassword") unless value.nil?
  jsii_set_property("manageMasterUserPassword", value)
end

#metric(metric_name, props = nil) ⇒ AWSCDK::CloudWatch::Metric

Return the given named metric for this DBCluster.

Parameters:

Returns:



521
522
523
524
525
526
# File 'rds/database_cluster.rb', line 521

def metric(metric_name, props = nil)
  Jsii::Type.check_type(metric_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "metricName")
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metric", [metric_name, props])
end

#metric_acu_utilization(props = nil) ⇒ AWSCDK::CloudWatch::Metric

This value is represented as a percentage.

It's calculated as the value of the ServerlessDatabaseCapacity metric divided by the maximum ACU value of the DB cluster.

If this metric approaches a value of 100.0, the DB instance has scaled up as high as it can. Consider increasing the maximum ACU setting for the cluster.

Parameters:

Returns:



738
739
740
741
742
# File 'rds/database_cluster.rb', line 738

def metric_acu_utilization(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricACUUtilization", [props])
end

#metric_cpu_utilization(props = nil) ⇒ AWSCDK::CloudWatch::Metric

The percentage of CPU utilization.

Average over 5 minutes

Parameters:

Returns:



534
535
536
537
538
# File 'rds/database_cluster.rb', line 534

def metric_cpu_utilization(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricCPUUtilization", [props])
end

#metric_database_connections(props = nil) ⇒ AWSCDK::CloudWatch::Metric

The number of database connections in use.

Average over 5 minutes

Parameters:

Returns:



546
547
548
549
550
# File 'rds/database_cluster.rb', line 546

def metric_database_connections(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricDatabaseConnections", [props])
end

#metric_deadlocks(props = nil) ⇒ AWSCDK::CloudWatch::Metric

The average number of deadlocks in the database per second.

Average over 5 minutes

Parameters:

Returns:



558
559
560
561
562
# File 'rds/database_cluster.rb', line 558

def metric_deadlocks(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricDeadlocks", [props])
end

#metric_engine_uptime(props = nil) ⇒ AWSCDK::CloudWatch::Metric

The amount of time that the instance has been running, in seconds.

Average over 5 minutes

Parameters:

Returns:



570
571
572
573
574
# File 'rds/database_cluster.rb', line 570

def metric_engine_uptime(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricEngineUptime", [props])
end

#metric_free_local_storage(props = nil) ⇒ AWSCDK::CloudWatch::Metric

The amount of local storage available, in bytes.

Average over 5 minutes

Parameters:

Returns:



594
595
596
597
598
# File 'rds/database_cluster.rb', line 594

def metric_free_local_storage(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricFreeLocalStorage", [props])
end

#metric_freeable_memory(props = nil) ⇒ AWSCDK::CloudWatch::Metric

The amount of available random access memory, in bytes.

Average over 5 minutes

Parameters:

Returns:



582
583
584
585
586
# File 'rds/database_cluster.rb', line 582

def metric_freeable_memory(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricFreeableMemory", [props])
end

#metric_network_receive_throughput(props = nil) ⇒ AWSCDK::CloudWatch::Metric

The amount of network throughput received from clients by each instance, in bytes per second.

Average over 5 minutes

Parameters:

Returns:



606
607
608
609
610
# File 'rds/database_cluster.rb', line 606

def metric_network_receive_throughput(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricNetworkReceiveThroughput", [props])
end

#metric_network_throughput(props = nil) ⇒ AWSCDK::CloudWatch::Metric

The amount of network throughput both received from and transmitted to clients by each instance, in bytes per second.

Average over 5 minutes

Parameters:

Returns:



618
619
620
621
622
# File 'rds/database_cluster.rb', line 618

def metric_network_throughput(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricNetworkThroughput", [props])
end

#metric_network_transmit_throughput(props = nil) ⇒ AWSCDK::CloudWatch::Metric

The amount of network throughput sent to clients by each instance, in bytes per second.

Average over 5 minutes

Parameters:

Returns:



630
631
632
633
634
# File 'rds/database_cluster.rb', line 630

def metric_network_transmit_throughput(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricNetworkTransmitThroughput", [props])
end

#metric_serverless_database_capacity(props = nil) ⇒ AWSCDK::CloudWatch::Metric

As a cluster-level metric, it represents the average of the ServerlessDatabaseCapacity values of all the Aurora Serverless v2 DB instances in the cluster.

Parameters:

Returns:



748
749
750
751
752
# File 'rds/database_cluster.rb', line 748

def metric_serverless_database_capacity(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricServerlessDatabaseCapacity", [props])
end

#metric_snapshot_storage_used(props = nil) ⇒ AWSCDK::CloudWatch::Metric

The total amount of backup storage in bytes consumed by all Aurora snapshots outside its backup retention window.

Average over 5 minutes

Parameters:

Returns:



642
643
644
645
646
# File 'rds/database_cluster.rb', line 642

def metric_snapshot_storage_used(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricSnapshotStorageUsed", [props])
end

#metric_total_backup_storage_billed(props = nil) ⇒ AWSCDK::CloudWatch::Metric

The total amount of backup storage in bytes for which you are billed.

Average over 5 minutes

Parameters:

Returns:



654
655
656
657
658
# File 'rds/database_cluster.rb', line 654

def metric_total_backup_storage_billed(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricTotalBackupStorageBilled", [props])
end

#metric_volume_bytes_used(props = nil) ⇒ AWSCDK::CloudWatch::Metric

The amount of storage used by your Aurora DB instance, in bytes.

Average over 5 minutes

Parameters:

Returns:



666
667
668
669
670
# File 'rds/database_cluster.rb', line 666

def metric_volume_bytes_used(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricVolumeBytesUsed", [props])
end

#metric_volume_read_io_ps(props = nil) ⇒ AWSCDK::CloudWatch::Metric

Note:

Default: - average over 5 minutes

The average number of disk read I/O operations per second.

This metric is only available for Aurora database clusters. For non-Aurora RDS clusters, this metric will not return any data in CloudWatch.

Parameters:

Returns:



681
682
683
684
685
# File 'rds/database_cluster.rb', line 681

def metric_volume_read_io_ps(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricVolumeReadIOPs", [props])
end

#metric_volume_write_io_ps(props = nil) ⇒ AWSCDK::CloudWatch::Metric

Note:

Default: - average over 5 minutes

The average number of disk write I/O operations per second.

This metric is only available for Aurora database clusters. For non-Aurora RDS clusters, this metric will not return any data in CloudWatch.

Parameters:

Returns:



696
697
698
699
700
# File 'rds/database_cluster.rb', line 696

def metric_volume_write_io_ps(props = nil)
  props = props.is_a?(Hash) ? ::AWSCDK::CloudWatch::MetricOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zIn0=")), "props") unless props.nil?
  jsii_call_method("metricVolumeWriteIOPs", [props])
end

#monitoring_roleAWSCDK::IAM::IRole?

The IAM role for the enhanced monitoring.

Returns:



335
336
337
# File 'rds/database_cluster.rb', line 335

def monitoring_role()
  jsii_get_property("monitoringRole")
end

#multi_user_rotation_applicationAWSCDK::SecretsManager::SecretRotationApplication

Application for multi user rotation to this cluster.



270
271
272
# File 'rds/database_cluster.rb', line 270

def multi_user_rotation_application()
  jsii_get_property("multiUserRotationApplication")
end

#new_cfn_propsAWSCDK::RDS::CfnDBClusterProps



275
276
277
# File 'rds/database_cluster.rb', line 275

def new_cfn_props()
  jsii_get_property("newCfnProps")
end

#nodeConstructs::Node

The tree node.

Returns:

  • (Constructs::Node)


120
121
122
# File 'rds/database_cluster.rb', line 120

def node()
  jsii_get_property("node")
end

#performance_insight_encryption_keyAWSCDK::KMS::IKey?

The AWS KMS key for encryption of Performance Insights data.

Returns:



342
343
344
# File 'rds/database_cluster.rb', line 342

def performance_insight_encryption_key()
  jsii_get_property("performanceInsightEncryptionKey")
end

#performance_insight_retentionAWSCDK::RDS::PerformanceInsightRetention?

The amount of time, in days, to retain Performance Insights data.



349
350
351
# File 'rds/database_cluster.rb', line 349

def performance_insight_retention()
  jsii_get_property("performanceInsightRetention")
end

#performance_insights_enabledBoolean

Whether Performance Insights is enabled at cluster level.

Returns:

  • (Boolean)


282
283
284
# File 'rds/database_cluster.rb', line 282

def performance_insights_enabled()
  jsii_get_property("performanceInsightsEnabled")
end

#physical_nameString

Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.

This value will resolve to one of the following:

  • a concrete value (e.g. "my-awesome-bucket")
  • undefined, when a name should be generated by CloudFormation
  • a concrete name generated automatically during synthesis, in cross-environment scenarios.

Returns:

  • (String)


149
150
151
# File 'rds/database_cluster.rb', line 149

def physical_name()
  jsii_get_property("physicalName")
end

#secretAWSCDK::SecretsManager::ISecret?

The secret attached to this cluster.



237
238
239
# File 'rds/database_cluster.rb', line 237

def secret()
  jsii_get_property("secret")
end

#security_groupsArray<AWSCDK::EC2::ISecurityGroup>

Returns:



287
288
289
# File 'rds/database_cluster.rb', line 287

def security_groups()
  jsii_get_property("securityGroups")
end

#serverless_v2_auto_pause_durationAWSCDK::Duration?

Returns:



354
355
356
# File 'rds/database_cluster.rb', line 354

def serverless_v2_auto_pause_duration()
  jsii_get_property("serverlessV2AutoPauseDuration")
end

#serverless_v2_max_capacityNumeric

Returns:

  • (Numeric)


292
293
294
# File 'rds/database_cluster.rb', line 292

def serverless_v2_max_capacity()
  jsii_get_property("serverlessV2MaxCapacity")
end

#serverless_v2_min_capacityNumeric

Returns:

  • (Numeric)


297
298
299
# File 'rds/database_cluster.rb', line 297

def serverless_v2_min_capacity()
  jsii_get_property("serverlessV2MinCapacity")
end

#single_user_rotation_applicationAWSCDK::SecretsManager::SecretRotationApplication

Application for single user rotation of the master password to this cluster.



304
305
306
# File 'rds/database_cluster.rb', line 304

def single_user_rotation_application()
  jsii_get_property("singleUserRotationApplication")
end

#stackAWSCDK::Stack

The stack in which this resource is defined.

Returns:



156
157
158
# File 'rds/database_cluster.rb', line 156

def stack()
  jsii_get_property("stack")
end

#subnet_groupAWSCDK::RDS::ISubnetGroup



309
310
311
# File 'rds/database_cluster.rb', line 309

def subnet_group()
  jsii_get_property("subnetGroup")
end

#subnet_group_refAWSCDK::Interfaces::AWSRDS::IDBSubnetGroupRef



314
315
316
# File 'rds/database_cluster.rb', line 314

def subnet_group_ref()
  jsii_get_property("subnetGroupRef")
end

#to_stringString

Returns a string representation of this construct.

Returns:

  • (String)


388
389
390
# File 'rds/database_cluster.rb', line 388

def to_string()
  jsii_call_method("toString", [])
end

#vpcAWSCDK::EC2::IVPC

The VPC network to place the cluster in.

Returns:



321
322
323
# File 'rds/database_cluster.rb', line 321

def vpc()
  jsii_get_property("vpc")
end

#vpc_subnetsAWSCDK::EC2::SubnetSelection?

The cluster's subnets.



361
362
363
# File 'rds/database_cluster.rb', line 361

def vpc_subnets()
  jsii_get_property("vpcSubnets")
end

#with(*mixins) ⇒ Constructs::IConstruct

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the start of the call, so constructs added by a mixin will not be visited. Use multiple with() calls if subsequent mixins should apply to added constructs.

Parameters:

  • mixins (Array<Constructs::IMixin>)

Returns:

  • (Constructs::IConstruct)


401
402
403
404
405
406
# File 'rds/database_cluster.rb', line 401

def with(*mixins)
  mixins.each_with_index do |item, index|
    Jsii::Type.check_type(item, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLklNaXhpbiJ9")), "mixins[#{index}]")
  end
  jsii_call_method("with", [*mixins])
end