aws-sdk-route53recoverycontrolconfig 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 67486be9c2286cdc16ff2c8dbbd4287bd0ffed40c59107fa493d12bd169cdefd
4
+ data.tar.gz: 796fc7665a92a268abb8eed2b42f8d70af763964d189f7fb5957296493d7aded
5
+ SHA512:
6
+ metadata.gz: 2d8a4813833b3144936a71feb3dfc56b69da527f15116e74bcefa4175e310ebeff6c5174251e1fe6161c83d25d7cc3b4c9ecd36e174e9d88894cad34b9874706
7
+ data.tar.gz: 64547a9beb5a411a14f3baca529c4cb4c76ab7fecd792ab68daeb612d401dac21d714dbe67fb468ad58f53b4ba6198a580694e86074ca40ab9fa65ee95778c77
data/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ Unreleased Changes
2
+ ------------------
3
+
4
+ 1.0.0 (2021-07-27)
5
+ ------------------
6
+
7
+ * Feature - Initial release of `aws-sdk-route53recoverycontrolconfig`.
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,54 @@
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-route53recoverycontrolconfig/types'
15
+ require_relative 'aws-sdk-route53recoverycontrolconfig/client_api'
16
+ require_relative 'aws-sdk-route53recoverycontrolconfig/client'
17
+ require_relative 'aws-sdk-route53recoverycontrolconfig/errors'
18
+ require_relative 'aws-sdk-route53recoverycontrolconfig/waiters'
19
+ require_relative 'aws-sdk-route53recoverycontrolconfig/resource'
20
+ require_relative 'aws-sdk-route53recoverycontrolconfig/customizations'
21
+
22
+ # This module provides support for AWS Route53 Recovery Control Config. This module is available in the
23
+ # `aws-sdk-route53recoverycontrolconfig` gem.
24
+ #
25
+ # # Client
26
+ #
27
+ # The {Client} class provides one method for each API operation. Operation
28
+ # methods each accept a hash of request parameters and return a response
29
+ # structure.
30
+ #
31
+ # route_53_recovery_control_config = Aws::Route53RecoveryControlConfig::Client.new
32
+ # resp = route_53_recovery_control_config.create_cluster(params)
33
+ #
34
+ # See {Client} for more information.
35
+ #
36
+ # # Errors
37
+ #
38
+ # Errors returned from AWS Route53 Recovery Control Config are defined in the
39
+ # {Errors} module and all extend {Errors::ServiceError}.
40
+ #
41
+ # begin
42
+ # # do stuff
43
+ # rescue Aws::Route53RecoveryControlConfig::Errors::ServiceError
44
+ # # rescues all AWS Route53 Recovery Control Config API errors
45
+ # end
46
+ #
47
+ # See {Errors} for more information.
48
+ #
49
+ # @!group service
50
+ module Aws::Route53RecoveryControlConfig
51
+
52
+ GEM_VERSION = '1.0.0'
53
+
54
+ end
@@ -0,0 +1,1363 @@
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/rest_json.rb'
32
+
33
+ Aws::Plugins::GlobalConfiguration.add_identifier(:route53recoverycontrolconfig)
34
+
35
+ module Aws::Route53RecoveryControlConfig
36
+ # An API client for Route53RecoveryControlConfig. To construct a client, you need to configure a `:region` and `:credentials`.
37
+ #
38
+ # client = Aws::Route53RecoveryControlConfig::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 = :route53recoverycontrolconfig
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::RestJson)
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] :stub_responses (false)
270
+ # Causes the client to return stubbed responses. By default
271
+ # fake responses are generated and returned. You can specify
272
+ # the response data to return or errors to raise by calling
273
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
274
+ #
275
+ # ** Please note ** When response stubbing is enabled, no HTTP
276
+ # requests are made, and retries are disabled.
277
+ #
278
+ # @option options [Boolean] :validate_params (true)
279
+ # When `true`, request parameters are validated before
280
+ # sending the request.
281
+ #
282
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
283
+ # requests through. Formatted like 'http://proxy.com:123'.
284
+ #
285
+ # @option options [Float] :http_open_timeout (15) The number of
286
+ # seconds to wait when opening a HTTP session before raising a
287
+ # `Timeout::Error`.
288
+ #
289
+ # @option options [Integer] :http_read_timeout (60) The default
290
+ # number of seconds to wait for response data. This value can
291
+ # safely be set per-request on the session.
292
+ #
293
+ # @option options [Float] :http_idle_timeout (5) The number of
294
+ # seconds a connection is allowed to sit idle before it is
295
+ # considered stale. Stale connections are closed and removed
296
+ # from the pool before making a request.
297
+ #
298
+ # @option options [Float] :http_continue_timeout (1) The number of
299
+ # seconds to wait for a 100-continue response before sending the
300
+ # request body. This option has no effect unless the request has
301
+ # "Expect" header set to "100-continue". Defaults to `nil` which
302
+ # disables this behaviour. This value can safely be set per
303
+ # request on the session.
304
+ #
305
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
306
+ # HTTP debug output will be sent to the `:logger`.
307
+ #
308
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
309
+ # SSL peer certificates are verified when establishing a
310
+ # connection.
311
+ #
312
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
313
+ # certificate authority bundle file that should be used when
314
+ # verifying peer certificates. If you do not pass
315
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
316
+ # will be used if available.
317
+ #
318
+ # @option options [String] :ssl_ca_directory Full path of the
319
+ # directory that contains the unbundled SSL certificate
320
+ # authority files for verifying peer certificates. If you do
321
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
322
+ # system default will be used if available.
323
+ #
324
+ def initialize(*args)
325
+ super
326
+ end
327
+
328
+ # @!group API Operations
329
+
330
+ # Create a new cluster. A cluster is a set of redundant Regional
331
+ # endpoints against which you can run API calls to update or get the
332
+ # state of one or more routing controls. Each cluster has a name,
333
+ # status, Amazon Resource Name (ARN), and an array of the five cluster
334
+ # endpoints (one for each supported Amazon Web Services Region) that you
335
+ # can use with API calls to the Amazon Route 53 Application Recovery
336
+ # Controller cluster data plane.
337
+ #
338
+ # @option params [String] :client_token
339
+ # Unique client idempotency token.
340
+ #
341
+ # **A suitable default value is auto-generated.** You should normally
342
+ # not need to pass this option.**
343
+ #
344
+ # @option params [required, String] :cluster_name
345
+ # The name of the cluster.
346
+ #
347
+ # @return [Types::CreateClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
348
+ #
349
+ # * {Types::CreateClusterResponse#cluster #cluster} => Types::Cluster
350
+ #
351
+ # @example Request syntax with placeholder values
352
+ #
353
+ # resp = client.create_cluster({
354
+ # client_token: "__stringMax64",
355
+ # cluster_name: "__stringMin1Max64PatternS", # required
356
+ # })
357
+ #
358
+ # @example Response structure
359
+ #
360
+ # resp.cluster.cluster_arn #=> String
361
+ # resp.cluster.cluster_endpoints #=> Array
362
+ # resp.cluster.cluster_endpoints[0].endpoint #=> String
363
+ # resp.cluster.cluster_endpoints[0].region #=> String
364
+ # resp.cluster.name #=> String
365
+ # resp.cluster.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
366
+ #
367
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/CreateCluster AWS API Documentation
368
+ #
369
+ # @overload create_cluster(params = {})
370
+ # @param [Hash] params ({})
371
+ def create_cluster(params = {}, options = {})
372
+ req = build_request(:create_cluster, params)
373
+ req.send_request(options)
374
+ end
375
+
376
+ # Creates a new control panel. A control panel represents a group of
377
+ # routing controls that can be changed together in a single transaction.
378
+ # You can use a control panel to centrally view the operational status
379
+ # of applications across your organization, and trigger multi-app
380
+ # failovers in a single transaction, for example, to fail over an
381
+ # Availability Zone or AWS Region.
382
+ #
383
+ # @option params [String] :client_token
384
+ # Unique client idempotency token.
385
+ #
386
+ # **A suitable default value is auto-generated.** You should normally
387
+ # not need to pass this option.**
388
+ #
389
+ # @option params [required, String] :cluster_arn
390
+ # The Amazon Resource Name (ARN) of the cluster for the control panel.
391
+ #
392
+ # @option params [required, String] :control_panel_name
393
+ # The name of the control panel.
394
+ #
395
+ # @return [Types::CreateControlPanelResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
396
+ #
397
+ # * {Types::CreateControlPanelResponse#control_panel #control_panel} => Types::ControlPanel
398
+ #
399
+ # @example Request syntax with placeholder values
400
+ #
401
+ # resp = client.create_control_panel({
402
+ # client_token: "__stringMax64",
403
+ # cluster_arn: "__string", # required
404
+ # control_panel_name: "__stringMin1Max64PatternS", # required
405
+ # })
406
+ #
407
+ # @example Response structure
408
+ #
409
+ # resp.control_panel.cluster_arn #=> String
410
+ # resp.control_panel.control_panel_arn #=> String
411
+ # resp.control_panel.default_control_panel #=> Boolean
412
+ # resp.control_panel.name #=> String
413
+ # resp.control_panel.routing_control_count #=> Integer
414
+ # resp.control_panel.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
415
+ #
416
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/CreateControlPanel AWS API Documentation
417
+ #
418
+ # @overload create_control_panel(params = {})
419
+ # @param [Hash] params ({})
420
+ def create_control_panel(params = {}, options = {})
421
+ req = build_request(:create_control_panel, params)
422
+ req.send_request(options)
423
+ end
424
+
425
+ # Creates a new routing control.
426
+ #
427
+ # A routing control has one of two states: ON and OFF. You can map the
428
+ # routing control state to the state of an Amazon Route 53 health check,
429
+ # which can be used to control traffic routing.
430
+ #
431
+ # To get or update the routing control state, see the Recovery Cluster
432
+ # (data plane) API actions for Amazon Route 53 Application Recovery
433
+ # Controller.
434
+ #
435
+ # @option params [String] :client_token
436
+ # Unique client idempotency token.
437
+ #
438
+ # **A suitable default value is auto-generated.** You should normally
439
+ # not need to pass this option.**
440
+ #
441
+ # @option params [required, String] :cluster_arn
442
+ # The Amazon Resource Name (ARN) of the cluster that includes the
443
+ # routing control.
444
+ #
445
+ # @option params [String] :control_panel_arn
446
+ # The Amazon Resource Name (ARN) of the control panel that includes the
447
+ # routing control.
448
+ #
449
+ # @option params [required, String] :routing_control_name
450
+ # The name of the routing control.
451
+ #
452
+ # @return [Types::CreateRoutingControlResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
453
+ #
454
+ # * {Types::CreateRoutingControlResponse#routing_control #routing_control} => Types::RoutingControl
455
+ #
456
+ # @example Request syntax with placeholder values
457
+ #
458
+ # resp = client.create_routing_control({
459
+ # client_token: "__stringMax64",
460
+ # cluster_arn: "__string", # required
461
+ # control_panel_arn: "__string",
462
+ # routing_control_name: "__stringMin1Max64PatternS", # required
463
+ # })
464
+ #
465
+ # @example Response structure
466
+ #
467
+ # resp.routing_control.control_panel_arn #=> String
468
+ # resp.routing_control.name #=> String
469
+ # resp.routing_control.routing_control_arn #=> String
470
+ # resp.routing_control.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
471
+ #
472
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/CreateRoutingControl AWS API Documentation
473
+ #
474
+ # @overload create_routing_control(params = {})
475
+ # @param [Hash] params ({})
476
+ def create_routing_control(params = {}, options = {})
477
+ req = build_request(:create_routing_control, params)
478
+ req.send_request(options)
479
+ end
480
+
481
+ # Creates a safety rule in a control panel. Safety rules let you add
482
+ # safeguards around enabling and disabling routing controls, to help
483
+ # prevent unexpected outcomes.
484
+ #
485
+ # There are two types of safety rules: assertion rules and gating rules.
486
+ #
487
+ # Assertion rule: An assertion rule enforces that, when a routing
488
+ # control state is changed, the criteria set by the rule configuration
489
+ # is met. Otherwise, the change to the routing control is not accepted.
490
+ #
491
+ # Gating rule: A gating rule verifies that a set of gating controls
492
+ # evaluates as true, based on a rule configuration that you specify. If
493
+ # the gating rule evaluates to true, Amazon Route 53 Application
494
+ # Recovery Controller allows a set of routing control state changes to
495
+ # run and complete against the set of target controls.
496
+ #
497
+ # @option params [Types::NewAssertionRule] :assertion_rule
498
+ # A new assertion rule for a control panel.
499
+ #
500
+ # @option params [String] :client_token
501
+ # Unique client idempotency token.
502
+ #
503
+ # **A suitable default value is auto-generated.** You should normally
504
+ # not need to pass this option.**
505
+ #
506
+ # @option params [Types::NewGatingRule] :gating_rule
507
+ # A new gating rule for a control panel.
508
+ #
509
+ # @return [Types::CreateSafetyRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
510
+ #
511
+ # * {Types::CreateSafetyRuleResponse#assertion_rule #assertion_rule} => Types::AssertionRule
512
+ # * {Types::CreateSafetyRuleResponse#gating_rule #gating_rule} => Types::GatingRule
513
+ #
514
+ # @example Request syntax with placeholder values
515
+ #
516
+ # resp = client.create_safety_rule({
517
+ # assertion_rule: {
518
+ # asserted_controls: ["__string"], # required
519
+ # control_panel_arn: "__string", # required
520
+ # name: "__stringMin1Max64PatternS", # required
521
+ # rule_config: { # required
522
+ # inverted: false, # required
523
+ # threshold: 1, # required
524
+ # type: "ATLEAST", # required, accepts ATLEAST, AND, OR
525
+ # },
526
+ # wait_period_ms: 1, # required
527
+ # },
528
+ # client_token: "__stringMax64",
529
+ # gating_rule: {
530
+ # control_panel_arn: "__string", # required
531
+ # gating_controls: ["__string"], # required
532
+ # name: "__stringMin1Max64PatternS", # required
533
+ # rule_config: { # required
534
+ # inverted: false, # required
535
+ # threshold: 1, # required
536
+ # type: "ATLEAST", # required, accepts ATLEAST, AND, OR
537
+ # },
538
+ # target_controls: ["__string"], # required
539
+ # wait_period_ms: 1, # required
540
+ # },
541
+ # })
542
+ #
543
+ # @example Response structure
544
+ #
545
+ # resp.assertion_rule.asserted_controls #=> Array
546
+ # resp.assertion_rule.asserted_controls[0] #=> String
547
+ # resp.assertion_rule.control_panel_arn #=> String
548
+ # resp.assertion_rule.name #=> String
549
+ # resp.assertion_rule.rule_config.inverted #=> Boolean
550
+ # resp.assertion_rule.rule_config.threshold #=> Integer
551
+ # resp.assertion_rule.rule_config.type #=> String, one of "ATLEAST", "AND", "OR"
552
+ # resp.assertion_rule.safety_rule_arn #=> String
553
+ # resp.assertion_rule.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
554
+ # resp.assertion_rule.wait_period_ms #=> Integer
555
+ # resp.gating_rule.control_panel_arn #=> String
556
+ # resp.gating_rule.gating_controls #=> Array
557
+ # resp.gating_rule.gating_controls[0] #=> String
558
+ # resp.gating_rule.name #=> String
559
+ # resp.gating_rule.rule_config.inverted #=> Boolean
560
+ # resp.gating_rule.rule_config.threshold #=> Integer
561
+ # resp.gating_rule.rule_config.type #=> String, one of "ATLEAST", "AND", "OR"
562
+ # resp.gating_rule.safety_rule_arn #=> String
563
+ # resp.gating_rule.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
564
+ # resp.gating_rule.target_controls #=> Array
565
+ # resp.gating_rule.target_controls[0] #=> String
566
+ # resp.gating_rule.wait_period_ms #=> Integer
567
+ #
568
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/CreateSafetyRule AWS API Documentation
569
+ #
570
+ # @overload create_safety_rule(params = {})
571
+ # @param [Hash] params ({})
572
+ def create_safety_rule(params = {}, options = {})
573
+ req = build_request(:create_safety_rule, params)
574
+ req.send_request(options)
575
+ end
576
+
577
+ # Delete a cluster.
578
+ #
579
+ # @option params [required, String] :cluster_arn
580
+ #
581
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
582
+ #
583
+ # @example Request syntax with placeholder values
584
+ #
585
+ # resp = client.delete_cluster({
586
+ # cluster_arn: "__string", # required
587
+ # })
588
+ #
589
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/DeleteCluster AWS API Documentation
590
+ #
591
+ # @overload delete_cluster(params = {})
592
+ # @param [Hash] params ({})
593
+ def delete_cluster(params = {}, options = {})
594
+ req = build_request(:delete_cluster, params)
595
+ req.send_request(options)
596
+ end
597
+
598
+ # Deletes a control panel.
599
+ #
600
+ # @option params [required, String] :control_panel_arn
601
+ #
602
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
603
+ #
604
+ # @example Request syntax with placeholder values
605
+ #
606
+ # resp = client.delete_control_panel({
607
+ # control_panel_arn: "__string", # required
608
+ # })
609
+ #
610
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/DeleteControlPanel AWS API Documentation
611
+ #
612
+ # @overload delete_control_panel(params = {})
613
+ # @param [Hash] params ({})
614
+ def delete_control_panel(params = {}, options = {})
615
+ req = build_request(:delete_control_panel, params)
616
+ req.send_request(options)
617
+ end
618
+
619
+ # Deletes a routing control.
620
+ #
621
+ # @option params [required, String] :routing_control_arn
622
+ #
623
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
624
+ #
625
+ # @example Request syntax with placeholder values
626
+ #
627
+ # resp = client.delete_routing_control({
628
+ # routing_control_arn: "__string", # required
629
+ # })
630
+ #
631
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/DeleteRoutingControl AWS API Documentation
632
+ #
633
+ # @overload delete_routing_control(params = {})
634
+ # @param [Hash] params ({})
635
+ def delete_routing_control(params = {}, options = {})
636
+ req = build_request(:delete_routing_control, params)
637
+ req.send_request(options)
638
+ end
639
+
640
+ # Deletes a safety rule.
641
+ #
642
+ # /&gt;
643
+ #
644
+ # @option params [required, String] :safety_rule_arn
645
+ #
646
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
647
+ #
648
+ # @example Request syntax with placeholder values
649
+ #
650
+ # resp = client.delete_safety_rule({
651
+ # safety_rule_arn: "__string", # required
652
+ # })
653
+ #
654
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/DeleteSafetyRule AWS API Documentation
655
+ #
656
+ # @overload delete_safety_rule(params = {})
657
+ # @param [Hash] params ({})
658
+ def delete_safety_rule(params = {}, options = {})
659
+ req = build_request(:delete_safety_rule, params)
660
+ req.send_request(options)
661
+ end
662
+
663
+ # Display the details about a cluster. The response includes the cluster
664
+ # name, endpoints, status, and Amazon Resource Name (ARN).
665
+ #
666
+ # @option params [required, String] :cluster_arn
667
+ #
668
+ # @return [Types::DescribeClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
669
+ #
670
+ # * {Types::DescribeClusterResponse#cluster #cluster} => Types::Cluster
671
+ #
672
+ # @example Request syntax with placeholder values
673
+ #
674
+ # resp = client.describe_cluster({
675
+ # cluster_arn: "__string", # required
676
+ # })
677
+ #
678
+ # @example Response structure
679
+ #
680
+ # resp.cluster.cluster_arn #=> String
681
+ # resp.cluster.cluster_endpoints #=> Array
682
+ # resp.cluster.cluster_endpoints[0].endpoint #=> String
683
+ # resp.cluster.cluster_endpoints[0].region #=> String
684
+ # resp.cluster.name #=> String
685
+ # resp.cluster.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
686
+ #
687
+ #
688
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
689
+ #
690
+ # * cluster_created
691
+ # * cluster_deleted
692
+ #
693
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/DescribeCluster AWS API Documentation
694
+ #
695
+ # @overload describe_cluster(params = {})
696
+ # @param [Hash] params ({})
697
+ def describe_cluster(params = {}, options = {})
698
+ req = build_request(:describe_cluster, params)
699
+ req.send_request(options)
700
+ end
701
+
702
+ # Displays details about a control panel.
703
+ #
704
+ # @option params [required, String] :control_panel_arn
705
+ #
706
+ # @return [Types::DescribeControlPanelResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
707
+ #
708
+ # * {Types::DescribeControlPanelResponse#control_panel #control_panel} => Types::ControlPanel
709
+ #
710
+ # @example Request syntax with placeholder values
711
+ #
712
+ # resp = client.describe_control_panel({
713
+ # control_panel_arn: "__string", # required
714
+ # })
715
+ #
716
+ # @example Response structure
717
+ #
718
+ # resp.control_panel.cluster_arn #=> String
719
+ # resp.control_panel.control_panel_arn #=> String
720
+ # resp.control_panel.default_control_panel #=> Boolean
721
+ # resp.control_panel.name #=> String
722
+ # resp.control_panel.routing_control_count #=> Integer
723
+ # resp.control_panel.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
724
+ #
725
+ #
726
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
727
+ #
728
+ # * control_panel_created
729
+ # * control_panel_deleted
730
+ #
731
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/DescribeControlPanel AWS API Documentation
732
+ #
733
+ # @overload describe_control_panel(params = {})
734
+ # @param [Hash] params ({})
735
+ def describe_control_panel(params = {}, options = {})
736
+ req = build_request(:describe_control_panel, params)
737
+ req.send_request(options)
738
+ end
739
+
740
+ # Displays details about a routing control. A routing control has one of
741
+ # two states: ON and OFF. You can map the routing control state to the
742
+ # state of an Amazon Route 53 health check, which can be used to control
743
+ # routing.
744
+ #
745
+ # To get or update the routing control state, see the Recovery Cluster
746
+ # (data plane) API actions for Amazon Route 53 Application Recovery
747
+ # Controller.
748
+ #
749
+ # @option params [required, String] :routing_control_arn
750
+ #
751
+ # @return [Types::DescribeRoutingControlResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
752
+ #
753
+ # * {Types::DescribeRoutingControlResponse#routing_control #routing_control} => Types::RoutingControl
754
+ #
755
+ # @example Request syntax with placeholder values
756
+ #
757
+ # resp = client.describe_routing_control({
758
+ # routing_control_arn: "__string", # required
759
+ # })
760
+ #
761
+ # @example Response structure
762
+ #
763
+ # resp.routing_control.control_panel_arn #=> String
764
+ # resp.routing_control.name #=> String
765
+ # resp.routing_control.routing_control_arn #=> String
766
+ # resp.routing_control.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
767
+ #
768
+ #
769
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
770
+ #
771
+ # * routing_control_created
772
+ # * routing_control_deleted
773
+ #
774
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/DescribeRoutingControl AWS API Documentation
775
+ #
776
+ # @overload describe_routing_control(params = {})
777
+ # @param [Hash] params ({})
778
+ def describe_routing_control(params = {}, options = {})
779
+ req = build_request(:describe_routing_control, params)
780
+ req.send_request(options)
781
+ end
782
+
783
+ # Describes the safety rules (that is, the assertion rules and gating
784
+ # rules) for the routing controls in a control panel.
785
+ #
786
+ # @option params [required, String] :safety_rule_arn
787
+ #
788
+ # @return [Types::DescribeSafetyRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
789
+ #
790
+ # * {Types::DescribeSafetyRuleResponse#assertion_rule #assertion_rule} => Types::AssertionRule
791
+ # * {Types::DescribeSafetyRuleResponse#gating_rule #gating_rule} => Types::GatingRule
792
+ #
793
+ # @example Request syntax with placeholder values
794
+ #
795
+ # resp = client.describe_safety_rule({
796
+ # safety_rule_arn: "__string", # required
797
+ # })
798
+ #
799
+ # @example Response structure
800
+ #
801
+ # resp.assertion_rule.asserted_controls #=> Array
802
+ # resp.assertion_rule.asserted_controls[0] #=> String
803
+ # resp.assertion_rule.control_panel_arn #=> String
804
+ # resp.assertion_rule.name #=> String
805
+ # resp.assertion_rule.rule_config.inverted #=> Boolean
806
+ # resp.assertion_rule.rule_config.threshold #=> Integer
807
+ # resp.assertion_rule.rule_config.type #=> String, one of "ATLEAST", "AND", "OR"
808
+ # resp.assertion_rule.safety_rule_arn #=> String
809
+ # resp.assertion_rule.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
810
+ # resp.assertion_rule.wait_period_ms #=> Integer
811
+ # resp.gating_rule.control_panel_arn #=> String
812
+ # resp.gating_rule.gating_controls #=> Array
813
+ # resp.gating_rule.gating_controls[0] #=> String
814
+ # resp.gating_rule.name #=> String
815
+ # resp.gating_rule.rule_config.inverted #=> Boolean
816
+ # resp.gating_rule.rule_config.threshold #=> Integer
817
+ # resp.gating_rule.rule_config.type #=> String, one of "ATLEAST", "AND", "OR"
818
+ # resp.gating_rule.safety_rule_arn #=> String
819
+ # resp.gating_rule.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
820
+ # resp.gating_rule.target_controls #=> Array
821
+ # resp.gating_rule.target_controls[0] #=> String
822
+ # resp.gating_rule.wait_period_ms #=> Integer
823
+ #
824
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/DescribeSafetyRule AWS API Documentation
825
+ #
826
+ # @overload describe_safety_rule(params = {})
827
+ # @param [Hash] params ({})
828
+ def describe_safety_rule(params = {}, options = {})
829
+ req = build_request(:describe_safety_rule, params)
830
+ req.send_request(options)
831
+ end
832
+
833
+ # Returns an array of all Amazon Route 53 health checks associated with
834
+ # a specific routing control.
835
+ #
836
+ # @option params [Integer] :max_results
837
+ #
838
+ # @option params [String] :next_token
839
+ #
840
+ # @option params [required, String] :routing_control_arn
841
+ #
842
+ # @return [Types::ListAssociatedRoute53HealthChecksResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
843
+ #
844
+ # * {Types::ListAssociatedRoute53HealthChecksResponse#health_check_ids #health_check_ids} => Array&lt;String&gt;
845
+ # * {Types::ListAssociatedRoute53HealthChecksResponse#next_token #next_token} => String
846
+ #
847
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
848
+ #
849
+ # @example Request syntax with placeholder values
850
+ #
851
+ # resp = client.list_associated_route_53_health_checks({
852
+ # max_results: 1,
853
+ # next_token: "__string",
854
+ # routing_control_arn: "__string", # required
855
+ # })
856
+ #
857
+ # @example Response structure
858
+ #
859
+ # resp.health_check_ids #=> Array
860
+ # resp.health_check_ids[0] #=> String
861
+ # resp.next_token #=> String
862
+ #
863
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/ListAssociatedRoute53HealthChecks AWS API Documentation
864
+ #
865
+ # @overload list_associated_route_53_health_checks(params = {})
866
+ # @param [Hash] params ({})
867
+ def list_associated_route_53_health_checks(params = {}, options = {})
868
+ req = build_request(:list_associated_route_53_health_checks, params)
869
+ req.send_request(options)
870
+ end
871
+
872
+ # Returns an array of all the clusters in an account.
873
+ #
874
+ # @option params [Integer] :max_results
875
+ #
876
+ # @option params [String] :next_token
877
+ #
878
+ # @return [Types::ListClustersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
879
+ #
880
+ # * {Types::ListClustersResponse#clusters #clusters} => Array&lt;Types::Cluster&gt;
881
+ # * {Types::ListClustersResponse#next_token #next_token} => String
882
+ #
883
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
884
+ #
885
+ # @example Request syntax with placeholder values
886
+ #
887
+ # resp = client.list_clusters({
888
+ # max_results: 1,
889
+ # next_token: "__string",
890
+ # })
891
+ #
892
+ # @example Response structure
893
+ #
894
+ # resp.clusters #=> Array
895
+ # resp.clusters[0].cluster_arn #=> String
896
+ # resp.clusters[0].cluster_endpoints #=> Array
897
+ # resp.clusters[0].cluster_endpoints[0].endpoint #=> String
898
+ # resp.clusters[0].cluster_endpoints[0].region #=> String
899
+ # resp.clusters[0].name #=> String
900
+ # resp.clusters[0].status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
901
+ # resp.next_token #=> String
902
+ #
903
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/ListClusters AWS API Documentation
904
+ #
905
+ # @overload list_clusters(params = {})
906
+ # @param [Hash] params ({})
907
+ def list_clusters(params = {}, options = {})
908
+ req = build_request(:list_clusters, params)
909
+ req.send_request(options)
910
+ end
911
+
912
+ # Returns an array of control panels for a cluster.
913
+ #
914
+ # @option params [String] :cluster_arn
915
+ #
916
+ # @option params [Integer] :max_results
917
+ #
918
+ # @option params [String] :next_token
919
+ #
920
+ # @return [Types::ListControlPanelsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
921
+ #
922
+ # * {Types::ListControlPanelsResponse#control_panels #control_panels} => Array&lt;Types::ControlPanel&gt;
923
+ # * {Types::ListControlPanelsResponse#next_token #next_token} => String
924
+ #
925
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
926
+ #
927
+ # @example Request syntax with placeholder values
928
+ #
929
+ # resp = client.list_control_panels({
930
+ # cluster_arn: "__string",
931
+ # max_results: 1,
932
+ # next_token: "__string",
933
+ # })
934
+ #
935
+ # @example Response structure
936
+ #
937
+ # resp.control_panels #=> Array
938
+ # resp.control_panels[0].cluster_arn #=> String
939
+ # resp.control_panels[0].control_panel_arn #=> String
940
+ # resp.control_panels[0].default_control_panel #=> Boolean
941
+ # resp.control_panels[0].name #=> String
942
+ # resp.control_panels[0].routing_control_count #=> Integer
943
+ # resp.control_panels[0].status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
944
+ # resp.next_token #=> String
945
+ #
946
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/ListControlPanels AWS API Documentation
947
+ #
948
+ # @overload list_control_panels(params = {})
949
+ # @param [Hash] params ({})
950
+ def list_control_panels(params = {}, options = {})
951
+ req = build_request(:list_control_panels, params)
952
+ req.send_request(options)
953
+ end
954
+
955
+ # Returns an array of routing controls for a control panel. A routing
956
+ # control is an Amazon Route 53 Application Recovery Controller
957
+ # construct that has one of two states: ON and OFF. You can map the
958
+ # routing control state to the state of an Amazon Route 53 health check,
959
+ # which can be used to control routing.
960
+ #
961
+ # @option params [required, String] :control_panel_arn
962
+ #
963
+ # @option params [Integer] :max_results
964
+ #
965
+ # @option params [String] :next_token
966
+ #
967
+ # @return [Types::ListRoutingControlsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
968
+ #
969
+ # * {Types::ListRoutingControlsResponse#next_token #next_token} => String
970
+ # * {Types::ListRoutingControlsResponse#routing_controls #routing_controls} => Array&lt;Types::RoutingControl&gt;
971
+ #
972
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
973
+ #
974
+ # @example Request syntax with placeholder values
975
+ #
976
+ # resp = client.list_routing_controls({
977
+ # control_panel_arn: "__string", # required
978
+ # max_results: 1,
979
+ # next_token: "__string",
980
+ # })
981
+ #
982
+ # @example Response structure
983
+ #
984
+ # resp.next_token #=> String
985
+ # resp.routing_controls #=> Array
986
+ # resp.routing_controls[0].control_panel_arn #=> String
987
+ # resp.routing_controls[0].name #=> String
988
+ # resp.routing_controls[0].routing_control_arn #=> String
989
+ # resp.routing_controls[0].status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
990
+ #
991
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/ListRoutingControls AWS API Documentation
992
+ #
993
+ # @overload list_routing_controls(params = {})
994
+ # @param [Hash] params ({})
995
+ def list_routing_controls(params = {}, options = {})
996
+ req = build_request(:list_routing_controls, params)
997
+ req.send_request(options)
998
+ end
999
+
1000
+ # List the safety rules (the assertion rules and gating rules) that
1001
+ # you've defined for the routing controls in a control panel.
1002
+ #
1003
+ # @option params [required, String] :control_panel_arn
1004
+ #
1005
+ # @option params [Integer] :max_results
1006
+ #
1007
+ # @option params [String] :next_token
1008
+ #
1009
+ # @return [Types::ListSafetyRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1010
+ #
1011
+ # * {Types::ListSafetyRulesResponse#next_token #next_token} => String
1012
+ # * {Types::ListSafetyRulesResponse#safety_rules #safety_rules} => Array&lt;Types::Rule&gt;
1013
+ #
1014
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1015
+ #
1016
+ # @example Request syntax with placeholder values
1017
+ #
1018
+ # resp = client.list_safety_rules({
1019
+ # control_panel_arn: "__string", # required
1020
+ # max_results: 1,
1021
+ # next_token: "__string",
1022
+ # })
1023
+ #
1024
+ # @example Response structure
1025
+ #
1026
+ # resp.next_token #=> String
1027
+ # resp.safety_rules #=> Array
1028
+ # resp.safety_rules[0].assertion.asserted_controls #=> Array
1029
+ # resp.safety_rules[0].assertion.asserted_controls[0] #=> String
1030
+ # resp.safety_rules[0].assertion.control_panel_arn #=> String
1031
+ # resp.safety_rules[0].assertion.name #=> String
1032
+ # resp.safety_rules[0].assertion.rule_config.inverted #=> Boolean
1033
+ # resp.safety_rules[0].assertion.rule_config.threshold #=> Integer
1034
+ # resp.safety_rules[0].assertion.rule_config.type #=> String, one of "ATLEAST", "AND", "OR"
1035
+ # resp.safety_rules[0].assertion.safety_rule_arn #=> String
1036
+ # resp.safety_rules[0].assertion.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
1037
+ # resp.safety_rules[0].assertion.wait_period_ms #=> Integer
1038
+ # resp.safety_rules[0].gating.control_panel_arn #=> String
1039
+ # resp.safety_rules[0].gating.gating_controls #=> Array
1040
+ # resp.safety_rules[0].gating.gating_controls[0] #=> String
1041
+ # resp.safety_rules[0].gating.name #=> String
1042
+ # resp.safety_rules[0].gating.rule_config.inverted #=> Boolean
1043
+ # resp.safety_rules[0].gating.rule_config.threshold #=> Integer
1044
+ # resp.safety_rules[0].gating.rule_config.type #=> String, one of "ATLEAST", "AND", "OR"
1045
+ # resp.safety_rules[0].gating.safety_rule_arn #=> String
1046
+ # resp.safety_rules[0].gating.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
1047
+ # resp.safety_rules[0].gating.target_controls #=> Array
1048
+ # resp.safety_rules[0].gating.target_controls[0] #=> String
1049
+ # resp.safety_rules[0].gating.wait_period_ms #=> Integer
1050
+ #
1051
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/ListSafetyRules AWS API Documentation
1052
+ #
1053
+ # @overload list_safety_rules(params = {})
1054
+ # @param [Hash] params ({})
1055
+ def list_safety_rules(params = {}, options = {})
1056
+ req = build_request(:list_safety_rules, params)
1057
+ req.send_request(options)
1058
+ end
1059
+
1060
+ # Updates a control panel. The only update you can make to a control
1061
+ # panel is to change the name of the control panel.
1062
+ #
1063
+ # @option params [required, String] :control_panel_arn
1064
+ # The Amazon Resource Name (ARN) of the control panel.
1065
+ #
1066
+ # @option params [required, String] :control_panel_name
1067
+ # The name of the control panel.
1068
+ #
1069
+ # @return [Types::UpdateControlPanelResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1070
+ #
1071
+ # * {Types::UpdateControlPanelResponse#control_panel #control_panel} => Types::ControlPanel
1072
+ #
1073
+ # @example Request syntax with placeholder values
1074
+ #
1075
+ # resp = client.update_control_panel({
1076
+ # control_panel_arn: "__string", # required
1077
+ # control_panel_name: "__stringMin1Max64PatternS", # required
1078
+ # })
1079
+ #
1080
+ # @example Response structure
1081
+ #
1082
+ # resp.control_panel.cluster_arn #=> String
1083
+ # resp.control_panel.control_panel_arn #=> String
1084
+ # resp.control_panel.default_control_panel #=> Boolean
1085
+ # resp.control_panel.name #=> String
1086
+ # resp.control_panel.routing_control_count #=> Integer
1087
+ # resp.control_panel.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
1088
+ #
1089
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/UpdateControlPanel AWS API Documentation
1090
+ #
1091
+ # @overload update_control_panel(params = {})
1092
+ # @param [Hash] params ({})
1093
+ def update_control_panel(params = {}, options = {})
1094
+ req = build_request(:update_control_panel, params)
1095
+ req.send_request(options)
1096
+ end
1097
+
1098
+ # Updates a routing control. You can only update the name of the routing
1099
+ # control. To get or update the routing control state, see the Recovery
1100
+ # Cluster (data plane) API actions for Amazon Route 53 Application
1101
+ # Recovery Controller.
1102
+ #
1103
+ # @option params [required, String] :routing_control_arn
1104
+ # The Amazon Resource Name (ARN) of the routing control.
1105
+ #
1106
+ # @option params [required, String] :routing_control_name
1107
+ # The name of the routing control.
1108
+ #
1109
+ # @return [Types::UpdateRoutingControlResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1110
+ #
1111
+ # * {Types::UpdateRoutingControlResponse#routing_control #routing_control} => Types::RoutingControl
1112
+ #
1113
+ # @example Request syntax with placeholder values
1114
+ #
1115
+ # resp = client.update_routing_control({
1116
+ # routing_control_arn: "__string", # required
1117
+ # routing_control_name: "__stringMin1Max64PatternS", # required
1118
+ # })
1119
+ #
1120
+ # @example Response structure
1121
+ #
1122
+ # resp.routing_control.control_panel_arn #=> String
1123
+ # resp.routing_control.name #=> String
1124
+ # resp.routing_control.routing_control_arn #=> String
1125
+ # resp.routing_control.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
1126
+ #
1127
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/UpdateRoutingControl AWS API Documentation
1128
+ #
1129
+ # @overload update_routing_control(params = {})
1130
+ # @param [Hash] params ({})
1131
+ def update_routing_control(params = {}, options = {})
1132
+ req = build_request(:update_routing_control, params)
1133
+ req.send_request(options)
1134
+ end
1135
+
1136
+ # Update a safety rule (an assertion rule or gating rule) for the
1137
+ # routing controls in a control panel. You can only update the name and
1138
+ # the waiting period for a safety rule. To make other updates, delete
1139
+ # the safety rule and create a new safety rule.
1140
+ #
1141
+ # @option params [Types::AssertionRuleUpdate] :assertion_rule_update
1142
+ # An update to an assertion rule. You can update the name or the
1143
+ # evaluation period (wait period). If you don't specify one of the
1144
+ # items to update, the item is unchanged.
1145
+ #
1146
+ # @option params [Types::GatingRuleUpdate] :gating_rule_update
1147
+ # Update to a gating rule. You can update the name or the evaluation
1148
+ # period (wait period). If you don't specify one of the items to
1149
+ # update, the item is unchanged.
1150
+ #
1151
+ # @return [Types::UpdateSafetyRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1152
+ #
1153
+ # * {Types::UpdateSafetyRuleResponse#assertion_rule #assertion_rule} => Types::AssertionRule
1154
+ # * {Types::UpdateSafetyRuleResponse#gating_rule #gating_rule} => Types::GatingRule
1155
+ #
1156
+ # @example Request syntax with placeholder values
1157
+ #
1158
+ # resp = client.update_safety_rule({
1159
+ # assertion_rule_update: {
1160
+ # name: "__stringMin1Max64PatternS", # required
1161
+ # safety_rule_arn: "__string", # required
1162
+ # wait_period_ms: 1, # required
1163
+ # },
1164
+ # gating_rule_update: {
1165
+ # name: "__stringMin1Max64PatternS", # required
1166
+ # safety_rule_arn: "__string", # required
1167
+ # wait_period_ms: 1, # required
1168
+ # },
1169
+ # })
1170
+ #
1171
+ # @example Response structure
1172
+ #
1173
+ # resp.assertion_rule.asserted_controls #=> Array
1174
+ # resp.assertion_rule.asserted_controls[0] #=> String
1175
+ # resp.assertion_rule.control_panel_arn #=> String
1176
+ # resp.assertion_rule.name #=> String
1177
+ # resp.assertion_rule.rule_config.inverted #=> Boolean
1178
+ # resp.assertion_rule.rule_config.threshold #=> Integer
1179
+ # resp.assertion_rule.rule_config.type #=> String, one of "ATLEAST", "AND", "OR"
1180
+ # resp.assertion_rule.safety_rule_arn #=> String
1181
+ # resp.assertion_rule.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
1182
+ # resp.assertion_rule.wait_period_ms #=> Integer
1183
+ # resp.gating_rule.control_panel_arn #=> String
1184
+ # resp.gating_rule.gating_controls #=> Array
1185
+ # resp.gating_rule.gating_controls[0] #=> String
1186
+ # resp.gating_rule.name #=> String
1187
+ # resp.gating_rule.rule_config.inverted #=> Boolean
1188
+ # resp.gating_rule.rule_config.threshold #=> Integer
1189
+ # resp.gating_rule.rule_config.type #=> String, one of "ATLEAST", "AND", "OR"
1190
+ # resp.gating_rule.safety_rule_arn #=> String
1191
+ # resp.gating_rule.status #=> String, one of "PENDING", "DEPLOYED", "PENDING_DELETION"
1192
+ # resp.gating_rule.target_controls #=> Array
1193
+ # resp.gating_rule.target_controls[0] #=> String
1194
+ # resp.gating_rule.wait_period_ms #=> Integer
1195
+ #
1196
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-control-config-2020-11-02/UpdateSafetyRule AWS API Documentation
1197
+ #
1198
+ # @overload update_safety_rule(params = {})
1199
+ # @param [Hash] params ({})
1200
+ def update_safety_rule(params = {}, options = {})
1201
+ req = build_request(:update_safety_rule, params)
1202
+ req.send_request(options)
1203
+ end
1204
+
1205
+ # @!endgroup
1206
+
1207
+ # @param params ({})
1208
+ # @api private
1209
+ def build_request(operation_name, params = {})
1210
+ handlers = @handlers.for(operation_name)
1211
+ context = Seahorse::Client::RequestContext.new(
1212
+ operation_name: operation_name,
1213
+ operation: config.api.operation(operation_name),
1214
+ client: self,
1215
+ params: params,
1216
+ config: config)
1217
+ context[:gem_name] = 'aws-sdk-route53recoverycontrolconfig'
1218
+ context[:gem_version] = '1.0.0'
1219
+ Seahorse::Client::Request.new(handlers, context)
1220
+ end
1221
+
1222
+ # Polls an API operation until a resource enters a desired state.
1223
+ #
1224
+ # ## Basic Usage
1225
+ #
1226
+ # A waiter will call an API operation until:
1227
+ #
1228
+ # * It is successful
1229
+ # * It enters a terminal state
1230
+ # * It makes the maximum number of attempts
1231
+ #
1232
+ # In between attempts, the waiter will sleep.
1233
+ #
1234
+ # # polls in a loop, sleeping between attempts
1235
+ # client.wait_until(waiter_name, params)
1236
+ #
1237
+ # ## Configuration
1238
+ #
1239
+ # You can configure the maximum number of polling attempts, and the
1240
+ # delay (in seconds) between each polling attempt. You can pass
1241
+ # configuration as the final arguments hash.
1242
+ #
1243
+ # # poll for ~25 seconds
1244
+ # client.wait_until(waiter_name, params, {
1245
+ # max_attempts: 5,
1246
+ # delay: 5,
1247
+ # })
1248
+ #
1249
+ # ## Callbacks
1250
+ #
1251
+ # You can be notified before each polling attempt and before each
1252
+ # delay. If you throw `:success` or `:failure` from these callbacks,
1253
+ # it will terminate the waiter.
1254
+ #
1255
+ # started_at = Time.now
1256
+ # client.wait_until(waiter_name, params, {
1257
+ #
1258
+ # # disable max attempts
1259
+ # max_attempts: nil,
1260
+ #
1261
+ # # poll for 1 hour, instead of a number of attempts
1262
+ # before_wait: -> (attempts, response) do
1263
+ # throw :failure if Time.now - started_at > 3600
1264
+ # end
1265
+ # })
1266
+ #
1267
+ # ## Handling Errors
1268
+ #
1269
+ # When a waiter is unsuccessful, it will raise an error.
1270
+ # All of the failure errors extend from
1271
+ # {Aws::Waiters::Errors::WaiterFailed}.
1272
+ #
1273
+ # begin
1274
+ # client.wait_until(...)
1275
+ # rescue Aws::Waiters::Errors::WaiterFailed
1276
+ # # resource did not enter the desired state in time
1277
+ # end
1278
+ #
1279
+ # ## Valid Waiters
1280
+ #
1281
+ # The following table lists the valid waiter names, the operations they call,
1282
+ # and the default `:delay` and `:max_attempts` values.
1283
+ #
1284
+ # | waiter_name | params | :delay | :max_attempts |
1285
+ # | ----------------------- | --------------------------------- | -------- | ------------- |
1286
+ # | cluster_created | {Client#describe_cluster} | 5 | 26 |
1287
+ # | cluster_deleted | {Client#describe_cluster} | 5 | 26 |
1288
+ # | control_panel_created | {Client#describe_control_panel} | 5 | 26 |
1289
+ # | control_panel_deleted | {Client#describe_control_panel} | 5 | 26 |
1290
+ # | routing_control_created | {Client#describe_routing_control} | 5 | 26 |
1291
+ # | routing_control_deleted | {Client#describe_routing_control} | 5 | 26 |
1292
+ #
1293
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
1294
+ # because the waiter has entered a state that it will not transition
1295
+ # out of, preventing success.
1296
+ #
1297
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
1298
+ # maximum number of attempts have been made, and the waiter is not
1299
+ # yet successful.
1300
+ #
1301
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
1302
+ # while polling for a resource that is not expected.
1303
+ #
1304
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
1305
+ # for an unknown state.
1306
+ #
1307
+ # @return [Boolean] Returns `true` if the waiter was successful.
1308
+ # @param [Symbol] waiter_name
1309
+ # @param [Hash] params ({})
1310
+ # @param [Hash] options ({})
1311
+ # @option options [Integer] :max_attempts
1312
+ # @option options [Integer] :delay
1313
+ # @option options [Proc] :before_attempt
1314
+ # @option options [Proc] :before_wait
1315
+ def wait_until(waiter_name, params = {}, options = {})
1316
+ w = waiter(waiter_name, options)
1317
+ yield(w.waiter) if block_given? # deprecated
1318
+ w.wait(params)
1319
+ end
1320
+
1321
+ # @api private
1322
+ # @deprecated
1323
+ def waiter_names
1324
+ waiters.keys
1325
+ end
1326
+
1327
+ private
1328
+
1329
+ # @param [Symbol] waiter_name
1330
+ # @param [Hash] options ({})
1331
+ def waiter(waiter_name, options = {})
1332
+ waiter_class = waiters[waiter_name]
1333
+ if waiter_class
1334
+ waiter_class.new(options.merge(client: self))
1335
+ else
1336
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
1337
+ end
1338
+ end
1339
+
1340
+ def waiters
1341
+ {
1342
+ cluster_created: Waiters::ClusterCreated,
1343
+ cluster_deleted: Waiters::ClusterDeleted,
1344
+ control_panel_created: Waiters::ControlPanelCreated,
1345
+ control_panel_deleted: Waiters::ControlPanelDeleted,
1346
+ routing_control_created: Waiters::RoutingControlCreated,
1347
+ routing_control_deleted: Waiters::RoutingControlDeleted
1348
+ }
1349
+ end
1350
+
1351
+ class << self
1352
+
1353
+ # @api private
1354
+ attr_reader :identifier
1355
+
1356
+ # @api private
1357
+ def errors_module
1358
+ Errors
1359
+ end
1360
+
1361
+ end
1362
+ end
1363
+ end