Class: AWSCDK::Elasticache::CfnServerlessCacheProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
elasticache/cfn_serverless_cache_props.rb

Overview

Properties for defining a CfnServerlessCache.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(engine:, serverless_cache_name:, cache_usage_limits: nil, daily_snapshot_time: nil, description: nil, endpoint: nil, final_snapshot_name: nil, kms_key_id: nil, major_engine_version: nil, network_type: nil, reader_endpoint: nil, security_group_ids: nil, snapshot_arns_to_restore: nil, snapshot_retention_limit: nil, subnet_ids: nil, tags: nil, user_group_id: nil) ⇒ CfnServerlessCacheProps

Returns a new instance of CfnServerlessCacheProps.

Parameters:

  • engine (String)

    The engine the serverless cache is compatible with.

  • serverless_cache_name (String)

    The unique identifier of the serverless cache.

  • cache_usage_limits (AWSCDK::IResolvable, AWSCDK::Elasticache::CfnServerlessCache::CacheUsageLimitsProperty, nil) (defaults to: nil)

    The cache usage limit for the serverless cache.

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

    The daily time that a cache snapshot will be created.

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

    A description of the serverless cache.

  • endpoint (AWSCDK::IResolvable, AWSCDK::Elasticache::CfnServerlessCache::EndpointProperty, nil) (defaults to: nil)

    Represents the information required for client programs to connect to a cache node.

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

    The name of the final snapshot taken of a cache before the cache is deleted.

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

    The ID of the AWS Key Management Service (KMS) key that is used to encrypt data at rest in the serverless cache.

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

    The version number of the engine the serverless cache is compatible with.

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

    The network type for the serverless cache.

  • reader_endpoint (AWSCDK::IResolvable, AWSCDK::Elasticache::CfnServerlessCache::EndpointProperty, nil) (defaults to: nil)

    Represents the information required for client programs to connect to a cache node.

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

    The IDs of the EC2 security groups associated with the serverless cache.

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

    The ARN of the snapshot from which to restore data into the new cache.

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

    The current setting for the number of serverless cache snapshots the system will retain.

  • subnet_ids (Array<String, AWSCDK::Interfaces::AWSEC2::ISubnetRef>, nil) (defaults to: nil)

    If no subnet IDs are given and your VPC is in us-west-1, then ElastiCache will select 2 default subnets across AZs in your VPC.

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

    A list of tags to be added to this resource.

  • user_group_id (String, AWSCDK::Interfaces::AWSElasticache::IUserGroupRef, nil) (defaults to: nil)

    The identifier of the user group associated with the serverless cache.



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
# File 'elasticache/cfn_serverless_cache_props.rb', line 26

def initialize(engine:, serverless_cache_name:, cache_usage_limits: nil, daily_snapshot_time: nil, description: nil, endpoint: nil, final_snapshot_name: nil, kms_key_id: nil, major_engine_version: nil, network_type: nil, reader_endpoint: nil, security_group_ids: nil, snapshot_arns_to_restore: nil, snapshot_retention_limit: nil, subnet_ids: nil, tags: nil, user_group_id: nil)
  @engine = engine
  Jsii::Type.check_type(@engine, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "engine")
  @serverless_cache_name = serverless_cache_name
  Jsii::Type.check_type(@serverless_cache_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "serverlessCacheName")
  @cache_usage_limits = cache_usage_limits.is_a?(Hash) ? ::AWSCDK::Elasticache::CfnServerlessCache::CacheUsageLimitsProperty.new(**cache_usage_limits.transform_keys(&:to_sym)) : cache_usage_limits
  Jsii::Type.check_type(@cache_usage_limits, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljYWNoZS5DZm5TZXJ2ZXJsZXNzQ2FjaGUuQ2FjaGVVc2FnZUxpbWl0c1Byb3BlcnR5In1dfX0=")), "cacheUsageLimits") unless @cache_usage_limits.nil?
  @daily_snapshot_time = daily_snapshot_time
  Jsii::Type.check_type(@daily_snapshot_time, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "dailySnapshotTime") unless @daily_snapshot_time.nil?
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @endpoint = endpoint.is_a?(Hash) ? ::AWSCDK::Elasticache::CfnServerlessCache::EndpointProperty.new(**endpoint.transform_keys(&:to_sym)) : endpoint
  Jsii::Type.check_type(@endpoint, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljYWNoZS5DZm5TZXJ2ZXJsZXNzQ2FjaGUuRW5kcG9pbnRQcm9wZXJ0eSJ9XX19")), "endpoint") unless @endpoint.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?
  @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?
  @major_engine_version = major_engine_version
  Jsii::Type.check_type(@major_engine_version, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "majorEngineVersion") unless @major_engine_version.nil?
  @network_type = network_type
  Jsii::Type.check_type(@network_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "networkType") unless @network_type.nil?
  @reader_endpoint = reader_endpoint.is_a?(Hash) ? ::AWSCDK::Elasticache::CfnServerlessCache::EndpointProperty.new(**reader_endpoint.transform_keys(&:to_sym)) : reader_endpoint
  Jsii::Type.check_type(@reader_endpoint, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljYWNoZS5DZm5TZXJ2ZXJsZXNzQ2FjaGUuRW5kcG9pbnRQcm9wZXJ0eSJ9XX19")), "readerEndpoint") unless @reader_endpoint.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_to_restore = snapshot_arns_to_restore
  Jsii::Type.check_type(@snapshot_arns_to_restore, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "snapshotArnsToRestore") unless @snapshot_arns_to_restore.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?
  @subnet_ids = subnet_ids
  Jsii::Type.check_type(@subnet_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InVuaW9uIjp7InR5cGVzIjpbeyJwcmltaXRpdmUiOiJzdHJpbmcifSx7ImZxbiI6ImF3cy1jZGstbGliLmludGVyZmFjZXMuYXdzX2VjMi5JU3VibmV0UmVmIn1dfX0sImtpbmQiOiJhcnJheSJ9fQ==")), "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?
  @user_group_id = user_group_id
  Jsii::Type.check_type(@user_group_id, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19lbGFzdGljYWNoZS5JVXNlckdyb3VwUmVmIn1dfX0=")), "userGroupId") unless @user_group_id.nil?
end

Instance Attribute Details

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

The cache usage limit for the serverless cache.



77
78
79
# File 'elasticache/cfn_serverless_cache_props.rb', line 77

def cache_usage_limits
  @cache_usage_limits
end

#daily_snapshot_timeString? (readonly)

The daily time that a cache snapshot will be created.

Default is NULL, i.e. snapshots will not be created at a specific time on a daily basis. Available for Valkey, Redis OSS and Serverless Memcached only.



84
85
86
# File 'elasticache/cfn_serverless_cache_props.rb', line 84

def daily_snapshot_time
  @daily_snapshot_time
end

#descriptionString? (readonly)

A description of the serverless cache.



89
90
91
# File 'elasticache/cfn_serverless_cache_props.rb', line 89

def description
  @description
end

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

Represents the information required for client programs to connect to a cache node.

This value is read-only.



96
97
98
# File 'elasticache/cfn_serverless_cache_props.rb', line 96

def endpoint
  @endpoint
end

#engineString (readonly)

The engine the serverless cache is compatible with.



67
68
69
# File 'elasticache/cfn_serverless_cache_props.rb', line 67

def engine
  @engine
end

#final_snapshot_nameString? (readonly)

The name of the final snapshot taken of a cache before the cache is deleted.



101
102
103
# File 'elasticache/cfn_serverless_cache_props.rb', line 101

def final_snapshot_name
  @final_snapshot_name
end

#kms_key_idString, ... (readonly)

The ID of the AWS Key Management Service (KMS) key that is used to encrypt data at rest in the serverless cache.



106
107
108
# File 'elasticache/cfn_serverless_cache_props.rb', line 106

def kms_key_id
  @kms_key_id
end

#major_engine_versionString? (readonly)

The version number of the engine the serverless cache is compatible with.



111
112
113
# File 'elasticache/cfn_serverless_cache_props.rb', line 111

def major_engine_version
  @major_engine_version
end

#network_typeString? (readonly)

The network type for the serverless cache.

Valid values are ipv4, ipv6, or dual_stack.



118
119
120
# File 'elasticache/cfn_serverless_cache_props.rb', line 118

def network_type
  @network_type
end

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

Represents the information required for client programs to connect to a cache node.

This value is read-only.



125
126
127
# File 'elasticache/cfn_serverless_cache_props.rb', line 125

def reader_endpoint
  @reader_endpoint
end

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

The IDs of the EC2 security groups associated with the serverless cache.



130
131
132
# File 'elasticache/cfn_serverless_cache_props.rb', line 130

def security_group_ids
  @security_group_ids
end

#serverless_cache_nameString (readonly)

The unique identifier of the serverless cache.



72
73
74
# File 'elasticache/cfn_serverless_cache_props.rb', line 72

def serverless_cache_name
  @serverless_cache_name
end

#snapshot_arns_to_restoreArray<String>? (readonly)

The ARN of the snapshot from which to restore data into the new cache.



135
136
137
# File 'elasticache/cfn_serverless_cache_props.rb', line 135

def snapshot_arns_to_restore
  @snapshot_arns_to_restore
end

#snapshot_retention_limitNumeric? (readonly)

The current setting for the number of serverless cache snapshots the system will retain.

Available for Valkey, Redis OSS and Serverless Memcached only.



142
143
144
# File 'elasticache/cfn_serverless_cache_props.rb', line 142

def snapshot_retention_limit
  @snapshot_retention_limit
end

#subnet_idsArray<String, AWSCDK::Interfaces::AWSEC2::ISubnetRef>? (readonly)

If no subnet IDs are given and your VPC is in us-west-1, then ElastiCache will select 2 default subnets across AZs in your VPC.

For all other Regions, if no subnet IDs are given then ElastiCache will select 3 default subnets across AZs in your default VPC.



149
150
151
# File 'elasticache/cfn_serverless_cache_props.rb', line 149

def subnet_ids
  @subnet_ids
end

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

A list of tags to be added to this resource.



154
155
156
# File 'elasticache/cfn_serverless_cache_props.rb', line 154

def tags
  @tags
end

#user_group_idString, ... (readonly)

The identifier of the user group associated with the serverless cache.

Available for Valkey and Redis OSS only. Default is NULL.



161
162
163
# File 'elasticache/cfn_serverless_cache_props.rb', line 161

def user_group_id
  @user_group_id
end

Class Method Details

.jsii_propertiesObject



163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'elasticache/cfn_serverless_cache_props.rb', line 163

def self.jsii_properties
  {
    :engine => "engine",
    :serverless_cache_name => "serverlessCacheName",
    :cache_usage_limits => "cacheUsageLimits",
    :daily_snapshot_time => "dailySnapshotTime",
    :description => "description",
    :endpoint => "endpoint",
    :final_snapshot_name => "finalSnapshotName",
    :kms_key_id => "kmsKeyId",
    :major_engine_version => "majorEngineVersion",
    :network_type => "networkType",
    :reader_endpoint => "readerEndpoint",
    :security_group_ids => "securityGroupIds",
    :snapshot_arns_to_restore => "snapshotArnsToRestore",
    :snapshot_retention_limit => "snapshotRetentionLimit",
    :subnet_ids => "subnetIds",
    :tags => "tags",
    :user_group_id => "userGroupId",
  }
end

Instance Method Details

#to_jsiiObject



185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
# File 'elasticache/cfn_serverless_cache_props.rb', line 185

def to_jsii
  result = {}
  result.merge!({
    "engine" => @engine,
    "serverlessCacheName" => @serverless_cache_name,
    "cacheUsageLimits" => @cache_usage_limits,
    "dailySnapshotTime" => @daily_snapshot_time,
    "description" => @description,
    "endpoint" => @endpoint,
    "finalSnapshotName" => @final_snapshot_name,
    "kmsKeyId" => @kms_key_id,
    "majorEngineVersion" => @major_engine_version,
    "networkType" => @network_type,
    "readerEndpoint" => @reader_endpoint,
    "securityGroupIds" => @security_group_ids,
    "snapshotArnsToRestore" => @snapshot_arns_to_restore,
    "snapshotRetentionLimit" => @snapshot_retention_limit,
    "subnetIds" => @subnet_ids,
    "tags" => @tags,
    "userGroupId" => @user_group_id,
  })
  result.compact
end