aws-sdk-memorydb 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 5e5ed264af40644a3e500b27c25d61067bb8f88a758a10bf28e732609327f26b
4
+ data.tar.gz: c8afc01725caed61c3808731623e225cb5030dcca7a28bc6f7bf786cf9411645
5
+ SHA512:
6
+ metadata.gz: 19724a1770030edc524ffdc9fcd96feaea9d198e0257c5bfda5b4d89ff0bb10fe261cdca7a0c1c29fd9a1a5d41ceb19dfa5b731bc3e41846f8c8987f97aef008
7
+ data.tar.gz: 4c616bbe61ae7ab9f6aa0a14110494c2d5a50241e013e9b3f2818cce265c4ce885923e308a873f6447f7ae8c197d25b16461f6b8ef046e97955b589fc67533c1
data/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ Unreleased Changes
2
+ ------------------
3
+
4
+ 1.0.0 (2021-08-19)
5
+ ------------------
6
+
7
+ * Feature - Initial release of `aws-sdk-memorydb`.
8
+
data/LICENSE.txt ADDED
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.0
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+
11
+ require 'aws-sdk-core'
12
+ require 'aws-sigv4'
13
+
14
+ require_relative 'aws-sdk-memorydb/types'
15
+ require_relative 'aws-sdk-memorydb/client_api'
16
+ require_relative 'aws-sdk-memorydb/client'
17
+ require_relative 'aws-sdk-memorydb/errors'
18
+ require_relative 'aws-sdk-memorydb/resource'
19
+ require_relative 'aws-sdk-memorydb/customizations'
20
+
21
+ # This module provides support for Amazon MemoryDB. This module is available in the
22
+ # `aws-sdk-memorydb` gem.
23
+ #
24
+ # # Client
25
+ #
26
+ # The {Client} class provides one method for each API operation. Operation
27
+ # methods each accept a hash of request parameters and return a response
28
+ # structure.
29
+ #
30
+ # memory_db = Aws::MemoryDB::Client.new
31
+ # resp = memory_db.batch_update_cluster(params)
32
+ #
33
+ # See {Client} for more information.
34
+ #
35
+ # # Errors
36
+ #
37
+ # Errors returned from Amazon MemoryDB are defined in the
38
+ # {Errors} module and all extend {Errors::ServiceError}.
39
+ #
40
+ # begin
41
+ # # do stuff
42
+ # rescue Aws::MemoryDB::Errors::ServiceError
43
+ # # rescues all Amazon MemoryDB API errors
44
+ # end
45
+ #
46
+ # See {Errors} for more information.
47
+ #
48
+ # @!group service
49
+ module Aws::MemoryDB
50
+
51
+ GEM_VERSION = '1.0.0'
52
+
53
+ end
@@ -0,0 +1,2585 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ require 'seahorse/client/plugins/content_length.rb'
11
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
+ require 'aws-sdk-core/plugins/logging.rb'
13
+ require 'aws-sdk-core/plugins/param_converter.rb'
14
+ require 'aws-sdk-core/plugins/param_validator.rb'
15
+ require 'aws-sdk-core/plugins/user_agent.rb'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
+ require 'aws-sdk-core/plugins/retry_errors.rb'
18
+ require 'aws-sdk-core/plugins/global_configuration.rb'
19
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
+ require 'aws-sdk-core/plugins/response_paging.rb'
23
+ require 'aws-sdk-core/plugins/stub_responses.rb'
24
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
25
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
26
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
+ require 'aws-sdk-core/plugins/http_checksum.rb'
30
+ require 'aws-sdk-core/plugins/signature_v4.rb'
31
+ require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
32
+
33
+ Aws::Plugins::GlobalConfiguration.add_identifier(:memorydb)
34
+
35
+ module Aws::MemoryDB
36
+ # An API client for MemoryDB. To construct a client, you need to configure a `:region` and `:credentials`.
37
+ #
38
+ # client = Aws::MemoryDB::Client.new(
39
+ # region: region_name,
40
+ # credentials: credentials,
41
+ # # ...
42
+ # )
43
+ #
44
+ # For details on configuring region and credentials see
45
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
46
+ #
47
+ # See {#initialize} for a full list of supported configuration options.
48
+ class Client < Seahorse::Client::Base
49
+
50
+ include Aws::ClientStubs
51
+
52
+ @identifier = :memorydb
53
+
54
+ set_api(ClientApi::API)
55
+
56
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
57
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
58
+ add_plugin(Aws::Plugins::Logging)
59
+ add_plugin(Aws::Plugins::ParamConverter)
60
+ add_plugin(Aws::Plugins::ParamValidator)
61
+ add_plugin(Aws::Plugins::UserAgent)
62
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
63
+ add_plugin(Aws::Plugins::RetryErrors)
64
+ add_plugin(Aws::Plugins::GlobalConfiguration)
65
+ add_plugin(Aws::Plugins::RegionalEndpoint)
66
+ add_plugin(Aws::Plugins::EndpointDiscovery)
67
+ add_plugin(Aws::Plugins::EndpointPattern)
68
+ add_plugin(Aws::Plugins::ResponsePaging)
69
+ add_plugin(Aws::Plugins::StubResponses)
70
+ add_plugin(Aws::Plugins::IdempotencyToken)
71
+ add_plugin(Aws::Plugins::JsonvalueConverter)
72
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
73
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
74
+ add_plugin(Aws::Plugins::TransferEncoding)
75
+ add_plugin(Aws::Plugins::HttpChecksum)
76
+ add_plugin(Aws::Plugins::SignatureV4)
77
+ add_plugin(Aws::Plugins::Protocols::JsonRpc)
78
+
79
+ # @overload initialize(options)
80
+ # @param [Hash] options
81
+ # @option options [required, Aws::CredentialProvider] :credentials
82
+ # Your AWS credentials. This can be an instance of any one of the
83
+ # following classes:
84
+ #
85
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
86
+ # credentials.
87
+ #
88
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
89
+ # shared file, such as `~/.aws/config`.
90
+ #
91
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
92
+ #
93
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
94
+ # assume a role after providing credentials via the web.
95
+ #
96
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
97
+ # access token generated from `aws login`.
98
+ #
99
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
100
+ # process that outputs to stdout.
101
+ #
102
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
103
+ # from an EC2 IMDS on an EC2 instance.
104
+ #
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
107
+ #
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
110
+ #
111
+ # When `:credentials` are not configured directly, the following
112
+ # locations will be searched for credentials:
113
+ #
114
+ # * `Aws.config[:credentials]`
115
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
116
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
117
+ # * `~/.aws/credentials`
118
+ # * `~/.aws/config`
119
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
+ # are very aggressive. Construct and pass an instance of
121
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
+ # enable retries and extended timeouts.
123
+ #
124
+ # @option options [required, String] :region
125
+ # The AWS region to connect to. The configured `:region` is
126
+ # used to determine the service `:endpoint`. When not passed,
127
+ # a default `:region` is searched for in the following locations:
128
+ #
129
+ # * `Aws.config[:region]`
130
+ # * `ENV['AWS_REGION']`
131
+ # * `ENV['AMAZON_REGION']`
132
+ # * `ENV['AWS_DEFAULT_REGION']`
133
+ # * `~/.aws/credentials`
134
+ # * `~/.aws/config`
135
+ #
136
+ # @option options [String] :access_key_id
137
+ #
138
+ # @option options [Boolean] :active_endpoint_cache (false)
139
+ # When set to `true`, a thread polling for endpoints will be running in
140
+ # the background every 60 secs (default). Defaults to `false`.
141
+ #
142
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
143
+ # Used only in `adaptive` retry mode. When true, the request will sleep
144
+ # until there is sufficent client side capacity to retry the request.
145
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
146
+ # not retry instead of sleeping.
147
+ #
148
+ # @option options [Boolean] :client_side_monitoring (false)
149
+ # When `true`, client-side metrics will be collected for all API requests from
150
+ # this client.
151
+ #
152
+ # @option options [String] :client_side_monitoring_client_id ("")
153
+ # Allows you to provide an identifier for this client which will be attached to
154
+ # all generated client side metrics. Defaults to an empty string.
155
+ #
156
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
157
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
158
+ # side monitoring agent is running on, where client metrics will be published via UDP.
159
+ #
160
+ # @option options [Integer] :client_side_monitoring_port (31000)
161
+ # Required for publishing client metrics. The port that the client side monitoring
162
+ # agent is running on, where client metrics will be published via UDP.
163
+ #
164
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
165
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
166
+ # will use the Client Side Monitoring Agent Publisher.
167
+ #
168
+ # @option options [Boolean] :convert_params (true)
169
+ # When `true`, an attempt is made to coerce request parameters into
170
+ # the required types.
171
+ #
172
+ # @option options [Boolean] :correct_clock_skew (true)
173
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
174
+ # a clock skew correction and retry requests with skewed client clocks.
175
+ #
176
+ # @option options [Boolean] :disable_host_prefix_injection (false)
177
+ # Set to true to disable SDK automatically adding host prefix
178
+ # to default service endpoint when available.
179
+ #
180
+ # @option options [String] :endpoint
181
+ # The client endpoint is normally constructed from the `:region`
182
+ # option. You should only configure an `:endpoint` when connecting
183
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
184
+ #
185
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
186
+ # Used for the maximum size limit of the LRU cache storing endpoints data
187
+ # for endpoint discovery enabled operations. Defaults to 1000.
188
+ #
189
+ # @option options [Integer] :endpoint_cache_max_threads (10)
190
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
191
+ #
192
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
193
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
194
+ # Use this option to config the time interval in seconds for making
195
+ # requests fetching endpoints information. Defaults to 60 sec.
196
+ #
197
+ # @option options [Boolean] :endpoint_discovery (false)
198
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
199
+ #
200
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
201
+ # The log formatter.
202
+ #
203
+ # @option options [Symbol] :log_level (:info)
204
+ # The log level to send messages to the `:logger` at.
205
+ #
206
+ # @option options [Logger] :logger
207
+ # The Logger instance to send log messages to. If this option
208
+ # is not set, logging will be disabled.
209
+ #
210
+ # @option options [Integer] :max_attempts (3)
211
+ # An integer representing the maximum number attempts that will be made for
212
+ # a single request, including the initial attempt. For example,
213
+ # setting this value to 5 will result in a request being retried up to
214
+ # 4 times. Used in `standard` and `adaptive` retry modes.
215
+ #
216
+ # @option options [String] :profile ("default")
217
+ # Used when loading credentials from the shared credentials file
218
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
219
+ #
220
+ # @option options [Proc] :retry_backoff
221
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
222
+ # This option is only used in the `legacy` retry mode.
223
+ #
224
+ # @option options [Float] :retry_base_delay (0.3)
225
+ # The base delay in seconds used by the default backoff function. This option
226
+ # is only used in the `legacy` retry mode.
227
+ #
228
+ # @option options [Symbol] :retry_jitter (:none)
229
+ # A delay randomiser function used by the default backoff function.
230
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
231
+ # otherwise a Proc that takes and returns a number. This option is only used
232
+ # in the `legacy` retry mode.
233
+ #
234
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
235
+ #
236
+ # @option options [Integer] :retry_limit (3)
237
+ # The maximum number of times to retry failed requests. Only
238
+ # ~ 500 level server errors and certain ~ 400 level client errors
239
+ # are retried. Generally, these are throttling errors, data
240
+ # checksum errors, networking errors, timeout errors, auth errors,
241
+ # endpoint discovery, and errors from expired credentials.
242
+ # This option is only used in the `legacy` retry mode.
243
+ #
244
+ # @option options [Integer] :retry_max_delay (0)
245
+ # The maximum number of seconds to delay between retries (0 for no limit)
246
+ # used by the default backoff function. This option is only used in the
247
+ # `legacy` retry mode.
248
+ #
249
+ # @option options [String] :retry_mode ("legacy")
250
+ # Specifies which retry algorithm to use. Values are:
251
+ #
252
+ # * `legacy` - The pre-existing retry behavior. This is default value if
253
+ # no retry mode is provided.
254
+ #
255
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
256
+ # This includes support for retry quotas, which limit the number of
257
+ # unsuccessful retries a client can make.
258
+ #
259
+ # * `adaptive` - An experimental retry mode that includes all the
260
+ # functionality of `standard` mode along with automatic client side
261
+ # throttling. This is a provisional mode that may change behavior
262
+ # in the future.
263
+ #
264
+ #
265
+ # @option options [String] :secret_access_key
266
+ #
267
+ # @option options [String] :session_token
268
+ #
269
+ # @option options [Boolean] :simple_json (false)
270
+ # Disables request parameter conversion, validation, and formatting.
271
+ # Also disable response data type conversions. This option is useful
272
+ # when you want to ensure the highest level of performance by
273
+ # avoiding overhead of walking request parameters and response data
274
+ # structures.
275
+ #
276
+ # When `:simple_json` is enabled, the request parameters hash must
277
+ # be formatted exactly as the DynamoDB API expects.
278
+ #
279
+ # @option options [Boolean] :stub_responses (false)
280
+ # Causes the client to return stubbed responses. By default
281
+ # fake responses are generated and returned. You can specify
282
+ # the response data to return or errors to raise by calling
283
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
284
+ #
285
+ # ** Please note ** When response stubbing is enabled, no HTTP
286
+ # requests are made, and retries are disabled.
287
+ #
288
+ # @option options [Boolean] :validate_params (true)
289
+ # When `true`, request parameters are validated before
290
+ # sending the request.
291
+ #
292
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
293
+ # requests through. Formatted like 'http://proxy.com:123'.
294
+ #
295
+ # @option options [Float] :http_open_timeout (15) The number of
296
+ # seconds to wait when opening a HTTP session before raising a
297
+ # `Timeout::Error`.
298
+ #
299
+ # @option options [Integer] :http_read_timeout (60) The default
300
+ # number of seconds to wait for response data. This value can
301
+ # safely be set per-request on the session.
302
+ #
303
+ # @option options [Float] :http_idle_timeout (5) The number of
304
+ # seconds a connection is allowed to sit idle before it is
305
+ # considered stale. Stale connections are closed and removed
306
+ # from the pool before making a request.
307
+ #
308
+ # @option options [Float] :http_continue_timeout (1) The number of
309
+ # seconds to wait for a 100-continue response before sending the
310
+ # request body. This option has no effect unless the request has
311
+ # "Expect" header set to "100-continue". Defaults to `nil` which
312
+ # disables this behaviour. This value can safely be set per
313
+ # request on the session.
314
+ #
315
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
316
+ # HTTP debug output will be sent to the `:logger`.
317
+ #
318
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
319
+ # SSL peer certificates are verified when establishing a
320
+ # connection.
321
+ #
322
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
323
+ # certificate authority bundle file that should be used when
324
+ # verifying peer certificates. If you do not pass
325
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
326
+ # will be used if available.
327
+ #
328
+ # @option options [String] :ssl_ca_directory Full path of the
329
+ # directory that contains the unbundled SSL certificate
330
+ # authority files for verifying peer certificates. If you do
331
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
332
+ # system default will be used if available.
333
+ #
334
+ def initialize(*args)
335
+ super
336
+ end
337
+
338
+ # @!group API Operations
339
+
340
+ # Apply the service update to a list of clusters supplied. For more
341
+ # information on service updates and applying them, see [Applying the
342
+ # service updates][1].
343
+ #
344
+ #
345
+ #
346
+ # [1]: https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/managing-updates.html#applying-updates
347
+ #
348
+ # @option params [required, Array<String>] :cluster_names
349
+ # The cluster names to apply the updates.
350
+ #
351
+ # @option params [Types::ServiceUpdateRequest] :service_update
352
+ # The unique ID of the service update
353
+ #
354
+ # @return [Types::BatchUpdateClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
355
+ #
356
+ # * {Types::BatchUpdateClusterResponse#processed_clusters #processed_clusters} => Array&lt;Types::Cluster&gt;
357
+ # * {Types::BatchUpdateClusterResponse#unprocessed_clusters #unprocessed_clusters} => Array&lt;Types::UnprocessedCluster&gt;
358
+ #
359
+ # @example Request syntax with placeholder values
360
+ #
361
+ # resp = client.batch_update_cluster({
362
+ # cluster_names: ["String"], # required
363
+ # service_update: {
364
+ # service_update_name_to_apply: "String",
365
+ # },
366
+ # })
367
+ #
368
+ # @example Response structure
369
+ #
370
+ # resp.processed_clusters #=> Array
371
+ # resp.processed_clusters[0].name #=> String
372
+ # resp.processed_clusters[0].description #=> String
373
+ # resp.processed_clusters[0].status #=> String
374
+ # resp.processed_clusters[0].pending_updates.resharding.slot_migration.progress_percentage #=> Float
375
+ # resp.processed_clusters[0].pending_updates.acls.acl_to_apply #=> String
376
+ # resp.processed_clusters[0].pending_updates.service_updates #=> Array
377
+ # resp.processed_clusters[0].pending_updates.service_updates[0].service_update_name #=> String
378
+ # resp.processed_clusters[0].pending_updates.service_updates[0].status #=> String, one of "available", "in-progress", "complete", "scheduled"
379
+ # resp.processed_clusters[0].number_of_shards #=> Integer
380
+ # resp.processed_clusters[0].shards #=> Array
381
+ # resp.processed_clusters[0].shards[0].name #=> String
382
+ # resp.processed_clusters[0].shards[0].status #=> String
383
+ # resp.processed_clusters[0].shards[0].slots #=> String
384
+ # resp.processed_clusters[0].shards[0].nodes #=> Array
385
+ # resp.processed_clusters[0].shards[0].nodes[0].name #=> String
386
+ # resp.processed_clusters[0].shards[0].nodes[0].status #=> String
387
+ # resp.processed_clusters[0].shards[0].nodes[0].availability_zone #=> String
388
+ # resp.processed_clusters[0].shards[0].nodes[0].create_time #=> Time
389
+ # resp.processed_clusters[0].shards[0].nodes[0].endpoint.address #=> String
390
+ # resp.processed_clusters[0].shards[0].nodes[0].endpoint.port #=> Integer
391
+ # resp.processed_clusters[0].shards[0].number_of_nodes #=> Integer
392
+ # resp.processed_clusters[0].availability_mode #=> String, one of "singleaz", "multiaz"
393
+ # resp.processed_clusters[0].cluster_endpoint.address #=> String
394
+ # resp.processed_clusters[0].cluster_endpoint.port #=> Integer
395
+ # resp.processed_clusters[0].node_type #=> String
396
+ # resp.processed_clusters[0].engine_version #=> String
397
+ # resp.processed_clusters[0].engine_patch_version #=> String
398
+ # resp.processed_clusters[0].parameter_group_name #=> String
399
+ # resp.processed_clusters[0].parameter_group_status #=> String
400
+ # resp.processed_clusters[0].security_groups #=> Array
401
+ # resp.processed_clusters[0].security_groups[0].security_group_id #=> String
402
+ # resp.processed_clusters[0].security_groups[0].status #=> String
403
+ # resp.processed_clusters[0].subnet_group_name #=> String
404
+ # resp.processed_clusters[0].tls_enabled #=> Boolean
405
+ # resp.processed_clusters[0].kms_key_id #=> String
406
+ # resp.processed_clusters[0].arn #=> String
407
+ # resp.processed_clusters[0].sns_topic_arn #=> String
408
+ # resp.processed_clusters[0].sns_topic_status #=> String
409
+ # resp.processed_clusters[0].snapshot_retention_limit #=> Integer
410
+ # resp.processed_clusters[0].maintenance_window #=> String
411
+ # resp.processed_clusters[0].snapshot_window #=> String
412
+ # resp.processed_clusters[0].acl_name #=> String
413
+ # resp.processed_clusters[0].auto_minor_version_upgrade #=> Boolean
414
+ # resp.unprocessed_clusters #=> Array
415
+ # resp.unprocessed_clusters[0].cluster_name #=> String
416
+ # resp.unprocessed_clusters[0].error_type #=> String
417
+ # resp.unprocessed_clusters[0].error_message #=> String
418
+ #
419
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/BatchUpdateCluster AWS API Documentation
420
+ #
421
+ # @overload batch_update_cluster(params = {})
422
+ # @param [Hash] params ({})
423
+ def batch_update_cluster(params = {}, options = {})
424
+ req = build_request(:batch_update_cluster, params)
425
+ req.send_request(options)
426
+ end
427
+
428
+ # Makes a copy of an existing snapshot.
429
+ #
430
+ # @option params [required, String] :source_snapshot_name
431
+ # The name of an existing snapshot from which to make a copy.
432
+ #
433
+ # @option params [required, String] :target_snapshot_name
434
+ # A name for the snapshot copy. MemoryDB does not permit overwriting a
435
+ # snapshot, therefore this name must be unique within its context -
436
+ # MemoryDB or an Amazon S3 bucket if exporting.
437
+ #
438
+ # @option params [String] :target_bucket
439
+ # The Amazon S3 bucket to which the snapshot is exported. This parameter
440
+ # is used only when exporting a snapshot for external access. When using
441
+ # this parameter to export a snapshot, be sure MemoryDB has the needed
442
+ # permissions to this S3 bucket. For more information, see [Step 2:
443
+ # Grant MemoryDB Access to Your Amazon S3 Bucket][1].
444
+ #
445
+ #
446
+ #
447
+ # [1]: https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/snapshots-exporting.html
448
+ #
449
+ # @option params [String] :kms_key_id
450
+ # The ID of the KMS key used to encrypt the target snapshot.
451
+ #
452
+ # @option params [Array<Types::Tag>] :tags
453
+ # A list of tags to be added to this resource. A tag is a key-value
454
+ # pair. A tag key must be accompanied by a tag value, although null is
455
+ # accepted.
456
+ #
457
+ # @return [Types::CopySnapshotResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
458
+ #
459
+ # * {Types::CopySnapshotResponse#snapshot #snapshot} => Types::Snapshot
460
+ #
461
+ # @example Request syntax with placeholder values
462
+ #
463
+ # resp = client.copy_snapshot({
464
+ # source_snapshot_name: "String", # required
465
+ # target_snapshot_name: "String", # required
466
+ # target_bucket: "TargetBucket",
467
+ # kms_key_id: "KmsKeyId",
468
+ # tags: [
469
+ # {
470
+ # key: "String",
471
+ # value: "String",
472
+ # },
473
+ # ],
474
+ # })
475
+ #
476
+ # @example Response structure
477
+ #
478
+ # resp.snapshot.name #=> String
479
+ # resp.snapshot.status #=> String
480
+ # resp.snapshot.source #=> String
481
+ # resp.snapshot.kms_key_id #=> String
482
+ # resp.snapshot.arn #=> String
483
+ # resp.snapshot.cluster_configuration.name #=> String
484
+ # resp.snapshot.cluster_configuration.description #=> String
485
+ # resp.snapshot.cluster_configuration.node_type #=> String
486
+ # resp.snapshot.cluster_configuration.engine_version #=> String
487
+ # resp.snapshot.cluster_configuration.maintenance_window #=> String
488
+ # resp.snapshot.cluster_configuration.topic_arn #=> String
489
+ # resp.snapshot.cluster_configuration.port #=> Integer
490
+ # resp.snapshot.cluster_configuration.parameter_group_name #=> String
491
+ # resp.snapshot.cluster_configuration.subnet_group_name #=> String
492
+ # resp.snapshot.cluster_configuration.vpc_id #=> String
493
+ # resp.snapshot.cluster_configuration.snapshot_retention_limit #=> Integer
494
+ # resp.snapshot.cluster_configuration.snapshot_window #=> String
495
+ # resp.snapshot.cluster_configuration.num_shards #=> Integer
496
+ # resp.snapshot.cluster_configuration.shards #=> Array
497
+ # resp.snapshot.cluster_configuration.shards[0].name #=> String
498
+ # resp.snapshot.cluster_configuration.shards[0].configuration.slots #=> String
499
+ # resp.snapshot.cluster_configuration.shards[0].configuration.replica_count #=> Integer
500
+ # resp.snapshot.cluster_configuration.shards[0].size #=> String
501
+ # resp.snapshot.cluster_configuration.shards[0].snapshot_creation_time #=> Time
502
+ #
503
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CopySnapshot AWS API Documentation
504
+ #
505
+ # @overload copy_snapshot(params = {})
506
+ # @param [Hash] params ({})
507
+ def copy_snapshot(params = {}, options = {})
508
+ req = build_request(:copy_snapshot, params)
509
+ req.send_request(options)
510
+ end
511
+
512
+ # Creates an Access Control List. For more information, see
513
+ # [Authenticating users with Access Contol Lists (ACLs)][1].
514
+ #
515
+ #
516
+ #
517
+ # [1]: https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/Clusters.ACLs.html
518
+ #
519
+ # @option params [required, String] :acl_name
520
+ # The name of the Access Control List.
521
+ #
522
+ # @option params [Array<String>] :user_names
523
+ # The list of users that belong to the Access Control List.
524
+ #
525
+ # @option params [Array<Types::Tag>] :tags
526
+ # A list of tags to be added to this resource. A tag is a key-value
527
+ # pair. A tag key must be accompanied by a tag value, although null is
528
+ # accepted.
529
+ #
530
+ # @return [Types::CreateACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
531
+ #
532
+ # * {Types::CreateACLResponse#acl #acl} => Types::ACL
533
+ #
534
+ # @example Request syntax with placeholder values
535
+ #
536
+ # resp = client.create_acl({
537
+ # acl_name: "String", # required
538
+ # user_names: ["UserName"],
539
+ # tags: [
540
+ # {
541
+ # key: "String",
542
+ # value: "String",
543
+ # },
544
+ # ],
545
+ # })
546
+ #
547
+ # @example Response structure
548
+ #
549
+ # resp.acl.name #=> String
550
+ # resp.acl.status #=> String
551
+ # resp.acl.user_names #=> Array
552
+ # resp.acl.user_names[0] #=> String
553
+ # resp.acl.minimum_engine_version #=> String
554
+ # resp.acl.pending_changes.user_names_to_remove #=> Array
555
+ # resp.acl.pending_changes.user_names_to_remove[0] #=> String
556
+ # resp.acl.pending_changes.user_names_to_add #=> Array
557
+ # resp.acl.pending_changes.user_names_to_add[0] #=> String
558
+ # resp.acl.clusters #=> Array
559
+ # resp.acl.clusters[0] #=> String
560
+ # resp.acl.arn #=> String
561
+ #
562
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateACL AWS API Documentation
563
+ #
564
+ # @overload create_acl(params = {})
565
+ # @param [Hash] params ({})
566
+ def create_acl(params = {}, options = {})
567
+ req = build_request(:create_acl, params)
568
+ req.send_request(options)
569
+ end
570
+
571
+ # Creates a cluster. All nodes in the cluster run the same
572
+ # protocol-compliant engine software.
573
+ #
574
+ # @option params [required, String] :cluster_name
575
+ # The name of the cluster. This value must be unique as it also serves
576
+ # as the cluster identifier.
577
+ #
578
+ # @option params [required, String] :node_type
579
+ # The compute and memory capacity of the nodes in the cluster.
580
+ #
581
+ # @option params [String] :parameter_group_name
582
+ # The name of the parameter group associated with the cluster.
583
+ #
584
+ # @option params [String] :description
585
+ # An optional description of the cluster.
586
+ #
587
+ # @option params [Integer] :num_shards
588
+ # The number of shards the cluster will contain.
589
+ #
590
+ # Clusters can have up to 500 shards, with your data partitioned across
591
+ # the shards. For example, you can choose to configure a 500 node
592
+ # cluster that ranges between 83 shards (one primary and 5 replicas per
593
+ # shard) and 500 shards (single primary and no replicas). Make sure
594
+ # there are enough available IP addresses to accommodate the increase.
595
+ # Common pitfalls include the subnets in the subnet group have too small
596
+ # a CIDR range or the subnets are shared and heavily used by other
597
+ # clusters.
598
+ #
599
+ # @option params [Integer] :num_replicas_per_shard
600
+ # The number of replicas to apply to each shard. The limit is 5.
601
+ #
602
+ # @option params [String] :subnet_group_name
603
+ # The name of the subnet group to be used for the cluster.
604
+ #
605
+ # @option params [Array<String>] :security_group_ids
606
+ # A list of security group names to associate with this cluster.
607
+ #
608
+ # @option params [String] :maintenance_window
609
+ # Specifies the weekly time range during which maintenance on the
610
+ # cluster is performed. It is specified as a range in the format
611
+ # `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance
612
+ # window is a 60 minute period.
613
+ #
614
+ # @option params [Integer] :port
615
+ # The port number on which each of the nodes accepts connections.
616
+ #
617
+ # @option params [String] :sns_topic_arn
618
+ # The Amazon Resource Name (ARN) of the Amazon Simple Notification
619
+ # Service (SNS) topic to which notifications are sent.
620
+ #
621
+ # @option params [Boolean] :tls_enabled
622
+ # A flag to enable in-transit encryption on the cluster.
623
+ #
624
+ # @option params [String] :kms_key_id
625
+ # The ID of the KMS key used to encrypt the cluster.
626
+ #
627
+ # @option params [Array<String>] :snapshot_arns
628
+ # A list of Amazon Resource Names (ARN) that uniquely identify the RDB
629
+ # snapshot files stored in Amazon S3. The snapshot files are used to
630
+ # populate the new cluster. The Amazon S3 object name in the ARN cannot
631
+ # contain any commas.
632
+ #
633
+ # @option params [String] :snapshot_name
634
+ # The name of a snapshot from which to restore data into the new
635
+ # cluster. The snapshot status changes to restoring while the new
636
+ # cluster is being created.
637
+ #
638
+ # @option params [Integer] :snapshot_retention_limit
639
+ # The number of days for which MemoryDB retains automatic snapshots
640
+ # before deleting them. For example, if you set SnapshotRetentionLimit
641
+ # to 5, a snapshot that was taken today is retained for 5 days before
642
+ # being deleted.
643
+ #
644
+ # @option params [Array<Types::Tag>] :tags
645
+ # A list of tags to be added to this resource. Tags are comma-separated
646
+ # key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include
647
+ # multiple tags as shown following: Key=myKey, Value=myKeyValue
648
+ # Key=mySecondKey, Value=mySecondKeyValue.
649
+ #
650
+ # @option params [String] :snapshot_window
651
+ # The daily time range (in UTC) during which MemoryDB begins taking a
652
+ # daily snapshot of your shard.
653
+ #
654
+ # Example: 05:00-09:00
655
+ #
656
+ # If you do not specify this parameter, MemoryDB automatically chooses
657
+ # an appropriate time range.
658
+ #
659
+ # @option params [required, String] :acl_name
660
+ # The name of the Access Control List to associate with the cluster.
661
+ #
662
+ # @option params [String] :engine_version
663
+ # The version number of the Redis engine to be used for the cluster.
664
+ #
665
+ # @option params [Boolean] :auto_minor_version_upgrade
666
+ # When set to true, the cluster will automatically receive minor engine
667
+ # version upgrades after launch.
668
+ #
669
+ # @return [Types::CreateClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
670
+ #
671
+ # * {Types::CreateClusterResponse#cluster #cluster} => Types::Cluster
672
+ #
673
+ # @example Request syntax with placeholder values
674
+ #
675
+ # resp = client.create_cluster({
676
+ # cluster_name: "String", # required
677
+ # node_type: "String", # required
678
+ # parameter_group_name: "String",
679
+ # description: "String",
680
+ # num_shards: 1,
681
+ # num_replicas_per_shard: 1,
682
+ # subnet_group_name: "String",
683
+ # security_group_ids: ["String"],
684
+ # maintenance_window: "String",
685
+ # port: 1,
686
+ # sns_topic_arn: "String",
687
+ # tls_enabled: false,
688
+ # kms_key_id: "String",
689
+ # snapshot_arns: ["String"],
690
+ # snapshot_name: "String",
691
+ # snapshot_retention_limit: 1,
692
+ # tags: [
693
+ # {
694
+ # key: "String",
695
+ # value: "String",
696
+ # },
697
+ # ],
698
+ # snapshot_window: "String",
699
+ # acl_name: "ACLName", # required
700
+ # engine_version: "String",
701
+ # auto_minor_version_upgrade: false,
702
+ # })
703
+ #
704
+ # @example Response structure
705
+ #
706
+ # resp.cluster.name #=> String
707
+ # resp.cluster.description #=> String
708
+ # resp.cluster.status #=> String
709
+ # resp.cluster.pending_updates.resharding.slot_migration.progress_percentage #=> Float
710
+ # resp.cluster.pending_updates.acls.acl_to_apply #=> String
711
+ # resp.cluster.pending_updates.service_updates #=> Array
712
+ # resp.cluster.pending_updates.service_updates[0].service_update_name #=> String
713
+ # resp.cluster.pending_updates.service_updates[0].status #=> String, one of "available", "in-progress", "complete", "scheduled"
714
+ # resp.cluster.number_of_shards #=> Integer
715
+ # resp.cluster.shards #=> Array
716
+ # resp.cluster.shards[0].name #=> String
717
+ # resp.cluster.shards[0].status #=> String
718
+ # resp.cluster.shards[0].slots #=> String
719
+ # resp.cluster.shards[0].nodes #=> Array
720
+ # resp.cluster.shards[0].nodes[0].name #=> String
721
+ # resp.cluster.shards[0].nodes[0].status #=> String
722
+ # resp.cluster.shards[0].nodes[0].availability_zone #=> String
723
+ # resp.cluster.shards[0].nodes[0].create_time #=> Time
724
+ # resp.cluster.shards[0].nodes[0].endpoint.address #=> String
725
+ # resp.cluster.shards[0].nodes[0].endpoint.port #=> Integer
726
+ # resp.cluster.shards[0].number_of_nodes #=> Integer
727
+ # resp.cluster.availability_mode #=> String, one of "singleaz", "multiaz"
728
+ # resp.cluster.cluster_endpoint.address #=> String
729
+ # resp.cluster.cluster_endpoint.port #=> Integer
730
+ # resp.cluster.node_type #=> String
731
+ # resp.cluster.engine_version #=> String
732
+ # resp.cluster.engine_patch_version #=> String
733
+ # resp.cluster.parameter_group_name #=> String
734
+ # resp.cluster.parameter_group_status #=> String
735
+ # resp.cluster.security_groups #=> Array
736
+ # resp.cluster.security_groups[0].security_group_id #=> String
737
+ # resp.cluster.security_groups[0].status #=> String
738
+ # resp.cluster.subnet_group_name #=> String
739
+ # resp.cluster.tls_enabled #=> Boolean
740
+ # resp.cluster.kms_key_id #=> String
741
+ # resp.cluster.arn #=> String
742
+ # resp.cluster.sns_topic_arn #=> String
743
+ # resp.cluster.sns_topic_status #=> String
744
+ # resp.cluster.snapshot_retention_limit #=> Integer
745
+ # resp.cluster.maintenance_window #=> String
746
+ # resp.cluster.snapshot_window #=> String
747
+ # resp.cluster.acl_name #=> String
748
+ # resp.cluster.auto_minor_version_upgrade #=> Boolean
749
+ #
750
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateCluster AWS API Documentation
751
+ #
752
+ # @overload create_cluster(params = {})
753
+ # @param [Hash] params ({})
754
+ def create_cluster(params = {}, options = {})
755
+ req = build_request(:create_cluster, params)
756
+ req.send_request(options)
757
+ end
758
+
759
+ # Creates a new MemoryDB parameter group. A parameter group is a
760
+ # collection of parameters and their values that are applied to all of
761
+ # the nodes in any cluster. For more information, see [Configuring
762
+ # engine parameters using parameter groups][1].
763
+ #
764
+ #
765
+ #
766
+ # [1]: https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/ParameterGroups.html
767
+ #
768
+ # @option params [required, String] :parameter_group_name
769
+ # The name of the parameter group.
770
+ #
771
+ # @option params [required, String] :family
772
+ # The name of the parameter group family that the parameter group can be
773
+ # used with.
774
+ #
775
+ # @option params [String] :description
776
+ # An optional description of the parameter group.
777
+ #
778
+ # @option params [Array<Types::Tag>] :tags
779
+ # A list of tags to be added to this resource. A tag is a key-value
780
+ # pair. A tag key must be accompanied by a tag value, although null is
781
+ # accepted.
782
+ #
783
+ # @return [Types::CreateParameterGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
784
+ #
785
+ # * {Types::CreateParameterGroupResponse#parameter_group #parameter_group} => Types::ParameterGroup
786
+ #
787
+ # @example Request syntax with placeholder values
788
+ #
789
+ # resp = client.create_parameter_group({
790
+ # parameter_group_name: "String", # required
791
+ # family: "String", # required
792
+ # description: "String",
793
+ # tags: [
794
+ # {
795
+ # key: "String",
796
+ # value: "String",
797
+ # },
798
+ # ],
799
+ # })
800
+ #
801
+ # @example Response structure
802
+ #
803
+ # resp.parameter_group.name #=> String
804
+ # resp.parameter_group.family #=> String
805
+ # resp.parameter_group.description #=> String
806
+ # resp.parameter_group.arn #=> String
807
+ #
808
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateParameterGroup AWS API Documentation
809
+ #
810
+ # @overload create_parameter_group(params = {})
811
+ # @param [Hash] params ({})
812
+ def create_parameter_group(params = {}, options = {})
813
+ req = build_request(:create_parameter_group, params)
814
+ req.send_request(options)
815
+ end
816
+
817
+ # Creates a copy of an entire cluster at a specific moment in time.
818
+ #
819
+ # @option params [required, String] :cluster_name
820
+ # The snapshot is created from this cluster.
821
+ #
822
+ # @option params [required, String] :snapshot_name
823
+ # A name for the snapshot being created.
824
+ #
825
+ # @option params [String] :kms_key_id
826
+ # The ID of the KMS key used to encrypt the snapshot.
827
+ #
828
+ # @option params [Array<Types::Tag>] :tags
829
+ # A list of tags to be added to this resource. A tag is a key-value
830
+ # pair. A tag key must be accompanied by a tag value, although null is
831
+ # accepted.
832
+ #
833
+ # @return [Types::CreateSnapshotResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
834
+ #
835
+ # * {Types::CreateSnapshotResponse#snapshot #snapshot} => Types::Snapshot
836
+ #
837
+ # @example Request syntax with placeholder values
838
+ #
839
+ # resp = client.create_snapshot({
840
+ # cluster_name: "String", # required
841
+ # snapshot_name: "String", # required
842
+ # kms_key_id: "String",
843
+ # tags: [
844
+ # {
845
+ # key: "String",
846
+ # value: "String",
847
+ # },
848
+ # ],
849
+ # })
850
+ #
851
+ # @example Response structure
852
+ #
853
+ # resp.snapshot.name #=> String
854
+ # resp.snapshot.status #=> String
855
+ # resp.snapshot.source #=> String
856
+ # resp.snapshot.kms_key_id #=> String
857
+ # resp.snapshot.arn #=> String
858
+ # resp.snapshot.cluster_configuration.name #=> String
859
+ # resp.snapshot.cluster_configuration.description #=> String
860
+ # resp.snapshot.cluster_configuration.node_type #=> String
861
+ # resp.snapshot.cluster_configuration.engine_version #=> String
862
+ # resp.snapshot.cluster_configuration.maintenance_window #=> String
863
+ # resp.snapshot.cluster_configuration.topic_arn #=> String
864
+ # resp.snapshot.cluster_configuration.port #=> Integer
865
+ # resp.snapshot.cluster_configuration.parameter_group_name #=> String
866
+ # resp.snapshot.cluster_configuration.subnet_group_name #=> String
867
+ # resp.snapshot.cluster_configuration.vpc_id #=> String
868
+ # resp.snapshot.cluster_configuration.snapshot_retention_limit #=> Integer
869
+ # resp.snapshot.cluster_configuration.snapshot_window #=> String
870
+ # resp.snapshot.cluster_configuration.num_shards #=> Integer
871
+ # resp.snapshot.cluster_configuration.shards #=> Array
872
+ # resp.snapshot.cluster_configuration.shards[0].name #=> String
873
+ # resp.snapshot.cluster_configuration.shards[0].configuration.slots #=> String
874
+ # resp.snapshot.cluster_configuration.shards[0].configuration.replica_count #=> Integer
875
+ # resp.snapshot.cluster_configuration.shards[0].size #=> String
876
+ # resp.snapshot.cluster_configuration.shards[0].snapshot_creation_time #=> Time
877
+ #
878
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateSnapshot AWS API Documentation
879
+ #
880
+ # @overload create_snapshot(params = {})
881
+ # @param [Hash] params ({})
882
+ def create_snapshot(params = {}, options = {})
883
+ req = build_request(:create_snapshot, params)
884
+ req.send_request(options)
885
+ end
886
+
887
+ # Creates a subnet group. A subnet group is a collection of subnets
888
+ # (typically private) that you can designate for your clusters running
889
+ # in an Amazon Virtual Private Cloud (VPC) environment. When you create
890
+ # a cluster in an Amazon VPC, you must specify a subnet group. MemoryDB
891
+ # uses that subnet group to choose a subnet and IP addresses within that
892
+ # subnet to associate with your nodes. For more information, see
893
+ # [Subnets and subnet groups][1].
894
+ #
895
+ #
896
+ #
897
+ # [1]: https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/SubnetGroups.html
898
+ #
899
+ # @option params [required, String] :subnet_group_name
900
+ # The name of the subnet group.
901
+ #
902
+ # @option params [String] :description
903
+ # A description for the subnet group.
904
+ #
905
+ # @option params [required, Array<String>] :subnet_ids
906
+ # A list of VPC subnet IDs for the subnet group.
907
+ #
908
+ # @option params [Array<Types::Tag>] :tags
909
+ # A list of tags to be added to this resource. A tag is a key-value
910
+ # pair. A tag key must be accompanied by a tag value, although null is
911
+ # accepted.
912
+ #
913
+ # @return [Types::CreateSubnetGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
914
+ #
915
+ # * {Types::CreateSubnetGroupResponse#subnet_group #subnet_group} => Types::SubnetGroup
916
+ #
917
+ # @example Request syntax with placeholder values
918
+ #
919
+ # resp = client.create_subnet_group({
920
+ # subnet_group_name: "String", # required
921
+ # description: "String",
922
+ # subnet_ids: ["String"], # required
923
+ # tags: [
924
+ # {
925
+ # key: "String",
926
+ # value: "String",
927
+ # },
928
+ # ],
929
+ # })
930
+ #
931
+ # @example Response structure
932
+ #
933
+ # resp.subnet_group.name #=> String
934
+ # resp.subnet_group.description #=> String
935
+ # resp.subnet_group.vpc_id #=> String
936
+ # resp.subnet_group.subnets #=> Array
937
+ # resp.subnet_group.subnets[0].identifier #=> String
938
+ # resp.subnet_group.subnets[0].availability_zone.name #=> String
939
+ # resp.subnet_group.arn #=> String
940
+ #
941
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateSubnetGroup AWS API Documentation
942
+ #
943
+ # @overload create_subnet_group(params = {})
944
+ # @param [Hash] params ({})
945
+ def create_subnet_group(params = {}, options = {})
946
+ req = build_request(:create_subnet_group, params)
947
+ req.send_request(options)
948
+ end
949
+
950
+ # Creates a MemoryDB user. For more information, see [Authenticating
951
+ # users with Access Contol Lists (ACLs)][1].
952
+ #
953
+ #
954
+ #
955
+ # [1]: https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/Clusters.ACLs.html
956
+ #
957
+ # @option params [required, String] :user_name
958
+ # The name of the user. This value must be unique as it also serves as
959
+ # the user identifier.
960
+ #
961
+ # @option params [required, Types::AuthenticationMode] :authentication_mode
962
+ # Denotes the user's authentication properties, such as whether it
963
+ # requires a password to authenticate.
964
+ #
965
+ # @option params [required, String] :access_string
966
+ # Access permissions string used for this user.
967
+ #
968
+ # @option params [Array<Types::Tag>] :tags
969
+ # A list of tags to be added to this resource. A tag is a key-value
970
+ # pair. A tag key must be accompanied by a tag value, although null is
971
+ # accepted.
972
+ #
973
+ # @return [Types::CreateUserResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
974
+ #
975
+ # * {Types::CreateUserResponse#user #user} => Types::User
976
+ #
977
+ # @example Request syntax with placeholder values
978
+ #
979
+ # resp = client.create_user({
980
+ # user_name: "UserName", # required
981
+ # authentication_mode: { # required
982
+ # type: "password", # accepts password
983
+ # passwords: ["String"],
984
+ # },
985
+ # access_string: "AccessString", # required
986
+ # tags: [
987
+ # {
988
+ # key: "String",
989
+ # value: "String",
990
+ # },
991
+ # ],
992
+ # })
993
+ #
994
+ # @example Response structure
995
+ #
996
+ # resp.user.name #=> String
997
+ # resp.user.status #=> String
998
+ # resp.user.access_string #=> String
999
+ # resp.user.acl_names #=> Array
1000
+ # resp.user.acl_names[0] #=> String
1001
+ # resp.user.minimum_engine_version #=> String
1002
+ # resp.user.authentication.type #=> String, one of "password", "no-password"
1003
+ # resp.user.authentication.password_count #=> Integer
1004
+ # resp.user.arn #=> String
1005
+ #
1006
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateUser AWS API Documentation
1007
+ #
1008
+ # @overload create_user(params = {})
1009
+ # @param [Hash] params ({})
1010
+ def create_user(params = {}, options = {})
1011
+ req = build_request(:create_user, params)
1012
+ req.send_request(options)
1013
+ end
1014
+
1015
+ # Deletes an Access Control List. The ACL must first be disassociated
1016
+ # from the cluster before it can be deleted. For more information, see
1017
+ # [Authenticating users with Access Contol Lists (ACLs)][1].
1018
+ #
1019
+ #
1020
+ #
1021
+ # [1]: https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/Clusters.ACLs.html
1022
+ #
1023
+ # @option params [required, String] :acl_name
1024
+ # The name of the Access Control List to delete
1025
+ #
1026
+ # @return [Types::DeleteACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1027
+ #
1028
+ # * {Types::DeleteACLResponse#acl #acl} => Types::ACL
1029
+ #
1030
+ # @example Request syntax with placeholder values
1031
+ #
1032
+ # resp = client.delete_acl({
1033
+ # acl_name: "String", # required
1034
+ # })
1035
+ #
1036
+ # @example Response structure
1037
+ #
1038
+ # resp.acl.name #=> String
1039
+ # resp.acl.status #=> String
1040
+ # resp.acl.user_names #=> Array
1041
+ # resp.acl.user_names[0] #=> String
1042
+ # resp.acl.minimum_engine_version #=> String
1043
+ # resp.acl.pending_changes.user_names_to_remove #=> Array
1044
+ # resp.acl.pending_changes.user_names_to_remove[0] #=> String
1045
+ # resp.acl.pending_changes.user_names_to_add #=> Array
1046
+ # resp.acl.pending_changes.user_names_to_add[0] #=> String
1047
+ # resp.acl.clusters #=> Array
1048
+ # resp.acl.clusters[0] #=> String
1049
+ # resp.acl.arn #=> String
1050
+ #
1051
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteACL AWS API Documentation
1052
+ #
1053
+ # @overload delete_acl(params = {})
1054
+ # @param [Hash] params ({})
1055
+ def delete_acl(params = {}, options = {})
1056
+ req = build_request(:delete_acl, params)
1057
+ req.send_request(options)
1058
+ end
1059
+
1060
+ # Deletes a cluster. It also deletes all associated nodes and node
1061
+ # endpoints
1062
+ #
1063
+ # @option params [required, String] :cluster_name
1064
+ # The name of the cluster to be deleted
1065
+ #
1066
+ # @option params [String] :final_snapshot_name
1067
+ # The user-supplied name of a final cluster snapshot. This is the unique
1068
+ # name that identifies the snapshot. MemoryDB creates the snapshot, and
1069
+ # then deletes the cluster immediately afterward.
1070
+ #
1071
+ # @return [Types::DeleteClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1072
+ #
1073
+ # * {Types::DeleteClusterResponse#cluster #cluster} => Types::Cluster
1074
+ #
1075
+ # @example Request syntax with placeholder values
1076
+ #
1077
+ # resp = client.delete_cluster({
1078
+ # cluster_name: "String", # required
1079
+ # final_snapshot_name: "String",
1080
+ # })
1081
+ #
1082
+ # @example Response structure
1083
+ #
1084
+ # resp.cluster.name #=> String
1085
+ # resp.cluster.description #=> String
1086
+ # resp.cluster.status #=> String
1087
+ # resp.cluster.pending_updates.resharding.slot_migration.progress_percentage #=> Float
1088
+ # resp.cluster.pending_updates.acls.acl_to_apply #=> String
1089
+ # resp.cluster.pending_updates.service_updates #=> Array
1090
+ # resp.cluster.pending_updates.service_updates[0].service_update_name #=> String
1091
+ # resp.cluster.pending_updates.service_updates[0].status #=> String, one of "available", "in-progress", "complete", "scheduled"
1092
+ # resp.cluster.number_of_shards #=> Integer
1093
+ # resp.cluster.shards #=> Array
1094
+ # resp.cluster.shards[0].name #=> String
1095
+ # resp.cluster.shards[0].status #=> String
1096
+ # resp.cluster.shards[0].slots #=> String
1097
+ # resp.cluster.shards[0].nodes #=> Array
1098
+ # resp.cluster.shards[0].nodes[0].name #=> String
1099
+ # resp.cluster.shards[0].nodes[0].status #=> String
1100
+ # resp.cluster.shards[0].nodes[0].availability_zone #=> String
1101
+ # resp.cluster.shards[0].nodes[0].create_time #=> Time
1102
+ # resp.cluster.shards[0].nodes[0].endpoint.address #=> String
1103
+ # resp.cluster.shards[0].nodes[0].endpoint.port #=> Integer
1104
+ # resp.cluster.shards[0].number_of_nodes #=> Integer
1105
+ # resp.cluster.availability_mode #=> String, one of "singleaz", "multiaz"
1106
+ # resp.cluster.cluster_endpoint.address #=> String
1107
+ # resp.cluster.cluster_endpoint.port #=> Integer
1108
+ # resp.cluster.node_type #=> String
1109
+ # resp.cluster.engine_version #=> String
1110
+ # resp.cluster.engine_patch_version #=> String
1111
+ # resp.cluster.parameter_group_name #=> String
1112
+ # resp.cluster.parameter_group_status #=> String
1113
+ # resp.cluster.security_groups #=> Array
1114
+ # resp.cluster.security_groups[0].security_group_id #=> String
1115
+ # resp.cluster.security_groups[0].status #=> String
1116
+ # resp.cluster.subnet_group_name #=> String
1117
+ # resp.cluster.tls_enabled #=> Boolean
1118
+ # resp.cluster.kms_key_id #=> String
1119
+ # resp.cluster.arn #=> String
1120
+ # resp.cluster.sns_topic_arn #=> String
1121
+ # resp.cluster.sns_topic_status #=> String
1122
+ # resp.cluster.snapshot_retention_limit #=> Integer
1123
+ # resp.cluster.maintenance_window #=> String
1124
+ # resp.cluster.snapshot_window #=> String
1125
+ # resp.cluster.acl_name #=> String
1126
+ # resp.cluster.auto_minor_version_upgrade #=> Boolean
1127
+ #
1128
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteCluster AWS API Documentation
1129
+ #
1130
+ # @overload delete_cluster(params = {})
1131
+ # @param [Hash] params ({})
1132
+ def delete_cluster(params = {}, options = {})
1133
+ req = build_request(:delete_cluster, params)
1134
+ req.send_request(options)
1135
+ end
1136
+
1137
+ # Deletes the specified parameter group. You cannot delete a parameter
1138
+ # group if it is associated with any clusters. You cannot delete the
1139
+ # default parameter groups in your account.
1140
+ #
1141
+ # @option params [required, String] :parameter_group_name
1142
+ # The name of the parameter group to delete.
1143
+ #
1144
+ # @return [Types::DeleteParameterGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1145
+ #
1146
+ # * {Types::DeleteParameterGroupResponse#parameter_group #parameter_group} => Types::ParameterGroup
1147
+ #
1148
+ # @example Request syntax with placeholder values
1149
+ #
1150
+ # resp = client.delete_parameter_group({
1151
+ # parameter_group_name: "String", # required
1152
+ # })
1153
+ #
1154
+ # @example Response structure
1155
+ #
1156
+ # resp.parameter_group.name #=> String
1157
+ # resp.parameter_group.family #=> String
1158
+ # resp.parameter_group.description #=> String
1159
+ # resp.parameter_group.arn #=> String
1160
+ #
1161
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteParameterGroup AWS API Documentation
1162
+ #
1163
+ # @overload delete_parameter_group(params = {})
1164
+ # @param [Hash] params ({})
1165
+ def delete_parameter_group(params = {}, options = {})
1166
+ req = build_request(:delete_parameter_group, params)
1167
+ req.send_request(options)
1168
+ end
1169
+
1170
+ # Deletes an existing snapshot. When you receive a successful response
1171
+ # from this operation, MemoryDB immediately begins deleting the
1172
+ # snapshot; you cannot cancel or revert this operation.
1173
+ #
1174
+ # @option params [required, String] :snapshot_name
1175
+ # The name of the snapshot to delete
1176
+ #
1177
+ # @return [Types::DeleteSnapshotResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1178
+ #
1179
+ # * {Types::DeleteSnapshotResponse#snapshot #snapshot} => Types::Snapshot
1180
+ #
1181
+ # @example Request syntax with placeholder values
1182
+ #
1183
+ # resp = client.delete_snapshot({
1184
+ # snapshot_name: "String", # required
1185
+ # })
1186
+ #
1187
+ # @example Response structure
1188
+ #
1189
+ # resp.snapshot.name #=> String
1190
+ # resp.snapshot.status #=> String
1191
+ # resp.snapshot.source #=> String
1192
+ # resp.snapshot.kms_key_id #=> String
1193
+ # resp.snapshot.arn #=> String
1194
+ # resp.snapshot.cluster_configuration.name #=> String
1195
+ # resp.snapshot.cluster_configuration.description #=> String
1196
+ # resp.snapshot.cluster_configuration.node_type #=> String
1197
+ # resp.snapshot.cluster_configuration.engine_version #=> String
1198
+ # resp.snapshot.cluster_configuration.maintenance_window #=> String
1199
+ # resp.snapshot.cluster_configuration.topic_arn #=> String
1200
+ # resp.snapshot.cluster_configuration.port #=> Integer
1201
+ # resp.snapshot.cluster_configuration.parameter_group_name #=> String
1202
+ # resp.snapshot.cluster_configuration.subnet_group_name #=> String
1203
+ # resp.snapshot.cluster_configuration.vpc_id #=> String
1204
+ # resp.snapshot.cluster_configuration.snapshot_retention_limit #=> Integer
1205
+ # resp.snapshot.cluster_configuration.snapshot_window #=> String
1206
+ # resp.snapshot.cluster_configuration.num_shards #=> Integer
1207
+ # resp.snapshot.cluster_configuration.shards #=> Array
1208
+ # resp.snapshot.cluster_configuration.shards[0].name #=> String
1209
+ # resp.snapshot.cluster_configuration.shards[0].configuration.slots #=> String
1210
+ # resp.snapshot.cluster_configuration.shards[0].configuration.replica_count #=> Integer
1211
+ # resp.snapshot.cluster_configuration.shards[0].size #=> String
1212
+ # resp.snapshot.cluster_configuration.shards[0].snapshot_creation_time #=> Time
1213
+ #
1214
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteSnapshot AWS API Documentation
1215
+ #
1216
+ # @overload delete_snapshot(params = {})
1217
+ # @param [Hash] params ({})
1218
+ def delete_snapshot(params = {}, options = {})
1219
+ req = build_request(:delete_snapshot, params)
1220
+ req.send_request(options)
1221
+ end
1222
+
1223
+ # Deletes a subnet group. You cannot delete a default subnet group or
1224
+ # one that is associated with any clusters.
1225
+ #
1226
+ # @option params [required, String] :subnet_group_name
1227
+ # The name of the subnet group to delete
1228
+ #
1229
+ # @return [Types::DeleteSubnetGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1230
+ #
1231
+ # * {Types::DeleteSubnetGroupResponse#subnet_group #subnet_group} => Types::SubnetGroup
1232
+ #
1233
+ # @example Request syntax with placeholder values
1234
+ #
1235
+ # resp = client.delete_subnet_group({
1236
+ # subnet_group_name: "String", # required
1237
+ # })
1238
+ #
1239
+ # @example Response structure
1240
+ #
1241
+ # resp.subnet_group.name #=> String
1242
+ # resp.subnet_group.description #=> String
1243
+ # resp.subnet_group.vpc_id #=> String
1244
+ # resp.subnet_group.subnets #=> Array
1245
+ # resp.subnet_group.subnets[0].identifier #=> String
1246
+ # resp.subnet_group.subnets[0].availability_zone.name #=> String
1247
+ # resp.subnet_group.arn #=> String
1248
+ #
1249
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteSubnetGroup AWS API Documentation
1250
+ #
1251
+ # @overload delete_subnet_group(params = {})
1252
+ # @param [Hash] params ({})
1253
+ def delete_subnet_group(params = {}, options = {})
1254
+ req = build_request(:delete_subnet_group, params)
1255
+ req.send_request(options)
1256
+ end
1257
+
1258
+ # Deletes a user. The user will be removed from all ACLs and in turn
1259
+ # removed from all clusters.
1260
+ #
1261
+ # @option params [required, String] :user_name
1262
+ # The name of the user to delete
1263
+ #
1264
+ # @return [Types::DeleteUserResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1265
+ #
1266
+ # * {Types::DeleteUserResponse#user #user} => Types::User
1267
+ #
1268
+ # @example Request syntax with placeholder values
1269
+ #
1270
+ # resp = client.delete_user({
1271
+ # user_name: "UserName", # required
1272
+ # })
1273
+ #
1274
+ # @example Response structure
1275
+ #
1276
+ # resp.user.name #=> String
1277
+ # resp.user.status #=> String
1278
+ # resp.user.access_string #=> String
1279
+ # resp.user.acl_names #=> Array
1280
+ # resp.user.acl_names[0] #=> String
1281
+ # resp.user.minimum_engine_version #=> String
1282
+ # resp.user.authentication.type #=> String, one of "password", "no-password"
1283
+ # resp.user.authentication.password_count #=> Integer
1284
+ # resp.user.arn #=> String
1285
+ #
1286
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteUser AWS API Documentation
1287
+ #
1288
+ # @overload delete_user(params = {})
1289
+ # @param [Hash] params ({})
1290
+ def delete_user(params = {}, options = {})
1291
+ req = build_request(:delete_user, params)
1292
+ req.send_request(options)
1293
+ end
1294
+
1295
+ # Returns a list of ACLs
1296
+ #
1297
+ # @option params [String] :acl_name
1298
+ # The name of the ACL
1299
+ #
1300
+ # @option params [Integer] :max_results
1301
+ # The maximum number of records to include in the response. If more
1302
+ # records exist than the specified MaxResults value, a token is included
1303
+ # in the response so that the remaining results can be retrieved.
1304
+ #
1305
+ # @option params [String] :next_token
1306
+ # An optional argument to pass in case the total number of records
1307
+ # exceeds the value of MaxResults. If nextToken is returned, there are
1308
+ # more results available. The value of nextToken is a unique pagination
1309
+ # token for each page. Make the call again using the returned token to
1310
+ # retrieve the next page. Keep all other arguments unchanged.
1311
+ #
1312
+ # @return [Types::DescribeACLsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1313
+ #
1314
+ # * {Types::DescribeACLsResponse#acls #acls} => Array&lt;Types::ACL&gt;
1315
+ # * {Types::DescribeACLsResponse#next_token #next_token} => String
1316
+ #
1317
+ # @example Request syntax with placeholder values
1318
+ #
1319
+ # resp = client.describe_acls({
1320
+ # acl_name: "String",
1321
+ # max_results: 1,
1322
+ # next_token: "String",
1323
+ # })
1324
+ #
1325
+ # @example Response structure
1326
+ #
1327
+ # resp.acls #=> Array
1328
+ # resp.acls[0].name #=> String
1329
+ # resp.acls[0].status #=> String
1330
+ # resp.acls[0].user_names #=> Array
1331
+ # resp.acls[0].user_names[0] #=> String
1332
+ # resp.acls[0].minimum_engine_version #=> String
1333
+ # resp.acls[0].pending_changes.user_names_to_remove #=> Array
1334
+ # resp.acls[0].pending_changes.user_names_to_remove[0] #=> String
1335
+ # resp.acls[0].pending_changes.user_names_to_add #=> Array
1336
+ # resp.acls[0].pending_changes.user_names_to_add[0] #=> String
1337
+ # resp.acls[0].clusters #=> Array
1338
+ # resp.acls[0].clusters[0] #=> String
1339
+ # resp.acls[0].arn #=> String
1340
+ # resp.next_token #=> String
1341
+ #
1342
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeACLs AWS API Documentation
1343
+ #
1344
+ # @overload describe_acls(params = {})
1345
+ # @param [Hash] params ({})
1346
+ def describe_acls(params = {}, options = {})
1347
+ req = build_request(:describe_acls, params)
1348
+ req.send_request(options)
1349
+ end
1350
+
1351
+ # Returns information about all provisioned clusters if no cluster
1352
+ # identifier is specified, or about a specific cluster if a cluster name
1353
+ # is supplied.
1354
+ #
1355
+ # @option params [String] :cluster_name
1356
+ # The name of the cluster
1357
+ #
1358
+ # @option params [Integer] :max_results
1359
+ # The maximum number of records to include in the response. If more
1360
+ # records exist than the specified MaxResults value, a token is included
1361
+ # in the response so that the remaining results can be retrieved.
1362
+ #
1363
+ # @option params [String] :next_token
1364
+ # An optional argument to pass in case the total number of records
1365
+ # exceeds the value of MaxResults. If nextToken is returned, there are
1366
+ # more results available. The value of nextToken is a unique pagination
1367
+ # token for each page. Make the call again using the returned token to
1368
+ # retrieve the next page. Keep all other arguments unchanged.
1369
+ #
1370
+ # @option params [Boolean] :show_shard_details
1371
+ # An optional flag that can be included in the request to retrieve
1372
+ # information about the individual shard(s).
1373
+ #
1374
+ # @return [Types::DescribeClustersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1375
+ #
1376
+ # * {Types::DescribeClustersResponse#next_token #next_token} => String
1377
+ # * {Types::DescribeClustersResponse#clusters #clusters} => Array&lt;Types::Cluster&gt;
1378
+ #
1379
+ # @example Request syntax with placeholder values
1380
+ #
1381
+ # resp = client.describe_clusters({
1382
+ # cluster_name: "String",
1383
+ # max_results: 1,
1384
+ # next_token: "String",
1385
+ # show_shard_details: false,
1386
+ # })
1387
+ #
1388
+ # @example Response structure
1389
+ #
1390
+ # resp.next_token #=> String
1391
+ # resp.clusters #=> Array
1392
+ # resp.clusters[0].name #=> String
1393
+ # resp.clusters[0].description #=> String
1394
+ # resp.clusters[0].status #=> String
1395
+ # resp.clusters[0].pending_updates.resharding.slot_migration.progress_percentage #=> Float
1396
+ # resp.clusters[0].pending_updates.acls.acl_to_apply #=> String
1397
+ # resp.clusters[0].pending_updates.service_updates #=> Array
1398
+ # resp.clusters[0].pending_updates.service_updates[0].service_update_name #=> String
1399
+ # resp.clusters[0].pending_updates.service_updates[0].status #=> String, one of "available", "in-progress", "complete", "scheduled"
1400
+ # resp.clusters[0].number_of_shards #=> Integer
1401
+ # resp.clusters[0].shards #=> Array
1402
+ # resp.clusters[0].shards[0].name #=> String
1403
+ # resp.clusters[0].shards[0].status #=> String
1404
+ # resp.clusters[0].shards[0].slots #=> String
1405
+ # resp.clusters[0].shards[0].nodes #=> Array
1406
+ # resp.clusters[0].shards[0].nodes[0].name #=> String
1407
+ # resp.clusters[0].shards[0].nodes[0].status #=> String
1408
+ # resp.clusters[0].shards[0].nodes[0].availability_zone #=> String
1409
+ # resp.clusters[0].shards[0].nodes[0].create_time #=> Time
1410
+ # resp.clusters[0].shards[0].nodes[0].endpoint.address #=> String
1411
+ # resp.clusters[0].shards[0].nodes[0].endpoint.port #=> Integer
1412
+ # resp.clusters[0].shards[0].number_of_nodes #=> Integer
1413
+ # resp.clusters[0].availability_mode #=> String, one of "singleaz", "multiaz"
1414
+ # resp.clusters[0].cluster_endpoint.address #=> String
1415
+ # resp.clusters[0].cluster_endpoint.port #=> Integer
1416
+ # resp.clusters[0].node_type #=> String
1417
+ # resp.clusters[0].engine_version #=> String
1418
+ # resp.clusters[0].engine_patch_version #=> String
1419
+ # resp.clusters[0].parameter_group_name #=> String
1420
+ # resp.clusters[0].parameter_group_status #=> String
1421
+ # resp.clusters[0].security_groups #=> Array
1422
+ # resp.clusters[0].security_groups[0].security_group_id #=> String
1423
+ # resp.clusters[0].security_groups[0].status #=> String
1424
+ # resp.clusters[0].subnet_group_name #=> String
1425
+ # resp.clusters[0].tls_enabled #=> Boolean
1426
+ # resp.clusters[0].kms_key_id #=> String
1427
+ # resp.clusters[0].arn #=> String
1428
+ # resp.clusters[0].sns_topic_arn #=> String
1429
+ # resp.clusters[0].sns_topic_status #=> String
1430
+ # resp.clusters[0].snapshot_retention_limit #=> Integer
1431
+ # resp.clusters[0].maintenance_window #=> String
1432
+ # resp.clusters[0].snapshot_window #=> String
1433
+ # resp.clusters[0].acl_name #=> String
1434
+ # resp.clusters[0].auto_minor_version_upgrade #=> Boolean
1435
+ #
1436
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeClusters AWS API Documentation
1437
+ #
1438
+ # @overload describe_clusters(params = {})
1439
+ # @param [Hash] params ({})
1440
+ def describe_clusters(params = {}, options = {})
1441
+ req = build_request(:describe_clusters, params)
1442
+ req.send_request(options)
1443
+ end
1444
+
1445
+ # Returns a list of the available Redis engine versions.
1446
+ #
1447
+ # @option params [String] :engine_version
1448
+ # The Redis engine version
1449
+ #
1450
+ # @option params [String] :parameter_group_family
1451
+ # The name of a specific parameter group family to return details for.
1452
+ #
1453
+ # @option params [Integer] :max_results
1454
+ # The maximum number of records to include in the response. If more
1455
+ # records exist than the specified MaxResults value, a token is included
1456
+ # in the response so that the remaining results can be retrieved.
1457
+ #
1458
+ # @option params [String] :next_token
1459
+ # An optional argument to pass in case the total number of records
1460
+ # exceeds the value of MaxResults. If nextToken is returned, there are
1461
+ # more results available. The value of nextToken is a unique pagination
1462
+ # token for each page. Make the call again using the returned token to
1463
+ # retrieve the next page. Keep all other arguments unchanged.
1464
+ #
1465
+ # @option params [Boolean] :default_only
1466
+ # If true, specifies that only the default version of the specified
1467
+ # engine or engine and major version combination is to be returned.
1468
+ #
1469
+ # @return [Types::DescribeEngineVersionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1470
+ #
1471
+ # * {Types::DescribeEngineVersionsResponse#next_token #next_token} => String
1472
+ # * {Types::DescribeEngineVersionsResponse#engine_versions #engine_versions} => Array&lt;Types::EngineVersionInfo&gt;
1473
+ #
1474
+ # @example Request syntax with placeholder values
1475
+ #
1476
+ # resp = client.describe_engine_versions({
1477
+ # engine_version: "String",
1478
+ # parameter_group_family: "String",
1479
+ # max_results: 1,
1480
+ # next_token: "String",
1481
+ # default_only: false,
1482
+ # })
1483
+ #
1484
+ # @example Response structure
1485
+ #
1486
+ # resp.next_token #=> String
1487
+ # resp.engine_versions #=> Array
1488
+ # resp.engine_versions[0].engine_version #=> String
1489
+ # resp.engine_versions[0].engine_patch_version #=> String
1490
+ # resp.engine_versions[0].parameter_group_family #=> String
1491
+ #
1492
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeEngineVersions AWS API Documentation
1493
+ #
1494
+ # @overload describe_engine_versions(params = {})
1495
+ # @param [Hash] params ({})
1496
+ def describe_engine_versions(params = {}, options = {})
1497
+ req = build_request(:describe_engine_versions, params)
1498
+ req.send_request(options)
1499
+ end
1500
+
1501
+ # Returns events related to clusters, security groups, and parameter
1502
+ # groups. You can obtain events specific to a particular cluster,
1503
+ # security group, or parameter group by providing the name as a
1504
+ # parameter. By default, only the events occurring within the last hour
1505
+ # are returned; however, you can retrieve up to 14 days' worth of
1506
+ # events if necessary.
1507
+ #
1508
+ # @option params [String] :source_name
1509
+ # The identifier of the event source for which events are returned. If
1510
+ # not specified, all sources are included in the response.
1511
+ #
1512
+ # @option params [String] :source_type
1513
+ # The event source to retrieve events for. If no value is specified, all
1514
+ # events are returned.
1515
+ #
1516
+ # @option params [Time,DateTime,Date,Integer,String] :start_time
1517
+ # The beginning of the time interval to retrieve events for, specified
1518
+ # in ISO 8601 format. Example: 2017-03-30T07:03:49.555Z
1519
+ #
1520
+ # @option params [Time,DateTime,Date,Integer,String] :end_time
1521
+ # The end of the time interval for which to retrieve events, specified
1522
+ # in ISO 8601 format. Example: 2017-03-30T07:03:49.555Z
1523
+ #
1524
+ # @option params [Integer] :duration
1525
+ # The number of minutes worth of events to retrieve.
1526
+ #
1527
+ # @option params [Integer] :max_results
1528
+ # The maximum number of records to include in the response. If more
1529
+ # records exist than the specified MaxResults value, a token is included
1530
+ # in the response so that the remaining results can be retrieved.
1531
+ #
1532
+ # @option params [String] :next_token
1533
+ # An optional argument to pass in case the total number of records
1534
+ # exceeds the value of MaxResults. If nextToken is returned, there are
1535
+ # more results available. The value of nextToken is a unique pagination
1536
+ # token for each page. Make the call again using the returned token to
1537
+ # retrieve the next page. Keep all other arguments unchanged.
1538
+ #
1539
+ # @return [Types::DescribeEventsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1540
+ #
1541
+ # * {Types::DescribeEventsResponse#next_token #next_token} => String
1542
+ # * {Types::DescribeEventsResponse#events #events} => Array&lt;Types::Event&gt;
1543
+ #
1544
+ # @example Request syntax with placeholder values
1545
+ #
1546
+ # resp = client.describe_events({
1547
+ # source_name: "String",
1548
+ # source_type: "node", # accepts node, parameter-group, subnet-group, cluster, user, acl
1549
+ # start_time: Time.now,
1550
+ # end_time: Time.now,
1551
+ # duration: 1,
1552
+ # max_results: 1,
1553
+ # next_token: "String",
1554
+ # })
1555
+ #
1556
+ # @example Response structure
1557
+ #
1558
+ # resp.next_token #=> String
1559
+ # resp.events #=> Array
1560
+ # resp.events[0].source_name #=> String
1561
+ # resp.events[0].source_type #=> String, one of "node", "parameter-group", "subnet-group", "cluster", "user", "acl"
1562
+ # resp.events[0].message #=> String
1563
+ # resp.events[0].date #=> Time
1564
+ #
1565
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeEvents AWS API Documentation
1566
+ #
1567
+ # @overload describe_events(params = {})
1568
+ # @param [Hash] params ({})
1569
+ def describe_events(params = {}, options = {})
1570
+ req = build_request(:describe_events, params)
1571
+ req.send_request(options)
1572
+ end
1573
+
1574
+ # Returns a list of parameter group descriptions. If a parameter group
1575
+ # name is specified, the list contains only the descriptions for that
1576
+ # group.
1577
+ #
1578
+ # @option params [String] :parameter_group_name
1579
+ # The name of a specific parameter group to return details for.
1580
+ #
1581
+ # @option params [Integer] :max_results
1582
+ # The maximum number of records to include in the response. If more
1583
+ # records exist than the specified MaxResults value, a token is included
1584
+ # in the response so that the remaining results can be retrieved.
1585
+ #
1586
+ # @option params [String] :next_token
1587
+ # An optional argument to pass in case the total number of records
1588
+ # exceeds the value of MaxResults. If nextToken is returned, there are
1589
+ # more results available. The value of nextToken is a unique pagination
1590
+ # token for each page. Make the call again using the returned token to
1591
+ # retrieve the next page. Keep all other arguments unchanged.
1592
+ #
1593
+ # @return [Types::DescribeParameterGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1594
+ #
1595
+ # * {Types::DescribeParameterGroupsResponse#next_token #next_token} => String
1596
+ # * {Types::DescribeParameterGroupsResponse#parameter_groups #parameter_groups} => Array&lt;Types::ParameterGroup&gt;
1597
+ #
1598
+ # @example Request syntax with placeholder values
1599
+ #
1600
+ # resp = client.describe_parameter_groups({
1601
+ # parameter_group_name: "String",
1602
+ # max_results: 1,
1603
+ # next_token: "String",
1604
+ # })
1605
+ #
1606
+ # @example Response structure
1607
+ #
1608
+ # resp.next_token #=> String
1609
+ # resp.parameter_groups #=> Array
1610
+ # resp.parameter_groups[0].name #=> String
1611
+ # resp.parameter_groups[0].family #=> String
1612
+ # resp.parameter_groups[0].description #=> String
1613
+ # resp.parameter_groups[0].arn #=> String
1614
+ #
1615
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeParameterGroups AWS API Documentation
1616
+ #
1617
+ # @overload describe_parameter_groups(params = {})
1618
+ # @param [Hash] params ({})
1619
+ def describe_parameter_groups(params = {}, options = {})
1620
+ req = build_request(:describe_parameter_groups, params)
1621
+ req.send_request(options)
1622
+ end
1623
+
1624
+ # Returns the detailed parameter list for a particular parameter group.
1625
+ #
1626
+ # @option params [required, String] :parameter_group_name
1627
+ # he name of a specific parameter group to return details for.
1628
+ #
1629
+ # @option params [Integer] :max_results
1630
+ # The maximum number of records to include in the response. If more
1631
+ # records exist than the specified MaxResults value, a token is included
1632
+ # in the response so that the remaining results can be retrieved.
1633
+ #
1634
+ # @option params [String] :next_token
1635
+ # An optional argument to pass in case the total number of records
1636
+ # exceeds the value of MaxResults. If nextToken is returned, there are
1637
+ # more results available. The value of nextToken is a unique pagination
1638
+ # token for each page. Make the call again using the returned token to
1639
+ # retrieve the next page. Keep all other arguments unchanged.
1640
+ #
1641
+ # @return [Types::DescribeParametersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1642
+ #
1643
+ # * {Types::DescribeParametersResponse#next_token #next_token} => String
1644
+ # * {Types::DescribeParametersResponse#parameters #parameters} => Array&lt;Types::Parameter&gt;
1645
+ #
1646
+ # @example Request syntax with placeholder values
1647
+ #
1648
+ # resp = client.describe_parameters({
1649
+ # parameter_group_name: "String", # required
1650
+ # max_results: 1,
1651
+ # next_token: "String",
1652
+ # })
1653
+ #
1654
+ # @example Response structure
1655
+ #
1656
+ # resp.next_token #=> String
1657
+ # resp.parameters #=> Array
1658
+ # resp.parameters[0].name #=> String
1659
+ # resp.parameters[0].value #=> String
1660
+ # resp.parameters[0].description #=> String
1661
+ # resp.parameters[0].data_type #=> String
1662
+ # resp.parameters[0].allowed_values #=> String
1663
+ # resp.parameters[0].minimum_engine_version #=> String
1664
+ #
1665
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeParameters AWS API Documentation
1666
+ #
1667
+ # @overload describe_parameters(params = {})
1668
+ # @param [Hash] params ({})
1669
+ def describe_parameters(params = {}, options = {})
1670
+ req = build_request(:describe_parameters, params)
1671
+ req.send_request(options)
1672
+ end
1673
+
1674
+ # Returns details of the service updates
1675
+ #
1676
+ # @option params [String] :service_update_name
1677
+ # The unique ID of the service update to describe.
1678
+ #
1679
+ # @option params [Array<String>] :cluster_names
1680
+ # The list of cluster names to identify service updates to apply
1681
+ #
1682
+ # @option params [Array<String>] :status
1683
+ # The status(es) of the service updates to filter on
1684
+ #
1685
+ # @option params [Integer] :max_results
1686
+ # The maximum number of records to include in the response. If more
1687
+ # records exist than the specified MaxResults value, a token is included
1688
+ # in the response so that the remaining results can be retrieved.
1689
+ #
1690
+ # @option params [String] :next_token
1691
+ # An optional argument to pass in case the total number of records
1692
+ # exceeds the value of MaxResults. If nextToken is returned, there are
1693
+ # more results available. The value of nextToken is a unique pagination
1694
+ # token for each page. Make the call again using the returned token to
1695
+ # retrieve the next page. Keep all other arguments unchanged.
1696
+ #
1697
+ # @return [Types::DescribeServiceUpdatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1698
+ #
1699
+ # * {Types::DescribeServiceUpdatesResponse#next_token #next_token} => String
1700
+ # * {Types::DescribeServiceUpdatesResponse#service_updates #service_updates} => Array&lt;Types::ServiceUpdate&gt;
1701
+ #
1702
+ # @example Request syntax with placeholder values
1703
+ #
1704
+ # resp = client.describe_service_updates({
1705
+ # service_update_name: "String",
1706
+ # cluster_names: ["String"],
1707
+ # status: ["available"], # accepts available, in-progress, complete, scheduled
1708
+ # max_results: 1,
1709
+ # next_token: "String",
1710
+ # })
1711
+ #
1712
+ # @example Response structure
1713
+ #
1714
+ # resp.next_token #=> String
1715
+ # resp.service_updates #=> Array
1716
+ # resp.service_updates[0].cluster_name #=> String
1717
+ # resp.service_updates[0].service_update_name #=> String
1718
+ # resp.service_updates[0].release_date #=> Time
1719
+ # resp.service_updates[0].description #=> String
1720
+ # resp.service_updates[0].status #=> String, one of "available", "in-progress", "complete", "scheduled"
1721
+ # resp.service_updates[0].type #=> String, one of "security-update"
1722
+ # resp.service_updates[0].nodes_updated #=> String
1723
+ # resp.service_updates[0].auto_update_start_date #=> Time
1724
+ #
1725
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeServiceUpdates AWS API Documentation
1726
+ #
1727
+ # @overload describe_service_updates(params = {})
1728
+ # @param [Hash] params ({})
1729
+ def describe_service_updates(params = {}, options = {})
1730
+ req = build_request(:describe_service_updates, params)
1731
+ req.send_request(options)
1732
+ end
1733
+
1734
+ # Returns information about cluster snapshots. By default,
1735
+ # DescribeSnapshots lists all of your snapshots; it can optionally
1736
+ # describe a single snapshot, or just the snapshots associated with a
1737
+ # particular cluster.
1738
+ #
1739
+ # @option params [String] :cluster_name
1740
+ # A user-supplied cluster identifier. If this parameter is specified,
1741
+ # only snapshots associated with that specific cluster are described.
1742
+ #
1743
+ # @option params [String] :snapshot_name
1744
+ # A user-supplied name of the snapshot. If this parameter is specified,
1745
+ # only this named snapshot is described.
1746
+ #
1747
+ # @option params [String] :source
1748
+ # If set to system, the output shows snapshots that were automatically
1749
+ # created by MemoryDB. If set to user the output shows snapshots that
1750
+ # were manually created. If omitted, the output shows both automatically
1751
+ # and manually created snapshots.
1752
+ #
1753
+ # @option params [String] :next_token
1754
+ # An optional argument to pass in case the total number of records
1755
+ # exceeds the value of MaxResults. If nextToken is returned, there are
1756
+ # more results available. The value of nextToken is a unique pagination
1757
+ # token for each page. Make the call again using the returned token to
1758
+ # retrieve the next page. Keep all other arguments unchanged.
1759
+ #
1760
+ # @option params [Integer] :max_results
1761
+ # The maximum number of records to include in the response. If more
1762
+ # records exist than the specified MaxResults value, a token is included
1763
+ # in the response so that the remaining results can be retrieved.
1764
+ #
1765
+ # @option params [Boolean] :show_detail
1766
+ # A Boolean value which if true, the shard configuration is included in
1767
+ # the snapshot description.
1768
+ #
1769
+ # @return [Types::DescribeSnapshotsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1770
+ #
1771
+ # * {Types::DescribeSnapshotsResponse#next_token #next_token} => String
1772
+ # * {Types::DescribeSnapshotsResponse#snapshots #snapshots} => Array&lt;Types::Snapshot&gt;
1773
+ #
1774
+ # @example Request syntax with placeholder values
1775
+ #
1776
+ # resp = client.describe_snapshots({
1777
+ # cluster_name: "String",
1778
+ # snapshot_name: "String",
1779
+ # source: "String",
1780
+ # next_token: "String",
1781
+ # max_results: 1,
1782
+ # show_detail: false,
1783
+ # })
1784
+ #
1785
+ # @example Response structure
1786
+ #
1787
+ # resp.next_token #=> String
1788
+ # resp.snapshots #=> Array
1789
+ # resp.snapshots[0].name #=> String
1790
+ # resp.snapshots[0].status #=> String
1791
+ # resp.snapshots[0].source #=> String
1792
+ # resp.snapshots[0].kms_key_id #=> String
1793
+ # resp.snapshots[0].arn #=> String
1794
+ # resp.snapshots[0].cluster_configuration.name #=> String
1795
+ # resp.snapshots[0].cluster_configuration.description #=> String
1796
+ # resp.snapshots[0].cluster_configuration.node_type #=> String
1797
+ # resp.snapshots[0].cluster_configuration.engine_version #=> String
1798
+ # resp.snapshots[0].cluster_configuration.maintenance_window #=> String
1799
+ # resp.snapshots[0].cluster_configuration.topic_arn #=> String
1800
+ # resp.snapshots[0].cluster_configuration.port #=> Integer
1801
+ # resp.snapshots[0].cluster_configuration.parameter_group_name #=> String
1802
+ # resp.snapshots[0].cluster_configuration.subnet_group_name #=> String
1803
+ # resp.snapshots[0].cluster_configuration.vpc_id #=> String
1804
+ # resp.snapshots[0].cluster_configuration.snapshot_retention_limit #=> Integer
1805
+ # resp.snapshots[0].cluster_configuration.snapshot_window #=> String
1806
+ # resp.snapshots[0].cluster_configuration.num_shards #=> Integer
1807
+ # resp.snapshots[0].cluster_configuration.shards #=> Array
1808
+ # resp.snapshots[0].cluster_configuration.shards[0].name #=> String
1809
+ # resp.snapshots[0].cluster_configuration.shards[0].configuration.slots #=> String
1810
+ # resp.snapshots[0].cluster_configuration.shards[0].configuration.replica_count #=> Integer
1811
+ # resp.snapshots[0].cluster_configuration.shards[0].size #=> String
1812
+ # resp.snapshots[0].cluster_configuration.shards[0].snapshot_creation_time #=> Time
1813
+ #
1814
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeSnapshots AWS API Documentation
1815
+ #
1816
+ # @overload describe_snapshots(params = {})
1817
+ # @param [Hash] params ({})
1818
+ def describe_snapshots(params = {}, options = {})
1819
+ req = build_request(:describe_snapshots, params)
1820
+ req.send_request(options)
1821
+ end
1822
+
1823
+ # Returns a list of subnet group descriptions. If a subnet group name is
1824
+ # specified, the list contains only the description of that group.
1825
+ #
1826
+ # @option params [String] :subnet_group_name
1827
+ # The name of the subnet group to return details for.
1828
+ #
1829
+ # @option params [Integer] :max_results
1830
+ # The maximum number of records to include in the response. If more
1831
+ # records exist than the specified MaxResults value, a token is included
1832
+ # in the response so that the remaining results can be retrieved.
1833
+ #
1834
+ # @option params [String] :next_token
1835
+ # An optional argument to pass in case the total number of records
1836
+ # exceeds the value of MaxResults. If nextToken is returned, there are
1837
+ # more results available. The value of nextToken is a unique pagination
1838
+ # token for each page. Make the call again using the returned token to
1839
+ # retrieve the next page. Keep all other arguments unchanged.
1840
+ #
1841
+ # @return [Types::DescribeSubnetGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1842
+ #
1843
+ # * {Types::DescribeSubnetGroupsResponse#next_token #next_token} => String
1844
+ # * {Types::DescribeSubnetGroupsResponse#subnet_groups #subnet_groups} => Array&lt;Types::SubnetGroup&gt;
1845
+ #
1846
+ # @example Request syntax with placeholder values
1847
+ #
1848
+ # resp = client.describe_subnet_groups({
1849
+ # subnet_group_name: "String",
1850
+ # max_results: 1,
1851
+ # next_token: "String",
1852
+ # })
1853
+ #
1854
+ # @example Response structure
1855
+ #
1856
+ # resp.next_token #=> String
1857
+ # resp.subnet_groups #=> Array
1858
+ # resp.subnet_groups[0].name #=> String
1859
+ # resp.subnet_groups[0].description #=> String
1860
+ # resp.subnet_groups[0].vpc_id #=> String
1861
+ # resp.subnet_groups[0].subnets #=> Array
1862
+ # resp.subnet_groups[0].subnets[0].identifier #=> String
1863
+ # resp.subnet_groups[0].subnets[0].availability_zone.name #=> String
1864
+ # resp.subnet_groups[0].arn #=> String
1865
+ #
1866
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeSubnetGroups AWS API Documentation
1867
+ #
1868
+ # @overload describe_subnet_groups(params = {})
1869
+ # @param [Hash] params ({})
1870
+ def describe_subnet_groups(params = {}, options = {})
1871
+ req = build_request(:describe_subnet_groups, params)
1872
+ req.send_request(options)
1873
+ end
1874
+
1875
+ # Returns a list of users.
1876
+ #
1877
+ # @option params [String] :user_name
1878
+ # The name of the user
1879
+ #
1880
+ # @option params [Array<Types::Filter>] :filters
1881
+ # Filter to determine the list of users to return.
1882
+ #
1883
+ # @option params [Integer] :max_results
1884
+ # The maximum number of records to include in the response. If more
1885
+ # records exist than the specified MaxResults value, a token is included
1886
+ # in the response so that the remaining results can be retrieved.
1887
+ #
1888
+ # @option params [String] :next_token
1889
+ # An optional argument to pass in case the total number of records
1890
+ # exceeds the value of MaxResults. If nextToken is returned, there are
1891
+ # more results available. The value of nextToken is a unique pagination
1892
+ # token for each page. Make the call again using the returned token to
1893
+ # retrieve the next page. Keep all other arguments unchanged.
1894
+ #
1895
+ # @return [Types::DescribeUsersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1896
+ #
1897
+ # * {Types::DescribeUsersResponse#users #users} => Array&lt;Types::User&gt;
1898
+ # * {Types::DescribeUsersResponse#next_token #next_token} => String
1899
+ #
1900
+ # @example Request syntax with placeholder values
1901
+ #
1902
+ # resp = client.describe_users({
1903
+ # user_name: "UserName",
1904
+ # filters: [
1905
+ # {
1906
+ # name: "FilterName", # required
1907
+ # values: ["FilterValue"], # required
1908
+ # },
1909
+ # ],
1910
+ # max_results: 1,
1911
+ # next_token: "String",
1912
+ # })
1913
+ #
1914
+ # @example Response structure
1915
+ #
1916
+ # resp.users #=> Array
1917
+ # resp.users[0].name #=> String
1918
+ # resp.users[0].status #=> String
1919
+ # resp.users[0].access_string #=> String
1920
+ # resp.users[0].acl_names #=> Array
1921
+ # resp.users[0].acl_names[0] #=> String
1922
+ # resp.users[0].minimum_engine_version #=> String
1923
+ # resp.users[0].authentication.type #=> String, one of "password", "no-password"
1924
+ # resp.users[0].authentication.password_count #=> Integer
1925
+ # resp.users[0].arn #=> String
1926
+ # resp.next_token #=> String
1927
+ #
1928
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeUsers AWS API Documentation
1929
+ #
1930
+ # @overload describe_users(params = {})
1931
+ # @param [Hash] params ({})
1932
+ def describe_users(params = {}, options = {})
1933
+ req = build_request(:describe_users, params)
1934
+ req.send_request(options)
1935
+ end
1936
+
1937
+ # Used to failover a shard
1938
+ #
1939
+ # @option params [required, String] :cluster_name
1940
+ # The cluster being failed over
1941
+ #
1942
+ # @option params [required, String] :shard_name
1943
+ # The name of the shard
1944
+ #
1945
+ # @return [Types::FailoverShardResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1946
+ #
1947
+ # * {Types::FailoverShardResponse#cluster #cluster} => Types::Cluster
1948
+ #
1949
+ # @example Request syntax with placeholder values
1950
+ #
1951
+ # resp = client.failover_shard({
1952
+ # cluster_name: "String", # required
1953
+ # shard_name: "String", # required
1954
+ # })
1955
+ #
1956
+ # @example Response structure
1957
+ #
1958
+ # resp.cluster.name #=> String
1959
+ # resp.cluster.description #=> String
1960
+ # resp.cluster.status #=> String
1961
+ # resp.cluster.pending_updates.resharding.slot_migration.progress_percentage #=> Float
1962
+ # resp.cluster.pending_updates.acls.acl_to_apply #=> String
1963
+ # resp.cluster.pending_updates.service_updates #=> Array
1964
+ # resp.cluster.pending_updates.service_updates[0].service_update_name #=> String
1965
+ # resp.cluster.pending_updates.service_updates[0].status #=> String, one of "available", "in-progress", "complete", "scheduled"
1966
+ # resp.cluster.number_of_shards #=> Integer
1967
+ # resp.cluster.shards #=> Array
1968
+ # resp.cluster.shards[0].name #=> String
1969
+ # resp.cluster.shards[0].status #=> String
1970
+ # resp.cluster.shards[0].slots #=> String
1971
+ # resp.cluster.shards[0].nodes #=> Array
1972
+ # resp.cluster.shards[0].nodes[0].name #=> String
1973
+ # resp.cluster.shards[0].nodes[0].status #=> String
1974
+ # resp.cluster.shards[0].nodes[0].availability_zone #=> String
1975
+ # resp.cluster.shards[0].nodes[0].create_time #=> Time
1976
+ # resp.cluster.shards[0].nodes[0].endpoint.address #=> String
1977
+ # resp.cluster.shards[0].nodes[0].endpoint.port #=> Integer
1978
+ # resp.cluster.shards[0].number_of_nodes #=> Integer
1979
+ # resp.cluster.availability_mode #=> String, one of "singleaz", "multiaz"
1980
+ # resp.cluster.cluster_endpoint.address #=> String
1981
+ # resp.cluster.cluster_endpoint.port #=> Integer
1982
+ # resp.cluster.node_type #=> String
1983
+ # resp.cluster.engine_version #=> String
1984
+ # resp.cluster.engine_patch_version #=> String
1985
+ # resp.cluster.parameter_group_name #=> String
1986
+ # resp.cluster.parameter_group_status #=> String
1987
+ # resp.cluster.security_groups #=> Array
1988
+ # resp.cluster.security_groups[0].security_group_id #=> String
1989
+ # resp.cluster.security_groups[0].status #=> String
1990
+ # resp.cluster.subnet_group_name #=> String
1991
+ # resp.cluster.tls_enabled #=> Boolean
1992
+ # resp.cluster.kms_key_id #=> String
1993
+ # resp.cluster.arn #=> String
1994
+ # resp.cluster.sns_topic_arn #=> String
1995
+ # resp.cluster.sns_topic_status #=> String
1996
+ # resp.cluster.snapshot_retention_limit #=> Integer
1997
+ # resp.cluster.maintenance_window #=> String
1998
+ # resp.cluster.snapshot_window #=> String
1999
+ # resp.cluster.acl_name #=> String
2000
+ # resp.cluster.auto_minor_version_upgrade #=> Boolean
2001
+ #
2002
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/FailoverShard AWS API Documentation
2003
+ #
2004
+ # @overload failover_shard(params = {})
2005
+ # @param [Hash] params ({})
2006
+ def failover_shard(params = {}, options = {})
2007
+ req = build_request(:failover_shard, params)
2008
+ req.send_request(options)
2009
+ end
2010
+
2011
+ # Lists all available node types that you can scale to from your
2012
+ # cluster's current node type. When you use the UpdateCluster operation
2013
+ # to scale your cluster, the value of the NodeType parameter must be one
2014
+ # of the node types returned by this operation.
2015
+ #
2016
+ # @option params [required, String] :cluster_name
2017
+ # The name of the cluster you want to scale. MemoryDB uses the cluster
2018
+ # name to identify the current node type being used by this cluster, and
2019
+ # from that to create a list of node types you can scale up to.
2020
+ #
2021
+ # @return [Types::ListAllowedNodeTypeUpdatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2022
+ #
2023
+ # * {Types::ListAllowedNodeTypeUpdatesResponse#scale_up_node_types #scale_up_node_types} => Array&lt;String&gt;
2024
+ # * {Types::ListAllowedNodeTypeUpdatesResponse#scale_down_node_types #scale_down_node_types} => Array&lt;String&gt;
2025
+ #
2026
+ # @example Request syntax with placeholder values
2027
+ #
2028
+ # resp = client.list_allowed_node_type_updates({
2029
+ # cluster_name: "String", # required
2030
+ # })
2031
+ #
2032
+ # @example Response structure
2033
+ #
2034
+ # resp.scale_up_node_types #=> Array
2035
+ # resp.scale_up_node_types[0] #=> String
2036
+ # resp.scale_down_node_types #=> Array
2037
+ # resp.scale_down_node_types[0] #=> String
2038
+ #
2039
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/ListAllowedNodeTypeUpdates AWS API Documentation
2040
+ #
2041
+ # @overload list_allowed_node_type_updates(params = {})
2042
+ # @param [Hash] params ({})
2043
+ def list_allowed_node_type_updates(params = {}, options = {})
2044
+ req = build_request(:list_allowed_node_type_updates, params)
2045
+ req.send_request(options)
2046
+ end
2047
+
2048
+ # Lists all tags currently on a named resource. A tag is a key-value
2049
+ # pair where the key and value are case-sensitive. You can use tags to
2050
+ # categorize and track your MemoryDB resources. For more information,
2051
+ # see [Tagging your MemoryDB resources][1]
2052
+ #
2053
+ #
2054
+ #
2055
+ # [1]: https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/Tagging-Resources.html
2056
+ #
2057
+ # @option params [required, String] :resource_arn
2058
+ # The Amazon Resource Name (ARN) of the resource for which you want the
2059
+ # list of tags
2060
+ #
2061
+ # @return [Types::ListTagsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2062
+ #
2063
+ # * {Types::ListTagsResponse#tag_list #tag_list} => Array&lt;Types::Tag&gt;
2064
+ #
2065
+ # @example Request syntax with placeholder values
2066
+ #
2067
+ # resp = client.list_tags({
2068
+ # resource_arn: "String", # required
2069
+ # })
2070
+ #
2071
+ # @example Response structure
2072
+ #
2073
+ # resp.tag_list #=> Array
2074
+ # resp.tag_list[0].key #=> String
2075
+ # resp.tag_list[0].value #=> String
2076
+ #
2077
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/ListTags AWS API Documentation
2078
+ #
2079
+ # @overload list_tags(params = {})
2080
+ # @param [Hash] params ({})
2081
+ def list_tags(params = {}, options = {})
2082
+ req = build_request(:list_tags, params)
2083
+ req.send_request(options)
2084
+ end
2085
+
2086
+ # Modifies the parameters of a parameter group to the engine or system
2087
+ # default value. You can reset specific parameters by submitting a list
2088
+ # of parameter names. To reset the entire parameter group, specify the
2089
+ # AllParameters and ParameterGroupName parameters.
2090
+ #
2091
+ # @option params [required, String] :parameter_group_name
2092
+ # The name of the parameter group to reset.
2093
+ #
2094
+ # @option params [Boolean] :all_parameters
2095
+ # If true, all parameters in the parameter group are reset to their
2096
+ # default values. If false, only the parameters listed by ParameterNames
2097
+ # are reset to their default values.
2098
+ #
2099
+ # @option params [Array<String>] :parameter_names
2100
+ # An array of parameter names to reset to their default values. If
2101
+ # AllParameters is true, do not use ParameterNames. If AllParameters is
2102
+ # false, you must specify the name of at least one parameter to reset.
2103
+ #
2104
+ # @return [Types::ResetParameterGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2105
+ #
2106
+ # * {Types::ResetParameterGroupResponse#parameter_group #parameter_group} => Types::ParameterGroup
2107
+ #
2108
+ # @example Request syntax with placeholder values
2109
+ #
2110
+ # resp = client.reset_parameter_group({
2111
+ # parameter_group_name: "String", # required
2112
+ # all_parameters: false,
2113
+ # parameter_names: ["String"],
2114
+ # })
2115
+ #
2116
+ # @example Response structure
2117
+ #
2118
+ # resp.parameter_group.name #=> String
2119
+ # resp.parameter_group.family #=> String
2120
+ # resp.parameter_group.description #=> String
2121
+ # resp.parameter_group.arn #=> String
2122
+ #
2123
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/ResetParameterGroup AWS API Documentation
2124
+ #
2125
+ # @overload reset_parameter_group(params = {})
2126
+ # @param [Hash] params ({})
2127
+ def reset_parameter_group(params = {}, options = {})
2128
+ req = build_request(:reset_parameter_group, params)
2129
+ req.send_request(options)
2130
+ end
2131
+
2132
+ # A tag is a key-value pair where the key and value are case-sensitive.
2133
+ # You can use tags to categorize and track all your MemoryDB resources.
2134
+ # When you add or remove tags on clusters, those actions will be
2135
+ # replicated to all nodes in the cluster. For more information, see
2136
+ # [Resource-level permissions][1].
2137
+ #
2138
+ # For example, you can use cost-allocation tags to your MemoryDB
2139
+ # resources, Amazon generates a cost allocation report as a
2140
+ # comma-separated value (CSV) file with your usage and costs aggregated
2141
+ # by your tags. You can apply tags that represent business categories
2142
+ # (such as cost centers, application names, or owners) to organize your
2143
+ # costs across multiple services. For more information, see [Using Cost
2144
+ # Allocation Tags][2].
2145
+ #
2146
+ #
2147
+ #
2148
+ # [1]: https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/IAM.ResourceLevelPermissions.html
2149
+ # [2]: https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/Tagging.html
2150
+ #
2151
+ # @option params [required, String] :resource_arn
2152
+ # The Amazon Resource Name (ARN) of the resource to which the tags are
2153
+ # to be added
2154
+ #
2155
+ # @option params [required, Array<Types::Tag>] :tags
2156
+ # A list of tags to be added to this resource. A tag is a key-value
2157
+ # pair. A tag key must be accompanied by a tag value, although null is
2158
+ # accepted.
2159
+ #
2160
+ # @return [Types::TagResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2161
+ #
2162
+ # * {Types::TagResourceResponse#tag_list #tag_list} => Array&lt;Types::Tag&gt;
2163
+ #
2164
+ # @example Request syntax with placeholder values
2165
+ #
2166
+ # resp = client.tag_resource({
2167
+ # resource_arn: "String", # required
2168
+ # tags: [ # required
2169
+ # {
2170
+ # key: "String",
2171
+ # value: "String",
2172
+ # },
2173
+ # ],
2174
+ # })
2175
+ #
2176
+ # @example Response structure
2177
+ #
2178
+ # resp.tag_list #=> Array
2179
+ # resp.tag_list[0].key #=> String
2180
+ # resp.tag_list[0].value #=> String
2181
+ #
2182
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/TagResource AWS API Documentation
2183
+ #
2184
+ # @overload tag_resource(params = {})
2185
+ # @param [Hash] params ({})
2186
+ def tag_resource(params = {}, options = {})
2187
+ req = build_request(:tag_resource, params)
2188
+ req.send_request(options)
2189
+ end
2190
+
2191
+ # Use this operation to remove tags on a resource
2192
+ #
2193
+ # @option params [required, String] :resource_arn
2194
+ # The Amazon Resource Name (ARN) of the resource to which the tags are
2195
+ # to be removed
2196
+ #
2197
+ # @option params [required, Array<String>] :tag_keys
2198
+ # The list of keys of the tags that are to be removed
2199
+ #
2200
+ # @return [Types::UntagResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2201
+ #
2202
+ # * {Types::UntagResourceResponse#tag_list #tag_list} => Array&lt;Types::Tag&gt;
2203
+ #
2204
+ # @example Request syntax with placeholder values
2205
+ #
2206
+ # resp = client.untag_resource({
2207
+ # resource_arn: "String", # required
2208
+ # tag_keys: ["String"], # required
2209
+ # })
2210
+ #
2211
+ # @example Response structure
2212
+ #
2213
+ # resp.tag_list #=> Array
2214
+ # resp.tag_list[0].key #=> String
2215
+ # resp.tag_list[0].value #=> String
2216
+ #
2217
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UntagResource AWS API Documentation
2218
+ #
2219
+ # @overload untag_resource(params = {})
2220
+ # @param [Hash] params ({})
2221
+ def untag_resource(params = {}, options = {})
2222
+ req = build_request(:untag_resource, params)
2223
+ req.send_request(options)
2224
+ end
2225
+
2226
+ # Changes the list of users that belong to the Access Control List.
2227
+ #
2228
+ # @option params [required, String] :acl_name
2229
+ # The name of the Access Control List
2230
+ #
2231
+ # @option params [Array<String>] :user_names_to_add
2232
+ # The list of users to add to the Access Control List
2233
+ #
2234
+ # @option params [Array<String>] :user_names_to_remove
2235
+ # The list of users to remove from the Access Control List
2236
+ #
2237
+ # @return [Types::UpdateACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2238
+ #
2239
+ # * {Types::UpdateACLResponse#acl #acl} => Types::ACL
2240
+ #
2241
+ # @example Request syntax with placeholder values
2242
+ #
2243
+ # resp = client.update_acl({
2244
+ # acl_name: "String", # required
2245
+ # user_names_to_add: ["UserName"],
2246
+ # user_names_to_remove: ["UserName"],
2247
+ # })
2248
+ #
2249
+ # @example Response structure
2250
+ #
2251
+ # resp.acl.name #=> String
2252
+ # resp.acl.status #=> String
2253
+ # resp.acl.user_names #=> Array
2254
+ # resp.acl.user_names[0] #=> String
2255
+ # resp.acl.minimum_engine_version #=> String
2256
+ # resp.acl.pending_changes.user_names_to_remove #=> Array
2257
+ # resp.acl.pending_changes.user_names_to_remove[0] #=> String
2258
+ # resp.acl.pending_changes.user_names_to_add #=> Array
2259
+ # resp.acl.pending_changes.user_names_to_add[0] #=> String
2260
+ # resp.acl.clusters #=> Array
2261
+ # resp.acl.clusters[0] #=> String
2262
+ # resp.acl.arn #=> String
2263
+ #
2264
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateACL AWS API Documentation
2265
+ #
2266
+ # @overload update_acl(params = {})
2267
+ # @param [Hash] params ({})
2268
+ def update_acl(params = {}, options = {})
2269
+ req = build_request(:update_acl, params)
2270
+ req.send_request(options)
2271
+ end
2272
+
2273
+ # Modifies the settings for a cluster. You can use this operation to
2274
+ # change one or more cluster configuration settings by specifying the
2275
+ # settings and the new values.
2276
+ #
2277
+ # @option params [required, String] :cluster_name
2278
+ # The name of the cluster to update
2279
+ #
2280
+ # @option params [String] :description
2281
+ # The description of the cluster to update
2282
+ #
2283
+ # @option params [Array<String>] :security_group_ids
2284
+ # The SecurityGroupIds to update
2285
+ #
2286
+ # @option params [String] :maintenance_window
2287
+ # The maintenance window to update
2288
+ #
2289
+ # @option params [String] :sns_topic_arn
2290
+ # The SNS topic ARN to update
2291
+ #
2292
+ # @option params [String] :sns_topic_status
2293
+ # The status of the Amazon SNS notification topic. Notifications are
2294
+ # sent only if the status is active.
2295
+ #
2296
+ # @option params [String] :parameter_group_name
2297
+ # The name of the parameter group to update
2298
+ #
2299
+ # @option params [String] :snapshot_window
2300
+ # The daily time range (in UTC) during which MemoryDB begins taking a
2301
+ # daily snapshot of your cluster.
2302
+ #
2303
+ # @option params [Integer] :snapshot_retention_limit
2304
+ # The number of days for which MemoryDB retains automatic cluster
2305
+ # snapshots before deleting them. For example, if you set
2306
+ # SnapshotRetentionLimit to 5, a snapshot that was taken today is
2307
+ # retained for 5 days before being deleted.
2308
+ #
2309
+ # @option params [String] :node_type
2310
+ # A valid node type that you want to scale this cluster up or down to.
2311
+ #
2312
+ # @option params [String] :engine_version
2313
+ # The upgraded version of the engine to be run on the nodes. You can
2314
+ # upgrade to a newer engine version, but you cannot downgrade to an
2315
+ # earlier engine version. If you want to use an earlier engine version,
2316
+ # you must delete the existing cluster and create it anew with the
2317
+ # earlier engine version.
2318
+ #
2319
+ # @option params [Types::ReplicaConfigurationRequest] :replica_configuration
2320
+ # The number of replicas that will reside in each shard
2321
+ #
2322
+ # @option params [Types::ShardConfigurationRequest] :shard_configuration
2323
+ # The number of shards in the cluster
2324
+ #
2325
+ # @option params [String] :acl_name
2326
+ # The Access Control List that is associated with the cluster
2327
+ #
2328
+ # @return [Types::UpdateClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2329
+ #
2330
+ # * {Types::UpdateClusterResponse#cluster #cluster} => Types::Cluster
2331
+ #
2332
+ # @example Request syntax with placeholder values
2333
+ #
2334
+ # resp = client.update_cluster({
2335
+ # cluster_name: "String", # required
2336
+ # description: "String",
2337
+ # security_group_ids: ["String"],
2338
+ # maintenance_window: "String",
2339
+ # sns_topic_arn: "String",
2340
+ # sns_topic_status: "String",
2341
+ # parameter_group_name: "String",
2342
+ # snapshot_window: "String",
2343
+ # snapshot_retention_limit: 1,
2344
+ # node_type: "String",
2345
+ # engine_version: "String",
2346
+ # replica_configuration: {
2347
+ # replica_count: 1,
2348
+ # },
2349
+ # shard_configuration: {
2350
+ # shard_count: 1,
2351
+ # },
2352
+ # acl_name: "ACLName",
2353
+ # })
2354
+ #
2355
+ # @example Response structure
2356
+ #
2357
+ # resp.cluster.name #=> String
2358
+ # resp.cluster.description #=> String
2359
+ # resp.cluster.status #=> String
2360
+ # resp.cluster.pending_updates.resharding.slot_migration.progress_percentage #=> Float
2361
+ # resp.cluster.pending_updates.acls.acl_to_apply #=> String
2362
+ # resp.cluster.pending_updates.service_updates #=> Array
2363
+ # resp.cluster.pending_updates.service_updates[0].service_update_name #=> String
2364
+ # resp.cluster.pending_updates.service_updates[0].status #=> String, one of "available", "in-progress", "complete", "scheduled"
2365
+ # resp.cluster.number_of_shards #=> Integer
2366
+ # resp.cluster.shards #=> Array
2367
+ # resp.cluster.shards[0].name #=> String
2368
+ # resp.cluster.shards[0].status #=> String
2369
+ # resp.cluster.shards[0].slots #=> String
2370
+ # resp.cluster.shards[0].nodes #=> Array
2371
+ # resp.cluster.shards[0].nodes[0].name #=> String
2372
+ # resp.cluster.shards[0].nodes[0].status #=> String
2373
+ # resp.cluster.shards[0].nodes[0].availability_zone #=> String
2374
+ # resp.cluster.shards[0].nodes[0].create_time #=> Time
2375
+ # resp.cluster.shards[0].nodes[0].endpoint.address #=> String
2376
+ # resp.cluster.shards[0].nodes[0].endpoint.port #=> Integer
2377
+ # resp.cluster.shards[0].number_of_nodes #=> Integer
2378
+ # resp.cluster.availability_mode #=> String, one of "singleaz", "multiaz"
2379
+ # resp.cluster.cluster_endpoint.address #=> String
2380
+ # resp.cluster.cluster_endpoint.port #=> Integer
2381
+ # resp.cluster.node_type #=> String
2382
+ # resp.cluster.engine_version #=> String
2383
+ # resp.cluster.engine_patch_version #=> String
2384
+ # resp.cluster.parameter_group_name #=> String
2385
+ # resp.cluster.parameter_group_status #=> String
2386
+ # resp.cluster.security_groups #=> Array
2387
+ # resp.cluster.security_groups[0].security_group_id #=> String
2388
+ # resp.cluster.security_groups[0].status #=> String
2389
+ # resp.cluster.subnet_group_name #=> String
2390
+ # resp.cluster.tls_enabled #=> Boolean
2391
+ # resp.cluster.kms_key_id #=> String
2392
+ # resp.cluster.arn #=> String
2393
+ # resp.cluster.sns_topic_arn #=> String
2394
+ # resp.cluster.sns_topic_status #=> String
2395
+ # resp.cluster.snapshot_retention_limit #=> Integer
2396
+ # resp.cluster.maintenance_window #=> String
2397
+ # resp.cluster.snapshot_window #=> String
2398
+ # resp.cluster.acl_name #=> String
2399
+ # resp.cluster.auto_minor_version_upgrade #=> Boolean
2400
+ #
2401
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateCluster AWS API Documentation
2402
+ #
2403
+ # @overload update_cluster(params = {})
2404
+ # @param [Hash] params ({})
2405
+ def update_cluster(params = {}, options = {})
2406
+ req = build_request(:update_cluster, params)
2407
+ req.send_request(options)
2408
+ end
2409
+
2410
+ # Updates the parameters of a parameter group. You can modify up to 20
2411
+ # parameters in a single request by submitting a list parameter name and
2412
+ # value pairs.
2413
+ #
2414
+ # @option params [required, String] :parameter_group_name
2415
+ # The name of the parameter group to update.
2416
+ #
2417
+ # @option params [required, Array<Types::ParameterNameValue>] :parameter_name_values
2418
+ # An array of parameter names and values for the parameter update. You
2419
+ # must supply at least one parameter name and value; subsequent
2420
+ # arguments are optional. A maximum of 20 parameters may be updated per
2421
+ # request.
2422
+ #
2423
+ # @return [Types::UpdateParameterGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2424
+ #
2425
+ # * {Types::UpdateParameterGroupResponse#parameter_group #parameter_group} => Types::ParameterGroup
2426
+ #
2427
+ # @example Request syntax with placeholder values
2428
+ #
2429
+ # resp = client.update_parameter_group({
2430
+ # parameter_group_name: "String", # required
2431
+ # parameter_name_values: [ # required
2432
+ # {
2433
+ # parameter_name: "String",
2434
+ # parameter_value: "String",
2435
+ # },
2436
+ # ],
2437
+ # })
2438
+ #
2439
+ # @example Response structure
2440
+ #
2441
+ # resp.parameter_group.name #=> String
2442
+ # resp.parameter_group.family #=> String
2443
+ # resp.parameter_group.description #=> String
2444
+ # resp.parameter_group.arn #=> String
2445
+ #
2446
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateParameterGroup AWS API Documentation
2447
+ #
2448
+ # @overload update_parameter_group(params = {})
2449
+ # @param [Hash] params ({})
2450
+ def update_parameter_group(params = {}, options = {})
2451
+ req = build_request(:update_parameter_group, params)
2452
+ req.send_request(options)
2453
+ end
2454
+
2455
+ # Updates a subnet group. For more information, see [Updating a subnet
2456
+ # group][1]
2457
+ #
2458
+ #
2459
+ #
2460
+ # [1]: https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/SubnetGroups.Modifying.html
2461
+ #
2462
+ # @option params [required, String] :subnet_group_name
2463
+ # The name of the subnet group
2464
+ #
2465
+ # @option params [String] :description
2466
+ # A description of the subnet group
2467
+ #
2468
+ # @option params [Array<String>] :subnet_ids
2469
+ # The EC2 subnet IDs for the subnet group.
2470
+ #
2471
+ # @return [Types::UpdateSubnetGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2472
+ #
2473
+ # * {Types::UpdateSubnetGroupResponse#subnet_group #subnet_group} => Types::SubnetGroup
2474
+ #
2475
+ # @example Request syntax with placeholder values
2476
+ #
2477
+ # resp = client.update_subnet_group({
2478
+ # subnet_group_name: "String", # required
2479
+ # description: "String",
2480
+ # subnet_ids: ["String"],
2481
+ # })
2482
+ #
2483
+ # @example Response structure
2484
+ #
2485
+ # resp.subnet_group.name #=> String
2486
+ # resp.subnet_group.description #=> String
2487
+ # resp.subnet_group.vpc_id #=> String
2488
+ # resp.subnet_group.subnets #=> Array
2489
+ # resp.subnet_group.subnets[0].identifier #=> String
2490
+ # resp.subnet_group.subnets[0].availability_zone.name #=> String
2491
+ # resp.subnet_group.arn #=> String
2492
+ #
2493
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateSubnetGroup AWS API Documentation
2494
+ #
2495
+ # @overload update_subnet_group(params = {})
2496
+ # @param [Hash] params ({})
2497
+ def update_subnet_group(params = {}, options = {})
2498
+ req = build_request(:update_subnet_group, params)
2499
+ req.send_request(options)
2500
+ end
2501
+
2502
+ # Changes user password(s) and/or access string.
2503
+ #
2504
+ # @option params [required, String] :user_name
2505
+ # The name of the user
2506
+ #
2507
+ # @option params [Types::AuthenticationMode] :authentication_mode
2508
+ # Denotes the user's authentication properties, such as whether it
2509
+ # requires a password to authenticate.
2510
+ #
2511
+ # @option params [String] :access_string
2512
+ # Access permissions string used for this user.
2513
+ #
2514
+ # @return [Types::UpdateUserResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2515
+ #
2516
+ # * {Types::UpdateUserResponse#user #user} => Types::User
2517
+ #
2518
+ # @example Request syntax with placeholder values
2519
+ #
2520
+ # resp = client.update_user({
2521
+ # user_name: "UserName", # required
2522
+ # authentication_mode: {
2523
+ # type: "password", # accepts password
2524
+ # passwords: ["String"],
2525
+ # },
2526
+ # access_string: "AccessString",
2527
+ # })
2528
+ #
2529
+ # @example Response structure
2530
+ #
2531
+ # resp.user.name #=> String
2532
+ # resp.user.status #=> String
2533
+ # resp.user.access_string #=> String
2534
+ # resp.user.acl_names #=> Array
2535
+ # resp.user.acl_names[0] #=> String
2536
+ # resp.user.minimum_engine_version #=> String
2537
+ # resp.user.authentication.type #=> String, one of "password", "no-password"
2538
+ # resp.user.authentication.password_count #=> Integer
2539
+ # resp.user.arn #=> String
2540
+ #
2541
+ # @see http://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateUser AWS API Documentation
2542
+ #
2543
+ # @overload update_user(params = {})
2544
+ # @param [Hash] params ({})
2545
+ def update_user(params = {}, options = {})
2546
+ req = build_request(:update_user, params)
2547
+ req.send_request(options)
2548
+ end
2549
+
2550
+ # @!endgroup
2551
+
2552
+ # @param params ({})
2553
+ # @api private
2554
+ def build_request(operation_name, params = {})
2555
+ handlers = @handlers.for(operation_name)
2556
+ context = Seahorse::Client::RequestContext.new(
2557
+ operation_name: operation_name,
2558
+ operation: config.api.operation(operation_name),
2559
+ client: self,
2560
+ params: params,
2561
+ config: config)
2562
+ context[:gem_name] = 'aws-sdk-memorydb'
2563
+ context[:gem_version] = '1.0.0'
2564
+ Seahorse::Client::Request.new(handlers, context)
2565
+ end
2566
+
2567
+ # @api private
2568
+ # @deprecated
2569
+ def waiter_names
2570
+ []
2571
+ end
2572
+
2573
+ class << self
2574
+
2575
+ # @api private
2576
+ attr_reader :identifier
2577
+
2578
+ # @api private
2579
+ def errors_module
2580
+ Errors
2581
+ end
2582
+
2583
+ end
2584
+ end
2585
+ end