Class: AWSCDK::MemoryDB::CfnClusterProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
memory_db/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(acl_name:, cluster_name:, node_type:, auto_minor_version_upgrade: nil, cluster_endpoint: nil, data_tiering: nil, description: nil, engine: nil, engine_version: nil, final_snapshot_name: nil, ip_discovery: nil, kms_key_id: nil, maintenance_window: nil, multi_region_cluster_name: nil, network_type: nil, num_replicas_per_shard: nil, num_shards: nil, parameter_group_name: nil, port: nil, security_group_ids: nil, snapshot_arns: nil, snapshot_name: nil, snapshot_retention_limit: nil, snapshot_window: nil, sns_topic_arn: nil, sns_topic_status: nil, subnet_group_name: nil, tags: nil, tls_enabled: nil) ⇒ CfnClusterProps

Returns a new instance of CfnClusterProps.

Parameters:

  • acl_name (String)

    The name of the Access Control List to associate with the cluster .

  • cluster_name (String)

    The name of the cluster .

  • node_type (String)

    The cluster 's node type.

  • auto_minor_version_upgrade (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    When set to true, the cluster will automatically receive minor engine version upgrades after launch.

  • cluster_endpoint (AWSCDK::IResolvable, AWSCDK::MemoryDB::CfnCluster::EndpointProperty, nil) (defaults to: nil)

    The cluster 's configuration endpoint.

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

    Enables data tiering.

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

    A description of the cluster .

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

    The name of the engine used by the cluster.

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

    The Redis engine version used by the cluster .

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

    The user-supplied name of a final cluster snapshot.

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

    The mechanism that the cluster uses to discover IP addresses.

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

    The ID of the KMS key used to encrypt the cluster .

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

    Specifies the weekly time range during which maintenance on the cluster is performed.

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

    The name of the multi-Region cluster that this cluster belongs to.

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

    The IP address type for the cluster.

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

    The number of replicas to apply to each shard.

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

    The number of shards in the cluster .

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

    The name of the parameter group used by the cluster .

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

    The port used by the cluster .

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

    A list of security group names to associate with this cluster .

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

    A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot files stored in Amazon S3.

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

    The name of a snapshot from which to restore data into the new cluster .

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

    The number of days for which MemoryDB retains automatic snapshots before deleting them.

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

    The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard.

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

    When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the ARN of the SNS topic, such as arn:aws:memorydb:us-east-1:123456789012:mySNSTopic.

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

    The SNS topic must be in Active status to receive notifications.

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

    The name of the subnet group used by the cluster .

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

    An array of key-value pairs to apply to this resource.

  • tls_enabled (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    A flag to indicate if In-transit encryption is enabled.



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
88
89
90
91
92
93
94
95
96
97
# File 'memory_db/cfn_cluster_props.rb', line 38

def initialize(acl_name:, cluster_name:, node_type:, auto_minor_version_upgrade: nil, cluster_endpoint: nil, data_tiering: nil, description: nil, engine: nil, engine_version: nil, final_snapshot_name: nil, ip_discovery: nil, kms_key_id: nil, maintenance_window: nil, multi_region_cluster_name: nil, network_type: nil, num_replicas_per_shard: nil, num_shards: nil, parameter_group_name: nil, port: nil, security_group_ids: nil, snapshot_arns: nil, snapshot_name: nil, snapshot_retention_limit: nil, snapshot_window: nil, sns_topic_arn: nil, sns_topic_status: nil, subnet_group_name: nil, tags: nil, tls_enabled: nil)
  @acl_name = acl_name
  Jsii::Type.check_type(@acl_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "aclName")
  @cluster_name = cluster_name
  Jsii::Type.check_type(@cluster_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "clusterName")
  @node_type = node_type
  Jsii::Type.check_type(@node_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "nodeType")
  @auto_minor_version_upgrade = auto_minor_version_upgrade
  Jsii::Type.check_type(@auto_minor_version_upgrade, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "autoMinorVersionUpgrade") unless @auto_minor_version_upgrade.nil?
  @cluster_endpoint = cluster_endpoint.is_a?(Hash) ? ::AWSCDK::MemoryDB::CfnCluster::EndpointProperty.new(**cluster_endpoint.transform_keys(&:to_sym)) : cluster_endpoint
  Jsii::Type.check_type(@cluster_endpoint, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19tZW1vcnlkYi5DZm5DbHVzdGVyLkVuZHBvaW50UHJvcGVydHkifV19fQ==")), "clusterEndpoint") unless @cluster_endpoint.nil?
  @data_tiering = data_tiering
  Jsii::Type.check_type(@data_tiering, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "dataTiering") unless @data_tiering.nil?
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @engine = engine
  Jsii::Type.check_type(@engine, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "engine") unless @engine.nil?
  @engine_version = engine_version
  Jsii::Type.check_type(@engine_version, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "engineVersion") unless @engine_version.nil?
  @final_snapshot_name = final_snapshot_name
  Jsii::Type.check_type(@final_snapshot_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "finalSnapshotName") unless @final_snapshot_name.nil?
  @ip_discovery = ip_discovery
  Jsii::Type.check_type(@ip_discovery, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "ipDiscovery") unless @ip_discovery.nil?
  @kms_key_id = kms_key_id
  Jsii::Type.check_type(@kms_key_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "kmsKeyId") unless @kms_key_id.nil?
  @maintenance_window = maintenance_window
  Jsii::Type.check_type(@maintenance_window, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "maintenanceWindow") unless @maintenance_window.nil?
  @multi_region_cluster_name = multi_region_cluster_name
  Jsii::Type.check_type(@multi_region_cluster_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "multiRegionClusterName") unless @multi_region_cluster_name.nil?
  @network_type = network_type
  Jsii::Type.check_type(@network_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "networkType") unless @network_type.nil?
  @num_replicas_per_shard = num_replicas_per_shard
  Jsii::Type.check_type(@num_replicas_per_shard, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "numReplicasPerShard") unless @num_replicas_per_shard.nil?
  @num_shards = num_shards
  Jsii::Type.check_type(@num_shards, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "numShards") unless @num_shards.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?
  @port = port
  Jsii::Type.check_type(@port, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "port") unless @port.nil?
  @security_group_ids = security_group_ids
  Jsii::Type.check_type(@security_group_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InVuaW9uIjp7InR5cGVzIjpbeyJwcmltaXRpdmUiOiJzdHJpbmcifSx7ImZxbiI6ImF3cy1jZGstbGliLmludGVyZmFjZXMuYXdzX2VjMi5JU2VjdXJpdHlHcm91cFJlZiJ9XX19LCJraW5kIjoiYXJyYXkifX0=")), "securityGroupIds") unless @security_group_ids.nil?
  @snapshot_arns = snapshot_arns
  Jsii::Type.check_type(@snapshot_arns, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "snapshotArns") unless @snapshot_arns.nil?
  @snapshot_name = snapshot_name
  Jsii::Type.check_type(@snapshot_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "snapshotName") unless @snapshot_name.nil?
  @snapshot_retention_limit = snapshot_retention_limit
  Jsii::Type.check_type(@snapshot_retention_limit, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "snapshotRetentionLimit") unless @snapshot_retention_limit.nil?
  @snapshot_window = snapshot_window
  Jsii::Type.check_type(@snapshot_window, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "snapshotWindow") unless @snapshot_window.nil?
  @sns_topic_arn = sns_topic_arn
  Jsii::Type.check_type(@sns_topic_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "snsTopicArn") unless @sns_topic_arn.nil?
  @sns_topic_status = sns_topic_status
  Jsii::Type.check_type(@sns_topic_status, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "snsTopicStatus") unless @sns_topic_status.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.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?
  @tls_enabled = tls_enabled
  Jsii::Type.check_type(@tls_enabled, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "tlsEnabled") unless @tls_enabled.nil?
end

Instance Attribute Details

#acl_nameString (readonly)

The name of the Access Control List to associate with the cluster .



103
104
105
# File 'memory_db/cfn_cluster_props.rb', line 103

def acl_name
  @acl_name
end

#auto_minor_version_upgradeBoolean, ... (readonly)

When set to true, the cluster will automatically receive minor engine version upgrades after launch.



118
119
120
# File 'memory_db/cfn_cluster_props.rb', line 118

def auto_minor_version_upgrade
  @auto_minor_version_upgrade
end

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

The cluster 's configuration endpoint.



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

def cluster_endpoint
  @cluster_endpoint
end

#cluster_nameString (readonly)

The name of the cluster .



108
109
110
# File 'memory_db/cfn_cluster_props.rb', line 108

def cluster_name
  @cluster_name
end

#data_tieringString? (readonly)

Enables data tiering.

Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes. For more information, see Data tiering .



130
131
132
# File 'memory_db/cfn_cluster_props.rb', line 130

def data_tiering
  @data_tiering
end

#descriptionString? (readonly)

A description of the cluster .



135
136
137
# File 'memory_db/cfn_cluster_props.rb', line 135

def description
  @description
end

#engineString? (readonly)

The name of the engine used by the cluster.



140
141
142
# File 'memory_db/cfn_cluster_props.rb', line 140

def engine
  @engine
end

#engine_versionString? (readonly)

The Redis engine version used by the cluster .



145
146
147
# File 'memory_db/cfn_cluster_props.rb', line 145

def engine_version
  @engine_version
end

#final_snapshot_nameString? (readonly)

The user-supplied name of a final cluster snapshot.

This is the unique name that identifies the snapshot. MemoryDB creates the snapshot, and then deletes the cluster immediately afterward.



152
153
154
# File 'memory_db/cfn_cluster_props.rb', line 152

def final_snapshot_name
  @final_snapshot_name
end

#ip_discoveryString? (readonly)

The mechanism that the cluster uses to discover IP addresses.

Returns 'ipv4' when DNS endpoints resolve to IPv4 addresses, or 'ipv6' when DNS endpoints resolve to IPv6 addresses.



159
160
161
# File 'memory_db/cfn_cluster_props.rb', line 159

def ip_discovery
  @ip_discovery
end

#kms_key_idString? (readonly)

The ID of the KMS key used to encrypt the cluster .



164
165
166
# File 'memory_db/cfn_cluster_props.rb', line 164

def kms_key_id
  @kms_key_id
end

#maintenance_windowString? (readonly)

Specifies the weekly time range during which maintenance on the cluster is performed.

It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Pattern : ddd:hh24:mi-ddd:hh24:mi



173
174
175
# File 'memory_db/cfn_cluster_props.rb', line 173

def maintenance_window
  @maintenance_window
end

#multi_region_cluster_nameString? (readonly)

The name of the multi-Region cluster that this cluster belongs to.



178
179
180
# File 'memory_db/cfn_cluster_props.rb', line 178

def multi_region_cluster_name
  @multi_region_cluster_name
end

#network_typeString? (readonly)

The IP address type for the cluster.

Returns 'ipv4' for IPv4 only, 'ipv6' for IPv6 only, or 'dual-stack' if the cluster supports both IPv4 and IPv6 addressing.



185
186
187
# File 'memory_db/cfn_cluster_props.rb', line 185

def network_type
  @network_type
end

#node_typeString (readonly)

The cluster 's node type.



113
114
115
# File 'memory_db/cfn_cluster_props.rb', line 113

def node_type
  @node_type
end

#num_replicas_per_shardNumeric? (readonly)

The number of replicas to apply to each shard.

Default value : 1

Maximum value : 5



194
195
196
# File 'memory_db/cfn_cluster_props.rb', line 194

def num_replicas_per_shard
  @num_replicas_per_shard
end

#num_shardsNumeric? (readonly)

The number of shards in the cluster .



199
200
201
# File 'memory_db/cfn_cluster_props.rb', line 199

def num_shards
  @num_shards
end

#parameter_group_nameString? (readonly)

The name of the parameter group used by the cluster .



204
205
206
# File 'memory_db/cfn_cluster_props.rb', line 204

def parameter_group_name
  @parameter_group_name
end

#portNumeric? (readonly)

The port used by the cluster .



209
210
211
# File 'memory_db/cfn_cluster_props.rb', line 209

def port
  @port
end

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

A list of security group names to associate with this cluster .



214
215
216
# File 'memory_db/cfn_cluster_props.rb', line 214

def security_group_ids
  @security_group_ids
end

#snapshot_arnsArray<String>? (readonly)

A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot files stored in Amazon S3.

The snapshot files are used to populate the new cluster . The Amazon S3 object name in the ARN cannot contain any commas.



221
222
223
# File 'memory_db/cfn_cluster_props.rb', line 221

def snapshot_arns
  @snapshot_arns
end

#snapshot_nameString? (readonly)

The name of a snapshot from which to restore data into the new cluster .

The snapshot status changes to restoring while the new cluster is being created.



228
229
230
# File 'memory_db/cfn_cluster_props.rb', line 228

def snapshot_name
  @snapshot_name
end

#snapshot_retention_limitNumeric? (readonly)

The number of days for which MemoryDB retains automatic snapshots before deleting them.

For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.



235
236
237
# File 'memory_db/cfn_cluster_props.rb', line 235

def snapshot_retention_limit
  @snapshot_retention_limit
end

#snapshot_windowString? (readonly)

The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard.

Example: 05:00-09:00 If you do not specify this parameter, MemoryDB automatically chooses an appropriate time range.



242
243
244
# File 'memory_db/cfn_cluster_props.rb', line 242

def snapshot_window
  @snapshot_window
end

#sns_topic_arnString? (readonly)

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the ARN of the SNS topic, such as arn:aws:memorydb:us-east-1:123456789012:mySNSTopic.



247
248
249
# File 'memory_db/cfn_cluster_props.rb', line 247

def sns_topic_arn
  @sns_topic_arn
end

#sns_topic_statusString? (readonly)

The SNS topic must be in Active status to receive notifications.



252
253
254
# File 'memory_db/cfn_cluster_props.rb', line 252

def sns_topic_status
  @sns_topic_status
end

#subnet_group_nameString? (readonly)

The name of the subnet group used by the cluster .



257
258
259
# File 'memory_db/cfn_cluster_props.rb', line 257

def subnet_group_name
  @subnet_group_name
end

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

An array of key-value pairs to apply to this resource.

For more information, see Tag .



264
265
266
# File 'memory_db/cfn_cluster_props.rb', line 264

def tags
  @tags
end

#tls_enabledBoolean, ... (readonly)

A flag to indicate if In-transit encryption is enabled.



269
270
271
# File 'memory_db/cfn_cluster_props.rb', line 269

def tls_enabled
  @tls_enabled
end

Class Method Details

.jsii_propertiesObject



271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
# File 'memory_db/cfn_cluster_props.rb', line 271

def self.jsii_properties
  {
    :acl_name => "aclName",
    :cluster_name => "clusterName",
    :node_type => "nodeType",
    :auto_minor_version_upgrade => "autoMinorVersionUpgrade",
    :cluster_endpoint => "clusterEndpoint",
    :data_tiering => "dataTiering",
    :description => "description",
    :engine => "engine",
    :engine_version => "engineVersion",
    :final_snapshot_name => "finalSnapshotName",
    :ip_discovery => "ipDiscovery",
    :kms_key_id => "kmsKeyId",
    :maintenance_window => "maintenanceWindow",
    :multi_region_cluster_name => "multiRegionClusterName",
    :network_type => "networkType",
    :num_replicas_per_shard => "numReplicasPerShard",
    :num_shards => "numShards",
    :parameter_group_name => "parameterGroupName",
    :port => "port",
    :security_group_ids => "securityGroupIds",
    :snapshot_arns => "snapshotArns",
    :snapshot_name => "snapshotName",
    :snapshot_retention_limit => "snapshotRetentionLimit",
    :snapshot_window => "snapshotWindow",
    :sns_topic_arn => "snsTopicArn",
    :sns_topic_status => "snsTopicStatus",
    :subnet_group_name => "subnetGroupName",
    :tags => "tags",
    :tls_enabled => "tlsEnabled",
  }
end

Instance Method Details

#to_jsiiObject



305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
# File 'memory_db/cfn_cluster_props.rb', line 305

def to_jsii
  result = {}
  result.merge!({
    "aclName" => @acl_name,
    "clusterName" => @cluster_name,
    "nodeType" => @node_type,
    "autoMinorVersionUpgrade" => @auto_minor_version_upgrade,
    "clusterEndpoint" => @cluster_endpoint,
    "dataTiering" => @data_tiering,
    "description" => @description,
    "engine" => @engine,
    "engineVersion" => @engine_version,
    "finalSnapshotName" => @final_snapshot_name,
    "ipDiscovery" => @ip_discovery,
    "kmsKeyId" => @kms_key_id,
    "maintenanceWindow" => @maintenance_window,
    "multiRegionClusterName" => @multi_region_cluster_name,
    "networkType" => @network_type,
    "numReplicasPerShard" => @num_replicas_per_shard,
    "numShards" => @num_shards,
    "parameterGroupName" => @parameter_group_name,
    "port" => @port,
    "securityGroupIds" => @security_group_ids,
    "snapshotArns" => @snapshot_arns,
    "snapshotName" => @snapshot_name,
    "snapshotRetentionLimit" => @snapshot_retention_limit,
    "snapshotWindow" => @snapshot_window,
    "snsTopicArn" => @sns_topic_arn,
    "snsTopicStatus" => @sns_topic_status,
    "subnetGroupName" => @subnet_group_name,
    "tags" => @tags,
    "tlsEnabled" => @tls_enabled,
  })
  result.compact
end