aws-sdk-elasticache 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b289a6200585ca409fe5b53839a9beff968bced6
4
+ data.tar.gz: 0da1eaec49a1a501c4244240c5d3248102f4ced5
5
+ SHA512:
6
+ metadata.gz: d160dbba2e119ab584ba81486ca2bfaf99a669dfd8b78c602dc192daefd971de436b13fe809c428008669d9e4ebe15d76ddf2f69f2bbabb0523be0a8c71234aa
7
+ data.tar.gz: 6090d34928ab29b64aec38bf6e65dea0b203de22666099bd943758ff096c8016549d76d54a70936f8dc4b0b835df6e270ee490e36f273ee3cc2b6a4eb00a42a5
@@ -0,0 +1,48 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'aws-sdk-core'
9
+ require 'aws-sigv4'
10
+
11
+ require_relative 'aws-sdk-elasticache/types'
12
+ require_relative 'aws-sdk-elasticache/client_api'
13
+ require_relative 'aws-sdk-elasticache/client'
14
+ require_relative 'aws-sdk-elasticache/errors'
15
+ require_relative 'aws-sdk-elasticache/waiters'
16
+ require_relative 'aws-sdk-elasticache/resource'
17
+ require_relative 'aws-sdk-elasticache/customizations'
18
+
19
+ # This module provides support for Amazon ElastiCache. This module is available in the
20
+ # `aws-sdk-elasticache` gem.
21
+ #
22
+ # # Client
23
+ #
24
+ # The {Client} class provides one method for each API operation. Operation
25
+ # methods each accept a hash of request parameters and return a response
26
+ # structure.
27
+ #
28
+ # See {Client} for more information.
29
+ #
30
+ # # Errors
31
+ #
32
+ # Errors returned from Amazon ElastiCache all
33
+ # extend {Errors::ServiceError}.
34
+ #
35
+ # begin
36
+ # # do stuff
37
+ # rescue Aws::ElastiCache::Errors::ServiceError
38
+ # # rescues all service API errors
39
+ # end
40
+ #
41
+ # See {Errors} for more information.
42
+ #
43
+ # @service
44
+ module Aws::ElastiCache
45
+
46
+ GEM_VERSION = '1.0.0.rc1'
47
+
48
+ end
@@ -0,0 +1,3673 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'seahorse/client/plugins/content_length.rb'
9
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
10
+ require 'aws-sdk-core/plugins/logging.rb'
11
+ require 'aws-sdk-core/plugins/param_converter.rb'
12
+ require 'aws-sdk-core/plugins/param_validator.rb'
13
+ require 'aws-sdk-core/plugins/user_agent.rb'
14
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
+ require 'aws-sdk-core/plugins/retry_errors.rb'
16
+ require 'aws-sdk-core/plugins/global_configuration.rb'
17
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/response_paging.rb'
19
+ require 'aws-sdk-core/plugins/stub_responses.rb'
20
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
21
+ require 'aws-sdk-core/plugins/signature_v4.rb'
22
+ require 'aws-sdk-core/plugins/protocols/query.rb'
23
+
24
+ Aws::Plugins::GlobalConfiguration.add_identifier(:elasticache)
25
+
26
+ module Aws
27
+ module ElastiCache
28
+ class Client < Seahorse::Client::Base
29
+
30
+ include Aws::ClientStubs
31
+
32
+ @identifier = :elasticache
33
+
34
+ set_api(ClientApi::API)
35
+
36
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
37
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
38
+ add_plugin(Aws::Plugins::Logging)
39
+ add_plugin(Aws::Plugins::ParamConverter)
40
+ add_plugin(Aws::Plugins::ParamValidator)
41
+ add_plugin(Aws::Plugins::UserAgent)
42
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
43
+ add_plugin(Aws::Plugins::RetryErrors)
44
+ add_plugin(Aws::Plugins::GlobalConfiguration)
45
+ add_plugin(Aws::Plugins::RegionalEndpoint)
46
+ add_plugin(Aws::Plugins::ResponsePaging)
47
+ add_plugin(Aws::Plugins::StubResponses)
48
+ add_plugin(Aws::Plugins::IdempotencyToken)
49
+ add_plugin(Aws::Plugins::SignatureV4)
50
+ add_plugin(Aws::Plugins::Protocols::Query)
51
+
52
+ # @option options [required, Aws::CredentialProvider] :credentials
53
+ # Your AWS credentials. This can be an instance of any one of the
54
+ # following classes:
55
+ #
56
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
57
+ # credentials.
58
+ #
59
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
60
+ # from an EC2 IMDS on an EC2 instance.
61
+ #
62
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
63
+ # shared file, such as `~/.aws/config`.
64
+ #
65
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
66
+ #
67
+ # When `:credentials` are not configured directly, the following
68
+ # locations will be searched for credentials:
69
+ #
70
+ # * `Aws.config[:credentials]`
71
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
72
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
73
+ # * `~/.aws/credentials`
74
+ # * `~/.aws/config`
75
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
76
+ # very aggressive. Construct and pass an instance of
77
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
78
+ # timeouts.
79
+ # @option options [required, String] :region
80
+ # The AWS region to connect to. The configured `:region` is
81
+ # used to determine the service `:endpoint`. When not passed,
82
+ # a default `:region` is search for in the following locations:
83
+ #
84
+ # * `Aws.config[:region]`
85
+ # * `ENV['AWS_REGION']`
86
+ # * `ENV['AMAZON_REGION']`
87
+ # * `ENV['AWS_DEFAULT_REGION']`
88
+ # * `~/.aws/credentials`
89
+ # * `~/.aws/config`
90
+ # @option options [String] :access_key_id
91
+ # @option options [Boolean] :convert_params (true)
92
+ # When `true`, an attempt is made to coerce request parameters into
93
+ # the required types.
94
+ # @option options [String] :endpoint
95
+ # The client endpoint is normally constructed from the `:region`
96
+ # option. You should only configure an `:endpoint` when connecting
97
+ # to test endpoints. This should be avalid HTTP(S) URI.
98
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
99
+ # The log formatter.
100
+ # @option options [Symbol] :log_level (:info)
101
+ # The log level to send messages to the `:logger` at.
102
+ # @option options [Logger] :logger
103
+ # The Logger instance to send log messages to. If this option
104
+ # is not set, logging will be disabled.
105
+ # @option options [String] :profile ("default")
106
+ # Used when loading credentials from the shared credentials file
107
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
108
+ # @option options [Integer] :retry_limit (3)
109
+ # The maximum number of times to retry failed requests. Only
110
+ # ~ 500 level server errors and certain ~ 400 level client errors
111
+ # are retried. Generally, these are throttling errors, data
112
+ # checksum errors, networking errors, timeout errors and auth
113
+ # errors from expired credentials.
114
+ # @option options [String] :secret_access_key
115
+ # @option options [String] :session_token
116
+ # @option options [Boolean] :stub_responses (false)
117
+ # Causes the client to return stubbed responses. By default
118
+ # fake responses are generated and returned. You can specify
119
+ # the response data to return or errors to raise by calling
120
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
121
+ #
122
+ # ** Please note ** When response stubbing is enabled, no HTTP
123
+ # requests are made, and retries are disabled.
124
+ # @option options [Boolean] :validate_params (true)
125
+ # When `true`, request parameters are validated before
126
+ # sending the request.
127
+ def initialize(*args)
128
+ super
129
+ end
130
+
131
+ # @!group API Operations
132
+
133
+ # Adds up to 10 cost allocation tags to the named resource. A cost
134
+ # allocation tag is a key-value pair where the key and value are
135
+ # case-sensitive. You can use cost allocation tags to categorize and
136
+ # track your AWS costs.
137
+ #
138
+ # When you apply tags to your ElastiCache resources, AWS generates a
139
+ # cost allocation report as a comma-separated value (CSV) file with your
140
+ # usage and costs aggregated by your tags. You can apply tags that
141
+ # represent business categories (such as cost centers, application
142
+ # names, or owners) to organize your costs across multiple services. For
143
+ # more information, see [Using Cost Allocation Tags in Amazon
144
+ # ElastiCache][1] in the *ElastiCache User Guide*.
145
+ #
146
+ #
147
+ #
148
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Tagging.html
149
+ # @option params [required, String] :resource_name
150
+ # The Amazon Resource Name (ARN) of the resource to which the tags are
151
+ # to be added, for example
152
+ # `arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster` or
153
+ # `arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot`.
154
+ #
155
+ # For more information about ARNs, see [Amazon Resource Names (ARNs) and
156
+ # AWS Service Namespaces][1].
157
+ #
158
+ #
159
+ #
160
+ # [1]: http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
161
+ # @option params [required, Array<Types::Tag>] :tags
162
+ # A list of cost allocation tags to be added to this resource. A tag is
163
+ # a key-value pair. A tag key must be accompanied by a tag value.
164
+ # @return [Types::TagListMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
165
+ #
166
+ # * {Types::TagListMessage#tag_list #TagList} => Array&lt;Types::Tag&gt;
167
+ #
168
+ # @example Request syntax with placeholder values
169
+ # resp = client.add_tags_to_resource({
170
+ # resource_name: "String", # required
171
+ # tags: [ # required
172
+ # {
173
+ # key: "String",
174
+ # value: "String",
175
+ # },
176
+ # ],
177
+ # })
178
+ #
179
+ # @example Response structure
180
+ # resp.tag_list #=> Array
181
+ # resp.tag_list[0].key #=> String
182
+ # resp.tag_list[0].value #=> String
183
+ # @overload add_tags_to_resource(params = {})
184
+ # @param [Hash] params ({})
185
+ def add_tags_to_resource(params = {}, options = {})
186
+ req = build_request(:add_tags_to_resource, params)
187
+ req.send_request(options)
188
+ end
189
+
190
+ # Allows network ingress to a cache security group. Applications using
191
+ # ElastiCache must be running on Amazon EC2, and Amazon EC2 security
192
+ # groups are used as the authorization mechanism.
193
+ #
194
+ # <note markdown="1"> You cannot authorize ingress from an Amazon EC2 security group in one
195
+ # region to an ElastiCache cluster in another region.
196
+ #
197
+ # </note>
198
+ # @option params [required, String] :cache_security_group_name
199
+ # The cache security group that allows network ingress.
200
+ # @option params [required, String] :ec2_security_group_name
201
+ # The Amazon EC2 security group to be authorized for ingress to the
202
+ # cache security group.
203
+ # @option params [required, String] :ec2_security_group_owner_id
204
+ # The AWS account number of the Amazon EC2 security group owner. Note
205
+ # that this is not the same thing as an AWS access key ID - you must
206
+ # provide a valid AWS account number for this parameter.
207
+ # @return [Types::AuthorizeCacheSecurityGroupIngressResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
208
+ #
209
+ # * {Types::AuthorizeCacheSecurityGroupIngressResult#cache_security_group #CacheSecurityGroup} => Types::CacheSecurityGroup
210
+ #
211
+ # @example Request syntax with placeholder values
212
+ # resp = client.authorize_cache_security_group_ingress({
213
+ # cache_security_group_name: "String", # required
214
+ # ec2_security_group_name: "String", # required
215
+ # ec2_security_group_owner_id: "String", # required
216
+ # })
217
+ #
218
+ # @example Response structure
219
+ # resp.cache_security_group.owner_id #=> String
220
+ # resp.cache_security_group.cache_security_group_name #=> String
221
+ # resp.cache_security_group.description #=> String
222
+ # resp.cache_security_group.ec2_security_groups #=> Array
223
+ # resp.cache_security_group.ec2_security_groups[0].status #=> String
224
+ # resp.cache_security_group.ec2_security_groups[0].ec2_security_group_name #=> String
225
+ # resp.cache_security_group.ec2_security_groups[0].ec2_security_group_owner_id #=> String
226
+ # @overload authorize_cache_security_group_ingress(params = {})
227
+ # @param [Hash] params ({})
228
+ def authorize_cache_security_group_ingress(params = {}, options = {})
229
+ req = build_request(:authorize_cache_security_group_ingress, params)
230
+ req.send_request(options)
231
+ end
232
+
233
+ # Makes a copy of an existing snapshot.
234
+ #
235
+ # <note markdown="1"> This operation is valid for Redis only.
236
+ #
237
+ # </note>
238
+ #
239
+ # Users or groups that have permissions to use the `CopySnapshot`
240
+ # operation can create their own Amazon S3 buckets and copy snapshots to
241
+ # it. To control access to your snapshots, use an IAM policy to control
242
+ # who has the ability to use the `CopySnapshot` operation. For more
243
+ # information about using IAM to control the use of ElastiCache
244
+ # operations, see [Exporting Snapshots][1] and [Authentication &amp;
245
+ # Access Control][2].
246
+ #
247
+ # You could receive the following error messages.
248
+ #
249
+ # **Error Messages**
250
+ #
251
+ # * **Error Message:** The S3 bucket %s is outside of the region.
252
+ #
253
+ # **Solution:** Create an Amazon S3 bucket in the same region as your
254
+ # snapshot. For more information, see [Step 1: Create an Amazon S3
255
+ # Bucket][3] in the ElastiCache User Guide.
256
+ #
257
+ # * **Error Message:** The S3 bucket %s does not exist.
258
+ #
259
+ # **Solution:** Create an Amazon S3 bucket in the same region as your
260
+ # snapshot. For more information, see [Step 1: Create an Amazon S3
261
+ # Bucket][3] in the ElastiCache User Guide.
262
+ #
263
+ # * **Error Message:** The S3 bucket %s is not owned by the
264
+ # authenticated user.
265
+ #
266
+ # **Solution:** Create an Amazon S3 bucket in the same region as your
267
+ # snapshot. For more information, see [Step 1: Create an Amazon S3
268
+ # Bucket][3] in the ElastiCache User Guide.
269
+ #
270
+ # * **Error Message:** The authenticated user does not have sufficient
271
+ # permissions to perform the desired activity.
272
+ #
273
+ # **Solution:** Contact your system administrator to get the needed
274
+ # permissions.
275
+ #
276
+ # * **Error Message:** The S3 bucket %s already contains an object with
277
+ # key %s.
278
+ #
279
+ # **Solution:** Give the `TargetSnapshotName` a new and unique value.
280
+ # If exporting a snapshot, you could alternatively create a new Amazon
281
+ # S3 bucket and use this same value for `TargetSnapshotName`.
282
+ #
283
+ # * <b>Error Message: </b> ElastiCache has not been granted READ
284
+ # permissions %s on the S3 Bucket.
285
+ #
286
+ # **Solution:** Add List and Read permissions on the bucket. For more
287
+ # information, see [Step 2: Grant ElastiCache Access to Your Amazon S3
288
+ # Bucket][4] in the ElastiCache User Guide.
289
+ #
290
+ # * <b>Error Message: </b> ElastiCache has not been granted WRITE
291
+ # permissions %s on the S3 Bucket.
292
+ #
293
+ # **Solution:** Add Upload/Delete permissions on the bucket. For more
294
+ # information, see [Step 2: Grant ElastiCache Access to Your Amazon S3
295
+ # Bucket][4] in the ElastiCache User Guide.
296
+ #
297
+ # * <b>Error Message: </b> ElastiCache has not been granted READ\_ACP
298
+ # permissions %s on the S3 Bucket.
299
+ #
300
+ # **Solution:** Add View Permissions on the bucket. For more
301
+ # information, see [Step 2: Grant ElastiCache Access to Your Amazon S3
302
+ # Bucket][4] in the ElastiCache User Guide.
303
+ #
304
+ #
305
+ #
306
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Snapshots.Exporting.html
307
+ # [2]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/IAM.html
308
+ # [3]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Snapshots.Exporting.html#Snapshots.Exporting.CreateBucket
309
+ # [4]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Snapshots.Exporting.html#Snapshots.Exporting.GrantAccess
310
+ # @option params [required, String] :source_snapshot_name
311
+ # The name of an existing snapshot from which to make a copy.
312
+ # @option params [required, String] :target_snapshot_name
313
+ # A name for the snapshot copy. ElastiCache does not permit overwriting
314
+ # a snapshot, therefore this name must be unique within its context -
315
+ # ElastiCache or an Amazon S3 bucket if exporting.
316
+ # @option params [String] :target_bucket
317
+ # The Amazon S3 bucket to which the snapshot is exported. This parameter
318
+ # is used only when exporting a snapshot for external access.
319
+ #
320
+ # When using this parameter to export a snapshot, be sure Amazon
321
+ # ElastiCache has the needed permissions to this S3 bucket. For more
322
+ # information, see [Step 2: Grant ElastiCache Access to Your Amazon S3
323
+ # Bucket][1] in the *Amazon ElastiCache User Guide*.
324
+ #
325
+ # For more information, see [Exporting a Snapshot][2] in the *Amazon
326
+ # ElastiCache User Guide*.
327
+ #
328
+ #
329
+ #
330
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Snapshots.Exporting.html#Snapshots.Exporting.GrantAccess
331
+ # [2]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Snapshots.Exporting.html
332
+ # @return [Types::CopySnapshotResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
333
+ #
334
+ # * {Types::CopySnapshotResult#snapshot #Snapshot} => Types::Snapshot
335
+ #
336
+ # @example Request syntax with placeholder values
337
+ # resp = client.copy_snapshot({
338
+ # source_snapshot_name: "String", # required
339
+ # target_snapshot_name: "String", # required
340
+ # target_bucket: "String",
341
+ # })
342
+ #
343
+ # @example Response structure
344
+ # resp.snapshot.snapshot_name #=> String
345
+ # resp.snapshot.replication_group_id #=> String
346
+ # resp.snapshot.replication_group_description #=> String
347
+ # resp.snapshot.cache_cluster_id #=> String
348
+ # resp.snapshot.snapshot_status #=> String
349
+ # resp.snapshot.snapshot_source #=> String
350
+ # resp.snapshot.cache_node_type #=> String
351
+ # resp.snapshot.engine #=> String
352
+ # resp.snapshot.engine_version #=> String
353
+ # resp.snapshot.num_cache_nodes #=> Integer
354
+ # resp.snapshot.preferred_availability_zone #=> String
355
+ # resp.snapshot.cache_cluster_create_time #=> Time
356
+ # resp.snapshot.preferred_maintenance_window #=> String
357
+ # resp.snapshot.topic_arn #=> String
358
+ # resp.snapshot.port #=> Integer
359
+ # resp.snapshot.cache_parameter_group_name #=> String
360
+ # resp.snapshot.cache_subnet_group_name #=> String
361
+ # resp.snapshot.vpc_id #=> String
362
+ # resp.snapshot.auto_minor_version_upgrade #=> Boolean
363
+ # resp.snapshot.snapshot_retention_limit #=> Integer
364
+ # resp.snapshot.snapshot_window #=> String
365
+ # resp.snapshot.num_node_groups #=> Integer
366
+ # resp.snapshot.automatic_failover #=> String, one of "enabled", "disabled", "enabling", "disabling"
367
+ # resp.snapshot.node_snapshots #=> Array
368
+ # resp.snapshot.node_snapshots[0].cache_cluster_id #=> String
369
+ # resp.snapshot.node_snapshots[0].node_group_id #=> String
370
+ # resp.snapshot.node_snapshots[0].cache_node_id #=> String
371
+ # resp.snapshot.node_snapshots[0].node_group_configuration.slots #=> String
372
+ # resp.snapshot.node_snapshots[0].node_group_configuration.replica_count #=> Integer
373
+ # resp.snapshot.node_snapshots[0].node_group_configuration.primary_availability_zone #=> String
374
+ # resp.snapshot.node_snapshots[0].node_group_configuration.replica_availability_zones #=> Array
375
+ # resp.snapshot.node_snapshots[0].node_group_configuration.replica_availability_zones[0] #=> String
376
+ # resp.snapshot.node_snapshots[0].cache_size #=> String
377
+ # resp.snapshot.node_snapshots[0].cache_node_create_time #=> Time
378
+ # resp.snapshot.node_snapshots[0].snapshot_create_time #=> Time
379
+ # @overload copy_snapshot(params = {})
380
+ # @param [Hash] params ({})
381
+ def copy_snapshot(params = {}, options = {})
382
+ req = build_request(:copy_snapshot, params)
383
+ req.send_request(options)
384
+ end
385
+
386
+ # Creates a cache cluster. All nodes in the cache cluster run the same
387
+ # protocol-compliant cache engine software, either Memcached or Redis.
388
+ #
389
+ # Due to current limitations on Redis (cluster mode disabled), this
390
+ # operation or parameter is not supported on Redis (cluster mode
391
+ # enabled) replication groups.
392
+ # @option params [required, String] :cache_cluster_id
393
+ # The node group (shard) identifier. This parameter is stored as a
394
+ # lowercase string.
395
+ #
396
+ # **Constraints:**
397
+ #
398
+ # * A name must contain from 1 to 20 alphanumeric characters or hyphens.
399
+ #
400
+ # * The first character must be a letter.
401
+ #
402
+ # * A name cannot end with a hyphen or contain two consecutive hyphens.
403
+ # @option params [String] :replication_group_id
404
+ # Due to current limitations on Redis (cluster mode disabled), this
405
+ # operation or parameter is not supported on Redis (cluster mode
406
+ # enabled) replication groups.
407
+ #
408
+ # The ID of the replication group to which this cache cluster should
409
+ # belong. If this parameter is specified, the cache cluster is added to
410
+ # the specified replication group as a read replica; otherwise, the
411
+ # cache cluster is a standalone primary that is not part of any
412
+ # replication group.
413
+ #
414
+ # If the specified replication group is Multi-AZ enabled and the
415
+ # Availability Zone is not specified, the cache cluster is created in
416
+ # Availability Zones that provide the best spread of read replicas
417
+ # across Availability Zones.
418
+ #
419
+ # <note markdown="1"> This parameter is only valid if the `Engine` parameter is `redis`.
420
+ #
421
+ # </note>
422
+ # @option params [String] :az_mode
423
+ # Specifies whether the nodes in this Memcached cluster are created in a
424
+ # single Availability Zone or created across multiple Availability Zones
425
+ # in the cluster's region.
426
+ #
427
+ # This parameter is only supported for Memcached cache clusters.
428
+ #
429
+ # If the `AZMode` and `PreferredAvailabilityZones` are not specified,
430
+ # ElastiCache assumes `single-az` mode.
431
+ # @option params [String] :preferred_availability_zone
432
+ # The EC2 Availability Zone in which the cache cluster is created.
433
+ #
434
+ # All nodes belonging to this Memcached cache cluster are placed in the
435
+ # preferred Availability Zone. If you want to create your nodes across
436
+ # multiple Availability Zones, use `PreferredAvailabilityZones`.
437
+ #
438
+ # Default: System chosen Availability Zone.
439
+ # @option params [Array<String>] :preferred_availability_zones
440
+ # A list of the Availability Zones in which cache nodes are created. The
441
+ # order of the zones in the list is not important.
442
+ #
443
+ # This option is only supported on Memcached.
444
+ #
445
+ # <note markdown="1"> If you are creating your cache cluster in an Amazon VPC (recommended)
446
+ # you can only locate nodes in Availability Zones that are associated
447
+ # with the subnets in the selected subnet group.
448
+ #
449
+ # The number of Availability Zones listed must equal the value of
450
+ # `NumCacheNodes`.
451
+ #
452
+ # </note>
453
+ #
454
+ # If you want all the nodes in the same Availability Zone, use
455
+ # `PreferredAvailabilityZone` instead, or repeat the Availability Zone
456
+ # multiple times in the list.
457
+ #
458
+ # Default: System chosen Availability Zones.
459
+ # @option params [Integer] :num_cache_nodes
460
+ # The initial number of cache nodes that the cache cluster has.
461
+ #
462
+ # For clusters running Redis, this value must be 1. For clusters running
463
+ # Memcached, this value must be between 1 and 20.
464
+ #
465
+ # If you need more than 20 nodes for your Memcached cluster, please fill
466
+ # out the ElastiCache Limit Increase Request form at
467
+ # [http://aws.amazon.com/contact-us/elasticache-node-limit-request/][1].
468
+ #
469
+ #
470
+ #
471
+ # [1]: http://aws.amazon.com/contact-us/elasticache-node-limit-request/
472
+ # @option params [String] :cache_node_type
473
+ # The compute and memory capacity of the nodes in the node group
474
+ # (shard).
475
+ #
476
+ # Valid node types are as follows:
477
+ #
478
+ # * General purpose:
479
+ #
480
+ # * Current generation: `cache.t2.micro`, `cache.t2.small`,
481
+ # `cache.t2.medium`, `cache.m3.medium`, `cache.m3.large`,
482
+ # `cache.m3.xlarge`, `cache.m3.2xlarge`, `cache.m4.large`,
483
+ # `cache.m4.xlarge`, `cache.m4.2xlarge`, `cache.m4.4xlarge`,
484
+ # `cache.m4.10xlarge`
485
+ #
486
+ # * Previous generation: `cache.t1.micro`, `cache.m1.small`,
487
+ # `cache.m1.medium`, `cache.m1.large`, `cache.m1.xlarge`
488
+ #
489
+ # * Compute optimized: `cache.c1.xlarge`
490
+ #
491
+ # * Memory optimized:
492
+ #
493
+ # * Current generation: `cache.r3.large`, `cache.r3.xlarge`,
494
+ # `cache.r3.2xlarge`, `cache.r3.4xlarge`, `cache.r3.8xlarge`
495
+ #
496
+ # * Previous generation: `cache.m2.xlarge`, `cache.m2.2xlarge`,
497
+ # `cache.m2.4xlarge`
498
+ #
499
+ # **Notes:**
500
+ #
501
+ # * All T2 instances are created in an Amazon Virtual Private Cloud
502
+ # (Amazon VPC).
503
+ #
504
+ # * Redis backup/restore is not supported for Redis (cluster mode
505
+ # disabled) T1 and T2 instances. Backup/restore is supported on Redis
506
+ # (cluster mode enabled) T2 instances.
507
+ #
508
+ # * Redis Append-only files (AOF) functionality is not supported for T1
509
+ # or T2 instances.
510
+ #
511
+ # For a complete listing of node types and specifications, see [Amazon
512
+ # ElastiCache Product Features and Details][1] and either [Cache Node
513
+ # Type-Specific Parameters for Memcached][2] or [Cache Node
514
+ # Type-Specific Parameters for Redis][3].
515
+ #
516
+ #
517
+ #
518
+ # [1]: http://aws.amazon.com/elasticache/details
519
+ # [2]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific
520
+ # [3]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific
521
+ # @option params [String] :engine
522
+ # The name of the cache engine to be used for this cache cluster.
523
+ #
524
+ # Valid values for this parameter are: `memcached` \| `redis`
525
+ # @option params [String] :engine_version
526
+ # The version number of the cache engine to be used for this cache
527
+ # cluster. To view the supported cache engine versions, use the
528
+ # DescribeCacheEngineVersions operation.
529
+ #
530
+ # **Important:** You can upgrade to a newer engine version (see
531
+ # [Selecting a Cache Engine and Version][1]), but you cannot downgrade
532
+ # to an earlier engine version. If you want to use an earlier engine
533
+ # version, you must delete the existing cache cluster or replication
534
+ # group and create it anew with the earlier engine version.
535
+ #
536
+ #
537
+ #
538
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement
539
+ # @option params [String] :cache_parameter_group_name
540
+ # The name of the parameter group to associate with this cache cluster.
541
+ # If this argument is omitted, the default parameter group for the
542
+ # specified engine is used. You cannot use any parameter group which has
543
+ # `cluster-enabled='yes'` when creating a cluster.
544
+ # @option params [String] :cache_subnet_group_name
545
+ # The name of the subnet group to be used for the cache cluster.
546
+ #
547
+ # Use this parameter only when you are creating a cache cluster in an
548
+ # Amazon Virtual Private Cloud (Amazon VPC).
549
+ #
550
+ # If you're going to launch your cluster in an Amazon VPC, you need to
551
+ # create a subnet group before you start creating a cluster. For more
552
+ # information, see [Subnets and Subnet Groups][1].
553
+ #
554
+ #
555
+ #
556
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SubnetGroups.html
557
+ # @option params [Array<String>] :cache_security_group_names
558
+ # A list of security group names to associate with this cache cluster.
559
+ #
560
+ # Use this parameter only when you are creating a cache cluster outside
561
+ # of an Amazon Virtual Private Cloud (Amazon VPC).
562
+ # @option params [Array<String>] :security_group_ids
563
+ # One or more VPC security groups associated with the cache cluster.
564
+ #
565
+ # Use this parameter only when you are creating a cache cluster in an
566
+ # Amazon Virtual Private Cloud (Amazon VPC).
567
+ # @option params [Array<Types::Tag>] :tags
568
+ # A list of cost allocation tags to be added to this resource. A tag is
569
+ # a key-value pair. A tag key must be accompanied by a tag value.
570
+ # @option params [Array<String>] :snapshot_arns
571
+ # A single-element string list containing an Amazon Resource Name (ARN)
572
+ # that uniquely identifies a Redis RDB snapshot file stored in Amazon
573
+ # S3. The snapshot file is used to populate the node group (shard). The
574
+ # Amazon S3 object name in the ARN cannot contain any commas.
575
+ #
576
+ # <note markdown="1"> This parameter is only valid if the `Engine` parameter is `redis`.
577
+ #
578
+ # </note>
579
+ #
580
+ # Example of an Amazon S3 ARN: `arn:aws:s3:::my_bucket/snapshot1.rdb`
581
+ # @option params [String] :snapshot_name
582
+ # The name of a Redis snapshot from which to restore data into the new
583
+ # node group (shard). The snapshot status changes to `restoring` while
584
+ # the new node group (shard) is being created.
585
+ #
586
+ # <note markdown="1"> This parameter is only valid if the `Engine` parameter is `redis`.
587
+ #
588
+ # </note>
589
+ # @option params [String] :preferred_maintenance_window
590
+ # Specifies the weekly time range during which maintenance on the cache
591
+ # cluster is performed. It is specified as a range in the format
592
+ # ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance
593
+ # window is a 60 minute period. Valid values for `ddd` are:
594
+ #
595
+ # Specifies the weekly time range during which maintenance on the
596
+ # cluster is performed. It is specified as a range in the format
597
+ # ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance
598
+ # window is a 60 minute period.
599
+ #
600
+ # Valid values for `ddd` are:
601
+ #
602
+ # * `sun`
603
+ #
604
+ # * `mon`
605
+ #
606
+ # * `tue`
607
+ #
608
+ # * `wed`
609
+ #
610
+ # * `thu`
611
+ #
612
+ # * `fri`
613
+ #
614
+ # * `sat`
615
+ #
616
+ # Example: `sun:23:00-mon:01:30`
617
+ # @option params [Integer] :port
618
+ # The port number on which each of the cache nodes accepts connections.
619
+ # @option params [String] :notification_topic_arn
620
+ # The Amazon Resource Name (ARN) of the Amazon Simple Notification
621
+ # Service (SNS) topic to which notifications are sent.
622
+ #
623
+ # <note markdown="1"> The Amazon SNS topic owner must be the same as the cache cluster
624
+ # owner.
625
+ #
626
+ # </note>
627
+ # @option params [Boolean] :auto_minor_version_upgrade
628
+ # This parameter is currently disabled.
629
+ # @option params [Integer] :snapshot_retention_limit
630
+ # The number of days for which ElastiCache retains automatic snapshots
631
+ # before deleting them. For example, if you set `SnapshotRetentionLimit`
632
+ # to 5, a snapshot taken today is retained for 5 days before being
633
+ # deleted.
634
+ #
635
+ # <note markdown="1"> This parameter is only valid if the `Engine` parameter is `redis`.
636
+ #
637
+ # </note>
638
+ #
639
+ # Default: 0 (i.e., automatic backups are disabled for this cache
640
+ # cluster).
641
+ # @option params [String] :snapshot_window
642
+ # The daily time range (in UTC) during which ElastiCache begins taking a
643
+ # daily snapshot of your node group (shard).
644
+ #
645
+ # Example: `05:00-09:00`
646
+ #
647
+ # If you do not specify this parameter, ElastiCache automatically
648
+ # chooses an appropriate time range.
649
+ #
650
+ # **Note:** This parameter is only valid if the `Engine` parameter is
651
+ # `redis`.
652
+ # @option params [String] :auth_token
653
+ # The password used to access a password protected server.
654
+ #
655
+ # Password constraints:
656
+ #
657
+ # * Must be only printable ASCII characters.
658
+ #
659
+ # * Must be at least 16 characters and no more than 128 characters in
660
+ # length.
661
+ #
662
+ # * Cannot contain any of the following characters: '/', '"', or
663
+ # "@".
664
+ #
665
+ # For more information, see [AUTH password][1] at Redis.
666
+ #
667
+ #
668
+ #
669
+ # [1]: http://redis.io/commands/AUTH
670
+ # @return [Types::CreateCacheClusterResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
671
+ #
672
+ # * {Types::CreateCacheClusterResult#cache_cluster #CacheCluster} => Types::CacheCluster
673
+ #
674
+ # @example Request syntax with placeholder values
675
+ # resp = client.create_cache_cluster({
676
+ # cache_cluster_id: "String", # required
677
+ # replication_group_id: "String",
678
+ # az_mode: "single-az", # accepts single-az, cross-az
679
+ # preferred_availability_zone: "String",
680
+ # preferred_availability_zones: ["String"],
681
+ # num_cache_nodes: 1,
682
+ # cache_node_type: "String",
683
+ # engine: "String",
684
+ # engine_version: "String",
685
+ # cache_parameter_group_name: "String",
686
+ # cache_subnet_group_name: "String",
687
+ # cache_security_group_names: ["String"],
688
+ # security_group_ids: ["String"],
689
+ # tags: [
690
+ # {
691
+ # key: "String",
692
+ # value: "String",
693
+ # },
694
+ # ],
695
+ # snapshot_arns: ["String"],
696
+ # snapshot_name: "String",
697
+ # preferred_maintenance_window: "String",
698
+ # port: 1,
699
+ # notification_topic_arn: "String",
700
+ # auto_minor_version_upgrade: false,
701
+ # snapshot_retention_limit: 1,
702
+ # snapshot_window: "String",
703
+ # auth_token: "String",
704
+ # })
705
+ #
706
+ # @example Response structure
707
+ # resp.cache_cluster.cache_cluster_id #=> String
708
+ # resp.cache_cluster.configuration_endpoint.address #=> String
709
+ # resp.cache_cluster.configuration_endpoint.port #=> Integer
710
+ # resp.cache_cluster.client_download_landing_page #=> String
711
+ # resp.cache_cluster.cache_node_type #=> String
712
+ # resp.cache_cluster.engine #=> String
713
+ # resp.cache_cluster.engine_version #=> String
714
+ # resp.cache_cluster.cache_cluster_status #=> String
715
+ # resp.cache_cluster.num_cache_nodes #=> Integer
716
+ # resp.cache_cluster.preferred_availability_zone #=> String
717
+ # resp.cache_cluster.cache_cluster_create_time #=> Time
718
+ # resp.cache_cluster.preferred_maintenance_window #=> String
719
+ # resp.cache_cluster.pending_modified_values.num_cache_nodes #=> Integer
720
+ # resp.cache_cluster.pending_modified_values.cache_node_ids_to_remove #=> Array
721
+ # resp.cache_cluster.pending_modified_values.cache_node_ids_to_remove[0] #=> String
722
+ # resp.cache_cluster.pending_modified_values.engine_version #=> String
723
+ # resp.cache_cluster.pending_modified_values.cache_node_type #=> String
724
+ # resp.cache_cluster.notification_configuration.topic_arn #=> String
725
+ # resp.cache_cluster.notification_configuration.topic_status #=> String
726
+ # resp.cache_cluster.cache_security_groups #=> Array
727
+ # resp.cache_cluster.cache_security_groups[0].cache_security_group_name #=> String
728
+ # resp.cache_cluster.cache_security_groups[0].status #=> String
729
+ # resp.cache_cluster.cache_parameter_group.cache_parameter_group_name #=> String
730
+ # resp.cache_cluster.cache_parameter_group.parameter_apply_status #=> String
731
+ # resp.cache_cluster.cache_parameter_group.cache_node_ids_to_reboot #=> Array
732
+ # resp.cache_cluster.cache_parameter_group.cache_node_ids_to_reboot[0] #=> String
733
+ # resp.cache_cluster.cache_subnet_group_name #=> String
734
+ # resp.cache_cluster.cache_nodes #=> Array
735
+ # resp.cache_cluster.cache_nodes[0].cache_node_id #=> String
736
+ # resp.cache_cluster.cache_nodes[0].cache_node_status #=> String
737
+ # resp.cache_cluster.cache_nodes[0].cache_node_create_time #=> Time
738
+ # resp.cache_cluster.cache_nodes[0].endpoint.address #=> String
739
+ # resp.cache_cluster.cache_nodes[0].endpoint.port #=> Integer
740
+ # resp.cache_cluster.cache_nodes[0].parameter_group_status #=> String
741
+ # resp.cache_cluster.cache_nodes[0].source_cache_node_id #=> String
742
+ # resp.cache_cluster.cache_nodes[0].customer_availability_zone #=> String
743
+ # resp.cache_cluster.auto_minor_version_upgrade #=> Boolean
744
+ # resp.cache_cluster.security_groups #=> Array
745
+ # resp.cache_cluster.security_groups[0].security_group_id #=> String
746
+ # resp.cache_cluster.security_groups[0].status #=> String
747
+ # resp.cache_cluster.replication_group_id #=> String
748
+ # resp.cache_cluster.snapshot_retention_limit #=> Integer
749
+ # resp.cache_cluster.snapshot_window #=> String
750
+ # @overload create_cache_cluster(params = {})
751
+ # @param [Hash] params ({})
752
+ def create_cache_cluster(params = {}, options = {})
753
+ req = build_request(:create_cache_cluster, params)
754
+ req.send_request(options)
755
+ end
756
+
757
+ # Creates a new cache parameter group. A cache parameter group is a
758
+ # collection of parameters that you apply to all of the nodes in a cache
759
+ # cluster.
760
+ # @option params [required, String] :cache_parameter_group_name
761
+ # A user-specified name for the cache parameter group.
762
+ # @option params [required, String] :cache_parameter_group_family
763
+ # The name of the cache parameter group family that the cache parameter
764
+ # group can be used with.
765
+ #
766
+ # Valid values are: `memcached1.4` \| `redis2.6` \| `redis2.8` \|
767
+ # `redis3.2`
768
+ # @option params [required, String] :description
769
+ # A user-specified description for the cache parameter group.
770
+ # @return [Types::CreateCacheParameterGroupResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
771
+ #
772
+ # * {Types::CreateCacheParameterGroupResult#cache_parameter_group #CacheParameterGroup} => Types::CacheParameterGroup
773
+ #
774
+ # @example Request syntax with placeholder values
775
+ # resp = client.create_cache_parameter_group({
776
+ # cache_parameter_group_name: "String", # required
777
+ # cache_parameter_group_family: "String", # required
778
+ # description: "String", # required
779
+ # })
780
+ #
781
+ # @example Response structure
782
+ # resp.cache_parameter_group.cache_parameter_group_name #=> String
783
+ # resp.cache_parameter_group.cache_parameter_group_family #=> String
784
+ # resp.cache_parameter_group.description #=> String
785
+ # @overload create_cache_parameter_group(params = {})
786
+ # @param [Hash] params ({})
787
+ def create_cache_parameter_group(params = {}, options = {})
788
+ req = build_request(:create_cache_parameter_group, params)
789
+ req.send_request(options)
790
+ end
791
+
792
+ # Creates a new cache security group. Use a cache security group to
793
+ # control access to one or more cache clusters.
794
+ #
795
+ # Cache security groups are only used when you are creating a cache
796
+ # cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). If
797
+ # you are creating a cache cluster inside of a VPC, use a cache subnet
798
+ # group instead. For more information, see [CreateCacheSubnetGroup][1].
799
+ #
800
+ #
801
+ #
802
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSubnetGroup.html
803
+ # @option params [required, String] :cache_security_group_name
804
+ # A name for the cache security group. This value is stored as a
805
+ # lowercase string.
806
+ #
807
+ # Constraints: Must contain no more than 255 alphanumeric characters.
808
+ # Cannot be the word "Default".
809
+ #
810
+ # Example: `mysecuritygroup`
811
+ # @option params [required, String] :description
812
+ # A description for the cache security group.
813
+ # @return [Types::CreateCacheSecurityGroupResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
814
+ #
815
+ # * {Types::CreateCacheSecurityGroupResult#cache_security_group #CacheSecurityGroup} => Types::CacheSecurityGroup
816
+ #
817
+ # @example Request syntax with placeholder values
818
+ # resp = client.create_cache_security_group({
819
+ # cache_security_group_name: "String", # required
820
+ # description: "String", # required
821
+ # })
822
+ #
823
+ # @example Response structure
824
+ # resp.cache_security_group.owner_id #=> String
825
+ # resp.cache_security_group.cache_security_group_name #=> String
826
+ # resp.cache_security_group.description #=> String
827
+ # resp.cache_security_group.ec2_security_groups #=> Array
828
+ # resp.cache_security_group.ec2_security_groups[0].status #=> String
829
+ # resp.cache_security_group.ec2_security_groups[0].ec2_security_group_name #=> String
830
+ # resp.cache_security_group.ec2_security_groups[0].ec2_security_group_owner_id #=> String
831
+ # @overload create_cache_security_group(params = {})
832
+ # @param [Hash] params ({})
833
+ def create_cache_security_group(params = {}, options = {})
834
+ req = build_request(:create_cache_security_group, params)
835
+ req.send_request(options)
836
+ end
837
+
838
+ # Creates a new cache subnet group.
839
+ #
840
+ # Use this parameter only when you are creating a cluster in an Amazon
841
+ # Virtual Private Cloud (Amazon VPC).
842
+ # @option params [required, String] :cache_subnet_group_name
843
+ # A name for the cache subnet group. This value is stored as a lowercase
844
+ # string.
845
+ #
846
+ # Constraints: Must contain no more than 255 alphanumeric characters or
847
+ # hyphens.
848
+ #
849
+ # Example: `mysubnetgroup`
850
+ # @option params [required, String] :cache_subnet_group_description
851
+ # A description for the cache subnet group.
852
+ # @option params [required, Array<String>] :subnet_ids
853
+ # A list of VPC subnet IDs for the cache subnet group.
854
+ # @return [Types::CreateCacheSubnetGroupResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
855
+ #
856
+ # * {Types::CreateCacheSubnetGroupResult#cache_subnet_group #CacheSubnetGroup} => Types::CacheSubnetGroup
857
+ #
858
+ # @example Request syntax with placeholder values
859
+ # resp = client.create_cache_subnet_group({
860
+ # cache_subnet_group_name: "String", # required
861
+ # cache_subnet_group_description: "String", # required
862
+ # subnet_ids: ["String"], # required
863
+ # })
864
+ #
865
+ # @example Response structure
866
+ # resp.cache_subnet_group.cache_subnet_group_name #=> String
867
+ # resp.cache_subnet_group.cache_subnet_group_description #=> String
868
+ # resp.cache_subnet_group.vpc_id #=> String
869
+ # resp.cache_subnet_group.subnets #=> Array
870
+ # resp.cache_subnet_group.subnets[0].subnet_identifier #=> String
871
+ # resp.cache_subnet_group.subnets[0].subnet_availability_zone.name #=> String
872
+ # @overload create_cache_subnet_group(params = {})
873
+ # @param [Hash] params ({})
874
+ def create_cache_subnet_group(params = {}, options = {})
875
+ req = build_request(:create_cache_subnet_group, params)
876
+ req.send_request(options)
877
+ end
878
+
879
+ # Creates a Redis (cluster mode disabled) or a Redis (cluster mode
880
+ # enabled) replication group.
881
+ #
882
+ # A Redis (cluster mode disabled) replication group is a collection of
883
+ # cache clusters, where one of the cache clusters is a read/write
884
+ # primary and the others are read-only replicas. Writes to the primary
885
+ # are asynchronously propagated to the replicas.
886
+ #
887
+ # A Redis (cluster mode enabled) replication group is a collection of 1
888
+ # to 15 node groups (shards). Each node group (shard) has one read/write
889
+ # primary node and up to 5 read-only replica nodes. Writes to the
890
+ # primary are asynchronously propagated to the replicas. Redis (cluster
891
+ # mode enabled) replication groups partition the data across node groups
892
+ # (shards).
893
+ #
894
+ # When a Redis (cluster mode disabled) replication group has been
895
+ # successfully created, you can add one or more read replicas to it, up
896
+ # to a total of 5 read replicas. You cannot alter a Redis (cluster mode
897
+ # enabled) replication group after it has been created.
898
+ #
899
+ # <note markdown="1"> This operation is valid for Redis only.
900
+ #
901
+ # </note>
902
+ # @option params [required, String] :replication_group_id
903
+ # The replication group identifier. This parameter is stored as a
904
+ # lowercase string.
905
+ #
906
+ # Constraints:
907
+ #
908
+ # * A name must contain from 1 to 20 alphanumeric characters or hyphens.
909
+ #
910
+ # * The first character must be a letter.
911
+ #
912
+ # * A name cannot end with a hyphen or contain two consecutive hyphens.
913
+ # @option params [required, String] :replication_group_description
914
+ # A user-created description for the replication group.
915
+ # @option params [String] :primary_cluster_id
916
+ # The identifier of the cache cluster that serves as the primary for
917
+ # this replication group. This cache cluster must already exist and have
918
+ # a status of `available`.
919
+ #
920
+ # This parameter is not required if `NumCacheClusters`, `NumNodeGroups`,
921
+ # or `ReplicasPerNodeGroup` is specified.
922
+ # @option params [Boolean] :automatic_failover_enabled
923
+ # Specifies whether a read-only replica is automatically promoted to
924
+ # read/write primary if the existing primary fails.
925
+ #
926
+ # If `true`, Multi-AZ is enabled for this replication group. If `false`,
927
+ # Multi-AZ is disabled for this replication group.
928
+ #
929
+ # `AutomaticFailoverEnabled` must be enabled for Redis (cluster mode
930
+ # enabled) replication groups.
931
+ #
932
+ # Default: false
933
+ #
934
+ # <note markdown="1"> ElastiCache Multi-AZ replication groups is not supported on:
935
+ #
936
+ # * Redis versions earlier than 2.8.6.
937
+ #
938
+ # * Redis (cluster mode disabled): T1 and T2 node types.
939
+ #
940
+ # Redis (cluster mode enabled): T2 node types.
941
+ #
942
+ # </note>
943
+ # @option params [Integer] :num_cache_clusters
944
+ # The number of clusters this replication group initially has.
945
+ #
946
+ # This parameter is not used if there is more than one node group
947
+ # (shard). You should use `ReplicasPerNodeGroup` instead.
948
+ #
949
+ # If `Multi-AZ` is `enabled`, the value of this parameter must be at
950
+ # least 2.
951
+ #
952
+ # The maximum permitted value for `NumCacheClusters` is 6 (primary plus
953
+ # 5 replicas).
954
+ # @option params [Array<String>] :preferred_cache_cluster_a_zs
955
+ # A list of EC2 Availability Zones in which the replication group's
956
+ # cache clusters are created. The order of the Availability Zones in the
957
+ # list is the order in which clusters are allocated. The primary cluster
958
+ # is created in the first AZ in the list.
959
+ #
960
+ # This parameter is not used if there is more than one node group
961
+ # (shard). You should use `NodeGroupConfiguration` instead.
962
+ #
963
+ # <note markdown="1"> If you are creating your replication group in an Amazon VPC
964
+ # (recommended), you can only locate cache clusters in Availability
965
+ # Zones associated with the subnets in the selected subnet group.
966
+ #
967
+ # The number of Availability Zones listed must equal the value of
968
+ # `NumCacheClusters`.
969
+ #
970
+ # </note>
971
+ #
972
+ # Default: system chosen Availability Zones.
973
+ # @option params [Integer] :num_node_groups
974
+ # An optional parameter that specifies the number of node groups
975
+ # (shards) for this Redis (cluster mode enabled) replication group. For
976
+ # Redis (cluster mode disabled) either omit this parameter or set it to
977
+ # 1.
978
+ #
979
+ # Default: 1
980
+ # @option params [Integer] :replicas_per_node_group
981
+ # An optional parameter that specifies the number of replica nodes in
982
+ # each node group (shard). Valid values are 0 to 5.
983
+ # @option params [Array<Types::NodeGroupConfiguration>] :node_group_configuration
984
+ # A list of node group (shard) configuration options. Each node group
985
+ # (shard) configuration has the following: Slots,
986
+ # PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount.
987
+ #
988
+ # If you're creating a Redis (cluster mode disabled) or a Redis
989
+ # (cluster mode enabled) replication group, you can use this parameter
990
+ # to configure one node group (shard) or you can omit this parameter.
991
+ # @option params [String] :cache_node_type
992
+ # The compute and memory capacity of the nodes in the node group
993
+ # (shard).
994
+ #
995
+ # Valid node types are as follows:
996
+ #
997
+ # * General purpose:
998
+ #
999
+ # * Current generation: `cache.t2.micro`, `cache.t2.small`,
1000
+ # `cache.t2.medium`, `cache.m3.medium`, `cache.m3.large`,
1001
+ # `cache.m3.xlarge`, `cache.m3.2xlarge`, `cache.m4.large`,
1002
+ # `cache.m4.xlarge`, `cache.m4.2xlarge`, `cache.m4.4xlarge`,
1003
+ # `cache.m4.10xlarge`
1004
+ #
1005
+ # * Previous generation: `cache.t1.micro`, `cache.m1.small`,
1006
+ # `cache.m1.medium`, `cache.m1.large`, `cache.m1.xlarge`
1007
+ #
1008
+ # * Compute optimized: `cache.c1.xlarge`
1009
+ #
1010
+ # * Memory optimized:
1011
+ #
1012
+ # * Current generation: `cache.r3.large`, `cache.r3.xlarge`,
1013
+ # `cache.r3.2xlarge`, `cache.r3.4xlarge`, `cache.r3.8xlarge`
1014
+ #
1015
+ # * Previous generation: `cache.m2.xlarge`, `cache.m2.2xlarge`,
1016
+ # `cache.m2.4xlarge`
1017
+ #
1018
+ # **Notes:**
1019
+ #
1020
+ # * All T2 instances are created in an Amazon Virtual Private Cloud
1021
+ # (Amazon VPC).
1022
+ #
1023
+ # * Redis backup/restore is not supported for Redis (cluster mode
1024
+ # disabled) T1 and T2 instances. Backup/restore is supported on Redis
1025
+ # (cluster mode enabled) T2 instances.
1026
+ #
1027
+ # * Redis Append-only files (AOF) functionality is not supported for T1
1028
+ # or T2 instances.
1029
+ #
1030
+ # For a complete listing of node types and specifications, see [Amazon
1031
+ # ElastiCache Product Features and Details][1] and either [Cache Node
1032
+ # Type-Specific Parameters for Memcached][2] or [Cache Node
1033
+ # Type-Specific Parameters for Redis][3].
1034
+ #
1035
+ #
1036
+ #
1037
+ # [1]: http://aws.amazon.com/elasticache/details
1038
+ # [2]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific
1039
+ # [3]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific
1040
+ # @option params [String] :engine
1041
+ # The name of the cache engine to be used for the cache clusters in this
1042
+ # replication group.
1043
+ # @option params [String] :engine_version
1044
+ # The version number of the cache engine to be used for the cache
1045
+ # clusters in this replication group. To view the supported cache engine
1046
+ # versions, use the `DescribeCacheEngineVersions` operation.
1047
+ #
1048
+ # **Important:** You can upgrade to a newer engine version (see
1049
+ # [Selecting a Cache Engine and Version][1]) in the *ElastiCache User
1050
+ # Guide*, but you cannot downgrade to an earlier engine version. If you
1051
+ # want to use an earlier engine version, you must delete the existing
1052
+ # cache cluster or replication group and create it anew with the earlier
1053
+ # engine version.
1054
+ #
1055
+ #
1056
+ #
1057
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement
1058
+ # @option params [String] :cache_parameter_group_name
1059
+ # The name of the parameter group to associate with this replication
1060
+ # group. If this argument is omitted, the default cache parameter group
1061
+ # for the specified engine is used.
1062
+ #
1063
+ # If you are running Redis version 3.2.4 or later, only one node group
1064
+ # (shard), and want to use a default parameter group, we recommend that
1065
+ # you specify the parameter group by name.
1066
+ #
1067
+ # * To create a Redis (cluster mode disabled) replication group, use
1068
+ # `CacheParameterGroupName=default.redis3.2`.
1069
+ #
1070
+ # * To create a Redis (cluster mode enabled) replication group, use
1071
+ # `CacheParameterGroupName=default.redis3.2.cluster.on`.
1072
+ # @option params [String] :cache_subnet_group_name
1073
+ # The name of the cache subnet group to be used for the replication
1074
+ # group.
1075
+ #
1076
+ # If you're going to launch your cluster in an Amazon VPC, you need to
1077
+ # create a subnet group before you start creating a cluster. For more
1078
+ # information, see [Subnets and Subnet Groups][1].
1079
+ #
1080
+ #
1081
+ #
1082
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SubnetGroups.html
1083
+ # @option params [Array<String>] :cache_security_group_names
1084
+ # A list of cache security group names to associate with this
1085
+ # replication group.
1086
+ # @option params [Array<String>] :security_group_ids
1087
+ # One or more Amazon VPC security groups associated with this
1088
+ # replication group.
1089
+ #
1090
+ # Use this parameter only when you are creating a replication group in
1091
+ # an Amazon Virtual Private Cloud (Amazon VPC).
1092
+ # @option params [Array<Types::Tag>] :tags
1093
+ # A list of cost allocation tags to be added to this resource. A tag is
1094
+ # a key-value pair. A tag key must be accompanied by a tag value.
1095
+ # @option params [Array<String>] :snapshot_arns
1096
+ # A list of Amazon Resource Names (ARN) that uniquely identify the Redis
1097
+ # RDB snapshot files stored in Amazon S3. The snapshot files are used to
1098
+ # populate the replication group. The Amazon S3 object name in the ARN
1099
+ # cannot contain any commas. The list must match the number of node
1100
+ # groups (shards) in the replication group, which means you cannot
1101
+ # repartition.
1102
+ #
1103
+ # <note markdown="1"> This parameter is only valid if the `Engine` parameter is `redis`.
1104
+ #
1105
+ # </note>
1106
+ #
1107
+ # Example of an Amazon S3 ARN: `arn:aws:s3:::my_bucket/snapshot1.rdb`
1108
+ # @option params [String] :snapshot_name
1109
+ # The name of a snapshot from which to restore data into the new
1110
+ # replication group. The snapshot status changes to `restoring` while
1111
+ # the new replication group is being created.
1112
+ #
1113
+ # <note markdown="1"> This parameter is only valid if the `Engine` parameter is `redis`.
1114
+ #
1115
+ # </note>
1116
+ # @option params [String] :preferred_maintenance_window
1117
+ # Specifies the weekly time range during which maintenance on the cache
1118
+ # cluster is performed. It is specified as a range in the format
1119
+ # ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance
1120
+ # window is a 60 minute period. Valid values for `ddd` are:
1121
+ #
1122
+ # Specifies the weekly time range during which maintenance on the
1123
+ # cluster is performed. It is specified as a range in the format
1124
+ # ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance
1125
+ # window is a 60 minute period.
1126
+ #
1127
+ # Valid values for `ddd` are:
1128
+ #
1129
+ # * `sun`
1130
+ #
1131
+ # * `mon`
1132
+ #
1133
+ # * `tue`
1134
+ #
1135
+ # * `wed`
1136
+ #
1137
+ # * `thu`
1138
+ #
1139
+ # * `fri`
1140
+ #
1141
+ # * `sat`
1142
+ #
1143
+ # Example: `sun:23:00-mon:01:30`
1144
+ # @option params [Integer] :port
1145
+ # The port number on which each member of the replication group accepts
1146
+ # connections.
1147
+ # @option params [String] :notification_topic_arn
1148
+ # The Amazon Resource Name (ARN) of the Amazon Simple Notification
1149
+ # Service (SNS) topic to which notifications are sent.
1150
+ #
1151
+ # <note markdown="1"> The Amazon SNS topic owner must be the same as the cache cluster
1152
+ # owner.
1153
+ #
1154
+ # </note>
1155
+ # @option params [Boolean] :auto_minor_version_upgrade
1156
+ # This parameter is currently disabled.
1157
+ # @option params [Integer] :snapshot_retention_limit
1158
+ # The number of days for which ElastiCache retains automatic snapshots
1159
+ # before deleting them. For example, if you set `SnapshotRetentionLimit`
1160
+ # to 5, a snapshot that was taken today is retained for 5 days before
1161
+ # being deleted.
1162
+ #
1163
+ # <note markdown="1"> This parameter is only valid if the `Engine` parameter is `redis`.
1164
+ #
1165
+ # </note>
1166
+ #
1167
+ # Default: 0 (i.e., automatic backups are disabled for this cache
1168
+ # cluster).
1169
+ # @option params [String] :snapshot_window
1170
+ # The daily time range (in UTC) during which ElastiCache begins taking a
1171
+ # daily snapshot of your node group (shard).
1172
+ #
1173
+ # Example: `05:00-09:00`
1174
+ #
1175
+ # If you do not specify this parameter, ElastiCache automatically
1176
+ # chooses an appropriate time range.
1177
+ #
1178
+ # <note markdown="1"> This parameter is only valid if the `Engine` parameter is `redis`.
1179
+ #
1180
+ # </note>
1181
+ # @option params [String] :auth_token
1182
+ # The password used to access a password protected server.
1183
+ #
1184
+ # Password constraints:
1185
+ #
1186
+ # * Must be only printable ASCII characters.
1187
+ #
1188
+ # * Must be at least 16 characters and no more than 128 characters in
1189
+ # length.
1190
+ #
1191
+ # * Cannot contain any of the following characters: '/', '"', or
1192
+ # "@".
1193
+ #
1194
+ # For more information, see [AUTH password][1] at Redis.
1195
+ #
1196
+ #
1197
+ #
1198
+ # [1]: http://redis.io/commands/AUTH
1199
+ # @return [Types::CreateReplicationGroupResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1200
+ #
1201
+ # * {Types::CreateReplicationGroupResult#replication_group #ReplicationGroup} => Types::ReplicationGroup
1202
+ #
1203
+ # @example Request syntax with placeholder values
1204
+ # resp = client.create_replication_group({
1205
+ # replication_group_id: "String", # required
1206
+ # replication_group_description: "String", # required
1207
+ # primary_cluster_id: "String",
1208
+ # automatic_failover_enabled: false,
1209
+ # num_cache_clusters: 1,
1210
+ # preferred_cache_cluster_a_zs: ["String"],
1211
+ # num_node_groups: 1,
1212
+ # replicas_per_node_group: 1,
1213
+ # node_group_configuration: [
1214
+ # {
1215
+ # slots: "String",
1216
+ # replica_count: 1,
1217
+ # primary_availability_zone: "String",
1218
+ # replica_availability_zones: ["String"],
1219
+ # },
1220
+ # ],
1221
+ # cache_node_type: "String",
1222
+ # engine: "String",
1223
+ # engine_version: "String",
1224
+ # cache_parameter_group_name: "String",
1225
+ # cache_subnet_group_name: "String",
1226
+ # cache_security_group_names: ["String"],
1227
+ # security_group_ids: ["String"],
1228
+ # tags: [
1229
+ # {
1230
+ # key: "String",
1231
+ # value: "String",
1232
+ # },
1233
+ # ],
1234
+ # snapshot_arns: ["String"],
1235
+ # snapshot_name: "String",
1236
+ # preferred_maintenance_window: "String",
1237
+ # port: 1,
1238
+ # notification_topic_arn: "String",
1239
+ # auto_minor_version_upgrade: false,
1240
+ # snapshot_retention_limit: 1,
1241
+ # snapshot_window: "String",
1242
+ # auth_token: "String",
1243
+ # })
1244
+ #
1245
+ # @example Response structure
1246
+ # resp.replication_group.replication_group_id #=> String
1247
+ # resp.replication_group.description #=> String
1248
+ # resp.replication_group.status #=> String
1249
+ # resp.replication_group.pending_modified_values.primary_cluster_id #=> String
1250
+ # resp.replication_group.pending_modified_values.automatic_failover_status #=> String, one of "enabled", "disabled"
1251
+ # resp.replication_group.member_clusters #=> Array
1252
+ # resp.replication_group.member_clusters[0] #=> String
1253
+ # resp.replication_group.node_groups #=> Array
1254
+ # resp.replication_group.node_groups[0].node_group_id #=> String
1255
+ # resp.replication_group.node_groups[0].status #=> String
1256
+ # resp.replication_group.node_groups[0].primary_endpoint.address #=> String
1257
+ # resp.replication_group.node_groups[0].primary_endpoint.port #=> Integer
1258
+ # resp.replication_group.node_groups[0].slots #=> String
1259
+ # resp.replication_group.node_groups[0].node_group_members #=> Array
1260
+ # resp.replication_group.node_groups[0].node_group_members[0].cache_cluster_id #=> String
1261
+ # resp.replication_group.node_groups[0].node_group_members[0].cache_node_id #=> String
1262
+ # resp.replication_group.node_groups[0].node_group_members[0].read_endpoint.address #=> String
1263
+ # resp.replication_group.node_groups[0].node_group_members[0].read_endpoint.port #=> Integer
1264
+ # resp.replication_group.node_groups[0].node_group_members[0].preferred_availability_zone #=> String
1265
+ # resp.replication_group.node_groups[0].node_group_members[0].current_role #=> String
1266
+ # resp.replication_group.snapshotting_cluster_id #=> String
1267
+ # resp.replication_group.automatic_failover #=> String, one of "enabled", "disabled", "enabling", "disabling"
1268
+ # resp.replication_group.configuration_endpoint.address #=> String
1269
+ # resp.replication_group.configuration_endpoint.port #=> Integer
1270
+ # resp.replication_group.snapshot_retention_limit #=> Integer
1271
+ # resp.replication_group.snapshot_window #=> String
1272
+ # @overload create_replication_group(params = {})
1273
+ # @param [Hash] params ({})
1274
+ def create_replication_group(params = {}, options = {})
1275
+ req = build_request(:create_replication_group, params)
1276
+ req.send_request(options)
1277
+ end
1278
+
1279
+ # Creates a copy of an entire cache cluster or replication group at a
1280
+ # specific moment in time.
1281
+ #
1282
+ # <note markdown="1"> This operation is valid for Redis only.
1283
+ #
1284
+ # </note>
1285
+ # @option params [String] :replication_group_id
1286
+ # The identifier of an existing replication group. The snapshot is
1287
+ # created from this replication group.
1288
+ # @option params [String] :cache_cluster_id
1289
+ # The identifier of an existing cache cluster. The snapshot is created
1290
+ # from this cache cluster.
1291
+ # @option params [required, String] :snapshot_name
1292
+ # A name for the snapshot being created.
1293
+ # @return [Types::CreateSnapshotResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1294
+ #
1295
+ # * {Types::CreateSnapshotResult#snapshot #Snapshot} => Types::Snapshot
1296
+ #
1297
+ # @example Request syntax with placeholder values
1298
+ # resp = client.create_snapshot({
1299
+ # replication_group_id: "String",
1300
+ # cache_cluster_id: "String",
1301
+ # snapshot_name: "String", # required
1302
+ # })
1303
+ #
1304
+ # @example Response structure
1305
+ # resp.snapshot.snapshot_name #=> String
1306
+ # resp.snapshot.replication_group_id #=> String
1307
+ # resp.snapshot.replication_group_description #=> String
1308
+ # resp.snapshot.cache_cluster_id #=> String
1309
+ # resp.snapshot.snapshot_status #=> String
1310
+ # resp.snapshot.snapshot_source #=> String
1311
+ # resp.snapshot.cache_node_type #=> String
1312
+ # resp.snapshot.engine #=> String
1313
+ # resp.snapshot.engine_version #=> String
1314
+ # resp.snapshot.num_cache_nodes #=> Integer
1315
+ # resp.snapshot.preferred_availability_zone #=> String
1316
+ # resp.snapshot.cache_cluster_create_time #=> Time
1317
+ # resp.snapshot.preferred_maintenance_window #=> String
1318
+ # resp.snapshot.topic_arn #=> String
1319
+ # resp.snapshot.port #=> Integer
1320
+ # resp.snapshot.cache_parameter_group_name #=> String
1321
+ # resp.snapshot.cache_subnet_group_name #=> String
1322
+ # resp.snapshot.vpc_id #=> String
1323
+ # resp.snapshot.auto_minor_version_upgrade #=> Boolean
1324
+ # resp.snapshot.snapshot_retention_limit #=> Integer
1325
+ # resp.snapshot.snapshot_window #=> String
1326
+ # resp.snapshot.num_node_groups #=> Integer
1327
+ # resp.snapshot.automatic_failover #=> String, one of "enabled", "disabled", "enabling", "disabling"
1328
+ # resp.snapshot.node_snapshots #=> Array
1329
+ # resp.snapshot.node_snapshots[0].cache_cluster_id #=> String
1330
+ # resp.snapshot.node_snapshots[0].node_group_id #=> String
1331
+ # resp.snapshot.node_snapshots[0].cache_node_id #=> String
1332
+ # resp.snapshot.node_snapshots[0].node_group_configuration.slots #=> String
1333
+ # resp.snapshot.node_snapshots[0].node_group_configuration.replica_count #=> Integer
1334
+ # resp.snapshot.node_snapshots[0].node_group_configuration.primary_availability_zone #=> String
1335
+ # resp.snapshot.node_snapshots[0].node_group_configuration.replica_availability_zones #=> Array
1336
+ # resp.snapshot.node_snapshots[0].node_group_configuration.replica_availability_zones[0] #=> String
1337
+ # resp.snapshot.node_snapshots[0].cache_size #=> String
1338
+ # resp.snapshot.node_snapshots[0].cache_node_create_time #=> Time
1339
+ # resp.snapshot.node_snapshots[0].snapshot_create_time #=> Time
1340
+ # @overload create_snapshot(params = {})
1341
+ # @param [Hash] params ({})
1342
+ def create_snapshot(params = {}, options = {})
1343
+ req = build_request(:create_snapshot, params)
1344
+ req.send_request(options)
1345
+ end
1346
+
1347
+ # Deletes a previously provisioned cache cluster. `DeleteCacheCluster`
1348
+ # deletes all associated cache nodes, node endpoints and the cache
1349
+ # cluster itself. When you receive a successful response from this
1350
+ # operation, Amazon ElastiCache immediately begins deleting the cache
1351
+ # cluster; you cannot cancel or revert this operation.
1352
+ #
1353
+ # This operation cannot be used to delete a cache cluster that is the
1354
+ # last read replica of a replication group or node group (shard) that
1355
+ # has Multi-AZ mode enabled or a cache cluster from a Redis (cluster
1356
+ # mode enabled) replication group.
1357
+ #
1358
+ # Due to current limitations on Redis (cluster mode disabled), this
1359
+ # operation or parameter is not supported on Redis (cluster mode
1360
+ # enabled) replication groups.
1361
+ # @option params [required, String] :cache_cluster_id
1362
+ # The cache cluster identifier for the cluster to be deleted. This
1363
+ # parameter is not case sensitive.
1364
+ # @option params [String] :final_snapshot_identifier
1365
+ # The user-supplied name of a final cache cluster snapshot. This is the
1366
+ # unique name that identifies the snapshot. ElastiCache creates the
1367
+ # snapshot, and then deletes the cache cluster immediately afterward.
1368
+ # @return [Types::DeleteCacheClusterResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1369
+ #
1370
+ # * {Types::DeleteCacheClusterResult#cache_cluster #CacheCluster} => Types::CacheCluster
1371
+ #
1372
+ # @example Request syntax with placeholder values
1373
+ # resp = client.delete_cache_cluster({
1374
+ # cache_cluster_id: "String", # required
1375
+ # final_snapshot_identifier: "String",
1376
+ # })
1377
+ #
1378
+ # @example Response structure
1379
+ # resp.cache_cluster.cache_cluster_id #=> String
1380
+ # resp.cache_cluster.configuration_endpoint.address #=> String
1381
+ # resp.cache_cluster.configuration_endpoint.port #=> Integer
1382
+ # resp.cache_cluster.client_download_landing_page #=> String
1383
+ # resp.cache_cluster.cache_node_type #=> String
1384
+ # resp.cache_cluster.engine #=> String
1385
+ # resp.cache_cluster.engine_version #=> String
1386
+ # resp.cache_cluster.cache_cluster_status #=> String
1387
+ # resp.cache_cluster.num_cache_nodes #=> Integer
1388
+ # resp.cache_cluster.preferred_availability_zone #=> String
1389
+ # resp.cache_cluster.cache_cluster_create_time #=> Time
1390
+ # resp.cache_cluster.preferred_maintenance_window #=> String
1391
+ # resp.cache_cluster.pending_modified_values.num_cache_nodes #=> Integer
1392
+ # resp.cache_cluster.pending_modified_values.cache_node_ids_to_remove #=> Array
1393
+ # resp.cache_cluster.pending_modified_values.cache_node_ids_to_remove[0] #=> String
1394
+ # resp.cache_cluster.pending_modified_values.engine_version #=> String
1395
+ # resp.cache_cluster.pending_modified_values.cache_node_type #=> String
1396
+ # resp.cache_cluster.notification_configuration.topic_arn #=> String
1397
+ # resp.cache_cluster.notification_configuration.topic_status #=> String
1398
+ # resp.cache_cluster.cache_security_groups #=> Array
1399
+ # resp.cache_cluster.cache_security_groups[0].cache_security_group_name #=> String
1400
+ # resp.cache_cluster.cache_security_groups[0].status #=> String
1401
+ # resp.cache_cluster.cache_parameter_group.cache_parameter_group_name #=> String
1402
+ # resp.cache_cluster.cache_parameter_group.parameter_apply_status #=> String
1403
+ # resp.cache_cluster.cache_parameter_group.cache_node_ids_to_reboot #=> Array
1404
+ # resp.cache_cluster.cache_parameter_group.cache_node_ids_to_reboot[0] #=> String
1405
+ # resp.cache_cluster.cache_subnet_group_name #=> String
1406
+ # resp.cache_cluster.cache_nodes #=> Array
1407
+ # resp.cache_cluster.cache_nodes[0].cache_node_id #=> String
1408
+ # resp.cache_cluster.cache_nodes[0].cache_node_status #=> String
1409
+ # resp.cache_cluster.cache_nodes[0].cache_node_create_time #=> Time
1410
+ # resp.cache_cluster.cache_nodes[0].endpoint.address #=> String
1411
+ # resp.cache_cluster.cache_nodes[0].endpoint.port #=> Integer
1412
+ # resp.cache_cluster.cache_nodes[0].parameter_group_status #=> String
1413
+ # resp.cache_cluster.cache_nodes[0].source_cache_node_id #=> String
1414
+ # resp.cache_cluster.cache_nodes[0].customer_availability_zone #=> String
1415
+ # resp.cache_cluster.auto_minor_version_upgrade #=> Boolean
1416
+ # resp.cache_cluster.security_groups #=> Array
1417
+ # resp.cache_cluster.security_groups[0].security_group_id #=> String
1418
+ # resp.cache_cluster.security_groups[0].status #=> String
1419
+ # resp.cache_cluster.replication_group_id #=> String
1420
+ # resp.cache_cluster.snapshot_retention_limit #=> Integer
1421
+ # resp.cache_cluster.snapshot_window #=> String
1422
+ # @overload delete_cache_cluster(params = {})
1423
+ # @param [Hash] params ({})
1424
+ def delete_cache_cluster(params = {}, options = {})
1425
+ req = build_request(:delete_cache_cluster, params)
1426
+ req.send_request(options)
1427
+ end
1428
+
1429
+ # Deletes the specified cache parameter group. You cannot delete a cache
1430
+ # parameter group if it is associated with any cache clusters.
1431
+ # @option params [required, String] :cache_parameter_group_name
1432
+ # The name of the cache parameter group to delete.
1433
+ #
1434
+ # <note markdown="1"> The specified cache security group must not be associated with any
1435
+ # cache clusters.
1436
+ #
1437
+ # </note>
1438
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1439
+ #
1440
+ # @example Request syntax with placeholder values
1441
+ # resp = client.delete_cache_parameter_group({
1442
+ # cache_parameter_group_name: "String", # required
1443
+ # })
1444
+ # @overload delete_cache_parameter_group(params = {})
1445
+ # @param [Hash] params ({})
1446
+ def delete_cache_parameter_group(params = {}, options = {})
1447
+ req = build_request(:delete_cache_parameter_group, params)
1448
+ req.send_request(options)
1449
+ end
1450
+
1451
+ # Deletes a cache security group.
1452
+ #
1453
+ # <note markdown="1"> You cannot delete a cache security group if it is associated with any
1454
+ # cache clusters.
1455
+ #
1456
+ # </note>
1457
+ # @option params [required, String] :cache_security_group_name
1458
+ # The name of the cache security group to delete.
1459
+ #
1460
+ # <note markdown="1"> You cannot delete the default security group.
1461
+ #
1462
+ # </note>
1463
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1464
+ #
1465
+ # @example Request syntax with placeholder values
1466
+ # resp = client.delete_cache_security_group({
1467
+ # cache_security_group_name: "String", # required
1468
+ # })
1469
+ # @overload delete_cache_security_group(params = {})
1470
+ # @param [Hash] params ({})
1471
+ def delete_cache_security_group(params = {}, options = {})
1472
+ req = build_request(:delete_cache_security_group, params)
1473
+ req.send_request(options)
1474
+ end
1475
+
1476
+ # Deletes a cache subnet group.
1477
+ #
1478
+ # <note markdown="1"> You cannot delete a cache subnet group if it is associated with any
1479
+ # cache clusters.
1480
+ #
1481
+ # </note>
1482
+ # @option params [required, String] :cache_subnet_group_name
1483
+ # The name of the cache subnet group to delete.
1484
+ #
1485
+ # Constraints: Must contain no more than 255 alphanumeric characters or
1486
+ # hyphens.
1487
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1488
+ #
1489
+ # @example Request syntax with placeholder values
1490
+ # resp = client.delete_cache_subnet_group({
1491
+ # cache_subnet_group_name: "String", # required
1492
+ # })
1493
+ # @overload delete_cache_subnet_group(params = {})
1494
+ # @param [Hash] params ({})
1495
+ def delete_cache_subnet_group(params = {}, options = {})
1496
+ req = build_request(:delete_cache_subnet_group, params)
1497
+ req.send_request(options)
1498
+ end
1499
+
1500
+ # Deletes an existing replication group. By default, this operation
1501
+ # deletes the entire replication group, including the primary/primaries
1502
+ # and all of the read replicas. If the replication group has only one
1503
+ # primary, you can optionally delete only the read replicas, while
1504
+ # retaining the primary by setting `RetainPrimaryCluster=true`.
1505
+ #
1506
+ # When you receive a successful response from this operation, Amazon
1507
+ # ElastiCache immediately begins deleting the selected resources; you
1508
+ # cannot cancel or revert this operation.
1509
+ #
1510
+ # <note markdown="1"> This operation is valid for Redis only.
1511
+ #
1512
+ # </note>
1513
+ # @option params [required, String] :replication_group_id
1514
+ # The identifier for the cluster to be deleted. This parameter is not
1515
+ # case sensitive.
1516
+ # @option params [Boolean] :retain_primary_cluster
1517
+ # If set to `true`, all of the read replicas are deleted, but the
1518
+ # primary node is retained.
1519
+ # @option params [String] :final_snapshot_identifier
1520
+ # The name of a final node group (shard) snapshot. ElastiCache creates
1521
+ # the snapshot from the primary node in the cluster, rather than one of
1522
+ # the replicas; this is to ensure that it captures the freshest data.
1523
+ # After the final snapshot is taken, the replication group is
1524
+ # immediately deleted.
1525
+ # @return [Types::DeleteReplicationGroupResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1526
+ #
1527
+ # * {Types::DeleteReplicationGroupResult#replication_group #ReplicationGroup} => Types::ReplicationGroup
1528
+ #
1529
+ # @example Request syntax with placeholder values
1530
+ # resp = client.delete_replication_group({
1531
+ # replication_group_id: "String", # required
1532
+ # retain_primary_cluster: false,
1533
+ # final_snapshot_identifier: "String",
1534
+ # })
1535
+ #
1536
+ # @example Response structure
1537
+ # resp.replication_group.replication_group_id #=> String
1538
+ # resp.replication_group.description #=> String
1539
+ # resp.replication_group.status #=> String
1540
+ # resp.replication_group.pending_modified_values.primary_cluster_id #=> String
1541
+ # resp.replication_group.pending_modified_values.automatic_failover_status #=> String, one of "enabled", "disabled"
1542
+ # resp.replication_group.member_clusters #=> Array
1543
+ # resp.replication_group.member_clusters[0] #=> String
1544
+ # resp.replication_group.node_groups #=> Array
1545
+ # resp.replication_group.node_groups[0].node_group_id #=> String
1546
+ # resp.replication_group.node_groups[0].status #=> String
1547
+ # resp.replication_group.node_groups[0].primary_endpoint.address #=> String
1548
+ # resp.replication_group.node_groups[0].primary_endpoint.port #=> Integer
1549
+ # resp.replication_group.node_groups[0].slots #=> String
1550
+ # resp.replication_group.node_groups[0].node_group_members #=> Array
1551
+ # resp.replication_group.node_groups[0].node_group_members[0].cache_cluster_id #=> String
1552
+ # resp.replication_group.node_groups[0].node_group_members[0].cache_node_id #=> String
1553
+ # resp.replication_group.node_groups[0].node_group_members[0].read_endpoint.address #=> String
1554
+ # resp.replication_group.node_groups[0].node_group_members[0].read_endpoint.port #=> Integer
1555
+ # resp.replication_group.node_groups[0].node_group_members[0].preferred_availability_zone #=> String
1556
+ # resp.replication_group.node_groups[0].node_group_members[0].current_role #=> String
1557
+ # resp.replication_group.snapshotting_cluster_id #=> String
1558
+ # resp.replication_group.automatic_failover #=> String, one of "enabled", "disabled", "enabling", "disabling"
1559
+ # resp.replication_group.configuration_endpoint.address #=> String
1560
+ # resp.replication_group.configuration_endpoint.port #=> Integer
1561
+ # resp.replication_group.snapshot_retention_limit #=> Integer
1562
+ # resp.replication_group.snapshot_window #=> String
1563
+ # @overload delete_replication_group(params = {})
1564
+ # @param [Hash] params ({})
1565
+ def delete_replication_group(params = {}, options = {})
1566
+ req = build_request(:delete_replication_group, params)
1567
+ req.send_request(options)
1568
+ end
1569
+
1570
+ # Deletes an existing snapshot. When you receive a successful response
1571
+ # from this operation, ElastiCache immediately begins deleting the
1572
+ # snapshot; you cannot cancel or revert this operation.
1573
+ #
1574
+ # <note markdown="1"> This operation is valid for Redis only.
1575
+ #
1576
+ # </note>
1577
+ # @option params [required, String] :snapshot_name
1578
+ # The name of the snapshot to be deleted.
1579
+ # @return [Types::DeleteSnapshotResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1580
+ #
1581
+ # * {Types::DeleteSnapshotResult#snapshot #Snapshot} => Types::Snapshot
1582
+ #
1583
+ # @example Request syntax with placeholder values
1584
+ # resp = client.delete_snapshot({
1585
+ # snapshot_name: "String", # required
1586
+ # })
1587
+ #
1588
+ # @example Response structure
1589
+ # resp.snapshot.snapshot_name #=> String
1590
+ # resp.snapshot.replication_group_id #=> String
1591
+ # resp.snapshot.replication_group_description #=> String
1592
+ # resp.snapshot.cache_cluster_id #=> String
1593
+ # resp.snapshot.snapshot_status #=> String
1594
+ # resp.snapshot.snapshot_source #=> String
1595
+ # resp.snapshot.cache_node_type #=> String
1596
+ # resp.snapshot.engine #=> String
1597
+ # resp.snapshot.engine_version #=> String
1598
+ # resp.snapshot.num_cache_nodes #=> Integer
1599
+ # resp.snapshot.preferred_availability_zone #=> String
1600
+ # resp.snapshot.cache_cluster_create_time #=> Time
1601
+ # resp.snapshot.preferred_maintenance_window #=> String
1602
+ # resp.snapshot.topic_arn #=> String
1603
+ # resp.snapshot.port #=> Integer
1604
+ # resp.snapshot.cache_parameter_group_name #=> String
1605
+ # resp.snapshot.cache_subnet_group_name #=> String
1606
+ # resp.snapshot.vpc_id #=> String
1607
+ # resp.snapshot.auto_minor_version_upgrade #=> Boolean
1608
+ # resp.snapshot.snapshot_retention_limit #=> Integer
1609
+ # resp.snapshot.snapshot_window #=> String
1610
+ # resp.snapshot.num_node_groups #=> Integer
1611
+ # resp.snapshot.automatic_failover #=> String, one of "enabled", "disabled", "enabling", "disabling"
1612
+ # resp.snapshot.node_snapshots #=> Array
1613
+ # resp.snapshot.node_snapshots[0].cache_cluster_id #=> String
1614
+ # resp.snapshot.node_snapshots[0].node_group_id #=> String
1615
+ # resp.snapshot.node_snapshots[0].cache_node_id #=> String
1616
+ # resp.snapshot.node_snapshots[0].node_group_configuration.slots #=> String
1617
+ # resp.snapshot.node_snapshots[0].node_group_configuration.replica_count #=> Integer
1618
+ # resp.snapshot.node_snapshots[0].node_group_configuration.primary_availability_zone #=> String
1619
+ # resp.snapshot.node_snapshots[0].node_group_configuration.replica_availability_zones #=> Array
1620
+ # resp.snapshot.node_snapshots[0].node_group_configuration.replica_availability_zones[0] #=> String
1621
+ # resp.snapshot.node_snapshots[0].cache_size #=> String
1622
+ # resp.snapshot.node_snapshots[0].cache_node_create_time #=> Time
1623
+ # resp.snapshot.node_snapshots[0].snapshot_create_time #=> Time
1624
+ # @overload delete_snapshot(params = {})
1625
+ # @param [Hash] params ({})
1626
+ def delete_snapshot(params = {}, options = {})
1627
+ req = build_request(:delete_snapshot, params)
1628
+ req.send_request(options)
1629
+ end
1630
+
1631
+ # Returns information about all provisioned cache clusters if no cache
1632
+ # cluster identifier is specified, or about a specific cache cluster if
1633
+ # a cache cluster identifier is supplied.
1634
+ #
1635
+ # By default, abbreviated information about the cache clusters are
1636
+ # returned. You can use the optional `ShowDetails` flag to retrieve
1637
+ # detailed information about the cache nodes associated with the cache
1638
+ # clusters. These details include the DNS address and port for the cache
1639
+ # node endpoint.
1640
+ #
1641
+ # If the cluster is in the CREATING state, only cluster-level
1642
+ # information is displayed until all of the nodes are successfully
1643
+ # provisioned.
1644
+ #
1645
+ # If the cluster is in the DELETING state, only cluster-level
1646
+ # information is displayed.
1647
+ #
1648
+ # If cache nodes are currently being added to the cache cluster, node
1649
+ # endpoint information and creation time for the additional nodes are
1650
+ # not displayed until they are completely provisioned. When the cache
1651
+ # cluster state is `available`, the cluster is ready for use.
1652
+ #
1653
+ # If cache nodes are currently being removed from the cache cluster, no
1654
+ # endpoint information for the removed nodes is displayed.
1655
+ # @option params [String] :cache_cluster_id
1656
+ # The user-supplied cluster identifier. If this parameter is specified,
1657
+ # only information about that specific cache cluster is returned. This
1658
+ # parameter isn't case sensitive.
1659
+ # @option params [Integer] :max_records
1660
+ # The maximum number of records to include in the response. If more
1661
+ # records exist than the specified `MaxRecords` value, a marker is
1662
+ # included in the response so that the remaining results can be
1663
+ # retrieved.
1664
+ #
1665
+ # Default: 100
1666
+ #
1667
+ # Constraints: minimum 20; maximum 100.
1668
+ # @option params [String] :marker
1669
+ # An optional marker returned from a prior request. Use this marker for
1670
+ # pagination of results from this operation. If this parameter is
1671
+ # specified, the response includes only records beyond the marker, up to
1672
+ # the value specified by `MaxRecords`.
1673
+ # @option params [Boolean] :show_cache_node_info
1674
+ # An optional flag that can be included in the DescribeCacheCluster
1675
+ # request to retrieve information about the individual cache nodes.
1676
+ # @return [Types::CacheClusterMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1677
+ #
1678
+ # * {Types::CacheClusterMessage#marker #Marker} => String
1679
+ # * {Types::CacheClusterMessage#cache_clusters #CacheClusters} => Array&lt;Types::CacheCluster&gt;
1680
+ #
1681
+ # @example Request syntax with placeholder values
1682
+ # resp = client.describe_cache_clusters({
1683
+ # cache_cluster_id: "String",
1684
+ # max_records: 1,
1685
+ # marker: "String",
1686
+ # show_cache_node_info: false,
1687
+ # })
1688
+ #
1689
+ # @example Response structure
1690
+ # resp.marker #=> String
1691
+ # resp.cache_clusters #=> Array
1692
+ # resp.cache_clusters[0].cache_cluster_id #=> String
1693
+ # resp.cache_clusters[0].configuration_endpoint.address #=> String
1694
+ # resp.cache_clusters[0].configuration_endpoint.port #=> Integer
1695
+ # resp.cache_clusters[0].client_download_landing_page #=> String
1696
+ # resp.cache_clusters[0].cache_node_type #=> String
1697
+ # resp.cache_clusters[0].engine #=> String
1698
+ # resp.cache_clusters[0].engine_version #=> String
1699
+ # resp.cache_clusters[0].cache_cluster_status #=> String
1700
+ # resp.cache_clusters[0].num_cache_nodes #=> Integer
1701
+ # resp.cache_clusters[0].preferred_availability_zone #=> String
1702
+ # resp.cache_clusters[0].cache_cluster_create_time #=> Time
1703
+ # resp.cache_clusters[0].preferred_maintenance_window #=> String
1704
+ # resp.cache_clusters[0].pending_modified_values.num_cache_nodes #=> Integer
1705
+ # resp.cache_clusters[0].pending_modified_values.cache_node_ids_to_remove #=> Array
1706
+ # resp.cache_clusters[0].pending_modified_values.cache_node_ids_to_remove[0] #=> String
1707
+ # resp.cache_clusters[0].pending_modified_values.engine_version #=> String
1708
+ # resp.cache_clusters[0].pending_modified_values.cache_node_type #=> String
1709
+ # resp.cache_clusters[0].notification_configuration.topic_arn #=> String
1710
+ # resp.cache_clusters[0].notification_configuration.topic_status #=> String
1711
+ # resp.cache_clusters[0].cache_security_groups #=> Array
1712
+ # resp.cache_clusters[0].cache_security_groups[0].cache_security_group_name #=> String
1713
+ # resp.cache_clusters[0].cache_security_groups[0].status #=> String
1714
+ # resp.cache_clusters[0].cache_parameter_group.cache_parameter_group_name #=> String
1715
+ # resp.cache_clusters[0].cache_parameter_group.parameter_apply_status #=> String
1716
+ # resp.cache_clusters[0].cache_parameter_group.cache_node_ids_to_reboot #=> Array
1717
+ # resp.cache_clusters[0].cache_parameter_group.cache_node_ids_to_reboot[0] #=> String
1718
+ # resp.cache_clusters[0].cache_subnet_group_name #=> String
1719
+ # resp.cache_clusters[0].cache_nodes #=> Array
1720
+ # resp.cache_clusters[0].cache_nodes[0].cache_node_id #=> String
1721
+ # resp.cache_clusters[0].cache_nodes[0].cache_node_status #=> String
1722
+ # resp.cache_clusters[0].cache_nodes[0].cache_node_create_time #=> Time
1723
+ # resp.cache_clusters[0].cache_nodes[0].endpoint.address #=> String
1724
+ # resp.cache_clusters[0].cache_nodes[0].endpoint.port #=> Integer
1725
+ # resp.cache_clusters[0].cache_nodes[0].parameter_group_status #=> String
1726
+ # resp.cache_clusters[0].cache_nodes[0].source_cache_node_id #=> String
1727
+ # resp.cache_clusters[0].cache_nodes[0].customer_availability_zone #=> String
1728
+ # resp.cache_clusters[0].auto_minor_version_upgrade #=> Boolean
1729
+ # resp.cache_clusters[0].security_groups #=> Array
1730
+ # resp.cache_clusters[0].security_groups[0].security_group_id #=> String
1731
+ # resp.cache_clusters[0].security_groups[0].status #=> String
1732
+ # resp.cache_clusters[0].replication_group_id #=> String
1733
+ # resp.cache_clusters[0].snapshot_retention_limit #=> Integer
1734
+ # resp.cache_clusters[0].snapshot_window #=> String
1735
+ # @overload describe_cache_clusters(params = {})
1736
+ # @param [Hash] params ({})
1737
+ def describe_cache_clusters(params = {}, options = {})
1738
+ req = build_request(:describe_cache_clusters, params)
1739
+ req.send_request(options)
1740
+ end
1741
+
1742
+ # Returns a list of the available cache engines and their versions.
1743
+ # @option params [String] :engine
1744
+ # The cache engine to return. Valid values: `memcached` \| `redis`
1745
+ # @option params [String] :engine_version
1746
+ # The cache engine version to return.
1747
+ #
1748
+ # Example: `1.4.14`
1749
+ # @option params [String] :cache_parameter_group_family
1750
+ # The name of a specific cache parameter group family to return details
1751
+ # for.
1752
+ #
1753
+ # Valid values are: `memcached1.4` \| `redis2.6` \| `redis2.8` \|
1754
+ # `redis3.2`
1755
+ #
1756
+ # Constraints:
1757
+ #
1758
+ # * Must be 1 to 255 alphanumeric characters
1759
+ #
1760
+ # * First character must be a letter
1761
+ #
1762
+ # * Cannot end with a hyphen or contain two consecutive hyphens
1763
+ # @option params [Integer] :max_records
1764
+ # The maximum number of records to include in the response. If more
1765
+ # records exist than the specified `MaxRecords` value, a marker is
1766
+ # included in the response so that the remaining results can be
1767
+ # retrieved.
1768
+ #
1769
+ # Default: 100
1770
+ #
1771
+ # Constraints: minimum 20; maximum 100.
1772
+ # @option params [String] :marker
1773
+ # An optional marker returned from a prior request. Use this marker for
1774
+ # pagination of results from this operation. If this parameter is
1775
+ # specified, the response includes only records beyond the marker, up to
1776
+ # the value specified by `MaxRecords`.
1777
+ # @option params [Boolean] :default_only
1778
+ # If `true`, specifies that only the default version of the specified
1779
+ # engine or engine and major version combination is to be returned.
1780
+ # @return [Types::CacheEngineVersionMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1781
+ #
1782
+ # * {Types::CacheEngineVersionMessage#marker #Marker} => String
1783
+ # * {Types::CacheEngineVersionMessage#cache_engine_versions #CacheEngineVersions} => Array&lt;Types::CacheEngineVersion&gt;
1784
+ #
1785
+ # @example Request syntax with placeholder values
1786
+ # resp = client.describe_cache_engine_versions({
1787
+ # engine: "String",
1788
+ # engine_version: "String",
1789
+ # cache_parameter_group_family: "String",
1790
+ # max_records: 1,
1791
+ # marker: "String",
1792
+ # default_only: false,
1793
+ # })
1794
+ #
1795
+ # @example Response structure
1796
+ # resp.marker #=> String
1797
+ # resp.cache_engine_versions #=> Array
1798
+ # resp.cache_engine_versions[0].engine #=> String
1799
+ # resp.cache_engine_versions[0].engine_version #=> String
1800
+ # resp.cache_engine_versions[0].cache_parameter_group_family #=> String
1801
+ # resp.cache_engine_versions[0].cache_engine_description #=> String
1802
+ # resp.cache_engine_versions[0].cache_engine_version_description #=> String
1803
+ # @overload describe_cache_engine_versions(params = {})
1804
+ # @param [Hash] params ({})
1805
+ def describe_cache_engine_versions(params = {}, options = {})
1806
+ req = build_request(:describe_cache_engine_versions, params)
1807
+ req.send_request(options)
1808
+ end
1809
+
1810
+ # Returns a list of cache parameter group descriptions. If a cache
1811
+ # parameter group name is specified, the list contains only the
1812
+ # descriptions for that group.
1813
+ # @option params [String] :cache_parameter_group_name
1814
+ # The name of a specific cache parameter group to return details for.
1815
+ # @option params [Integer] :max_records
1816
+ # The maximum number of records to include in the response. If more
1817
+ # records exist than the specified `MaxRecords` value, a marker is
1818
+ # included in the response so that the remaining results can be
1819
+ # retrieved.
1820
+ #
1821
+ # Default: 100
1822
+ #
1823
+ # Constraints: minimum 20; maximum 100.
1824
+ # @option params [String] :marker
1825
+ # An optional marker returned from a prior request. Use this marker for
1826
+ # pagination of results from this operation. If this parameter is
1827
+ # specified, the response includes only records beyond the marker, up to
1828
+ # the value specified by `MaxRecords`.
1829
+ # @return [Types::CacheParameterGroupsMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1830
+ #
1831
+ # * {Types::CacheParameterGroupsMessage#marker #Marker} => String
1832
+ # * {Types::CacheParameterGroupsMessage#cache_parameter_groups #CacheParameterGroups} => Array&lt;Types::CacheParameterGroup&gt;
1833
+ #
1834
+ # @example Request syntax with placeholder values
1835
+ # resp = client.describe_cache_parameter_groups({
1836
+ # cache_parameter_group_name: "String",
1837
+ # max_records: 1,
1838
+ # marker: "String",
1839
+ # })
1840
+ #
1841
+ # @example Response structure
1842
+ # resp.marker #=> String
1843
+ # resp.cache_parameter_groups #=> Array
1844
+ # resp.cache_parameter_groups[0].cache_parameter_group_name #=> String
1845
+ # resp.cache_parameter_groups[0].cache_parameter_group_family #=> String
1846
+ # resp.cache_parameter_groups[0].description #=> String
1847
+ # @overload describe_cache_parameter_groups(params = {})
1848
+ # @param [Hash] params ({})
1849
+ def describe_cache_parameter_groups(params = {}, options = {})
1850
+ req = build_request(:describe_cache_parameter_groups, params)
1851
+ req.send_request(options)
1852
+ end
1853
+
1854
+ # Returns the detailed parameter list for a particular cache parameter
1855
+ # group.
1856
+ # @option params [required, String] :cache_parameter_group_name
1857
+ # The name of a specific cache parameter group to return details for.
1858
+ # @option params [String] :source
1859
+ # The parameter types to return.
1860
+ #
1861
+ # Valid values: `user` \| `system` \| `engine-default`
1862
+ # @option params [Integer] :max_records
1863
+ # The maximum number of records to include in the response. If more
1864
+ # records exist than the specified `MaxRecords` value, a marker is
1865
+ # included in the response so that the remaining results can be
1866
+ # retrieved.
1867
+ #
1868
+ # Default: 100
1869
+ #
1870
+ # Constraints: minimum 20; maximum 100.
1871
+ # @option params [String] :marker
1872
+ # An optional marker returned from a prior request. Use this marker for
1873
+ # pagination of results from this operation. If this parameter is
1874
+ # specified, the response includes only records beyond the marker, up to
1875
+ # the value specified by `MaxRecords`.
1876
+ # @return [Types::CacheParameterGroupDetails] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1877
+ #
1878
+ # * {Types::CacheParameterGroupDetails#marker #Marker} => String
1879
+ # * {Types::CacheParameterGroupDetails#parameters #Parameters} => Array&lt;Types::Parameter&gt;
1880
+ # * {Types::CacheParameterGroupDetails#cache_node_type_specific_parameters #CacheNodeTypeSpecificParameters} => Array&lt;Types::CacheNodeTypeSpecificParameter&gt;
1881
+ #
1882
+ # @example Request syntax with placeholder values
1883
+ # resp = client.describe_cache_parameters({
1884
+ # cache_parameter_group_name: "String", # required
1885
+ # source: "String",
1886
+ # max_records: 1,
1887
+ # marker: "String",
1888
+ # })
1889
+ #
1890
+ # @example Response structure
1891
+ # resp.marker #=> String
1892
+ # resp.parameters #=> Array
1893
+ # resp.parameters[0].parameter_name #=> String
1894
+ # resp.parameters[0].parameter_value #=> String
1895
+ # resp.parameters[0].description #=> String
1896
+ # resp.parameters[0].source #=> String
1897
+ # resp.parameters[0].data_type #=> String
1898
+ # resp.parameters[0].allowed_values #=> String
1899
+ # resp.parameters[0].is_modifiable #=> Boolean
1900
+ # resp.parameters[0].minimum_engine_version #=> String
1901
+ # resp.parameters[0].change_type #=> String, one of "immediate", "requires-reboot"
1902
+ # resp.cache_node_type_specific_parameters #=> Array
1903
+ # resp.cache_node_type_specific_parameters[0].parameter_name #=> String
1904
+ # resp.cache_node_type_specific_parameters[0].description #=> String
1905
+ # resp.cache_node_type_specific_parameters[0].source #=> String
1906
+ # resp.cache_node_type_specific_parameters[0].data_type #=> String
1907
+ # resp.cache_node_type_specific_parameters[0].allowed_values #=> String
1908
+ # resp.cache_node_type_specific_parameters[0].is_modifiable #=> Boolean
1909
+ # resp.cache_node_type_specific_parameters[0].minimum_engine_version #=> String
1910
+ # resp.cache_node_type_specific_parameters[0].cache_node_type_specific_values #=> Array
1911
+ # resp.cache_node_type_specific_parameters[0].cache_node_type_specific_values[0].cache_node_type #=> String
1912
+ # resp.cache_node_type_specific_parameters[0].cache_node_type_specific_values[0].value #=> String
1913
+ # resp.cache_node_type_specific_parameters[0].change_type #=> String, one of "immediate", "requires-reboot"
1914
+ # @overload describe_cache_parameters(params = {})
1915
+ # @param [Hash] params ({})
1916
+ def describe_cache_parameters(params = {}, options = {})
1917
+ req = build_request(:describe_cache_parameters, params)
1918
+ req.send_request(options)
1919
+ end
1920
+
1921
+ # Returns a list of cache security group descriptions. If a cache
1922
+ # security group name is specified, the list contains only the
1923
+ # description of that group.
1924
+ # @option params [String] :cache_security_group_name
1925
+ # The name of the cache security group to return details for.
1926
+ # @option params [Integer] :max_records
1927
+ # The maximum number of records to include in the response. If more
1928
+ # records exist than the specified `MaxRecords` value, a marker is
1929
+ # included in the response so that the remaining results can be
1930
+ # retrieved.
1931
+ #
1932
+ # Default: 100
1933
+ #
1934
+ # Constraints: minimum 20; maximum 100.
1935
+ # @option params [String] :marker
1936
+ # An optional marker returned from a prior request. Use this marker for
1937
+ # pagination of results from this operation. If this parameter is
1938
+ # specified, the response includes only records beyond the marker, up to
1939
+ # the value specified by `MaxRecords`.
1940
+ # @return [Types::CacheSecurityGroupMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1941
+ #
1942
+ # * {Types::CacheSecurityGroupMessage#marker #Marker} => String
1943
+ # * {Types::CacheSecurityGroupMessage#cache_security_groups #CacheSecurityGroups} => Array&lt;Types::CacheSecurityGroup&gt;
1944
+ #
1945
+ # @example Request syntax with placeholder values
1946
+ # resp = client.describe_cache_security_groups({
1947
+ # cache_security_group_name: "String",
1948
+ # max_records: 1,
1949
+ # marker: "String",
1950
+ # })
1951
+ #
1952
+ # @example Response structure
1953
+ # resp.marker #=> String
1954
+ # resp.cache_security_groups #=> Array
1955
+ # resp.cache_security_groups[0].owner_id #=> String
1956
+ # resp.cache_security_groups[0].cache_security_group_name #=> String
1957
+ # resp.cache_security_groups[0].description #=> String
1958
+ # resp.cache_security_groups[0].ec2_security_groups #=> Array
1959
+ # resp.cache_security_groups[0].ec2_security_groups[0].status #=> String
1960
+ # resp.cache_security_groups[0].ec2_security_groups[0].ec2_security_group_name #=> String
1961
+ # resp.cache_security_groups[0].ec2_security_groups[0].ec2_security_group_owner_id #=> String
1962
+ # @overload describe_cache_security_groups(params = {})
1963
+ # @param [Hash] params ({})
1964
+ def describe_cache_security_groups(params = {}, options = {})
1965
+ req = build_request(:describe_cache_security_groups, params)
1966
+ req.send_request(options)
1967
+ end
1968
+
1969
+ # Returns a list of cache subnet group descriptions. If a subnet group
1970
+ # name is specified, the list contains only the description of that
1971
+ # group.
1972
+ # @option params [String] :cache_subnet_group_name
1973
+ # The name of the cache subnet group to return details for.
1974
+ # @option params [Integer] :max_records
1975
+ # The maximum number of records to include in the response. If more
1976
+ # records exist than the specified `MaxRecords` value, a marker is
1977
+ # included in the response so that the remaining results can be
1978
+ # retrieved.
1979
+ #
1980
+ # Default: 100
1981
+ #
1982
+ # Constraints: minimum 20; maximum 100.
1983
+ # @option params [String] :marker
1984
+ # An optional marker returned from a prior request. Use this marker for
1985
+ # pagination of results from this operation. If this parameter is
1986
+ # specified, the response includes only records beyond the marker, up to
1987
+ # the value specified by `MaxRecords`.
1988
+ # @return [Types::CacheSubnetGroupMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1989
+ #
1990
+ # * {Types::CacheSubnetGroupMessage#marker #Marker} => String
1991
+ # * {Types::CacheSubnetGroupMessage#cache_subnet_groups #CacheSubnetGroups} => Array&lt;Types::CacheSubnetGroup&gt;
1992
+ #
1993
+ # @example Request syntax with placeholder values
1994
+ # resp = client.describe_cache_subnet_groups({
1995
+ # cache_subnet_group_name: "String",
1996
+ # max_records: 1,
1997
+ # marker: "String",
1998
+ # })
1999
+ #
2000
+ # @example Response structure
2001
+ # resp.marker #=> String
2002
+ # resp.cache_subnet_groups #=> Array
2003
+ # resp.cache_subnet_groups[0].cache_subnet_group_name #=> String
2004
+ # resp.cache_subnet_groups[0].cache_subnet_group_description #=> String
2005
+ # resp.cache_subnet_groups[0].vpc_id #=> String
2006
+ # resp.cache_subnet_groups[0].subnets #=> Array
2007
+ # resp.cache_subnet_groups[0].subnets[0].subnet_identifier #=> String
2008
+ # resp.cache_subnet_groups[0].subnets[0].subnet_availability_zone.name #=> String
2009
+ # @overload describe_cache_subnet_groups(params = {})
2010
+ # @param [Hash] params ({})
2011
+ def describe_cache_subnet_groups(params = {}, options = {})
2012
+ req = build_request(:describe_cache_subnet_groups, params)
2013
+ req.send_request(options)
2014
+ end
2015
+
2016
+ # Returns the default engine and system parameter information for the
2017
+ # specified cache engine.
2018
+ # @option params [required, String] :cache_parameter_group_family
2019
+ # The name of the cache parameter group family.
2020
+ #
2021
+ # Valid values are: `memcached1.4` \| `redis2.6` \| `redis2.8` \|
2022
+ # `redis3.2`
2023
+ # @option params [Integer] :max_records
2024
+ # The maximum number of records to include in the response. If more
2025
+ # records exist than the specified `MaxRecords` value, a marker is
2026
+ # included in the response so that the remaining results can be
2027
+ # retrieved.
2028
+ #
2029
+ # Default: 100
2030
+ #
2031
+ # Constraints: minimum 20; maximum 100.
2032
+ # @option params [String] :marker
2033
+ # An optional marker returned from a prior request. Use this marker for
2034
+ # pagination of results from this operation. If this parameter is
2035
+ # specified, the response includes only records beyond the marker, up to
2036
+ # the value specified by `MaxRecords`.
2037
+ # @return [Types::DescribeEngineDefaultParametersResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2038
+ #
2039
+ # * {Types::DescribeEngineDefaultParametersResult#engine_defaults #EngineDefaults} => Types::EngineDefaults
2040
+ #
2041
+ # @example Request syntax with placeholder values
2042
+ # resp = client.describe_engine_default_parameters({
2043
+ # cache_parameter_group_family: "String", # required
2044
+ # max_records: 1,
2045
+ # marker: "String",
2046
+ # })
2047
+ #
2048
+ # @example Response structure
2049
+ # resp.engine_defaults.cache_parameter_group_family #=> String
2050
+ # resp.engine_defaults.marker #=> String
2051
+ # resp.engine_defaults.parameters #=> Array
2052
+ # resp.engine_defaults.parameters[0].parameter_name #=> String
2053
+ # resp.engine_defaults.parameters[0].parameter_value #=> String
2054
+ # resp.engine_defaults.parameters[0].description #=> String
2055
+ # resp.engine_defaults.parameters[0].source #=> String
2056
+ # resp.engine_defaults.parameters[0].data_type #=> String
2057
+ # resp.engine_defaults.parameters[0].allowed_values #=> String
2058
+ # resp.engine_defaults.parameters[0].is_modifiable #=> Boolean
2059
+ # resp.engine_defaults.parameters[0].minimum_engine_version #=> String
2060
+ # resp.engine_defaults.parameters[0].change_type #=> String, one of "immediate", "requires-reboot"
2061
+ # resp.engine_defaults.cache_node_type_specific_parameters #=> Array
2062
+ # resp.engine_defaults.cache_node_type_specific_parameters[0].parameter_name #=> String
2063
+ # resp.engine_defaults.cache_node_type_specific_parameters[0].description #=> String
2064
+ # resp.engine_defaults.cache_node_type_specific_parameters[0].source #=> String
2065
+ # resp.engine_defaults.cache_node_type_specific_parameters[0].data_type #=> String
2066
+ # resp.engine_defaults.cache_node_type_specific_parameters[0].allowed_values #=> String
2067
+ # resp.engine_defaults.cache_node_type_specific_parameters[0].is_modifiable #=> Boolean
2068
+ # resp.engine_defaults.cache_node_type_specific_parameters[0].minimum_engine_version #=> String
2069
+ # resp.engine_defaults.cache_node_type_specific_parameters[0].cache_node_type_specific_values #=> Array
2070
+ # resp.engine_defaults.cache_node_type_specific_parameters[0].cache_node_type_specific_values[0].cache_node_type #=> String
2071
+ # resp.engine_defaults.cache_node_type_specific_parameters[0].cache_node_type_specific_values[0].value #=> String
2072
+ # resp.engine_defaults.cache_node_type_specific_parameters[0].change_type #=> String, one of "immediate", "requires-reboot"
2073
+ # @overload describe_engine_default_parameters(params = {})
2074
+ # @param [Hash] params ({})
2075
+ def describe_engine_default_parameters(params = {}, options = {})
2076
+ req = build_request(:describe_engine_default_parameters, params)
2077
+ req.send_request(options)
2078
+ end
2079
+
2080
+ # Returns events related to cache clusters, cache security groups, and
2081
+ # cache parameter groups. You can obtain events specific to a particular
2082
+ # cache cluster, cache security group, or cache parameter group by
2083
+ # providing the name as a parameter.
2084
+ #
2085
+ # By default, only the events occurring within the last hour are
2086
+ # returned; however, you can retrieve up to 14 days' worth of events if
2087
+ # necessary.
2088
+ # @option params [String] :source_identifier
2089
+ # The identifier of the event source for which events are returned. If
2090
+ # not specified, all sources are included in the response.
2091
+ # @option params [String] :source_type
2092
+ # The event source to retrieve events for. If no value is specified, all
2093
+ # events are returned.
2094
+ # @option params [Time,DateTime,Date,Integer,String] :start_time
2095
+ # The beginning of the time interval to retrieve events for, specified
2096
+ # in ISO 8601 format.
2097
+ # @option params [Time,DateTime,Date,Integer,String] :end_time
2098
+ # The end of the time interval for which to retrieve events, specified
2099
+ # in ISO 8601 format.
2100
+ # @option params [Integer] :duration
2101
+ # The number of minutes' worth of events to retrieve.
2102
+ # @option params [Integer] :max_records
2103
+ # The maximum number of records to include in the response. If more
2104
+ # records exist than the specified `MaxRecords` value, a marker is
2105
+ # included in the response so that the remaining results can be
2106
+ # retrieved.
2107
+ #
2108
+ # Default: 100
2109
+ #
2110
+ # Constraints: minimum 20; maximum 100.
2111
+ # @option params [String] :marker
2112
+ # An optional marker returned from a prior request. Use this marker for
2113
+ # pagination of results from this operation. If this parameter is
2114
+ # specified, the response includes only records beyond the marker, up to
2115
+ # the value specified by `MaxRecords`.
2116
+ # @return [Types::EventsMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2117
+ #
2118
+ # * {Types::EventsMessage#marker #Marker} => String
2119
+ # * {Types::EventsMessage#events #Events} => Array&lt;Types::Event&gt;
2120
+ #
2121
+ # @example Request syntax with placeholder values
2122
+ # resp = client.describe_events({
2123
+ # source_identifier: "String",
2124
+ # source_type: "cache-cluster", # accepts cache-cluster, cache-parameter-group, cache-security-group, cache-subnet-group, replication-group
2125
+ # start_time: Time.now,
2126
+ # end_time: Time.now,
2127
+ # duration: 1,
2128
+ # max_records: 1,
2129
+ # marker: "String",
2130
+ # })
2131
+ #
2132
+ # @example Response structure
2133
+ # resp.marker #=> String
2134
+ # resp.events #=> Array
2135
+ # resp.events[0].source_identifier #=> String
2136
+ # resp.events[0].source_type #=> String, one of "cache-cluster", "cache-parameter-group", "cache-security-group", "cache-subnet-group", "replication-group"
2137
+ # resp.events[0].message #=> String
2138
+ # resp.events[0].date #=> Time
2139
+ # @overload describe_events(params = {})
2140
+ # @param [Hash] params ({})
2141
+ def describe_events(params = {}, options = {})
2142
+ req = build_request(:describe_events, params)
2143
+ req.send_request(options)
2144
+ end
2145
+
2146
+ # Returns information about a particular replication group. If no
2147
+ # identifier is specified, `DescribeReplicationGroups` returns
2148
+ # information about all replication groups.
2149
+ #
2150
+ # <note markdown="1"> This operation is valid for Redis only.
2151
+ #
2152
+ # </note>
2153
+ # @option params [String] :replication_group_id
2154
+ # The identifier for the replication group to be described. This
2155
+ # parameter is not case sensitive.
2156
+ #
2157
+ # If you do not specify this parameter, information about all
2158
+ # replication groups is returned.
2159
+ # @option params [Integer] :max_records
2160
+ # The maximum number of records to include in the response. If more
2161
+ # records exist than the specified `MaxRecords` value, a marker is
2162
+ # included in the response so that the remaining results can be
2163
+ # retrieved.
2164
+ #
2165
+ # Default: 100
2166
+ #
2167
+ # Constraints: minimum 20; maximum 100.
2168
+ # @option params [String] :marker
2169
+ # An optional marker returned from a prior request. Use this marker for
2170
+ # pagination of results from this operation. If this parameter is
2171
+ # specified, the response includes only records beyond the marker, up to
2172
+ # the value specified by `MaxRecords`.
2173
+ # @return [Types::ReplicationGroupMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2174
+ #
2175
+ # * {Types::ReplicationGroupMessage#marker #Marker} => String
2176
+ # * {Types::ReplicationGroupMessage#replication_groups #ReplicationGroups} => Array&lt;Types::ReplicationGroup&gt;
2177
+ #
2178
+ # @example Request syntax with placeholder values
2179
+ # resp = client.describe_replication_groups({
2180
+ # replication_group_id: "String",
2181
+ # max_records: 1,
2182
+ # marker: "String",
2183
+ # })
2184
+ #
2185
+ # @example Response structure
2186
+ # resp.marker #=> String
2187
+ # resp.replication_groups #=> Array
2188
+ # resp.replication_groups[0].replication_group_id #=> String
2189
+ # resp.replication_groups[0].description #=> String
2190
+ # resp.replication_groups[0].status #=> String
2191
+ # resp.replication_groups[0].pending_modified_values.primary_cluster_id #=> String
2192
+ # resp.replication_groups[0].pending_modified_values.automatic_failover_status #=> String, one of "enabled", "disabled"
2193
+ # resp.replication_groups[0].member_clusters #=> Array
2194
+ # resp.replication_groups[0].member_clusters[0] #=> String
2195
+ # resp.replication_groups[0].node_groups #=> Array
2196
+ # resp.replication_groups[0].node_groups[0].node_group_id #=> String
2197
+ # resp.replication_groups[0].node_groups[0].status #=> String
2198
+ # resp.replication_groups[0].node_groups[0].primary_endpoint.address #=> String
2199
+ # resp.replication_groups[0].node_groups[0].primary_endpoint.port #=> Integer
2200
+ # resp.replication_groups[0].node_groups[0].slots #=> String
2201
+ # resp.replication_groups[0].node_groups[0].node_group_members #=> Array
2202
+ # resp.replication_groups[0].node_groups[0].node_group_members[0].cache_cluster_id #=> String
2203
+ # resp.replication_groups[0].node_groups[0].node_group_members[0].cache_node_id #=> String
2204
+ # resp.replication_groups[0].node_groups[0].node_group_members[0].read_endpoint.address #=> String
2205
+ # resp.replication_groups[0].node_groups[0].node_group_members[0].read_endpoint.port #=> Integer
2206
+ # resp.replication_groups[0].node_groups[0].node_group_members[0].preferred_availability_zone #=> String
2207
+ # resp.replication_groups[0].node_groups[0].node_group_members[0].current_role #=> String
2208
+ # resp.replication_groups[0].snapshotting_cluster_id #=> String
2209
+ # resp.replication_groups[0].automatic_failover #=> String, one of "enabled", "disabled", "enabling", "disabling"
2210
+ # resp.replication_groups[0].configuration_endpoint.address #=> String
2211
+ # resp.replication_groups[0].configuration_endpoint.port #=> Integer
2212
+ # resp.replication_groups[0].snapshot_retention_limit #=> Integer
2213
+ # resp.replication_groups[0].snapshot_window #=> String
2214
+ # @overload describe_replication_groups(params = {})
2215
+ # @param [Hash] params ({})
2216
+ def describe_replication_groups(params = {}, options = {})
2217
+ req = build_request(:describe_replication_groups, params)
2218
+ req.send_request(options)
2219
+ end
2220
+
2221
+ # Returns information about reserved cache nodes for this account, or
2222
+ # about a specified reserved cache node.
2223
+ # @option params [String] :reserved_cache_node_id
2224
+ # The reserved cache node identifier filter value. Use this parameter to
2225
+ # show only the reservation that matches the specified reservation ID.
2226
+ # @option params [String] :reserved_cache_nodes_offering_id
2227
+ # The offering identifier filter value. Use this parameter to show only
2228
+ # purchased reservations matching the specified offering identifier.
2229
+ # @option params [String] :cache_node_type
2230
+ # The cache node type filter value. Use this parameter to show only
2231
+ # those reservations matching the specified cache node type.
2232
+ #
2233
+ # Valid node types are as follows:
2234
+ #
2235
+ # * General purpose:
2236
+ #
2237
+ # * Current generation: `cache.t2.micro`, `cache.t2.small`,
2238
+ # `cache.t2.medium`, `cache.m3.medium`, `cache.m3.large`,
2239
+ # `cache.m3.xlarge`, `cache.m3.2xlarge`, `cache.m4.large`,
2240
+ # `cache.m4.xlarge`, `cache.m4.2xlarge`, `cache.m4.4xlarge`,
2241
+ # `cache.m4.10xlarge`
2242
+ #
2243
+ # * Previous generation: `cache.t1.micro`, `cache.m1.small`,
2244
+ # `cache.m1.medium`, `cache.m1.large`, `cache.m1.xlarge`
2245
+ #
2246
+ # * Compute optimized: `cache.c1.xlarge`
2247
+ #
2248
+ # * Memory optimized:
2249
+ #
2250
+ # * Current generation: `cache.r3.large`, `cache.r3.xlarge`,
2251
+ # `cache.r3.2xlarge`, `cache.r3.4xlarge`, `cache.r3.8xlarge`
2252
+ #
2253
+ # * Previous generation: `cache.m2.xlarge`, `cache.m2.2xlarge`,
2254
+ # `cache.m2.4xlarge`
2255
+ #
2256
+ # **Notes:**
2257
+ #
2258
+ # * All T2 instances are created in an Amazon Virtual Private Cloud
2259
+ # (Amazon VPC).
2260
+ #
2261
+ # * Redis backup/restore is not supported for Redis (cluster mode
2262
+ # disabled) T1 and T2 instances. Backup/restore is supported on Redis
2263
+ # (cluster mode enabled) T2 instances.
2264
+ #
2265
+ # * Redis Append-only files (AOF) functionality is not supported for T1
2266
+ # or T2 instances.
2267
+ #
2268
+ # For a complete listing of node types and specifications, see [Amazon
2269
+ # ElastiCache Product Features and Details][1] and either [Cache Node
2270
+ # Type-Specific Parameters for Memcached][2] or [Cache Node
2271
+ # Type-Specific Parameters for Redis][3].
2272
+ #
2273
+ #
2274
+ #
2275
+ # [1]: http://aws.amazon.com/elasticache/details
2276
+ # [2]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific
2277
+ # [3]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific
2278
+ # @option params [String] :duration
2279
+ # The duration filter value, specified in years or seconds. Use this
2280
+ # parameter to show only reservations for this duration.
2281
+ #
2282
+ # Valid Values: `1 | 3 | 31536000 | 94608000`
2283
+ # @option params [String] :product_description
2284
+ # The product description filter value. Use this parameter to show only
2285
+ # those reservations matching the specified product description.
2286
+ # @option params [String] :offering_type
2287
+ # The offering type filter value. Use this parameter to show only the
2288
+ # available offerings matching the specified offering type.
2289
+ #
2290
+ # Valid values: `"Light Utilization"|"Medium Utilization"|"Heavy
2291
+ # Utilization"`
2292
+ # @option params [Integer] :max_records
2293
+ # The maximum number of records to include in the response. If more
2294
+ # records exist than the specified `MaxRecords` value, a marker is
2295
+ # included in the response so that the remaining results can be
2296
+ # retrieved.
2297
+ #
2298
+ # Default: 100
2299
+ #
2300
+ # Constraints: minimum 20; maximum 100.
2301
+ # @option params [String] :marker
2302
+ # An optional marker returned from a prior request. Use this marker for
2303
+ # pagination of results from this operation. If this parameter is
2304
+ # specified, the response includes only records beyond the marker, up to
2305
+ # the value specified by `MaxRecords`.
2306
+ # @return [Types::ReservedCacheNodeMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2307
+ #
2308
+ # * {Types::ReservedCacheNodeMessage#marker #Marker} => String
2309
+ # * {Types::ReservedCacheNodeMessage#reserved_cache_nodes #ReservedCacheNodes} => Array&lt;Types::ReservedCacheNode&gt;
2310
+ #
2311
+ # @example Request syntax with placeholder values
2312
+ # resp = client.describe_reserved_cache_nodes({
2313
+ # reserved_cache_node_id: "String",
2314
+ # reserved_cache_nodes_offering_id: "String",
2315
+ # cache_node_type: "String",
2316
+ # duration: "String",
2317
+ # product_description: "String",
2318
+ # offering_type: "String",
2319
+ # max_records: 1,
2320
+ # marker: "String",
2321
+ # })
2322
+ #
2323
+ # @example Response structure
2324
+ # resp.marker #=> String
2325
+ # resp.reserved_cache_nodes #=> Array
2326
+ # resp.reserved_cache_nodes[0].reserved_cache_node_id #=> String
2327
+ # resp.reserved_cache_nodes[0].reserved_cache_nodes_offering_id #=> String
2328
+ # resp.reserved_cache_nodes[0].cache_node_type #=> String
2329
+ # resp.reserved_cache_nodes[0].start_time #=> Time
2330
+ # resp.reserved_cache_nodes[0].duration #=> Integer
2331
+ # resp.reserved_cache_nodes[0].fixed_price #=> Float
2332
+ # resp.reserved_cache_nodes[0].usage_price #=> Float
2333
+ # resp.reserved_cache_nodes[0].cache_node_count #=> Integer
2334
+ # resp.reserved_cache_nodes[0].product_description #=> String
2335
+ # resp.reserved_cache_nodes[0].offering_type #=> String
2336
+ # resp.reserved_cache_nodes[0].state #=> String
2337
+ # resp.reserved_cache_nodes[0].recurring_charges #=> Array
2338
+ # resp.reserved_cache_nodes[0].recurring_charges[0].recurring_charge_amount #=> Float
2339
+ # resp.reserved_cache_nodes[0].recurring_charges[0].recurring_charge_frequency #=> String
2340
+ # @overload describe_reserved_cache_nodes(params = {})
2341
+ # @param [Hash] params ({})
2342
+ def describe_reserved_cache_nodes(params = {}, options = {})
2343
+ req = build_request(:describe_reserved_cache_nodes, params)
2344
+ req.send_request(options)
2345
+ end
2346
+
2347
+ # Lists available reserved cache node offerings.
2348
+ # @option params [String] :reserved_cache_nodes_offering_id
2349
+ # The offering identifier filter value. Use this parameter to show only
2350
+ # the available offering that matches the specified reservation
2351
+ # identifier.
2352
+ #
2353
+ # Example: `438012d3-4052-4cc7-b2e3-8d3372e0e706`
2354
+ # @option params [String] :cache_node_type
2355
+ # The cache node type filter value. Use this parameter to show only the
2356
+ # available offerings matching the specified cache node type.
2357
+ #
2358
+ # Valid node types are as follows:
2359
+ #
2360
+ # * General purpose:
2361
+ #
2362
+ # * Current generation: `cache.t2.micro`, `cache.t2.small`,
2363
+ # `cache.t2.medium`, `cache.m3.medium`, `cache.m3.large`,
2364
+ # `cache.m3.xlarge`, `cache.m3.2xlarge`, `cache.m4.large`,
2365
+ # `cache.m4.xlarge`, `cache.m4.2xlarge`, `cache.m4.4xlarge`,
2366
+ # `cache.m4.10xlarge`
2367
+ #
2368
+ # * Previous generation: `cache.t1.micro`, `cache.m1.small`,
2369
+ # `cache.m1.medium`, `cache.m1.large`, `cache.m1.xlarge`
2370
+ #
2371
+ # * Compute optimized: `cache.c1.xlarge`
2372
+ #
2373
+ # * Memory optimized:
2374
+ #
2375
+ # * Current generation: `cache.r3.large`, `cache.r3.xlarge`,
2376
+ # `cache.r3.2xlarge`, `cache.r3.4xlarge`, `cache.r3.8xlarge`
2377
+ #
2378
+ # * Previous generation: `cache.m2.xlarge`, `cache.m2.2xlarge`,
2379
+ # `cache.m2.4xlarge`
2380
+ #
2381
+ # **Notes:**
2382
+ #
2383
+ # * All T2 instances are created in an Amazon Virtual Private Cloud
2384
+ # (Amazon VPC).
2385
+ #
2386
+ # * Redis backup/restore is not supported for Redis (cluster mode
2387
+ # disabled) T1 and T2 instances. Backup/restore is supported on Redis
2388
+ # (cluster mode enabled) T2 instances.
2389
+ #
2390
+ # * Redis Append-only files (AOF) functionality is not supported for T1
2391
+ # or T2 instances.
2392
+ #
2393
+ # For a complete listing of node types and specifications, see [Amazon
2394
+ # ElastiCache Product Features and Details][1] and either [Cache Node
2395
+ # Type-Specific Parameters for Memcached][2] or [Cache Node
2396
+ # Type-Specific Parameters for Redis][3].
2397
+ #
2398
+ #
2399
+ #
2400
+ # [1]: http://aws.amazon.com/elasticache/details
2401
+ # [2]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific
2402
+ # [3]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific
2403
+ # @option params [String] :duration
2404
+ # Duration filter value, specified in years or seconds. Use this
2405
+ # parameter to show only reservations for a given duration.
2406
+ #
2407
+ # Valid Values: `1 | 3 | 31536000 | 94608000`
2408
+ # @option params [String] :product_description
2409
+ # The product description filter value. Use this parameter to show only
2410
+ # the available offerings matching the specified product description.
2411
+ # @option params [String] :offering_type
2412
+ # The offering type filter value. Use this parameter to show only the
2413
+ # available offerings matching the specified offering type.
2414
+ #
2415
+ # Valid Values: `"Light Utilization"|"Medium Utilization"|"Heavy
2416
+ # Utilization"`
2417
+ # @option params [Integer] :max_records
2418
+ # The maximum number of records to include in the response. If more
2419
+ # records exist than the specified `MaxRecords` value, a marker is
2420
+ # included in the response so that the remaining results can be
2421
+ # retrieved.
2422
+ #
2423
+ # Default: 100
2424
+ #
2425
+ # Constraints: minimum 20; maximum 100.
2426
+ # @option params [String] :marker
2427
+ # An optional marker returned from a prior request. Use this marker for
2428
+ # pagination of results from this operation. If this parameter is
2429
+ # specified, the response includes only records beyond the marker, up to
2430
+ # the value specified by `MaxRecords`.
2431
+ # @return [Types::ReservedCacheNodesOfferingMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2432
+ #
2433
+ # * {Types::ReservedCacheNodesOfferingMessage#marker #Marker} => String
2434
+ # * {Types::ReservedCacheNodesOfferingMessage#reserved_cache_nodes_offerings #ReservedCacheNodesOfferings} => Array&lt;Types::ReservedCacheNodesOffering&gt;
2435
+ #
2436
+ # @example Request syntax with placeholder values
2437
+ # resp = client.describe_reserved_cache_nodes_offerings({
2438
+ # reserved_cache_nodes_offering_id: "String",
2439
+ # cache_node_type: "String",
2440
+ # duration: "String",
2441
+ # product_description: "String",
2442
+ # offering_type: "String",
2443
+ # max_records: 1,
2444
+ # marker: "String",
2445
+ # })
2446
+ #
2447
+ # @example Response structure
2448
+ # resp.marker #=> String
2449
+ # resp.reserved_cache_nodes_offerings #=> Array
2450
+ # resp.reserved_cache_nodes_offerings[0].reserved_cache_nodes_offering_id #=> String
2451
+ # resp.reserved_cache_nodes_offerings[0].cache_node_type #=> String
2452
+ # resp.reserved_cache_nodes_offerings[0].duration #=> Integer
2453
+ # resp.reserved_cache_nodes_offerings[0].fixed_price #=> Float
2454
+ # resp.reserved_cache_nodes_offerings[0].usage_price #=> Float
2455
+ # resp.reserved_cache_nodes_offerings[0].product_description #=> String
2456
+ # resp.reserved_cache_nodes_offerings[0].offering_type #=> String
2457
+ # resp.reserved_cache_nodes_offerings[0].recurring_charges #=> Array
2458
+ # resp.reserved_cache_nodes_offerings[0].recurring_charges[0].recurring_charge_amount #=> Float
2459
+ # resp.reserved_cache_nodes_offerings[0].recurring_charges[0].recurring_charge_frequency #=> String
2460
+ # @overload describe_reserved_cache_nodes_offerings(params = {})
2461
+ # @param [Hash] params ({})
2462
+ def describe_reserved_cache_nodes_offerings(params = {}, options = {})
2463
+ req = build_request(:describe_reserved_cache_nodes_offerings, params)
2464
+ req.send_request(options)
2465
+ end
2466
+
2467
+ # Returns information about cache cluster or replication group
2468
+ # snapshots. By default, `DescribeSnapshots` lists all of your
2469
+ # snapshots; it can optionally describe a single snapshot, or just the
2470
+ # snapshots associated with a particular cache cluster.
2471
+ #
2472
+ # <note markdown="1"> This operation is valid for Redis only.
2473
+ #
2474
+ # </note>
2475
+ # @option params [String] :replication_group_id
2476
+ # A user-supplied replication group identifier. If this parameter is
2477
+ # specified, only snapshots associated with that specific replication
2478
+ # group are described.
2479
+ # @option params [String] :cache_cluster_id
2480
+ # A user-supplied cluster identifier. If this parameter is specified,
2481
+ # only snapshots associated with that specific cache cluster are
2482
+ # described.
2483
+ # @option params [String] :snapshot_name
2484
+ # A user-supplied name of the snapshot. If this parameter is specified,
2485
+ # only this snapshot are described.
2486
+ # @option params [String] :snapshot_source
2487
+ # If set to `system`, the output shows snapshots that were automatically
2488
+ # created by ElastiCache. If set to `user` the output shows snapshots
2489
+ # that were manually created. If omitted, the output shows both
2490
+ # automatically and manually created snapshots.
2491
+ # @option params [String] :marker
2492
+ # An optional marker returned from a prior request. Use this marker for
2493
+ # pagination of results from this operation. If this parameter is
2494
+ # specified, the response includes only records beyond the marker, up to
2495
+ # the value specified by `MaxRecords`.
2496
+ # @option params [Integer] :max_records
2497
+ # The maximum number of records to include in the response. If more
2498
+ # records exist than the specified `MaxRecords` value, a marker is
2499
+ # included in the response so that the remaining results can be
2500
+ # retrieved.
2501
+ #
2502
+ # Default: 50
2503
+ #
2504
+ # Constraints: minimum 20; maximum 50.
2505
+ # @option params [Boolean] :show_node_group_config
2506
+ # A Boolean value which if true, the node group (shard) configuration is
2507
+ # included in the snapshot description.
2508
+ # @return [Types::DescribeSnapshotsListMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2509
+ #
2510
+ # * {Types::DescribeSnapshotsListMessage#marker #Marker} => String
2511
+ # * {Types::DescribeSnapshotsListMessage#snapshots #Snapshots} => Array&lt;Types::Snapshot&gt;
2512
+ #
2513
+ # @example Request syntax with placeholder values
2514
+ # resp = client.describe_snapshots({
2515
+ # replication_group_id: "String",
2516
+ # cache_cluster_id: "String",
2517
+ # snapshot_name: "String",
2518
+ # snapshot_source: "String",
2519
+ # marker: "String",
2520
+ # max_records: 1,
2521
+ # show_node_group_config: false,
2522
+ # })
2523
+ #
2524
+ # @example Response structure
2525
+ # resp.marker #=> String
2526
+ # resp.snapshots #=> Array
2527
+ # resp.snapshots[0].snapshot_name #=> String
2528
+ # resp.snapshots[0].replication_group_id #=> String
2529
+ # resp.snapshots[0].replication_group_description #=> String
2530
+ # resp.snapshots[0].cache_cluster_id #=> String
2531
+ # resp.snapshots[0].snapshot_status #=> String
2532
+ # resp.snapshots[0].snapshot_source #=> String
2533
+ # resp.snapshots[0].cache_node_type #=> String
2534
+ # resp.snapshots[0].engine #=> String
2535
+ # resp.snapshots[0].engine_version #=> String
2536
+ # resp.snapshots[0].num_cache_nodes #=> Integer
2537
+ # resp.snapshots[0].preferred_availability_zone #=> String
2538
+ # resp.snapshots[0].cache_cluster_create_time #=> Time
2539
+ # resp.snapshots[0].preferred_maintenance_window #=> String
2540
+ # resp.snapshots[0].topic_arn #=> String
2541
+ # resp.snapshots[0].port #=> Integer
2542
+ # resp.snapshots[0].cache_parameter_group_name #=> String
2543
+ # resp.snapshots[0].cache_subnet_group_name #=> String
2544
+ # resp.snapshots[0].vpc_id #=> String
2545
+ # resp.snapshots[0].auto_minor_version_upgrade #=> Boolean
2546
+ # resp.snapshots[0].snapshot_retention_limit #=> Integer
2547
+ # resp.snapshots[0].snapshot_window #=> String
2548
+ # resp.snapshots[0].num_node_groups #=> Integer
2549
+ # resp.snapshots[0].automatic_failover #=> String, one of "enabled", "disabled", "enabling", "disabling"
2550
+ # resp.snapshots[0].node_snapshots #=> Array
2551
+ # resp.snapshots[0].node_snapshots[0].cache_cluster_id #=> String
2552
+ # resp.snapshots[0].node_snapshots[0].node_group_id #=> String
2553
+ # resp.snapshots[0].node_snapshots[0].cache_node_id #=> String
2554
+ # resp.snapshots[0].node_snapshots[0].node_group_configuration.slots #=> String
2555
+ # resp.snapshots[0].node_snapshots[0].node_group_configuration.replica_count #=> Integer
2556
+ # resp.snapshots[0].node_snapshots[0].node_group_configuration.primary_availability_zone #=> String
2557
+ # resp.snapshots[0].node_snapshots[0].node_group_configuration.replica_availability_zones #=> Array
2558
+ # resp.snapshots[0].node_snapshots[0].node_group_configuration.replica_availability_zones[0] #=> String
2559
+ # resp.snapshots[0].node_snapshots[0].cache_size #=> String
2560
+ # resp.snapshots[0].node_snapshots[0].cache_node_create_time #=> Time
2561
+ # resp.snapshots[0].node_snapshots[0].snapshot_create_time #=> Time
2562
+ # @overload describe_snapshots(params = {})
2563
+ # @param [Hash] params ({})
2564
+ def describe_snapshots(params = {}, options = {})
2565
+ req = build_request(:describe_snapshots, params)
2566
+ req.send_request(options)
2567
+ end
2568
+
2569
+ # Lists all available node types that you can scale your Redis
2570
+ # cluster's or replication group's current node type up to.
2571
+ #
2572
+ # When you use the `ModifyCacheCluster` or `ModifyReplicationGroup`
2573
+ # operations to scale up your cluster or replication group, the value of
2574
+ # the `CacheNodeType` parameter must be one of the node types returned
2575
+ # by this operation.
2576
+ # @option params [String] :cache_cluster_id
2577
+ # The name of the cache cluster you want to scale up to a larger node
2578
+ # instanced type. ElastiCache uses the cluster id to identify the
2579
+ # current node type of this cluster and from that to create a list of
2580
+ # node types you can scale up to.
2581
+ #
2582
+ # You must provide a value for either the `CacheClusterId` or the
2583
+ # `ReplicationGroupId`.
2584
+ # @option params [String] :replication_group_id
2585
+ # The name of the replication group want to scale up to a larger node
2586
+ # type. ElastiCache uses the replication group id to identify the
2587
+ # current node type being used by this replication group, and from that
2588
+ # to create a list of node types you can scale up to.
2589
+ #
2590
+ # You must provide a value for either the `CacheClusterId` or the
2591
+ # `ReplicationGroupId`.
2592
+ # @return [Types::AllowedNodeTypeModificationsMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2593
+ #
2594
+ # * {Types::AllowedNodeTypeModificationsMessage#scale_up_modifications #ScaleUpModifications} => Array&lt;String&gt;
2595
+ #
2596
+ # @example Request syntax with placeholder values
2597
+ # resp = client.list_allowed_node_type_modifications({
2598
+ # cache_cluster_id: "String",
2599
+ # replication_group_id: "String",
2600
+ # })
2601
+ #
2602
+ # @example Response structure
2603
+ # resp.scale_up_modifications #=> Array
2604
+ # resp.scale_up_modifications[0] #=> String
2605
+ # @overload list_allowed_node_type_modifications(params = {})
2606
+ # @param [Hash] params ({})
2607
+ def list_allowed_node_type_modifications(params = {}, options = {})
2608
+ req = build_request(:list_allowed_node_type_modifications, params)
2609
+ req.send_request(options)
2610
+ end
2611
+
2612
+ # Lists all cost allocation tags currently on the named resource. A
2613
+ # `cost allocation tag` is a key-value pair where the key is
2614
+ # case-sensitive and the value is optional. You can use cost allocation
2615
+ # tags to categorize and track your AWS costs.
2616
+ #
2617
+ # You can have a maximum of 10 cost allocation tags on an ElastiCache
2618
+ # resource. For more information, see [Using Cost Allocation Tags in
2619
+ # Amazon ElastiCache][1].
2620
+ #
2621
+ #
2622
+ #
2623
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html
2624
+ # @option params [required, String] :resource_name
2625
+ # The Amazon Resource Name (ARN) of the resource for which you want the
2626
+ # list of tags, for example
2627
+ # `arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster` or
2628
+ # `arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot`.
2629
+ #
2630
+ # For more information about ARNs, see [Amazon Resource Names (ARNs) and
2631
+ # AWS Service Namespaces][1].
2632
+ #
2633
+ #
2634
+ #
2635
+ # [1]: http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
2636
+ # @return [Types::TagListMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2637
+ #
2638
+ # * {Types::TagListMessage#tag_list #TagList} => Array&lt;Types::Tag&gt;
2639
+ #
2640
+ # @example Request syntax with placeholder values
2641
+ # resp = client.list_tags_for_resource({
2642
+ # resource_name: "String", # required
2643
+ # })
2644
+ #
2645
+ # @example Response structure
2646
+ # resp.tag_list #=> Array
2647
+ # resp.tag_list[0].key #=> String
2648
+ # resp.tag_list[0].value #=> String
2649
+ # @overload list_tags_for_resource(params = {})
2650
+ # @param [Hash] params ({})
2651
+ def list_tags_for_resource(params = {}, options = {})
2652
+ req = build_request(:list_tags_for_resource, params)
2653
+ req.send_request(options)
2654
+ end
2655
+
2656
+ # Modifies the settings for a cache cluster. You can use this operation
2657
+ # to change one or more cluster configuration parameters by specifying
2658
+ # the parameters and the new values.
2659
+ # @option params [required, String] :cache_cluster_id
2660
+ # The cache cluster identifier. This value is stored as a lowercase
2661
+ # string.
2662
+ # @option params [Integer] :num_cache_nodes
2663
+ # The number of cache nodes that the cache cluster should have. If the
2664
+ # value for `NumCacheNodes` is greater than the sum of the number of
2665
+ # current cache nodes and the number of cache nodes pending creation
2666
+ # (which may be zero), more nodes are added. If the value is less than
2667
+ # the number of existing cache nodes, nodes are removed. If the value is
2668
+ # equal to the number of current cache nodes, any pending add or remove
2669
+ # requests are canceled.
2670
+ #
2671
+ # If you are removing cache nodes, you must use the
2672
+ # `CacheNodeIdsToRemove` parameter to provide the IDs of the specific
2673
+ # cache nodes to remove.
2674
+ #
2675
+ # For clusters running Redis, this value must be 1. For clusters running
2676
+ # Memcached, this value must be between 1 and 20.
2677
+ #
2678
+ # <note markdown="1"> Adding or removing Memcached cache nodes can be applied immediately or
2679
+ # as a pending operation (see `ApplyImmediately`).
2680
+ #
2681
+ # A pending operation to modify the number of cache nodes in a cluster
2682
+ # during its maintenance window, whether by adding or removing nodes in
2683
+ # accordance with the scale out architecture, is not queued. The
2684
+ # customer's latest request to add or remove nodes to the cluster
2685
+ # overrides any previous pending operations to modify the number of
2686
+ # cache nodes in the cluster. For example, a request to remove 2 nodes
2687
+ # would override a previous pending operation to remove 3 nodes.
2688
+ # Similarly, a request to add 2 nodes would override a previous pending
2689
+ # operation to remove 3 nodes and vice versa. As Memcached cache nodes
2690
+ # may now be provisioned in different Availability Zones with flexible
2691
+ # cache node placement, a request to add nodes does not automatically
2692
+ # override a previous pending operation to add nodes. The customer can
2693
+ # modify the previous pending operation to add more nodes or explicitly
2694
+ # cancel the pending request and retry the new request. To cancel
2695
+ # pending operations to modify the number of cache nodes in a cluster,
2696
+ # use the `ModifyCacheCluster` request and set `NumCacheNodes` equal to
2697
+ # the number of cache nodes currently in the cache cluster.
2698
+ #
2699
+ # </note>
2700
+ # @option params [Array<String>] :cache_node_ids_to_remove
2701
+ # A list of cache node IDs to be removed. A node ID is a numeric
2702
+ # identifier (0001, 0002, etc.). This parameter is only valid when
2703
+ # `NumCacheNodes` is less than the existing number of cache nodes. The
2704
+ # number of cache node IDs supplied in this parameter must match the
2705
+ # difference between the existing number of cache nodes in the cluster
2706
+ # or pending cache nodes, whichever is greater, and the value of
2707
+ # `NumCacheNodes` in the request.
2708
+ #
2709
+ # For example: If you have 3 active cache nodes, 7 pending cache nodes,
2710
+ # and the number of cache nodes in this `ModifyCacheCluser` call is 5,
2711
+ # you must list 2 (7 - 5) cache node IDs to remove.
2712
+ # @option params [String] :az_mode
2713
+ # Specifies whether the new nodes in this Memcached cache cluster are
2714
+ # all created in a single Availability Zone or created across multiple
2715
+ # Availability Zones.
2716
+ #
2717
+ # Valid values: `single-az` \| `cross-az`.
2718
+ #
2719
+ # This option is only supported for Memcached cache clusters.
2720
+ #
2721
+ # <note markdown="1"> You cannot specify `single-az` if the Memcached cache cluster already
2722
+ # has cache nodes in different Availability Zones. If `cross-az` is
2723
+ # specified, existing Memcached nodes remain in their current
2724
+ # Availability Zone.
2725
+ #
2726
+ # Only newly created nodes are located in different Availability Zones.
2727
+ # For instructions on how to move existing Memcached nodes to different
2728
+ # Availability Zones, see the **Availability Zone Considerations**
2729
+ # section of [Cache Node Considerations for Memcached][1].
2730
+ #
2731
+ # </note>
2732
+ #
2733
+ #
2734
+ #
2735
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheNode.Memcached.html
2736
+ # @option params [Array<String>] :new_availability_zones
2737
+ # The list of Availability Zones where the new Memcached cache nodes are
2738
+ # created.
2739
+ #
2740
+ # This parameter is only valid when `NumCacheNodes` in the request is
2741
+ # greater than the sum of the number of active cache nodes and the
2742
+ # number of cache nodes pending creation (which may be zero). The number
2743
+ # of Availability Zones supplied in this list must match the cache nodes
2744
+ # being added in this request.
2745
+ #
2746
+ # This option is only supported on Memcached clusters.
2747
+ #
2748
+ # Scenarios:
2749
+ #
2750
+ # * **Scenario 1:** You have 3 active nodes and wish to add 2 nodes.
2751
+ # Specify `NumCacheNodes=5` (3 + 2) and optionally specify two
2752
+ # Availability Zones for the two new nodes.
2753
+ #
2754
+ # * **Scenario 2:** You have 3 active nodes and 2 nodes pending creation
2755
+ # (from the scenario 1 call) and want to add 1 more node. Specify
2756
+ # `NumCacheNodes=6` ((3 + 2) + 1) and optionally specify an
2757
+ # Availability Zone for the new node.
2758
+ #
2759
+ # * **Scenario 3:** You want to cancel all pending operations. Specify
2760
+ # `NumCacheNodes=3` to cancel all pending operations.
2761
+ #
2762
+ # The Availability Zone placement of nodes pending creation cannot be
2763
+ # modified. If you wish to cancel any nodes pending creation, add 0
2764
+ # nodes by setting `NumCacheNodes` to the number of current nodes.
2765
+ #
2766
+ # If `cross-az` is specified, existing Memcached nodes remain in their
2767
+ # current Availability Zone. Only newly created nodes can be located in
2768
+ # different Availability Zones. For guidance on how to move existing
2769
+ # Memcached nodes to different Availability Zones, see the
2770
+ # **Availability Zone Considerations** section of [Cache Node
2771
+ # Considerations for Memcached][1].
2772
+ #
2773
+ # **Impact of new add/remove requests upon pending requests**
2774
+ #
2775
+ # * Scenario-1
2776
+ #
2777
+ # * Pending Action: Delete
2778
+ #
2779
+ # * New Request: Delete
2780
+ #
2781
+ # * Result: The new delete, pending or immediate, replaces the pending
2782
+ # delete.
2783
+ #
2784
+ # * Scenario-2
2785
+ #
2786
+ # * Pending Action: Delete
2787
+ #
2788
+ # * New Request: Create
2789
+ #
2790
+ # * Result: The new create, pending or immediate, replaces the pending
2791
+ # delete.
2792
+ #
2793
+ # * Scenario-3
2794
+ #
2795
+ # * Pending Action: Create
2796
+ #
2797
+ # * New Request: Delete
2798
+ #
2799
+ # * Result: The new delete, pending or immediate, replaces the pending
2800
+ # create.
2801
+ #
2802
+ # * Scenario-4
2803
+ #
2804
+ # * Pending Action: Create
2805
+ #
2806
+ # * New Request: Create
2807
+ #
2808
+ # * Result: The new create is added to the pending create.
2809
+ #
2810
+ # **Important:** If the new create request is **Apply Immediately -
2811
+ # Yes**, all creates are performed immediately. If the new create
2812
+ # request is **Apply Immediately - No**, all creates are pending.
2813
+ #
2814
+ #
2815
+ #
2816
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheNode.Memcached.html
2817
+ # @option params [Array<String>] :cache_security_group_names
2818
+ # A list of cache security group names to authorize on this cache
2819
+ # cluster. This change is asynchronously applied as soon as possible.
2820
+ #
2821
+ # You can use this parameter only with clusters that are created outside
2822
+ # of an Amazon Virtual Private Cloud (Amazon VPC).
2823
+ #
2824
+ # Constraints: Must contain no more than 255 alphanumeric characters.
2825
+ # Must not be "Default".
2826
+ # @option params [Array<String>] :security_group_ids
2827
+ # Specifies the VPC Security Groups associated with the cache cluster.
2828
+ #
2829
+ # This parameter can be used only with clusters that are created in an
2830
+ # Amazon Virtual Private Cloud (Amazon VPC).
2831
+ # @option params [String] :preferred_maintenance_window
2832
+ # Specifies the weekly time range during which maintenance on the
2833
+ # cluster is performed. It is specified as a range in the format
2834
+ # ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance
2835
+ # window is a 60 minute period.
2836
+ #
2837
+ # Valid values for `ddd` are:
2838
+ #
2839
+ # * `sun`
2840
+ #
2841
+ # * `mon`
2842
+ #
2843
+ # * `tue`
2844
+ #
2845
+ # * `wed`
2846
+ #
2847
+ # * `thu`
2848
+ #
2849
+ # * `fri`
2850
+ #
2851
+ # * `sat`
2852
+ #
2853
+ # Example: `sun:23:00-mon:01:30`
2854
+ # @option params [String] :notification_topic_arn
2855
+ # The Amazon Resource Name (ARN) of the Amazon SNS topic to which
2856
+ # notifications are sent.
2857
+ #
2858
+ # <note markdown="1"> The Amazon SNS topic owner must be same as the cache cluster owner.
2859
+ #
2860
+ # </note>
2861
+ # @option params [String] :cache_parameter_group_name
2862
+ # The name of the cache parameter group to apply to this cache cluster.
2863
+ # This change is asynchronously applied as soon as possible for
2864
+ # parameters when the `ApplyImmediately` parameter is specified as
2865
+ # `true` for this request.
2866
+ # @option params [String] :notification_topic_status
2867
+ # The status of the Amazon SNS notification topic. Notifications are
2868
+ # sent only if the status is `active`.
2869
+ #
2870
+ # Valid values: `active` \| `inactive`
2871
+ # @option params [Boolean] :apply_immediately
2872
+ # If `true`, this parameter causes the modifications in this request and
2873
+ # any pending modifications to be applied, asynchronously and as soon as
2874
+ # possible, regardless of the `PreferredMaintenanceWindow` setting for
2875
+ # the cache cluster.
2876
+ #
2877
+ # If `false`, changes to the cache cluster are applied on the next
2878
+ # maintenance reboot, or the next failure reboot, whichever occurs
2879
+ # first.
2880
+ #
2881
+ # If you perform a `ModifyCacheCluster` before a pending modification is
2882
+ # applied, the pending modification is replaced by the newer
2883
+ # modification.
2884
+ #
2885
+ # Valid values: `true` \| `false`
2886
+ #
2887
+ # Default: `false`
2888
+ # @option params [String] :engine_version
2889
+ # The upgraded version of the cache engine to be run on the cache nodes.
2890
+ #
2891
+ # **Important:** You can upgrade to a newer engine version (see
2892
+ # [Selecting a Cache Engine and Version][1]), but you cannot downgrade
2893
+ # to an earlier engine version. If you want to use an earlier engine
2894
+ # version, you must delete the existing cache cluster and create it anew
2895
+ # with the earlier engine version.
2896
+ #
2897
+ #
2898
+ #
2899
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement
2900
+ # @option params [Boolean] :auto_minor_version_upgrade
2901
+ # This parameter is currently disabled.
2902
+ # @option params [Integer] :snapshot_retention_limit
2903
+ # The number of days for which ElastiCache retains automatic cache
2904
+ # cluster snapshots before deleting them. For example, if you set
2905
+ # `SnapshotRetentionLimit` to 5, a snapshot that was taken today is
2906
+ # retained for 5 days before being deleted.
2907
+ #
2908
+ # <note markdown="1"> If the value of `SnapshotRetentionLimit` is set to zero (0), backups
2909
+ # are turned off.
2910
+ #
2911
+ # </note>
2912
+ # @option params [String] :snapshot_window
2913
+ # The daily time range (in UTC) during which ElastiCache begins taking a
2914
+ # daily snapshot of your cache cluster.
2915
+ # @option params [String] :cache_node_type
2916
+ # A valid cache node type that you want to scale this cache cluster up
2917
+ # to.
2918
+ # @return [Types::ModifyCacheClusterResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2919
+ #
2920
+ # * {Types::ModifyCacheClusterResult#cache_cluster #CacheCluster} => Types::CacheCluster
2921
+ #
2922
+ # @example Request syntax with placeholder values
2923
+ # resp = client.modify_cache_cluster({
2924
+ # cache_cluster_id: "String", # required
2925
+ # num_cache_nodes: 1,
2926
+ # cache_node_ids_to_remove: ["String"],
2927
+ # az_mode: "single-az", # accepts single-az, cross-az
2928
+ # new_availability_zones: ["String"],
2929
+ # cache_security_group_names: ["String"],
2930
+ # security_group_ids: ["String"],
2931
+ # preferred_maintenance_window: "String",
2932
+ # notification_topic_arn: "String",
2933
+ # cache_parameter_group_name: "String",
2934
+ # notification_topic_status: "String",
2935
+ # apply_immediately: false,
2936
+ # engine_version: "String",
2937
+ # auto_minor_version_upgrade: false,
2938
+ # snapshot_retention_limit: 1,
2939
+ # snapshot_window: "String",
2940
+ # cache_node_type: "String",
2941
+ # })
2942
+ #
2943
+ # @example Response structure
2944
+ # resp.cache_cluster.cache_cluster_id #=> String
2945
+ # resp.cache_cluster.configuration_endpoint.address #=> String
2946
+ # resp.cache_cluster.configuration_endpoint.port #=> Integer
2947
+ # resp.cache_cluster.client_download_landing_page #=> String
2948
+ # resp.cache_cluster.cache_node_type #=> String
2949
+ # resp.cache_cluster.engine #=> String
2950
+ # resp.cache_cluster.engine_version #=> String
2951
+ # resp.cache_cluster.cache_cluster_status #=> String
2952
+ # resp.cache_cluster.num_cache_nodes #=> Integer
2953
+ # resp.cache_cluster.preferred_availability_zone #=> String
2954
+ # resp.cache_cluster.cache_cluster_create_time #=> Time
2955
+ # resp.cache_cluster.preferred_maintenance_window #=> String
2956
+ # resp.cache_cluster.pending_modified_values.num_cache_nodes #=> Integer
2957
+ # resp.cache_cluster.pending_modified_values.cache_node_ids_to_remove #=> Array
2958
+ # resp.cache_cluster.pending_modified_values.cache_node_ids_to_remove[0] #=> String
2959
+ # resp.cache_cluster.pending_modified_values.engine_version #=> String
2960
+ # resp.cache_cluster.pending_modified_values.cache_node_type #=> String
2961
+ # resp.cache_cluster.notification_configuration.topic_arn #=> String
2962
+ # resp.cache_cluster.notification_configuration.topic_status #=> String
2963
+ # resp.cache_cluster.cache_security_groups #=> Array
2964
+ # resp.cache_cluster.cache_security_groups[0].cache_security_group_name #=> String
2965
+ # resp.cache_cluster.cache_security_groups[0].status #=> String
2966
+ # resp.cache_cluster.cache_parameter_group.cache_parameter_group_name #=> String
2967
+ # resp.cache_cluster.cache_parameter_group.parameter_apply_status #=> String
2968
+ # resp.cache_cluster.cache_parameter_group.cache_node_ids_to_reboot #=> Array
2969
+ # resp.cache_cluster.cache_parameter_group.cache_node_ids_to_reboot[0] #=> String
2970
+ # resp.cache_cluster.cache_subnet_group_name #=> String
2971
+ # resp.cache_cluster.cache_nodes #=> Array
2972
+ # resp.cache_cluster.cache_nodes[0].cache_node_id #=> String
2973
+ # resp.cache_cluster.cache_nodes[0].cache_node_status #=> String
2974
+ # resp.cache_cluster.cache_nodes[0].cache_node_create_time #=> Time
2975
+ # resp.cache_cluster.cache_nodes[0].endpoint.address #=> String
2976
+ # resp.cache_cluster.cache_nodes[0].endpoint.port #=> Integer
2977
+ # resp.cache_cluster.cache_nodes[0].parameter_group_status #=> String
2978
+ # resp.cache_cluster.cache_nodes[0].source_cache_node_id #=> String
2979
+ # resp.cache_cluster.cache_nodes[0].customer_availability_zone #=> String
2980
+ # resp.cache_cluster.auto_minor_version_upgrade #=> Boolean
2981
+ # resp.cache_cluster.security_groups #=> Array
2982
+ # resp.cache_cluster.security_groups[0].security_group_id #=> String
2983
+ # resp.cache_cluster.security_groups[0].status #=> String
2984
+ # resp.cache_cluster.replication_group_id #=> String
2985
+ # resp.cache_cluster.snapshot_retention_limit #=> Integer
2986
+ # resp.cache_cluster.snapshot_window #=> String
2987
+ # @overload modify_cache_cluster(params = {})
2988
+ # @param [Hash] params ({})
2989
+ def modify_cache_cluster(params = {}, options = {})
2990
+ req = build_request(:modify_cache_cluster, params)
2991
+ req.send_request(options)
2992
+ end
2993
+
2994
+ # Modifies the parameters of a cache parameter group. You can modify up
2995
+ # to 20 parameters in a single request by submitting a list parameter
2996
+ # name and value pairs.
2997
+ # @option params [required, String] :cache_parameter_group_name
2998
+ # The name of the cache parameter group to modify.
2999
+ # @option params [required, Array<Types::ParameterNameValue>] :parameter_name_values
3000
+ # An array of parameter names and values for the parameter update. You
3001
+ # must supply at least one parameter name and value; subsequent
3002
+ # arguments are optional. A maximum of 20 parameters may be modified per
3003
+ # request.
3004
+ # @return [Types::CacheParameterGroupNameMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3005
+ #
3006
+ # * {Types::CacheParameterGroupNameMessage#cache_parameter_group_name #CacheParameterGroupName} => String
3007
+ #
3008
+ # @example Request syntax with placeholder values
3009
+ # resp = client.modify_cache_parameter_group({
3010
+ # cache_parameter_group_name: "String", # required
3011
+ # parameter_name_values: [ # required
3012
+ # {
3013
+ # parameter_name: "String",
3014
+ # parameter_value: "String",
3015
+ # },
3016
+ # ],
3017
+ # })
3018
+ #
3019
+ # @example Response structure
3020
+ # resp.cache_parameter_group_name #=> String
3021
+ # @overload modify_cache_parameter_group(params = {})
3022
+ # @param [Hash] params ({})
3023
+ def modify_cache_parameter_group(params = {}, options = {})
3024
+ req = build_request(:modify_cache_parameter_group, params)
3025
+ req.send_request(options)
3026
+ end
3027
+
3028
+ # Modifies an existing cache subnet group.
3029
+ # @option params [required, String] :cache_subnet_group_name
3030
+ # The name for the cache subnet group. This value is stored as a
3031
+ # lowercase string.
3032
+ #
3033
+ # Constraints: Must contain no more than 255 alphanumeric characters or
3034
+ # hyphens.
3035
+ #
3036
+ # Example: `mysubnetgroup`
3037
+ # @option params [String] :cache_subnet_group_description
3038
+ # A description of the cache subnet group.
3039
+ # @option params [Array<String>] :subnet_ids
3040
+ # The EC2 subnet IDs for the cache subnet group.
3041
+ # @return [Types::ModifyCacheSubnetGroupResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3042
+ #
3043
+ # * {Types::ModifyCacheSubnetGroupResult#cache_subnet_group #CacheSubnetGroup} => Types::CacheSubnetGroup
3044
+ #
3045
+ # @example Request syntax with placeholder values
3046
+ # resp = client.modify_cache_subnet_group({
3047
+ # cache_subnet_group_name: "String", # required
3048
+ # cache_subnet_group_description: "String",
3049
+ # subnet_ids: ["String"],
3050
+ # })
3051
+ #
3052
+ # @example Response structure
3053
+ # resp.cache_subnet_group.cache_subnet_group_name #=> String
3054
+ # resp.cache_subnet_group.cache_subnet_group_description #=> String
3055
+ # resp.cache_subnet_group.vpc_id #=> String
3056
+ # resp.cache_subnet_group.subnets #=> Array
3057
+ # resp.cache_subnet_group.subnets[0].subnet_identifier #=> String
3058
+ # resp.cache_subnet_group.subnets[0].subnet_availability_zone.name #=> String
3059
+ # @overload modify_cache_subnet_group(params = {})
3060
+ # @param [Hash] params ({})
3061
+ def modify_cache_subnet_group(params = {}, options = {})
3062
+ req = build_request(:modify_cache_subnet_group, params)
3063
+ req.send_request(options)
3064
+ end
3065
+
3066
+ # Modifies the settings for a replication group.
3067
+ #
3068
+ # Due to current limitations on Redis (cluster mode disabled), this
3069
+ # operation or parameter is not supported on Redis (cluster mode
3070
+ # enabled) replication groups.
3071
+ #
3072
+ # <note markdown="1"> This operation is valid for Redis only.
3073
+ #
3074
+ # </note>
3075
+ # @option params [required, String] :replication_group_id
3076
+ # The identifier of the replication group to modify.
3077
+ # @option params [String] :replication_group_description
3078
+ # A description for the replication group. Maximum length is 255
3079
+ # characters.
3080
+ # @option params [String] :primary_cluster_id
3081
+ # For replication groups with a single primary, if this parameter is
3082
+ # specified, ElastiCache promotes the specified cluster in the specified
3083
+ # replication group to the primary role. The nodes of all other clusters
3084
+ # in the replication group are read replicas.
3085
+ # @option params [String] :snapshotting_cluster_id
3086
+ # The cache cluster ID that is used as the daily snapshot source for the
3087
+ # replication group. This parameter cannot be set for Redis (cluster
3088
+ # mode enabled) replication groups.
3089
+ # @option params [Boolean] :automatic_failover_enabled
3090
+ # Determines whether a read replica is automatically promoted to
3091
+ # read/write primary if the existing primary encounters a failure.
3092
+ #
3093
+ # Valid values: `true` \| `false`
3094
+ #
3095
+ # <note markdown="1"> ElastiCache Multi-AZ replication groups are not supported on:
3096
+ #
3097
+ # * Redis versions earlier than 2.8.6.
3098
+ #
3099
+ # * Redis (cluster mode disabled):T1 and T2 cache node types.
3100
+ #
3101
+ # Redis (cluster mode enabled): T1 node types.
3102
+ #
3103
+ # </note>
3104
+ # @option params [Array<String>] :cache_security_group_names
3105
+ # A list of cache security group names to authorize for the clusters in
3106
+ # this replication group. This change is asynchronously applied as soon
3107
+ # as possible.
3108
+ #
3109
+ # This parameter can be used only with replication group containing
3110
+ # cache clusters running outside of an Amazon Virtual Private Cloud
3111
+ # (Amazon VPC).
3112
+ #
3113
+ # Constraints: Must contain no more than 255 alphanumeric characters.
3114
+ # Must not be `Default`.
3115
+ # @option params [Array<String>] :security_group_ids
3116
+ # Specifies the VPC Security Groups associated with the cache clusters
3117
+ # in the replication group.
3118
+ #
3119
+ # This parameter can be used only with replication group containing
3120
+ # cache clusters running in an Amazon Virtual Private Cloud (Amazon
3121
+ # VPC).
3122
+ # @option params [String] :preferred_maintenance_window
3123
+ # Specifies the weekly time range during which maintenance on the
3124
+ # cluster is performed. It is specified as a range in the format
3125
+ # ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance
3126
+ # window is a 60 minute period.
3127
+ #
3128
+ # Valid values for `ddd` are:
3129
+ #
3130
+ # * `sun`
3131
+ #
3132
+ # * `mon`
3133
+ #
3134
+ # * `tue`
3135
+ #
3136
+ # * `wed`
3137
+ #
3138
+ # * `thu`
3139
+ #
3140
+ # * `fri`
3141
+ #
3142
+ # * `sat`
3143
+ #
3144
+ # Example: `sun:23:00-mon:01:30`
3145
+ # @option params [String] :notification_topic_arn
3146
+ # The Amazon Resource Name (ARN) of the Amazon SNS topic to which
3147
+ # notifications are sent.
3148
+ #
3149
+ # <note markdown="1"> The Amazon SNS topic owner must be same as the replication group
3150
+ # owner.
3151
+ #
3152
+ # </note>
3153
+ # @option params [String] :cache_parameter_group_name
3154
+ # The name of the cache parameter group to apply to all of the clusters
3155
+ # in this replication group. This change is asynchronously applied as
3156
+ # soon as possible for parameters when the `ApplyImmediately` parameter
3157
+ # is specified as `true` for this request.
3158
+ # @option params [String] :notification_topic_status
3159
+ # The status of the Amazon SNS notification topic for the replication
3160
+ # group. Notifications are sent only if the status is `active`.
3161
+ #
3162
+ # Valid values: `active` \| `inactive`
3163
+ # @option params [Boolean] :apply_immediately
3164
+ # If `true`, this parameter causes the modifications in this request and
3165
+ # any pending modifications to be applied, asynchronously and as soon as
3166
+ # possible, regardless of the `PreferredMaintenanceWindow` setting for
3167
+ # the replication group.
3168
+ #
3169
+ # If `false`, changes to the nodes in the replication group are applied
3170
+ # on the next maintenance reboot, or the next failure reboot, whichever
3171
+ # occurs first.
3172
+ #
3173
+ # Valid values: `true` \| `false`
3174
+ #
3175
+ # Default: `false`
3176
+ # @option params [String] :engine_version
3177
+ # The upgraded version of the cache engine to be run on the cache
3178
+ # clusters in the replication group.
3179
+ #
3180
+ # **Important:** You can upgrade to a newer engine version (see
3181
+ # [Selecting a Cache Engine and Version][1]), but you cannot downgrade
3182
+ # to an earlier engine version. If you want to use an earlier engine
3183
+ # version, you must delete the existing replication group and create it
3184
+ # anew with the earlier engine version.
3185
+ #
3186
+ #
3187
+ #
3188
+ # [1]: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement
3189
+ # @option params [Boolean] :auto_minor_version_upgrade
3190
+ # This parameter is currently disabled.
3191
+ # @option params [Integer] :snapshot_retention_limit
3192
+ # The number of days for which ElastiCache retains automatic node group
3193
+ # (shard) snapshots before deleting them. For example, if you set
3194
+ # `SnapshotRetentionLimit` to 5, a snapshot that was taken today is
3195
+ # retained for 5 days before being deleted.
3196
+ #
3197
+ # **Important** If the value of SnapshotRetentionLimit is set to zero
3198
+ # (0), backups are turned off.
3199
+ # @option params [String] :snapshot_window
3200
+ # The daily time range (in UTC) during which ElastiCache begins taking a
3201
+ # daily snapshot of the node group (shard) specified by
3202
+ # `SnapshottingClusterId`.
3203
+ #
3204
+ # Example: `05:00-09:00`
3205
+ #
3206
+ # If you do not specify this parameter, ElastiCache automatically
3207
+ # chooses an appropriate time range.
3208
+ # @option params [String] :cache_node_type
3209
+ # A valid cache node type that you want to scale this replication group
3210
+ # to.
3211
+ # @return [Types::ModifyReplicationGroupResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3212
+ #
3213
+ # * {Types::ModifyReplicationGroupResult#replication_group #ReplicationGroup} => Types::ReplicationGroup
3214
+ #
3215
+ # @example Request syntax with placeholder values
3216
+ # resp = client.modify_replication_group({
3217
+ # replication_group_id: "String", # required
3218
+ # replication_group_description: "String",
3219
+ # primary_cluster_id: "String",
3220
+ # snapshotting_cluster_id: "String",
3221
+ # automatic_failover_enabled: false,
3222
+ # cache_security_group_names: ["String"],
3223
+ # security_group_ids: ["String"],
3224
+ # preferred_maintenance_window: "String",
3225
+ # notification_topic_arn: "String",
3226
+ # cache_parameter_group_name: "String",
3227
+ # notification_topic_status: "String",
3228
+ # apply_immediately: false,
3229
+ # engine_version: "String",
3230
+ # auto_minor_version_upgrade: false,
3231
+ # snapshot_retention_limit: 1,
3232
+ # snapshot_window: "String",
3233
+ # cache_node_type: "String",
3234
+ # })
3235
+ #
3236
+ # @example Response structure
3237
+ # resp.replication_group.replication_group_id #=> String
3238
+ # resp.replication_group.description #=> String
3239
+ # resp.replication_group.status #=> String
3240
+ # resp.replication_group.pending_modified_values.primary_cluster_id #=> String
3241
+ # resp.replication_group.pending_modified_values.automatic_failover_status #=> String, one of "enabled", "disabled"
3242
+ # resp.replication_group.member_clusters #=> Array
3243
+ # resp.replication_group.member_clusters[0] #=> String
3244
+ # resp.replication_group.node_groups #=> Array
3245
+ # resp.replication_group.node_groups[0].node_group_id #=> String
3246
+ # resp.replication_group.node_groups[0].status #=> String
3247
+ # resp.replication_group.node_groups[0].primary_endpoint.address #=> String
3248
+ # resp.replication_group.node_groups[0].primary_endpoint.port #=> Integer
3249
+ # resp.replication_group.node_groups[0].slots #=> String
3250
+ # resp.replication_group.node_groups[0].node_group_members #=> Array
3251
+ # resp.replication_group.node_groups[0].node_group_members[0].cache_cluster_id #=> String
3252
+ # resp.replication_group.node_groups[0].node_group_members[0].cache_node_id #=> String
3253
+ # resp.replication_group.node_groups[0].node_group_members[0].read_endpoint.address #=> String
3254
+ # resp.replication_group.node_groups[0].node_group_members[0].read_endpoint.port #=> Integer
3255
+ # resp.replication_group.node_groups[0].node_group_members[0].preferred_availability_zone #=> String
3256
+ # resp.replication_group.node_groups[0].node_group_members[0].current_role #=> String
3257
+ # resp.replication_group.snapshotting_cluster_id #=> String
3258
+ # resp.replication_group.automatic_failover #=> String, one of "enabled", "disabled", "enabling", "disabling"
3259
+ # resp.replication_group.configuration_endpoint.address #=> String
3260
+ # resp.replication_group.configuration_endpoint.port #=> Integer
3261
+ # resp.replication_group.snapshot_retention_limit #=> Integer
3262
+ # resp.replication_group.snapshot_window #=> String
3263
+ # @overload modify_replication_group(params = {})
3264
+ # @param [Hash] params ({})
3265
+ def modify_replication_group(params = {}, options = {})
3266
+ req = build_request(:modify_replication_group, params)
3267
+ req.send_request(options)
3268
+ end
3269
+
3270
+ # Allows you to purchase a reserved cache node offering.
3271
+ # @option params [required, String] :reserved_cache_nodes_offering_id
3272
+ # The ID of the reserved cache node offering to purchase.
3273
+ #
3274
+ # Example: `438012d3-4052-4cc7-b2e3-8d3372e0e706`
3275
+ # @option params [String] :reserved_cache_node_id
3276
+ # A customer-specified identifier to track this reservation.
3277
+ #
3278
+ # <note markdown="1"> The Reserved Cache Node ID is an unique customer-specified identifier
3279
+ # to track this reservation. If this parameter is not specified,
3280
+ # ElastiCache automatically generates an identifier for the reservation.
3281
+ #
3282
+ # </note>
3283
+ #
3284
+ # Example: myreservationID
3285
+ # @option params [Integer] :cache_node_count
3286
+ # The number of cache node instances to reserve.
3287
+ #
3288
+ # Default: `1`
3289
+ # @return [Types::PurchaseReservedCacheNodesOfferingResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3290
+ #
3291
+ # * {Types::PurchaseReservedCacheNodesOfferingResult#reserved_cache_node #ReservedCacheNode} => Types::ReservedCacheNode
3292
+ #
3293
+ # @example Request syntax with placeholder values
3294
+ # resp = client.purchase_reserved_cache_nodes_offering({
3295
+ # reserved_cache_nodes_offering_id: "String", # required
3296
+ # reserved_cache_node_id: "String",
3297
+ # cache_node_count: 1,
3298
+ # })
3299
+ #
3300
+ # @example Response structure
3301
+ # resp.reserved_cache_node.reserved_cache_node_id #=> String
3302
+ # resp.reserved_cache_node.reserved_cache_nodes_offering_id #=> String
3303
+ # resp.reserved_cache_node.cache_node_type #=> String
3304
+ # resp.reserved_cache_node.start_time #=> Time
3305
+ # resp.reserved_cache_node.duration #=> Integer
3306
+ # resp.reserved_cache_node.fixed_price #=> Float
3307
+ # resp.reserved_cache_node.usage_price #=> Float
3308
+ # resp.reserved_cache_node.cache_node_count #=> Integer
3309
+ # resp.reserved_cache_node.product_description #=> String
3310
+ # resp.reserved_cache_node.offering_type #=> String
3311
+ # resp.reserved_cache_node.state #=> String
3312
+ # resp.reserved_cache_node.recurring_charges #=> Array
3313
+ # resp.reserved_cache_node.recurring_charges[0].recurring_charge_amount #=> Float
3314
+ # resp.reserved_cache_node.recurring_charges[0].recurring_charge_frequency #=> String
3315
+ # @overload purchase_reserved_cache_nodes_offering(params = {})
3316
+ # @param [Hash] params ({})
3317
+ def purchase_reserved_cache_nodes_offering(params = {}, options = {})
3318
+ req = build_request(:purchase_reserved_cache_nodes_offering, params)
3319
+ req.send_request(options)
3320
+ end
3321
+
3322
+ # Reboots some, or all, of the cache nodes within a provisioned cache
3323
+ # cluster. This operation applies any modified cache parameter groups to
3324
+ # the cache cluster. The reboot operation takes place as soon as
3325
+ # possible, and results in a momentary outage to the cache cluster.
3326
+ # During the reboot, the cache cluster status is set to REBOOTING.
3327
+ #
3328
+ # The reboot causes the contents of the cache (for each cache node being
3329
+ # rebooted) to be lost.
3330
+ #
3331
+ # When the reboot is complete, a cache cluster event is created.
3332
+ # @option params [required, String] :cache_cluster_id
3333
+ # The cache cluster identifier. This parameter is stored as a lowercase
3334
+ # string.
3335
+ # @option params [required, Array<String>] :cache_node_ids_to_reboot
3336
+ # A list of cache node IDs to reboot. A node ID is a numeric identifier
3337
+ # (0001, 0002, etc.). To reboot an entire cache cluster, specify all of
3338
+ # the cache node IDs.
3339
+ # @return [Types::RebootCacheClusterResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3340
+ #
3341
+ # * {Types::RebootCacheClusterResult#cache_cluster #CacheCluster} => Types::CacheCluster
3342
+ #
3343
+ # @example Request syntax with placeholder values
3344
+ # resp = client.reboot_cache_cluster({
3345
+ # cache_cluster_id: "String", # required
3346
+ # cache_node_ids_to_reboot: ["String"], # required
3347
+ # })
3348
+ #
3349
+ # @example Response structure
3350
+ # resp.cache_cluster.cache_cluster_id #=> String
3351
+ # resp.cache_cluster.configuration_endpoint.address #=> String
3352
+ # resp.cache_cluster.configuration_endpoint.port #=> Integer
3353
+ # resp.cache_cluster.client_download_landing_page #=> String
3354
+ # resp.cache_cluster.cache_node_type #=> String
3355
+ # resp.cache_cluster.engine #=> String
3356
+ # resp.cache_cluster.engine_version #=> String
3357
+ # resp.cache_cluster.cache_cluster_status #=> String
3358
+ # resp.cache_cluster.num_cache_nodes #=> Integer
3359
+ # resp.cache_cluster.preferred_availability_zone #=> String
3360
+ # resp.cache_cluster.cache_cluster_create_time #=> Time
3361
+ # resp.cache_cluster.preferred_maintenance_window #=> String
3362
+ # resp.cache_cluster.pending_modified_values.num_cache_nodes #=> Integer
3363
+ # resp.cache_cluster.pending_modified_values.cache_node_ids_to_remove #=> Array
3364
+ # resp.cache_cluster.pending_modified_values.cache_node_ids_to_remove[0] #=> String
3365
+ # resp.cache_cluster.pending_modified_values.engine_version #=> String
3366
+ # resp.cache_cluster.pending_modified_values.cache_node_type #=> String
3367
+ # resp.cache_cluster.notification_configuration.topic_arn #=> String
3368
+ # resp.cache_cluster.notification_configuration.topic_status #=> String
3369
+ # resp.cache_cluster.cache_security_groups #=> Array
3370
+ # resp.cache_cluster.cache_security_groups[0].cache_security_group_name #=> String
3371
+ # resp.cache_cluster.cache_security_groups[0].status #=> String
3372
+ # resp.cache_cluster.cache_parameter_group.cache_parameter_group_name #=> String
3373
+ # resp.cache_cluster.cache_parameter_group.parameter_apply_status #=> String
3374
+ # resp.cache_cluster.cache_parameter_group.cache_node_ids_to_reboot #=> Array
3375
+ # resp.cache_cluster.cache_parameter_group.cache_node_ids_to_reboot[0] #=> String
3376
+ # resp.cache_cluster.cache_subnet_group_name #=> String
3377
+ # resp.cache_cluster.cache_nodes #=> Array
3378
+ # resp.cache_cluster.cache_nodes[0].cache_node_id #=> String
3379
+ # resp.cache_cluster.cache_nodes[0].cache_node_status #=> String
3380
+ # resp.cache_cluster.cache_nodes[0].cache_node_create_time #=> Time
3381
+ # resp.cache_cluster.cache_nodes[0].endpoint.address #=> String
3382
+ # resp.cache_cluster.cache_nodes[0].endpoint.port #=> Integer
3383
+ # resp.cache_cluster.cache_nodes[0].parameter_group_status #=> String
3384
+ # resp.cache_cluster.cache_nodes[0].source_cache_node_id #=> String
3385
+ # resp.cache_cluster.cache_nodes[0].customer_availability_zone #=> String
3386
+ # resp.cache_cluster.auto_minor_version_upgrade #=> Boolean
3387
+ # resp.cache_cluster.security_groups #=> Array
3388
+ # resp.cache_cluster.security_groups[0].security_group_id #=> String
3389
+ # resp.cache_cluster.security_groups[0].status #=> String
3390
+ # resp.cache_cluster.replication_group_id #=> String
3391
+ # resp.cache_cluster.snapshot_retention_limit #=> Integer
3392
+ # resp.cache_cluster.snapshot_window #=> String
3393
+ # @overload reboot_cache_cluster(params = {})
3394
+ # @param [Hash] params ({})
3395
+ def reboot_cache_cluster(params = {}, options = {})
3396
+ req = build_request(:reboot_cache_cluster, params)
3397
+ req.send_request(options)
3398
+ end
3399
+
3400
+ # Removes the tags identified by the `TagKeys` list from the named
3401
+ # resource.
3402
+ # @option params [required, String] :resource_name
3403
+ # The Amazon Resource Name (ARN) of the resource from which you want the
3404
+ # tags removed, for example
3405
+ # `arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster` or
3406
+ # `arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot`.
3407
+ #
3408
+ # For more information about ARNs, see [Amazon Resource Names (ARNs) and
3409
+ # AWS Service Namespaces][1].
3410
+ #
3411
+ #
3412
+ #
3413
+ # [1]: http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
3414
+ # @option params [required, Array<String>] :tag_keys
3415
+ # A list of `TagKeys` identifying the tags you want removed from the
3416
+ # named resource.
3417
+ # @return [Types::TagListMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3418
+ #
3419
+ # * {Types::TagListMessage#tag_list #TagList} => Array&lt;Types::Tag&gt;
3420
+ #
3421
+ # @example Request syntax with placeholder values
3422
+ # resp = client.remove_tags_from_resource({
3423
+ # resource_name: "String", # required
3424
+ # tag_keys: ["String"], # required
3425
+ # })
3426
+ #
3427
+ # @example Response structure
3428
+ # resp.tag_list #=> Array
3429
+ # resp.tag_list[0].key #=> String
3430
+ # resp.tag_list[0].value #=> String
3431
+ # @overload remove_tags_from_resource(params = {})
3432
+ # @param [Hash] params ({})
3433
+ def remove_tags_from_resource(params = {}, options = {})
3434
+ req = build_request(:remove_tags_from_resource, params)
3435
+ req.send_request(options)
3436
+ end
3437
+
3438
+ # Modifies the parameters of a cache parameter group to the engine or
3439
+ # system default value. You can reset specific parameters by submitting
3440
+ # a list of parameter names. To reset the entire cache parameter group,
3441
+ # specify the `ResetAllParameters` and `CacheParameterGroupName`
3442
+ # parameters.
3443
+ # @option params [required, String] :cache_parameter_group_name
3444
+ # The name of the cache parameter group to reset.
3445
+ # @option params [Boolean] :reset_all_parameters
3446
+ # If `true`, all parameters in the cache parameter group are reset to
3447
+ # their default values. If `false`, only the parameters listed by
3448
+ # `ParameterNameValues` are reset to their default values.
3449
+ #
3450
+ # Valid values: `true` \| `false`
3451
+ # @option params [Array<Types::ParameterNameValue>] :parameter_name_values
3452
+ # An array of parameter names to reset to their default values. If
3453
+ # `ResetAllParameters` is `true`, do not use `ParameterNameValues`. If
3454
+ # `ResetAllParameters` is `false`, you must specify the name of at least
3455
+ # one parameter to reset.
3456
+ # @return [Types::CacheParameterGroupNameMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3457
+ #
3458
+ # * {Types::CacheParameterGroupNameMessage#cache_parameter_group_name #CacheParameterGroupName} => String
3459
+ #
3460
+ # @example Request syntax with placeholder values
3461
+ # resp = client.reset_cache_parameter_group({
3462
+ # cache_parameter_group_name: "String", # required
3463
+ # reset_all_parameters: false,
3464
+ # parameter_name_values: [
3465
+ # {
3466
+ # parameter_name: "String",
3467
+ # parameter_value: "String",
3468
+ # },
3469
+ # ],
3470
+ # })
3471
+ #
3472
+ # @example Response structure
3473
+ # resp.cache_parameter_group_name #=> String
3474
+ # @overload reset_cache_parameter_group(params = {})
3475
+ # @param [Hash] params ({})
3476
+ def reset_cache_parameter_group(params = {}, options = {})
3477
+ req = build_request(:reset_cache_parameter_group, params)
3478
+ req.send_request(options)
3479
+ end
3480
+
3481
+ # Revokes ingress from a cache security group. Use this operation to
3482
+ # disallow access from an Amazon EC2 security group that had been
3483
+ # previously authorized.
3484
+ # @option params [required, String] :cache_security_group_name
3485
+ # The name of the cache security group to revoke ingress from.
3486
+ # @option params [required, String] :ec2_security_group_name
3487
+ # The name of the Amazon EC2 security group to revoke access from.
3488
+ # @option params [required, String] :ec2_security_group_owner_id
3489
+ # The AWS account number of the Amazon EC2 security group owner. Note
3490
+ # that this is not the same thing as an AWS access key ID - you must
3491
+ # provide a valid AWS account number for this parameter.
3492
+ # @return [Types::RevokeCacheSecurityGroupIngressResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3493
+ #
3494
+ # * {Types::RevokeCacheSecurityGroupIngressResult#cache_security_group #CacheSecurityGroup} => Types::CacheSecurityGroup
3495
+ #
3496
+ # @example Request syntax with placeholder values
3497
+ # resp = client.revoke_cache_security_group_ingress({
3498
+ # cache_security_group_name: "String", # required
3499
+ # ec2_security_group_name: "String", # required
3500
+ # ec2_security_group_owner_id: "String", # required
3501
+ # })
3502
+ #
3503
+ # @example Response structure
3504
+ # resp.cache_security_group.owner_id #=> String
3505
+ # resp.cache_security_group.cache_security_group_name #=> String
3506
+ # resp.cache_security_group.description #=> String
3507
+ # resp.cache_security_group.ec2_security_groups #=> Array
3508
+ # resp.cache_security_group.ec2_security_groups[0].status #=> String
3509
+ # resp.cache_security_group.ec2_security_groups[0].ec2_security_group_name #=> String
3510
+ # resp.cache_security_group.ec2_security_groups[0].ec2_security_group_owner_id #=> String
3511
+ # @overload revoke_cache_security_group_ingress(params = {})
3512
+ # @param [Hash] params ({})
3513
+ def revoke_cache_security_group_ingress(params = {}, options = {})
3514
+ req = build_request(:revoke_cache_security_group_ingress, params)
3515
+ req.send_request(options)
3516
+ end
3517
+
3518
+ # @!endgroup
3519
+
3520
+ # @param params ({})
3521
+ # @api private
3522
+ def build_request(operation_name, params = {})
3523
+ handlers = @handlers.for(operation_name)
3524
+ context = Seahorse::Client::RequestContext.new(
3525
+ operation_name: operation_name,
3526
+ operation: config.api.operation(operation_name),
3527
+ client: self,
3528
+ params: params,
3529
+ config: config)
3530
+ context[:gem_name] = 'aws-sdk-elasticache'
3531
+ context[:gem_version] = '1.0.0.rc1'
3532
+ Seahorse::Client::Request.new(handlers, context)
3533
+ end
3534
+
3535
+ # Polls an API operation until a resource enters a desired state.
3536
+ #
3537
+ # ## Basic Usage
3538
+ #
3539
+ # A waiter will call an API operation until:
3540
+ #
3541
+ # * It is successful
3542
+ # * It enters a terminal state
3543
+ # * It makes the maximum number of attempts
3544
+ #
3545
+ # In between attempts, the waiter will sleep.
3546
+ #
3547
+ # # polls in a loop, sleeping between attempts
3548
+ # client.waiter_until(waiter_name, params)
3549
+ #
3550
+ # ## Configuration
3551
+ #
3552
+ # You can configure the maximum number of polling attempts, and the
3553
+ # delay (in seconds) between each polling attempt. You can pass
3554
+ # configuration as the final arguments hash.
3555
+ #
3556
+ # # poll for ~25 seconds
3557
+ # client.wait_until(waiter_name, params, {
3558
+ # max_attempts: 5,
3559
+ # delay: 5,
3560
+ # })
3561
+ #
3562
+ # ## Callbacks
3563
+ #
3564
+ # You can be notified before each polling attempt and before each
3565
+ # delay. If you throw `:success` or `:failure` from these callbacks,
3566
+ # it will terminate the waiter.
3567
+ #
3568
+ # started_at = Time.now
3569
+ # client.wait_until(waiter_name, params, {
3570
+ #
3571
+ # # disable max attempts
3572
+ # max_attempts: nil,
3573
+ #
3574
+ # # poll for 1 hour, instead of a number of attempts
3575
+ # before_wait: -> (attempts, response) do
3576
+ # throw :failure if Time.now - started_at > 3600
3577
+ # end
3578
+ # })
3579
+ #
3580
+ # ## Handling Errors
3581
+ #
3582
+ # When a waiter is unsuccessful, it will raise an error.
3583
+ # All of the failure errors extend from
3584
+ # {Aws::Waiters::Errors::WaiterFailed}.
3585
+ #
3586
+ # begin
3587
+ # client.wait_until(...)
3588
+ # rescue Aws::Waiters::Errors::WaiterFailed
3589
+ # # resource did not enter the desired state in time
3590
+ # end
3591
+ #
3592
+ # ## Valid Waiters
3593
+ #
3594
+ # The following table lists the valid waiter names, the operations they call,
3595
+ # and the default `:delay` and `:max_attempts` values.
3596
+ #
3597
+ # | waiter_name | params | :delay | :max_attempts |
3598
+ # | --------------------------- | ------------------------------ | -------- | ------------- |
3599
+ # | cache_cluster_available | {#describe_cache_clusters} | 15 | 40 |
3600
+ # | cache_cluster_deleted | {#describe_cache_clusters} | 15 | 40 |
3601
+ # | replication_group_available | {#describe_replication_groups} | 15 | 40 |
3602
+ # | replication_group_deleted | {#describe_replication_groups} | 15 | 40 |
3603
+ #
3604
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
3605
+ # because the waiter has entered a state that it will not transition
3606
+ # out of, preventing success.
3607
+ #
3608
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
3609
+ # maximum number of attempts have been made, and the waiter is not
3610
+ # yet successful.
3611
+ #
3612
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
3613
+ # while polling for a resource that is not expected.
3614
+ #
3615
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
3616
+ # for an unknown state.
3617
+ #
3618
+ # @return [Boolean] Returns `true` if the waiter was successful.
3619
+ # @param [Symbol] waiter_name
3620
+ # @param [Hash] params ({})
3621
+ # @param [Hash] options ({})
3622
+ # @option options [Integer] :max_attempts
3623
+ # @option options [Integer] :delay
3624
+ # @option options [Proc] :before_attempt
3625
+ # @option options [Proc] :before_wait
3626
+ def wait_until(waiter_name, params = {}, options = {})
3627
+ w = waiter(waiter_name, options)
3628
+ yield(w.waiter) if block_given? # deprecated
3629
+ w.wait(params)
3630
+ end
3631
+
3632
+ # @api private
3633
+ # @deprecated
3634
+ def waiter_names
3635
+ waiters.keys
3636
+ end
3637
+
3638
+ private
3639
+
3640
+ # @param [Symbol] waiter_name
3641
+ # @param [Hash] options ({})
3642
+ def waiter(waiter_name, options = {})
3643
+ waiter_class = waiters[waiter_name]
3644
+ if waiter_class
3645
+ waiter_class.new(options.merge(client: self))
3646
+ else
3647
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
3648
+ end
3649
+ end
3650
+
3651
+ def waiters
3652
+ {
3653
+ cache_cluster_available: Waiters::CacheClusterAvailable,
3654
+ cache_cluster_deleted: Waiters::CacheClusterDeleted,
3655
+ replication_group_available: Waiters::ReplicationGroupAvailable,
3656
+ replication_group_deleted: Waiters::ReplicationGroupDeleted
3657
+ }
3658
+ end
3659
+
3660
+ class << self
3661
+
3662
+ # @api private
3663
+ attr_reader :identifier
3664
+
3665
+ # @api private
3666
+ def errors_module
3667
+ Errors
3668
+ end
3669
+
3670
+ end
3671
+ end
3672
+ end
3673
+ end