aws-sdk-memorydb 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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