aws-sdk-arcregionswitch 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.
@@ -0,0 +1,2461 @@
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'
11
+ require 'aws-sdk-core/plugins/credentials_configuration'
12
+ require 'aws-sdk-core/plugins/logging'
13
+ require 'aws-sdk-core/plugins/param_converter'
14
+ require 'aws-sdk-core/plugins/param_validator'
15
+ require 'aws-sdk-core/plugins/user_agent'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors'
17
+ require 'aws-sdk-core/plugins/retry_errors'
18
+ require 'aws-sdk-core/plugins/global_configuration'
19
+ require 'aws-sdk-core/plugins/regional_endpoint'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern'
22
+ require 'aws-sdk-core/plugins/response_paging'
23
+ require 'aws-sdk-core/plugins/stub_responses'
24
+ require 'aws-sdk-core/plugins/idempotency_token'
25
+ require 'aws-sdk-core/plugins/invocation_id'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin'
29
+ require 'aws-sdk-core/plugins/transfer_encoding'
30
+ require 'aws-sdk-core/plugins/http_checksum'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm'
32
+ require 'aws-sdk-core/plugins/request_compression'
33
+ require 'aws-sdk-core/plugins/defaults_mode'
34
+ require 'aws-sdk-core/plugins/recursion_detection'
35
+ require 'aws-sdk-core/plugins/telemetry'
36
+ require 'aws-sdk-core/plugins/sign'
37
+ require 'aws-sdk-core/plugins/protocols/json_rpc'
38
+
39
+ module Aws::ARCRegionswitch
40
+ # An API client for ARCRegionswitch. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::ARCRegionswitch::Client.new(
43
+ # region: region_name,
44
+ # credentials: credentials,
45
+ # # ...
46
+ # )
47
+ #
48
+ # For details on configuring region and credentials see
49
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
50
+ #
51
+ # See {#initialize} for a full list of supported configuration options.
52
+ class Client < Seahorse::Client::Base
53
+
54
+ include Aws::ClientStubs
55
+
56
+ @identifier = :arcregionswitch
57
+
58
+ set_api(ClientApi::API)
59
+
60
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
61
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
62
+ add_plugin(Aws::Plugins::Logging)
63
+ add_plugin(Aws::Plugins::ParamConverter)
64
+ add_plugin(Aws::Plugins::ParamValidator)
65
+ add_plugin(Aws::Plugins::UserAgent)
66
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
67
+ add_plugin(Aws::Plugins::RetryErrors)
68
+ add_plugin(Aws::Plugins::GlobalConfiguration)
69
+ add_plugin(Aws::Plugins::RegionalEndpoint)
70
+ add_plugin(Aws::Plugins::EndpointDiscovery)
71
+ add_plugin(Aws::Plugins::EndpointPattern)
72
+ add_plugin(Aws::Plugins::ResponsePaging)
73
+ add_plugin(Aws::Plugins::StubResponses)
74
+ add_plugin(Aws::Plugins::IdempotencyToken)
75
+ add_plugin(Aws::Plugins::InvocationId)
76
+ add_plugin(Aws::Plugins::JsonvalueConverter)
77
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
78
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
79
+ add_plugin(Aws::Plugins::TransferEncoding)
80
+ add_plugin(Aws::Plugins::HttpChecksum)
81
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
82
+ add_plugin(Aws::Plugins::RequestCompression)
83
+ add_plugin(Aws::Plugins::DefaultsMode)
84
+ add_plugin(Aws::Plugins::RecursionDetection)
85
+ add_plugin(Aws::Plugins::Telemetry)
86
+ add_plugin(Aws::Plugins::Sign)
87
+ add_plugin(Aws::Plugins::Protocols::JsonRpc)
88
+ add_plugin(Aws::ARCRegionswitch::Plugins::Endpoints)
89
+
90
+ # @overload initialize(options)
91
+ # @param [Hash] options
92
+ #
93
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
94
+ # A list of plugins to apply to the client. Each plugin is either a
95
+ # class name or an instance of a plugin class.
96
+ #
97
+ # @option options [required, Aws::CredentialProvider] :credentials
98
+ # Your AWS credentials used for authentication. This can be an instance of any one of the
99
+ # following classes:
100
+ #
101
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
102
+ # credentials.
103
+ #
104
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
105
+ # shared file, such as `~/.aws/config`.
106
+ #
107
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ #
109
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
110
+ # assume a role after providing credentials via the web.
111
+ #
112
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
113
+ # access token generated from `aws login`.
114
+ #
115
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
116
+ # process that outputs to stdout.
117
+ #
118
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
119
+ # from an EC2 IMDS on an EC2 instance.
120
+ #
121
+ # * `Aws::ECSCredentials` - Used for loading credentials from
122
+ # instances running in ECS.
123
+ #
124
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
125
+ # from the Cognito Identity service.
126
+ #
127
+ # When `:credentials` are not configured directly, the following
128
+ # locations will be searched for credentials:
129
+ #
130
+ # * `Aws.config[:credentials]`
131
+ #
132
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
133
+ # `:account_id` options.
134
+ #
135
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
136
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
137
+ #
138
+ # * `~/.aws/credentials`
139
+ #
140
+ # * `~/.aws/config`
141
+ #
142
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
143
+ # are very aggressive. Construct and pass an instance of
144
+ # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
145
+ # enable retries and extended timeouts. Instance profile credential
146
+ # fetching can be disabled by setting `ENV['AWS_EC2_METADATA_DISABLED']`
147
+ # to `true`.
148
+ #
149
+ # @option options [required, String] :region
150
+ # The AWS region to connect to. The configured `:region` is
151
+ # used to determine the service `:endpoint`. When not passed,
152
+ # a default `:region` is searched for in the following locations:
153
+ #
154
+ # * `Aws.config[:region]`
155
+ # * `ENV['AWS_REGION']`
156
+ # * `ENV['AMAZON_REGION']`
157
+ # * `ENV['AWS_DEFAULT_REGION']`
158
+ # * `~/.aws/credentials`
159
+ # * `~/.aws/config`
160
+ #
161
+ # @option options [String] :access_key_id
162
+ #
163
+ # @option options [String] :account_id
164
+ #
165
+ # @option options [Boolean] :active_endpoint_cache (false)
166
+ # When set to `true`, a thread polling for endpoints will be running in
167
+ # the background every 60 secs (default). Defaults to `false`.
168
+ #
169
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
170
+ # Used only in `adaptive` retry mode. When true, the request will sleep
171
+ # until there is sufficent client side capacity to retry the request.
172
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
173
+ # not retry instead of sleeping.
174
+ #
175
+ # @option options [Array<String>] :auth_scheme_preference
176
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
177
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
178
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
179
+ #
180
+ # @option options [Boolean] :client_side_monitoring (false)
181
+ # When `true`, client-side metrics will be collected for all API requests from
182
+ # this client.
183
+ #
184
+ # @option options [String] :client_side_monitoring_client_id ("")
185
+ # Allows you to provide an identifier for this client which will be attached to
186
+ # all generated client side metrics. Defaults to an empty string.
187
+ #
188
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
189
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
190
+ # side monitoring agent is running on, where client metrics will be published via UDP.
191
+ #
192
+ # @option options [Integer] :client_side_monitoring_port (31000)
193
+ # Required for publishing client metrics. The port that the client side monitoring
194
+ # agent is running on, where client metrics will be published via UDP.
195
+ #
196
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
197
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
198
+ # will use the Client Side Monitoring Agent Publisher.
199
+ #
200
+ # @option options [Boolean] :convert_params (true)
201
+ # When `true`, an attempt is made to coerce request parameters into
202
+ # the required types.
203
+ #
204
+ # @option options [Boolean] :correct_clock_skew (true)
205
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
206
+ # a clock skew correction and retry requests with skewed client clocks.
207
+ #
208
+ # @option options [String] :defaults_mode ("legacy")
209
+ # See {Aws::DefaultsModeConfiguration} for a list of the
210
+ # accepted modes and the configuration defaults that are included.
211
+ #
212
+ # @option options [Boolean] :disable_host_prefix_injection (false)
213
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
214
+ #
215
+ # @option options [Boolean] :disable_request_compression (false)
216
+ # When set to 'true' the request body will not be compressed
217
+ # for supported operations.
218
+ #
219
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
220
+ # Normally you should not configure the `:endpoint` option
221
+ # directly. This is normally constructed from the `:region`
222
+ # option. Configuring `:endpoint` is normally reserved for
223
+ # connecting to test or custom endpoints. The endpoint should
224
+ # be a URI formatted like:
225
+ #
226
+ # 'http://example.com'
227
+ # 'https://example.com'
228
+ # 'http://example.com:123'
229
+ #
230
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
231
+ # Used for the maximum size limit of the LRU cache storing endpoints data
232
+ # for endpoint discovery enabled operations. Defaults to 1000.
233
+ #
234
+ # @option options [Integer] :endpoint_cache_max_threads (10)
235
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
236
+ #
237
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
238
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
239
+ # Use this option to config the time interval in seconds for making
240
+ # requests fetching endpoints information. Defaults to 60 sec.
241
+ #
242
+ # @option options [Boolean] :endpoint_discovery (false)
243
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
244
+ #
245
+ # @option options [Boolean] :ignore_configured_endpoint_urls
246
+ # Setting to true disables use of endpoint URLs provided via environment
247
+ # variables and the shared configuration file.
248
+ #
249
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
250
+ # The log formatter.
251
+ #
252
+ # @option options [Symbol] :log_level (:info)
253
+ # The log level to send messages to the `:logger` at.
254
+ #
255
+ # @option options [Logger] :logger
256
+ # The Logger instance to send log messages to. If this option
257
+ # is not set, logging will be disabled.
258
+ #
259
+ # @option options [Integer] :max_attempts (3)
260
+ # An integer representing the maximum number attempts that will be made for
261
+ # a single request, including the initial attempt. For example,
262
+ # setting this value to 5 will result in a request being retried up to
263
+ # 4 times. Used in `standard` and `adaptive` retry modes.
264
+ #
265
+ # @option options [String] :profile ("default")
266
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
267
+ # When not specified, 'default' is used.
268
+ #
269
+ # @option options [String] :request_checksum_calculation ("when_supported")
270
+ # Determines when a checksum will be calculated for request payloads. Values are:
271
+ #
272
+ # * `when_supported` - (default) When set, a checksum will be
273
+ # calculated for all request payloads of operations modeled with the
274
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
275
+ # `requestAlgorithmMember` is modeled.
276
+ # * `when_required` - When set, a checksum will only be calculated for
277
+ # request payloads of operations modeled with the `httpChecksum` trait where
278
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
279
+ # is modeled and supplied.
280
+ #
281
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
282
+ # The minimum size in bytes that triggers compression for request
283
+ # bodies. The value must be non-negative integer value between 0
284
+ # and 10485780 bytes inclusive.
285
+ #
286
+ # @option options [String] :response_checksum_validation ("when_supported")
287
+ # Determines when checksum validation will be performed on response payloads. Values are:
288
+ #
289
+ # * `when_supported` - (default) When set, checksum validation is performed on all
290
+ # response payloads of operations modeled with the `httpChecksum` trait where
291
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
292
+ # are supported.
293
+ # * `when_required` - When set, checksum validation is not performed on
294
+ # response payloads of operations unless the checksum algorithm is supported and
295
+ # the `requestValidationModeMember` member is set to `ENABLED`.
296
+ #
297
+ # @option options [Proc] :retry_backoff
298
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
299
+ # This option is only used in the `legacy` retry mode.
300
+ #
301
+ # @option options [Float] :retry_base_delay (0.3)
302
+ # The base delay in seconds used by the default backoff function. This option
303
+ # is only used in the `legacy` retry mode.
304
+ #
305
+ # @option options [Symbol] :retry_jitter (:none)
306
+ # A delay randomiser function used by the default backoff function.
307
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
308
+ # otherwise a Proc that takes and returns a number. This option is only used
309
+ # in the `legacy` retry mode.
310
+ #
311
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
312
+ #
313
+ # @option options [Integer] :retry_limit (3)
314
+ # The maximum number of times to retry failed requests. Only
315
+ # ~ 500 level server errors and certain ~ 400 level client errors
316
+ # are retried. Generally, these are throttling errors, data
317
+ # checksum errors, networking errors, timeout errors, auth errors,
318
+ # endpoint discovery, and errors from expired credentials.
319
+ # This option is only used in the `legacy` retry mode.
320
+ #
321
+ # @option options [Integer] :retry_max_delay (0)
322
+ # The maximum number of seconds to delay between retries (0 for no limit)
323
+ # used by the default backoff function. This option is only used in the
324
+ # `legacy` retry mode.
325
+ #
326
+ # @option options [String] :retry_mode ("legacy")
327
+ # Specifies which retry algorithm to use. Values are:
328
+ #
329
+ # * `legacy` - The pre-existing retry behavior. This is default value if
330
+ # no retry mode is provided.
331
+ #
332
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
333
+ # This includes support for retry quotas, which limit the number of
334
+ # unsuccessful retries a client can make.
335
+ #
336
+ # * `adaptive` - An experimental retry mode that includes all the
337
+ # functionality of `standard` mode along with automatic client side
338
+ # throttling. This is a provisional mode that may change behavior
339
+ # in the future.
340
+ #
341
+ # @option options [String] :sdk_ua_app_id
342
+ # A unique and opaque application ID that is appended to the
343
+ # User-Agent header as app/sdk_ua_app_id. It should have a
344
+ # maximum length of 50. This variable is sourced from environment
345
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
346
+ #
347
+ # @option options [String] :secret_access_key
348
+ #
349
+ # @option options [String] :session_token
350
+ #
351
+ # @option options [Array] :sigv4a_signing_region_set
352
+ # A list of regions that should be signed with SigV4a signing. When
353
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
354
+ # in the following locations:
355
+ #
356
+ # * `Aws.config[:sigv4a_signing_region_set]`
357
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
358
+ # * `~/.aws/config`
359
+ #
360
+ # @option options [Boolean] :simple_json (false)
361
+ # Disables request parameter conversion, validation, and formatting.
362
+ # Also disables response data type conversions. The request parameters
363
+ # hash must be formatted exactly as the API expects.This option is useful
364
+ # when you want to ensure the highest level of performance by avoiding
365
+ # overhead of walking request parameters and response data structures.
366
+ #
367
+ # @option options [Boolean] :stub_responses (false)
368
+ # Causes the client to return stubbed responses. By default
369
+ # fake responses are generated and returned. You can specify
370
+ # the response data to return or errors to raise by calling
371
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
372
+ #
373
+ # ** Please note ** When response stubbing is enabled, no HTTP
374
+ # requests are made, and retries are disabled.
375
+ #
376
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
377
+ # Allows you to provide a telemetry provider, which is used to
378
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
379
+ # will not record or emit any telemetry data. The SDK supports the
380
+ # following telemetry providers:
381
+ #
382
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
383
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
384
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
385
+ #
386
+ # @option options [Aws::TokenProvider] :token_provider
387
+ # Your Bearer token used for authentication. This can be an instance of any one of the
388
+ # following classes:
389
+ #
390
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
391
+ # tokens.
392
+ #
393
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
394
+ # access token generated from `aws login`.
395
+ #
396
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
397
+ # will be used to search for tokens configured for your profile in shared configuration files.
398
+ #
399
+ # @option options [Boolean] :use_dualstack_endpoint
400
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
401
+ # will be used if available.
402
+ #
403
+ # @option options [Boolean] :use_fips_endpoint
404
+ # When set to `true`, fips compatible endpoints will be used if available.
405
+ # When a `fips` region is used, the region is normalized and this config
406
+ # is set to `true`.
407
+ #
408
+ # @option options [Boolean] :validate_params (true)
409
+ # When `true`, request parameters are validated before
410
+ # sending the request.
411
+ #
412
+ # @option options [Aws::ARCRegionswitch::EndpointProvider] :endpoint_provider
413
+ # The endpoint provider used to resolve endpoints. Any object that responds to
414
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
415
+ # `Aws::ARCRegionswitch::EndpointParameters`.
416
+ #
417
+ # @option options [Float] :http_continue_timeout (1)
418
+ # The number of seconds to wait for a 100-continue response before sending the
419
+ # request body. This option has no effect unless the request has "Expect"
420
+ # header set to "100-continue". Defaults to `nil` which disables this
421
+ # behaviour. This value can safely be set per request on the session.
422
+ #
423
+ # @option options [Float] :http_idle_timeout (5)
424
+ # The number of seconds a connection is allowed to sit idle before it
425
+ # is considered stale. Stale connections are closed and removed from the
426
+ # pool before making a request.
427
+ #
428
+ # @option options [Float] :http_open_timeout (15)
429
+ # The default number of seconds to wait for response data.
430
+ # This value can safely be set per-request on the session.
431
+ #
432
+ # @option options [URI::HTTP,String] :http_proxy
433
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
434
+ #
435
+ # @option options [Float] :http_read_timeout (60)
436
+ # The default number of seconds to wait for response data.
437
+ # This value can safely be set per-request on the session.
438
+ #
439
+ # @option options [Boolean] :http_wire_trace (false)
440
+ # When `true`, HTTP debug output will be sent to the `:logger`.
441
+ #
442
+ # @option options [Proc] :on_chunk_received
443
+ # When a Proc object is provided, it will be used as callback when each chunk
444
+ # of the response body is received. It provides three arguments: the chunk,
445
+ # the number of bytes received, and the total number of
446
+ # bytes in the response (or nil if the server did not send a `content-length`).
447
+ #
448
+ # @option options [Proc] :on_chunk_sent
449
+ # When a Proc object is provided, it will be used as callback when each chunk
450
+ # of the request body is sent. It provides three arguments: the chunk,
451
+ # the number of bytes read from the body, and the total number of
452
+ # bytes in the body.
453
+ #
454
+ # @option options [Boolean] :raise_response_errors (true)
455
+ # When `true`, response errors are raised.
456
+ #
457
+ # @option options [String] :ssl_ca_bundle
458
+ # Full path to the SSL certificate authority bundle file that should be used when
459
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
460
+ # `:ssl_ca_directory` the the system default will be used if available.
461
+ #
462
+ # @option options [String] :ssl_ca_directory
463
+ # Full path of the directory that contains the unbundled SSL certificate
464
+ # authority files for verifying peer certificates. If you do
465
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
466
+ # default will be used if available.
467
+ #
468
+ # @option options [String] :ssl_ca_store
469
+ # Sets the X509::Store to verify peer certificate.
470
+ #
471
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
472
+ # Sets a client certificate when creating http connections.
473
+ #
474
+ # @option options [OpenSSL::PKey] :ssl_key
475
+ # Sets a client key when creating http connections.
476
+ #
477
+ # @option options [Float] :ssl_timeout
478
+ # Sets the SSL timeout in seconds
479
+ #
480
+ # @option options [Boolean] :ssl_verify_peer (true)
481
+ # When `true`, SSL peer certificates are verified when establishing a connection.
482
+ #
483
+ def initialize(*args)
484
+ super
485
+ end
486
+
487
+ # @!group API Operations
488
+
489
+ # Approves a step in a plan execution that requires manual approval.
490
+ # When you create a plan, you can include approval steps that require
491
+ # manual intervention before the execution can proceed. This operation
492
+ # allows you to provide that approval.
493
+ #
494
+ # You must specify the plan ARN, execution ID, step name, and approval
495
+ # status. You can also provide an optional comment explaining the
496
+ # approval decision.
497
+ #
498
+ # @option params [required, String] :plan_arn
499
+ # The Amazon Resource Name (ARN) of the plan.
500
+ #
501
+ # @option params [required, String] :execution_id
502
+ # The execution identifier of a plan execution.
503
+ #
504
+ # @option params [required, String] :step_name
505
+ # The name of a step in a plan execution.
506
+ #
507
+ # @option params [required, String] :approval
508
+ # The status of approval for a plan execution step.
509
+ #
510
+ # @option params [String] :comment
511
+ # A comment that you can enter about a plan execution.
512
+ #
513
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
514
+ #
515
+ # @example Request syntax with placeholder values
516
+ #
517
+ # resp = client.approve_plan_execution_step({
518
+ # plan_arn: "PlanArn", # required
519
+ # execution_id: "ExecutionId", # required
520
+ # step_name: "StepName", # required
521
+ # approval: "approve", # required, accepts approve, decline
522
+ # comment: "ExecutionComment",
523
+ # })
524
+ #
525
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/ApprovePlanExecutionStep AWS API Documentation
526
+ #
527
+ # @overload approve_plan_execution_step(params = {})
528
+ # @param [Hash] params ({})
529
+ def approve_plan_execution_step(params = {}, options = {})
530
+ req = build_request(:approve_plan_execution_step, params)
531
+ req.send_request(options)
532
+ end
533
+
534
+ # Cancels an in-progress plan execution. This operation stops the
535
+ # execution of the plan and prevents any further steps from being
536
+ # processed.
537
+ #
538
+ # You must specify the plan ARN and execution ID. You can also provide
539
+ # an optional comment explaining why the execution was canceled.
540
+ #
541
+ # @option params [required, String] :plan_arn
542
+ # The Amazon Resource Name (ARN) of the plan.
543
+ #
544
+ # @option params [required, String] :execution_id
545
+ # The execution identifier of a plan execution.
546
+ #
547
+ # @option params [String] :comment
548
+ # A comment that you can enter about canceling a plan execution step.
549
+ #
550
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
551
+ #
552
+ # @example Request syntax with placeholder values
553
+ #
554
+ # resp = client.cancel_plan_execution({
555
+ # plan_arn: "PlanArn", # required
556
+ # execution_id: "ExecutionId", # required
557
+ # comment: "ExecutionComment",
558
+ # })
559
+ #
560
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/CancelPlanExecution AWS API Documentation
561
+ #
562
+ # @overload cancel_plan_execution(params = {})
563
+ # @param [Hash] params ({})
564
+ def cancel_plan_execution(params = {}, options = {})
565
+ req = build_request(:cancel_plan_execution, params)
566
+ req.send_request(options)
567
+ end
568
+
569
+ # Creates a new Region switch plan. A plan defines the steps required to
570
+ # shift traffic from one Amazon Web Services Region to another.
571
+ #
572
+ # You must specify a name for the plan, the primary Region, and at least
573
+ # one additional Region. You can also provide a description, execution
574
+ # role, recovery time objective, associated alarms, triggers, and
575
+ # workflows that define the steps to execute during a Region switch.
576
+ #
577
+ # @option params [String] :description
578
+ # The description of a Region switch plan.
579
+ #
580
+ # @option params [required, Array<Types::Workflow>] :workflows
581
+ # An array of workflows included in a Region switch plan.
582
+ #
583
+ # @option params [required, String] :execution_role
584
+ # An execution role is a way to categorize a Region switch plan.
585
+ #
586
+ # @option params [Integer] :recovery_time_objective_minutes
587
+ # Optionally, you can specify an recovery time objective for a Region
588
+ # switch plan, in minutes.
589
+ #
590
+ # @option params [Hash<String,Types::AssociatedAlarm>] :associated_alarms
591
+ # The alarms associated with a Region switch plan.
592
+ #
593
+ # @option params [Array<Types::Trigger>] :triggers
594
+ # The triggers associated with a Region switch plan.
595
+ #
596
+ # @option params [required, String] :name
597
+ # The name of a Region switch plan.
598
+ #
599
+ # @option params [required, Array<String>] :regions
600
+ # An array that specifies the Amazon Web Services Regions for a Region
601
+ # switch plan. Specify two Regions.
602
+ #
603
+ # @option params [required, String] :recovery_approach
604
+ # The recovery approach for a Region switch plan, which can be
605
+ # active/active (activeActive) or active/passive (activePassive).
606
+ #
607
+ # @option params [String] :primary_region
608
+ # The primary Amazon Web Services Region for the application. This is
609
+ # the Region where the application normally runs before any Region
610
+ # switch occurs.
611
+ #
612
+ # @option params [Hash<String,String>] :tags
613
+ # The tags to apply to the Region switch plan.
614
+ #
615
+ # @return [Types::CreatePlanResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
616
+ #
617
+ # * {Types::CreatePlanResponse#plan #plan} => Types::Plan
618
+ #
619
+ # @example Request syntax with placeholder values
620
+ #
621
+ # resp = client.create_plan({
622
+ # description: "String",
623
+ # workflows: [ # required
624
+ # {
625
+ # steps: [
626
+ # {
627
+ # name: "StepName", # required
628
+ # description: "String",
629
+ # execution_block_configuration: { # required
630
+ # custom_action_lambda_config: {
631
+ # timeout_minutes: 1,
632
+ # lambdas: [ # required
633
+ # {
634
+ # cross_account_role: "IamRoleArn",
635
+ # external_id: "String",
636
+ # arn: "LambdaArn",
637
+ # },
638
+ # ],
639
+ # retry_interval_minutes: 1.0, # required
640
+ # region_to_run: "activatingRegion", # required, accepts activatingRegion, deactivatingRegion
641
+ # ungraceful: {
642
+ # behavior: "skip", # accepts skip
643
+ # },
644
+ # },
645
+ # ec2_asg_capacity_increase_config: {
646
+ # timeout_minutes: 1,
647
+ # asgs: [ # required
648
+ # {
649
+ # cross_account_role: "IamRoleArn",
650
+ # external_id: "String",
651
+ # arn: "AsgArn",
652
+ # },
653
+ # ],
654
+ # ungraceful: {
655
+ # minimum_success_percentage: 1, # required
656
+ # },
657
+ # target_percent: 1,
658
+ # capacity_monitoring_approach: "sampledMaxInLast24Hours", # accepts sampledMaxInLast24Hours, autoscalingMaxInLast24Hours
659
+ # },
660
+ # execution_approval_config: {
661
+ # timeout_minutes: 1,
662
+ # approval_role: "RoleArn", # required
663
+ # },
664
+ # arc_routing_control_config: {
665
+ # timeout_minutes: 1,
666
+ # cross_account_role: "IamRoleArn",
667
+ # external_id: "String",
668
+ # region_and_routing_controls: { # required
669
+ # "String" => [
670
+ # {
671
+ # routing_control_arn: "RoutingControlArn", # required
672
+ # state: "On", # required, accepts On, Off
673
+ # },
674
+ # ],
675
+ # },
676
+ # },
677
+ # global_aurora_config: {
678
+ # timeout_minutes: 1,
679
+ # cross_account_role: "IamRoleArn",
680
+ # external_id: "String",
681
+ # behavior: "switchoverOnly", # required, accepts switchoverOnly, failover
682
+ # ungraceful: {
683
+ # ungraceful: "failover", # accepts failover
684
+ # },
685
+ # global_cluster_identifier: "GlobalClusterIdentifier", # required
686
+ # database_cluster_arns: ["AuroraClusterArn"], # required
687
+ # },
688
+ # parallel_config: {
689
+ # steps: { # required
690
+ # # recursive Steps
691
+ # },
692
+ # },
693
+ # region_switch_plan_config: {
694
+ # cross_account_role: "IamRoleArn",
695
+ # external_id: "String",
696
+ # arn: "PlanArn", # required
697
+ # },
698
+ # ecs_capacity_increase_config: {
699
+ # timeout_minutes: 1,
700
+ # services: [ # required
701
+ # {
702
+ # cross_account_role: "IamRoleArn",
703
+ # external_id: "String",
704
+ # cluster_arn: "EcsClusterArn",
705
+ # service_arn: "EcsServiceArn",
706
+ # },
707
+ # ],
708
+ # ungraceful: {
709
+ # minimum_success_percentage: 1, # required
710
+ # },
711
+ # target_percent: 1,
712
+ # capacity_monitoring_approach: "sampledMaxInLast24Hours", # accepts sampledMaxInLast24Hours, containerInsightsMaxInLast24Hours
713
+ # },
714
+ # eks_resource_scaling_config: {
715
+ # timeout_minutes: 1,
716
+ # kubernetes_resource_type: { # required
717
+ # api_version: "String", # required
718
+ # kind: "String", # required
719
+ # },
720
+ # scaling_resources: [
721
+ # {
722
+ # "String" => {
723
+ # "Region" => {
724
+ # namespace: "KubernetesNamespace", # required
725
+ # name: "String", # required
726
+ # hpa_name: "String",
727
+ # },
728
+ # },
729
+ # },
730
+ # ],
731
+ # eks_clusters: [
732
+ # {
733
+ # cross_account_role: "IamRoleArn",
734
+ # external_id: "String",
735
+ # cluster_arn: "EksClusterArn", # required
736
+ # },
737
+ # ],
738
+ # ungraceful: {
739
+ # minimum_success_percentage: 1, # required
740
+ # },
741
+ # target_percent: 1,
742
+ # capacity_monitoring_approach: "sampledMaxInLast24Hours", # accepts sampledMaxInLast24Hours
743
+ # },
744
+ # route53_health_check_config: {
745
+ # timeout_minutes: 1,
746
+ # cross_account_role: "IamRoleArn",
747
+ # external_id: "String",
748
+ # hosted_zone_id: "Route53HostedZoneId", # required
749
+ # record_name: "Route53RecordName", # required
750
+ # record_sets: [
751
+ # {
752
+ # record_set_identifier: "Route53ResourceRecordSetIdentifier",
753
+ # region: "Region",
754
+ # },
755
+ # ],
756
+ # },
757
+ # },
758
+ # execution_block_type: "CustomActionLambda", # required, accepts CustomActionLambda, ManualApproval, AuroraGlobalDatabase, EC2AutoScaling, ARCRoutingControl, ARCRegionSwitchPlan, Parallel, ECSServiceScaling, EKSResourceScaling, Route53HealthCheck
759
+ # },
760
+ # ],
761
+ # workflow_target_action: "activate", # required, accepts activate, deactivate
762
+ # workflow_target_region: "Region",
763
+ # workflow_description: "String",
764
+ # },
765
+ # ],
766
+ # execution_role: "IamRoleArn", # required
767
+ # recovery_time_objective_minutes: 1,
768
+ # associated_alarms: {
769
+ # "String" => {
770
+ # cross_account_role: "IamRoleArn",
771
+ # external_id: "String",
772
+ # resource_identifier: "String", # required
773
+ # alarm_type: "applicationHealth", # required, accepts applicationHealth, trigger
774
+ # },
775
+ # },
776
+ # triggers: [
777
+ # {
778
+ # description: "String",
779
+ # target_region: "Region", # required
780
+ # action: "activate", # required, accepts activate, deactivate
781
+ # conditions: [ # required
782
+ # {
783
+ # associated_alarm_name: "String", # required
784
+ # condition: "red", # required, accepts red, green
785
+ # },
786
+ # ],
787
+ # min_delay_minutes_between_executions: 1, # required
788
+ # },
789
+ # ],
790
+ # name: "PlanName", # required
791
+ # regions: ["Region"], # required
792
+ # recovery_approach: "activeActive", # required, accepts activeActive, activePassive
793
+ # primary_region: "Region",
794
+ # tags: {
795
+ # "TagKey" => "TagValue",
796
+ # },
797
+ # })
798
+ #
799
+ # @example Response structure
800
+ #
801
+ # resp.plan.arn #=> String
802
+ # resp.plan.description #=> String
803
+ # resp.plan.workflows #=> Array
804
+ # resp.plan.workflows[0].steps #=> Array
805
+ # resp.plan.workflows[0].steps[0].name #=> String
806
+ # resp.plan.workflows[0].steps[0].description #=> String
807
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.timeout_minutes #=> Integer
808
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas #=> Array
809
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].cross_account_role #=> String
810
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].external_id #=> String
811
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].arn #=> String
812
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.retry_interval_minutes #=> Float
813
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.region_to_run #=> String, one of "activatingRegion", "deactivatingRegion"
814
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.ungraceful.behavior #=> String, one of "skip"
815
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.timeout_minutes #=> Integer
816
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs #=> Array
817
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].cross_account_role #=> String
818
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].external_id #=> String
819
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].arn #=> String
820
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.ungraceful.minimum_success_percentage #=> Integer
821
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.target_percent #=> Integer
822
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours", "autoscalingMaxInLast24Hours"
823
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.execution_approval_config.timeout_minutes #=> Integer
824
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.execution_approval_config.approval_role #=> String
825
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.timeout_minutes #=> Integer
826
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.cross_account_role #=> String
827
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.external_id #=> String
828
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls #=> Hash
829
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"] #=> Array
830
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"][0].routing_control_arn #=> String
831
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"][0].state #=> String, one of "On", "Off"
832
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.timeout_minutes #=> Integer
833
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.cross_account_role #=> String
834
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.external_id #=> String
835
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.behavior #=> String, one of "switchoverOnly", "failover"
836
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.ungraceful.ungraceful #=> String, one of "failover"
837
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.global_cluster_identifier #=> String
838
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.database_cluster_arns #=> Array
839
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.database_cluster_arns[0] #=> String
840
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.parallel_config.steps #=> Types::Steps
841
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.cross_account_role #=> String
842
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.external_id #=> String
843
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.arn #=> String
844
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.timeout_minutes #=> Integer
845
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services #=> Array
846
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].cross_account_role #=> String
847
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].external_id #=> String
848
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].cluster_arn #=> String
849
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].service_arn #=> String
850
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.ungraceful.minimum_success_percentage #=> Integer
851
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.target_percent #=> Integer
852
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours", "containerInsightsMaxInLast24Hours"
853
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.timeout_minutes #=> Integer
854
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.kubernetes_resource_type.api_version #=> String
855
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.kubernetes_resource_type.kind #=> String
856
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources #=> Array
857
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0] #=> Hash
858
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"] #=> Hash
859
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].namespace #=> String
860
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].name #=> String
861
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].hpa_name #=> String
862
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters #=> Array
863
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].cross_account_role #=> String
864
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].external_id #=> String
865
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].cluster_arn #=> String
866
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.ungraceful.minimum_success_percentage #=> Integer
867
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.target_percent #=> Integer
868
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours"
869
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.timeout_minutes #=> Integer
870
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.cross_account_role #=> String
871
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.external_id #=> String
872
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.hosted_zone_id #=> String
873
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_name #=> String
874
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets #=> Array
875
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets[0].record_set_identifier #=> String
876
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets[0].region #=> String
877
+ # resp.plan.workflows[0].steps[0].execution_block_type #=> String, one of "CustomActionLambda", "ManualApproval", "AuroraGlobalDatabase", "EC2AutoScaling", "ARCRoutingControl", "ARCRegionSwitchPlan", "Parallel", "ECSServiceScaling", "EKSResourceScaling", "Route53HealthCheck"
878
+ # resp.plan.workflows[0].workflow_target_action #=> String, one of "activate", "deactivate"
879
+ # resp.plan.workflows[0].workflow_target_region #=> String
880
+ # resp.plan.workflows[0].workflow_description #=> String
881
+ # resp.plan.execution_role #=> String
882
+ # resp.plan.recovery_time_objective_minutes #=> Integer
883
+ # resp.plan.associated_alarms #=> Hash
884
+ # resp.plan.associated_alarms["String"].cross_account_role #=> String
885
+ # resp.plan.associated_alarms["String"].external_id #=> String
886
+ # resp.plan.associated_alarms["String"].resource_identifier #=> String
887
+ # resp.plan.associated_alarms["String"].alarm_type #=> String, one of "applicationHealth", "trigger"
888
+ # resp.plan.triggers #=> Array
889
+ # resp.plan.triggers[0].description #=> String
890
+ # resp.plan.triggers[0].target_region #=> String
891
+ # resp.plan.triggers[0].action #=> String, one of "activate", "deactivate"
892
+ # resp.plan.triggers[0].conditions #=> Array
893
+ # resp.plan.triggers[0].conditions[0].associated_alarm_name #=> String
894
+ # resp.plan.triggers[0].conditions[0].condition #=> String, one of "red", "green"
895
+ # resp.plan.triggers[0].min_delay_minutes_between_executions #=> Integer
896
+ # resp.plan.name #=> String
897
+ # resp.plan.regions #=> Array
898
+ # resp.plan.regions[0] #=> String
899
+ # resp.plan.recovery_approach #=> String, one of "activeActive", "activePassive"
900
+ # resp.plan.primary_region #=> String
901
+ # resp.plan.owner #=> String
902
+ # resp.plan.version #=> String
903
+ # resp.plan.updated_at #=> Time
904
+ #
905
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/CreatePlan AWS API Documentation
906
+ #
907
+ # @overload create_plan(params = {})
908
+ # @param [Hash] params ({})
909
+ def create_plan(params = {}, options = {})
910
+ req = build_request(:create_plan, params)
911
+ req.send_request(options)
912
+ end
913
+
914
+ # Deletes a Region switch plan. You must specify the ARN of the plan to
915
+ # delete.
916
+ #
917
+ # You cannot delete a plan that has an active execution in progress.
918
+ #
919
+ # @option params [required, String] :arn
920
+ # The Amazon Resource Name (ARN) of the plan.
921
+ #
922
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
923
+ #
924
+ # @example Request syntax with placeholder values
925
+ #
926
+ # resp = client.delete_plan({
927
+ # arn: "PlanArn", # required
928
+ # })
929
+ #
930
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/DeletePlan AWS API Documentation
931
+ #
932
+ # @overload delete_plan(params = {})
933
+ # @param [Hash] params ({})
934
+ def delete_plan(params = {}, options = {})
935
+ req = build_request(:delete_plan, params)
936
+ req.send_request(options)
937
+ end
938
+
939
+ # Retrieves detailed information about a Region switch plan. You must
940
+ # specify the ARN of the plan.
941
+ #
942
+ # @option params [required, String] :arn
943
+ # The Amazon Resource Name (ARN) of the plan.
944
+ #
945
+ # @return [Types::GetPlanResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
946
+ #
947
+ # * {Types::GetPlanResponse#plan #plan} => Types::Plan
948
+ #
949
+ # @example Request syntax with placeholder values
950
+ #
951
+ # resp = client.get_plan({
952
+ # arn: "PlanArn", # required
953
+ # })
954
+ #
955
+ # @example Response structure
956
+ #
957
+ # resp.plan.arn #=> String
958
+ # resp.plan.description #=> String
959
+ # resp.plan.workflows #=> Array
960
+ # resp.plan.workflows[0].steps #=> Array
961
+ # resp.plan.workflows[0].steps[0].name #=> String
962
+ # resp.plan.workflows[0].steps[0].description #=> String
963
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.timeout_minutes #=> Integer
964
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas #=> Array
965
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].cross_account_role #=> String
966
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].external_id #=> String
967
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].arn #=> String
968
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.retry_interval_minutes #=> Float
969
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.region_to_run #=> String, one of "activatingRegion", "deactivatingRegion"
970
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.ungraceful.behavior #=> String, one of "skip"
971
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.timeout_minutes #=> Integer
972
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs #=> Array
973
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].cross_account_role #=> String
974
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].external_id #=> String
975
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].arn #=> String
976
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.ungraceful.minimum_success_percentage #=> Integer
977
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.target_percent #=> Integer
978
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours", "autoscalingMaxInLast24Hours"
979
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.execution_approval_config.timeout_minutes #=> Integer
980
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.execution_approval_config.approval_role #=> String
981
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.timeout_minutes #=> Integer
982
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.cross_account_role #=> String
983
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.external_id #=> String
984
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls #=> Hash
985
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"] #=> Array
986
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"][0].routing_control_arn #=> String
987
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"][0].state #=> String, one of "On", "Off"
988
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.timeout_minutes #=> Integer
989
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.cross_account_role #=> String
990
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.external_id #=> String
991
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.behavior #=> String, one of "switchoverOnly", "failover"
992
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.ungraceful.ungraceful #=> String, one of "failover"
993
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.global_cluster_identifier #=> String
994
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.database_cluster_arns #=> Array
995
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.database_cluster_arns[0] #=> String
996
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.parallel_config.steps #=> Types::Steps
997
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.cross_account_role #=> String
998
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.external_id #=> String
999
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.arn #=> String
1000
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.timeout_minutes #=> Integer
1001
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services #=> Array
1002
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].cross_account_role #=> String
1003
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].external_id #=> String
1004
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].cluster_arn #=> String
1005
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].service_arn #=> String
1006
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.ungraceful.minimum_success_percentage #=> Integer
1007
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.target_percent #=> Integer
1008
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours", "containerInsightsMaxInLast24Hours"
1009
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.timeout_minutes #=> Integer
1010
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.kubernetes_resource_type.api_version #=> String
1011
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.kubernetes_resource_type.kind #=> String
1012
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources #=> Array
1013
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0] #=> Hash
1014
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"] #=> Hash
1015
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].namespace #=> String
1016
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].name #=> String
1017
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].hpa_name #=> String
1018
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters #=> Array
1019
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].cross_account_role #=> String
1020
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].external_id #=> String
1021
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].cluster_arn #=> String
1022
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.ungraceful.minimum_success_percentage #=> Integer
1023
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.target_percent #=> Integer
1024
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours"
1025
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.timeout_minutes #=> Integer
1026
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.cross_account_role #=> String
1027
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.external_id #=> String
1028
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.hosted_zone_id #=> String
1029
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_name #=> String
1030
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets #=> Array
1031
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets[0].record_set_identifier #=> String
1032
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets[0].region #=> String
1033
+ # resp.plan.workflows[0].steps[0].execution_block_type #=> String, one of "CustomActionLambda", "ManualApproval", "AuroraGlobalDatabase", "EC2AutoScaling", "ARCRoutingControl", "ARCRegionSwitchPlan", "Parallel", "ECSServiceScaling", "EKSResourceScaling", "Route53HealthCheck"
1034
+ # resp.plan.workflows[0].workflow_target_action #=> String, one of "activate", "deactivate"
1035
+ # resp.plan.workflows[0].workflow_target_region #=> String
1036
+ # resp.plan.workflows[0].workflow_description #=> String
1037
+ # resp.plan.execution_role #=> String
1038
+ # resp.plan.recovery_time_objective_minutes #=> Integer
1039
+ # resp.plan.associated_alarms #=> Hash
1040
+ # resp.plan.associated_alarms["String"].cross_account_role #=> String
1041
+ # resp.plan.associated_alarms["String"].external_id #=> String
1042
+ # resp.plan.associated_alarms["String"].resource_identifier #=> String
1043
+ # resp.plan.associated_alarms["String"].alarm_type #=> String, one of "applicationHealth", "trigger"
1044
+ # resp.plan.triggers #=> Array
1045
+ # resp.plan.triggers[0].description #=> String
1046
+ # resp.plan.triggers[0].target_region #=> String
1047
+ # resp.plan.triggers[0].action #=> String, one of "activate", "deactivate"
1048
+ # resp.plan.triggers[0].conditions #=> Array
1049
+ # resp.plan.triggers[0].conditions[0].associated_alarm_name #=> String
1050
+ # resp.plan.triggers[0].conditions[0].condition #=> String, one of "red", "green"
1051
+ # resp.plan.triggers[0].min_delay_minutes_between_executions #=> Integer
1052
+ # resp.plan.name #=> String
1053
+ # resp.plan.regions #=> Array
1054
+ # resp.plan.regions[0] #=> String
1055
+ # resp.plan.recovery_approach #=> String, one of "activeActive", "activePassive"
1056
+ # resp.plan.primary_region #=> String
1057
+ # resp.plan.owner #=> String
1058
+ # resp.plan.version #=> String
1059
+ # resp.plan.updated_at #=> Time
1060
+ #
1061
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/GetPlan AWS API Documentation
1062
+ #
1063
+ # @overload get_plan(params = {})
1064
+ # @param [Hash] params ({})
1065
+ def get_plan(params = {}, options = {})
1066
+ req = build_request(:get_plan, params)
1067
+ req.send_request(options)
1068
+ end
1069
+
1070
+ # Retrieves the evaluation status of a Region switch plan. The
1071
+ # evaluation status provides information about the last time the plan
1072
+ # was evaluated and any warnings or issues detected.
1073
+ #
1074
+ # @option params [required, String] :plan_arn
1075
+ # The Amazon Resource Name (ARN) of the Region switch plan to retrieve
1076
+ # evaluation status for.
1077
+ #
1078
+ # @option params [Integer] :max_results
1079
+ # The number of objects that you want to return with this call.
1080
+ #
1081
+ # @option params [String] :next_token
1082
+ # Specifies that you want to receive the next page of results. Valid
1083
+ # only if you received a `nextToken` response in the previous request.
1084
+ # If you did, it indicates that more output is available. Set this
1085
+ # parameter to the value provided by the previous call's `nextToken`
1086
+ # response to request the next page of results.
1087
+ #
1088
+ # @return [Types::GetPlanEvaluationStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1089
+ #
1090
+ # * {Types::GetPlanEvaluationStatusResponse#plan_arn #plan_arn} => String
1091
+ # * {Types::GetPlanEvaluationStatusResponse#last_evaluation_time #last_evaluation_time} => Time
1092
+ # * {Types::GetPlanEvaluationStatusResponse#last_evaluated_version #last_evaluated_version} => String
1093
+ # * {Types::GetPlanEvaluationStatusResponse#region #region} => String
1094
+ # * {Types::GetPlanEvaluationStatusResponse#evaluation_state #evaluation_state} => String
1095
+ # * {Types::GetPlanEvaluationStatusResponse#warnings #warnings} => Array&lt;Types::ResourceWarning&gt;
1096
+ # * {Types::GetPlanEvaluationStatusResponse#next_token #next_token} => String
1097
+ #
1098
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1099
+ #
1100
+ # @example Request syntax with placeholder values
1101
+ #
1102
+ # resp = client.get_plan_evaluation_status({
1103
+ # plan_arn: "PlanArn", # required
1104
+ # max_results: 1,
1105
+ # next_token: "NextToken",
1106
+ # })
1107
+ #
1108
+ # @example Response structure
1109
+ #
1110
+ # resp.plan_arn #=> String
1111
+ # resp.last_evaluation_time #=> Time
1112
+ # resp.last_evaluated_version #=> String
1113
+ # resp.region #=> String
1114
+ # resp.evaluation_state #=> String, one of "passed", "actionRequired", "pendingEvaluation", "unknown"
1115
+ # resp.warnings #=> Array
1116
+ # resp.warnings[0].workflow.action #=> String, one of "activate", "deactivate"
1117
+ # resp.warnings[0].workflow.name #=> String
1118
+ # resp.warnings[0].version #=> String
1119
+ # resp.warnings[0].step_name #=> String
1120
+ # resp.warnings[0].resource_arn #=> String
1121
+ # resp.warnings[0].warning_status #=> String, one of "active", "resolved"
1122
+ # resp.warnings[0].warning_updated_time #=> Time
1123
+ # resp.warnings[0].warning_message #=> String
1124
+ # resp.next_token #=> String
1125
+ #
1126
+ #
1127
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1128
+ #
1129
+ # * plan_evaluation_status_passed
1130
+ #
1131
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/GetPlanEvaluationStatus AWS API Documentation
1132
+ #
1133
+ # @overload get_plan_evaluation_status(params = {})
1134
+ # @param [Hash] params ({})
1135
+ def get_plan_evaluation_status(params = {}, options = {})
1136
+ req = build_request(:get_plan_evaluation_status, params)
1137
+ req.send_request(options)
1138
+ end
1139
+
1140
+ # Retrieves detailed information about a specific plan execution. You
1141
+ # must specify the plan ARN and execution ID.
1142
+ #
1143
+ # @option params [required, String] :plan_arn
1144
+ # The Amazon Resource Name (ARN) of the plan with the execution to
1145
+ # retrieve.
1146
+ #
1147
+ # @option params [required, String] :execution_id
1148
+ # The execution identifier of a plan execution.
1149
+ #
1150
+ # @option params [Integer] :max_results
1151
+ # The number of objects that you want to return with this call.
1152
+ #
1153
+ # @option params [String] :next_token
1154
+ # Specifies that you want to receive the next page of results. Valid
1155
+ # only if you received a `nextToken` response in the previous request.
1156
+ # If you did, it indicates that more output is available. Set this
1157
+ # parameter to the value provided by the previous call's `nextToken`
1158
+ # response to request the next page of results.
1159
+ #
1160
+ # @return [Types::GetPlanExecutionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1161
+ #
1162
+ # * {Types::GetPlanExecutionResponse#plan_arn #plan_arn} => String
1163
+ # * {Types::GetPlanExecutionResponse#execution_id #execution_id} => String
1164
+ # * {Types::GetPlanExecutionResponse#version #version} => String
1165
+ # * {Types::GetPlanExecutionResponse#updated_at #updated_at} => Time
1166
+ # * {Types::GetPlanExecutionResponse#comment #comment} => String
1167
+ # * {Types::GetPlanExecutionResponse#start_time #start_time} => Time
1168
+ # * {Types::GetPlanExecutionResponse#end_time #end_time} => Time
1169
+ # * {Types::GetPlanExecutionResponse#mode #mode} => String
1170
+ # * {Types::GetPlanExecutionResponse#execution_state #execution_state} => String
1171
+ # * {Types::GetPlanExecutionResponse#execution_action #execution_action} => String
1172
+ # * {Types::GetPlanExecutionResponse#execution_region #execution_region} => String
1173
+ # * {Types::GetPlanExecutionResponse#step_states #step_states} => Array&lt;Types::StepState&gt;
1174
+ # * {Types::GetPlanExecutionResponse#plan #plan} => Types::Plan
1175
+ # * {Types::GetPlanExecutionResponse#actual_recovery_time #actual_recovery_time} => String
1176
+ # * {Types::GetPlanExecutionResponse#next_token #next_token} => String
1177
+ #
1178
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1179
+ #
1180
+ # @example Request syntax with placeholder values
1181
+ #
1182
+ # resp = client.get_plan_execution({
1183
+ # plan_arn: "PlanArn", # required
1184
+ # execution_id: "ExecutionId", # required
1185
+ # max_results: 1,
1186
+ # next_token: "String",
1187
+ # })
1188
+ #
1189
+ # @example Response structure
1190
+ #
1191
+ # resp.plan_arn #=> String
1192
+ # resp.execution_id #=> String
1193
+ # resp.version #=> String
1194
+ # resp.updated_at #=> Time
1195
+ # resp.comment #=> String
1196
+ # resp.start_time #=> Time
1197
+ # resp.end_time #=> Time
1198
+ # resp.mode #=> String, one of "graceful", "ungraceful"
1199
+ # resp.execution_state #=> String, one of "inProgress", "pausedByFailedStep", "pausedByOperator", "completed", "completedWithExceptions", "canceled", "planExecutionTimedOut", "pendingManualApproval", "failed", "pending", "completedMonitoringApplicationHealth"
1200
+ # resp.execution_action #=> String, one of "activate", "deactivate"
1201
+ # resp.execution_region #=> String
1202
+ # resp.step_states #=> Array
1203
+ # resp.step_states[0].name #=> String
1204
+ # resp.step_states[0].status #=> String, one of "notStarted", "running", "failed", "completed", "canceled", "skipped", "pendingApproval"
1205
+ # resp.step_states[0].start_time #=> Time
1206
+ # resp.step_states[0].end_time #=> Time
1207
+ # resp.step_states[0].step_mode #=> String, one of "graceful", "ungraceful"
1208
+ # resp.plan.arn #=> String
1209
+ # resp.plan.description #=> String
1210
+ # resp.plan.workflows #=> Array
1211
+ # resp.plan.workflows[0].steps #=> Array
1212
+ # resp.plan.workflows[0].steps[0].name #=> String
1213
+ # resp.plan.workflows[0].steps[0].description #=> String
1214
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.timeout_minutes #=> Integer
1215
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas #=> Array
1216
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].cross_account_role #=> String
1217
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].external_id #=> String
1218
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].arn #=> String
1219
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.retry_interval_minutes #=> Float
1220
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.region_to_run #=> String, one of "activatingRegion", "deactivatingRegion"
1221
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.ungraceful.behavior #=> String, one of "skip"
1222
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.timeout_minutes #=> Integer
1223
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs #=> Array
1224
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].cross_account_role #=> String
1225
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].external_id #=> String
1226
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].arn #=> String
1227
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.ungraceful.minimum_success_percentage #=> Integer
1228
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.target_percent #=> Integer
1229
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours", "autoscalingMaxInLast24Hours"
1230
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.execution_approval_config.timeout_minutes #=> Integer
1231
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.execution_approval_config.approval_role #=> String
1232
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.timeout_minutes #=> Integer
1233
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.cross_account_role #=> String
1234
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.external_id #=> String
1235
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls #=> Hash
1236
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"] #=> Array
1237
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"][0].routing_control_arn #=> String
1238
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"][0].state #=> String, one of "On", "Off"
1239
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.timeout_minutes #=> Integer
1240
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.cross_account_role #=> String
1241
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.external_id #=> String
1242
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.behavior #=> String, one of "switchoverOnly", "failover"
1243
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.ungraceful.ungraceful #=> String, one of "failover"
1244
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.global_cluster_identifier #=> String
1245
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.database_cluster_arns #=> Array
1246
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.database_cluster_arns[0] #=> String
1247
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.parallel_config.steps #=> Types::Steps
1248
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.cross_account_role #=> String
1249
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.external_id #=> String
1250
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.arn #=> String
1251
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.timeout_minutes #=> Integer
1252
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services #=> Array
1253
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].cross_account_role #=> String
1254
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].external_id #=> String
1255
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].cluster_arn #=> String
1256
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].service_arn #=> String
1257
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.ungraceful.minimum_success_percentage #=> Integer
1258
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.target_percent #=> Integer
1259
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours", "containerInsightsMaxInLast24Hours"
1260
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.timeout_minutes #=> Integer
1261
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.kubernetes_resource_type.api_version #=> String
1262
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.kubernetes_resource_type.kind #=> String
1263
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources #=> Array
1264
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0] #=> Hash
1265
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"] #=> Hash
1266
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].namespace #=> String
1267
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].name #=> String
1268
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].hpa_name #=> String
1269
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters #=> Array
1270
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].cross_account_role #=> String
1271
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].external_id #=> String
1272
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].cluster_arn #=> String
1273
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.ungraceful.minimum_success_percentage #=> Integer
1274
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.target_percent #=> Integer
1275
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours"
1276
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.timeout_minutes #=> Integer
1277
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.cross_account_role #=> String
1278
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.external_id #=> String
1279
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.hosted_zone_id #=> String
1280
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_name #=> String
1281
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets #=> Array
1282
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets[0].record_set_identifier #=> String
1283
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets[0].region #=> String
1284
+ # resp.plan.workflows[0].steps[0].execution_block_type #=> String, one of "CustomActionLambda", "ManualApproval", "AuroraGlobalDatabase", "EC2AutoScaling", "ARCRoutingControl", "ARCRegionSwitchPlan", "Parallel", "ECSServiceScaling", "EKSResourceScaling", "Route53HealthCheck"
1285
+ # resp.plan.workflows[0].workflow_target_action #=> String, one of "activate", "deactivate"
1286
+ # resp.plan.workflows[0].workflow_target_region #=> String
1287
+ # resp.plan.workflows[0].workflow_description #=> String
1288
+ # resp.plan.execution_role #=> String
1289
+ # resp.plan.recovery_time_objective_minutes #=> Integer
1290
+ # resp.plan.associated_alarms #=> Hash
1291
+ # resp.plan.associated_alarms["String"].cross_account_role #=> String
1292
+ # resp.plan.associated_alarms["String"].external_id #=> String
1293
+ # resp.plan.associated_alarms["String"].resource_identifier #=> String
1294
+ # resp.plan.associated_alarms["String"].alarm_type #=> String, one of "applicationHealth", "trigger"
1295
+ # resp.plan.triggers #=> Array
1296
+ # resp.plan.triggers[0].description #=> String
1297
+ # resp.plan.triggers[0].target_region #=> String
1298
+ # resp.plan.triggers[0].action #=> String, one of "activate", "deactivate"
1299
+ # resp.plan.triggers[0].conditions #=> Array
1300
+ # resp.plan.triggers[0].conditions[0].associated_alarm_name #=> String
1301
+ # resp.plan.triggers[0].conditions[0].condition #=> String, one of "red", "green"
1302
+ # resp.plan.triggers[0].min_delay_minutes_between_executions #=> Integer
1303
+ # resp.plan.name #=> String
1304
+ # resp.plan.regions #=> Array
1305
+ # resp.plan.regions[0] #=> String
1306
+ # resp.plan.recovery_approach #=> String, one of "activeActive", "activePassive"
1307
+ # resp.plan.primary_region #=> String
1308
+ # resp.plan.owner #=> String
1309
+ # resp.plan.version #=> String
1310
+ # resp.plan.updated_at #=> Time
1311
+ # resp.actual_recovery_time #=> String
1312
+ # resp.next_token #=> String
1313
+ #
1314
+ #
1315
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1316
+ #
1317
+ # * plan_execution_completed
1318
+ #
1319
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/GetPlanExecution AWS API Documentation
1320
+ #
1321
+ # @overload get_plan_execution(params = {})
1322
+ # @param [Hash] params ({})
1323
+ def get_plan_execution(params = {}, options = {})
1324
+ req = build_request(:get_plan_execution, params)
1325
+ req.send_request(options)
1326
+ end
1327
+
1328
+ # Retrieves information about a Region switch plan in a specific Amazon
1329
+ # Web Services Region. This operation is useful for getting
1330
+ # Region-specific information about a plan.
1331
+ #
1332
+ # @option params [required, String] :arn
1333
+ # The Amazon Resource Name (ARN) of the plan in Region.
1334
+ #
1335
+ # @return [Types::GetPlanInRegionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1336
+ #
1337
+ # * {Types::GetPlanInRegionResponse#plan #plan} => Types::Plan
1338
+ #
1339
+ # @example Request syntax with placeholder values
1340
+ #
1341
+ # resp = client.get_plan_in_region({
1342
+ # arn: "PlanArn", # required
1343
+ # })
1344
+ #
1345
+ # @example Response structure
1346
+ #
1347
+ # resp.plan.arn #=> String
1348
+ # resp.plan.description #=> String
1349
+ # resp.plan.workflows #=> Array
1350
+ # resp.plan.workflows[0].steps #=> Array
1351
+ # resp.plan.workflows[0].steps[0].name #=> String
1352
+ # resp.plan.workflows[0].steps[0].description #=> String
1353
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.timeout_minutes #=> Integer
1354
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas #=> Array
1355
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].cross_account_role #=> String
1356
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].external_id #=> String
1357
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].arn #=> String
1358
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.retry_interval_minutes #=> Float
1359
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.region_to_run #=> String, one of "activatingRegion", "deactivatingRegion"
1360
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.ungraceful.behavior #=> String, one of "skip"
1361
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.timeout_minutes #=> Integer
1362
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs #=> Array
1363
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].cross_account_role #=> String
1364
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].external_id #=> String
1365
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].arn #=> String
1366
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.ungraceful.minimum_success_percentage #=> Integer
1367
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.target_percent #=> Integer
1368
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours", "autoscalingMaxInLast24Hours"
1369
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.execution_approval_config.timeout_minutes #=> Integer
1370
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.execution_approval_config.approval_role #=> String
1371
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.timeout_minutes #=> Integer
1372
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.cross_account_role #=> String
1373
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.external_id #=> String
1374
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls #=> Hash
1375
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"] #=> Array
1376
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"][0].routing_control_arn #=> String
1377
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"][0].state #=> String, one of "On", "Off"
1378
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.timeout_minutes #=> Integer
1379
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.cross_account_role #=> String
1380
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.external_id #=> String
1381
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.behavior #=> String, one of "switchoverOnly", "failover"
1382
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.ungraceful.ungraceful #=> String, one of "failover"
1383
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.global_cluster_identifier #=> String
1384
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.database_cluster_arns #=> Array
1385
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.database_cluster_arns[0] #=> String
1386
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.parallel_config.steps #=> Types::Steps
1387
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.cross_account_role #=> String
1388
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.external_id #=> String
1389
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.arn #=> String
1390
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.timeout_minutes #=> Integer
1391
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services #=> Array
1392
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].cross_account_role #=> String
1393
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].external_id #=> String
1394
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].cluster_arn #=> String
1395
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].service_arn #=> String
1396
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.ungraceful.minimum_success_percentage #=> Integer
1397
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.target_percent #=> Integer
1398
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours", "containerInsightsMaxInLast24Hours"
1399
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.timeout_minutes #=> Integer
1400
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.kubernetes_resource_type.api_version #=> String
1401
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.kubernetes_resource_type.kind #=> String
1402
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources #=> Array
1403
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0] #=> Hash
1404
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"] #=> Hash
1405
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].namespace #=> String
1406
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].name #=> String
1407
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].hpa_name #=> String
1408
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters #=> Array
1409
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].cross_account_role #=> String
1410
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].external_id #=> String
1411
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].cluster_arn #=> String
1412
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.ungraceful.minimum_success_percentage #=> Integer
1413
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.target_percent #=> Integer
1414
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours"
1415
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.timeout_minutes #=> Integer
1416
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.cross_account_role #=> String
1417
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.external_id #=> String
1418
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.hosted_zone_id #=> String
1419
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_name #=> String
1420
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets #=> Array
1421
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets[0].record_set_identifier #=> String
1422
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets[0].region #=> String
1423
+ # resp.plan.workflows[0].steps[0].execution_block_type #=> String, one of "CustomActionLambda", "ManualApproval", "AuroraGlobalDatabase", "EC2AutoScaling", "ARCRoutingControl", "ARCRegionSwitchPlan", "Parallel", "ECSServiceScaling", "EKSResourceScaling", "Route53HealthCheck"
1424
+ # resp.plan.workflows[0].workflow_target_action #=> String, one of "activate", "deactivate"
1425
+ # resp.plan.workflows[0].workflow_target_region #=> String
1426
+ # resp.plan.workflows[0].workflow_description #=> String
1427
+ # resp.plan.execution_role #=> String
1428
+ # resp.plan.recovery_time_objective_minutes #=> Integer
1429
+ # resp.plan.associated_alarms #=> Hash
1430
+ # resp.plan.associated_alarms["String"].cross_account_role #=> String
1431
+ # resp.plan.associated_alarms["String"].external_id #=> String
1432
+ # resp.plan.associated_alarms["String"].resource_identifier #=> String
1433
+ # resp.plan.associated_alarms["String"].alarm_type #=> String, one of "applicationHealth", "trigger"
1434
+ # resp.plan.triggers #=> Array
1435
+ # resp.plan.triggers[0].description #=> String
1436
+ # resp.plan.triggers[0].target_region #=> String
1437
+ # resp.plan.triggers[0].action #=> String, one of "activate", "deactivate"
1438
+ # resp.plan.triggers[0].conditions #=> Array
1439
+ # resp.plan.triggers[0].conditions[0].associated_alarm_name #=> String
1440
+ # resp.plan.triggers[0].conditions[0].condition #=> String, one of "red", "green"
1441
+ # resp.plan.triggers[0].min_delay_minutes_between_executions #=> Integer
1442
+ # resp.plan.name #=> String
1443
+ # resp.plan.regions #=> Array
1444
+ # resp.plan.regions[0] #=> String
1445
+ # resp.plan.recovery_approach #=> String, one of "activeActive", "activePassive"
1446
+ # resp.plan.primary_region #=> String
1447
+ # resp.plan.owner #=> String
1448
+ # resp.plan.version #=> String
1449
+ # resp.plan.updated_at #=> Time
1450
+ #
1451
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/GetPlanInRegion AWS API Documentation
1452
+ #
1453
+ # @overload get_plan_in_region(params = {})
1454
+ # @param [Hash] params ({})
1455
+ def get_plan_in_region(params = {}, options = {})
1456
+ req = build_request(:get_plan_in_region, params)
1457
+ req.send_request(options)
1458
+ end
1459
+
1460
+ # Lists the events that occurred during a plan execution. These events
1461
+ # provide a detailed timeline of the execution process.
1462
+ #
1463
+ # @option params [required, String] :plan_arn
1464
+ # The Amazon Resource Name (ARN) of the plan.
1465
+ #
1466
+ # @option params [required, String] :execution_id
1467
+ # The execution identifier of a plan execution.
1468
+ #
1469
+ # @option params [Integer] :max_results
1470
+ # The number of objects that you want to return with this call.
1471
+ #
1472
+ # @option params [String] :next_token
1473
+ # Specifies that you want to receive the next page of results. Valid
1474
+ # only if you received a `nextToken` response in the previous request.
1475
+ # If you did, it indicates that more output is available. Set this
1476
+ # parameter to the value provided by the previous call's `nextToken`
1477
+ # response to request the next page of results.
1478
+ #
1479
+ # @option params [String] :name
1480
+ # The name of the plan execution event.
1481
+ #
1482
+ # @return [Types::ListPlanExecutionEventsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1483
+ #
1484
+ # * {Types::ListPlanExecutionEventsResponse#items #items} => Array&lt;Types::ExecutionEvent&gt;
1485
+ # * {Types::ListPlanExecutionEventsResponse#next_token #next_token} => String
1486
+ #
1487
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1488
+ #
1489
+ # @example Request syntax with placeholder values
1490
+ #
1491
+ # resp = client.list_plan_execution_events({
1492
+ # plan_arn: "PlanArn", # required
1493
+ # execution_id: "ExecutionId", # required
1494
+ # max_results: 1,
1495
+ # next_token: "String",
1496
+ # name: "StepName",
1497
+ # })
1498
+ #
1499
+ # @example Response structure
1500
+ #
1501
+ # resp.items #=> Array
1502
+ # resp.items[0].timestamp #=> Time
1503
+ # resp.items[0].type #=> String, one of "unknown", "executionPending", "executionStarted", "executionSucceeded", "executionFailed", "executionPausing", "executionPaused", "executionCanceling", "executionCanceled", "executionPendingApproval", "executionBehaviorChangedToUngraceful", "executionBehaviorChangedToGraceful", "executionPendingChildPlanManualApproval", "executionSuccessMonitoringApplicationHealth", "stepStarted", "stepUpdate", "stepSucceeded", "stepFailed", "stepSkipped", "stepPausedByError", "stepPausedByOperator", "stepCanceled", "stepPendingApproval", "stepExecutionBehaviorChangedToUngraceful", "stepPendingApplicationHealthMonitor"
1504
+ # resp.items[0].step_name #=> String
1505
+ # resp.items[0].execution_block_type #=> String, one of "CustomActionLambda", "ManualApproval", "AuroraGlobalDatabase", "EC2AutoScaling", "ARCRoutingControl", "ARCRegionSwitchPlan", "Parallel", "ECSServiceScaling", "EKSResourceScaling", "Route53HealthCheck"
1506
+ # resp.items[0].resources #=> Array
1507
+ # resp.items[0].resources[0] #=> String
1508
+ # resp.items[0].error #=> String
1509
+ # resp.items[0].description #=> String
1510
+ # resp.items[0].event_id #=> String
1511
+ # resp.items[0].previous_event_id #=> String
1512
+ # resp.next_token #=> String
1513
+ #
1514
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/ListPlanExecutionEvents AWS API Documentation
1515
+ #
1516
+ # @overload list_plan_execution_events(params = {})
1517
+ # @param [Hash] params ({})
1518
+ def list_plan_execution_events(params = {}, options = {})
1519
+ req = build_request(:list_plan_execution_events, params)
1520
+ req.send_request(options)
1521
+ end
1522
+
1523
+ # Lists the executions of a Region switch plan. This operation returns
1524
+ # information about both current and historical executions.
1525
+ #
1526
+ # @option params [required, String] :plan_arn
1527
+ # The ARN for the plan.
1528
+ #
1529
+ # @option params [Integer] :max_results
1530
+ # The number of objects that you want to return with this call.
1531
+ #
1532
+ # @option params [String] :next_token
1533
+ # Specifies that you want to receive the next page of results. Valid
1534
+ # only if you received a `nextToken` response in the previous request.
1535
+ # If you did, it indicates that more output is available. Set this
1536
+ # parameter to the value provided by the previous call's `nextToken`
1537
+ # response to request the next page of results.
1538
+ #
1539
+ # @option params [String] :state
1540
+ # The state of the plan execution. For example, the plan execution might
1541
+ # be In Progress.
1542
+ #
1543
+ # @return [Types::ListPlanExecutionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1544
+ #
1545
+ # * {Types::ListPlanExecutionsResponse#items #items} => Array&lt;Types::AbbreviatedExecution&gt;
1546
+ # * {Types::ListPlanExecutionsResponse#next_token #next_token} => String
1547
+ #
1548
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1549
+ #
1550
+ # @example Request syntax with placeholder values
1551
+ #
1552
+ # resp = client.list_plan_executions({
1553
+ # plan_arn: "PlanArn", # required
1554
+ # max_results: 1,
1555
+ # next_token: "String",
1556
+ # state: "inProgress", # accepts inProgress, pausedByFailedStep, pausedByOperator, completed, completedWithExceptions, canceled, planExecutionTimedOut, pendingManualApproval, failed, pending, completedMonitoringApplicationHealth
1557
+ # })
1558
+ #
1559
+ # @example Response structure
1560
+ #
1561
+ # resp.items #=> Array
1562
+ # resp.items[0].plan_arn #=> String
1563
+ # resp.items[0].execution_id #=> String
1564
+ # resp.items[0].version #=> String
1565
+ # resp.items[0].updated_at #=> Time
1566
+ # resp.items[0].comment #=> String
1567
+ # resp.items[0].start_time #=> Time
1568
+ # resp.items[0].end_time #=> Time
1569
+ # resp.items[0].mode #=> String, one of "graceful", "ungraceful"
1570
+ # resp.items[0].execution_state #=> String, one of "inProgress", "pausedByFailedStep", "pausedByOperator", "completed", "completedWithExceptions", "canceled", "planExecutionTimedOut", "pendingManualApproval", "failed", "pending", "completedMonitoringApplicationHealth"
1571
+ # resp.items[0].execution_action #=> String, one of "activate", "deactivate"
1572
+ # resp.items[0].execution_region #=> String
1573
+ # resp.items[0].actual_recovery_time #=> String
1574
+ # resp.next_token #=> String
1575
+ #
1576
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/ListPlanExecutions AWS API Documentation
1577
+ #
1578
+ # @overload list_plan_executions(params = {})
1579
+ # @param [Hash] params ({})
1580
+ def list_plan_executions(params = {}, options = {})
1581
+ req = build_request(:list_plan_executions, params)
1582
+ req.send_request(options)
1583
+ end
1584
+
1585
+ # Lists all Region switch plans in your Amazon Web Services account.
1586
+ #
1587
+ # @option params [Integer] :max_results
1588
+ # The number of objects that you want to return with this call.
1589
+ #
1590
+ # @option params [String] :next_token
1591
+ # Specifies that you want to receive the next page of results. Valid
1592
+ # only if you received a `nextToken` response in the previous request.
1593
+ # If you did, it indicates that more output is available. Set this
1594
+ # parameter to the value provided by the previous call's `nextToken`
1595
+ # response to request the next page of results.
1596
+ #
1597
+ # @return [Types::ListPlansResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1598
+ #
1599
+ # * {Types::ListPlansResponse#plans #plans} => Array&lt;Types::AbbreviatedPlan&gt;
1600
+ # * {Types::ListPlansResponse#next_token #next_token} => String
1601
+ #
1602
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1603
+ #
1604
+ # @example Request syntax with placeholder values
1605
+ #
1606
+ # resp = client.list_plans({
1607
+ # max_results: 1,
1608
+ # next_token: "NextToken",
1609
+ # })
1610
+ #
1611
+ # @example Response structure
1612
+ #
1613
+ # resp.plans #=> Array
1614
+ # resp.plans[0].arn #=> String
1615
+ # resp.plans[0].owner #=> String
1616
+ # resp.plans[0].name #=> String
1617
+ # resp.plans[0].regions #=> Array
1618
+ # resp.plans[0].regions[0] #=> String
1619
+ # resp.plans[0].recovery_approach #=> String, one of "activeActive", "activePassive"
1620
+ # resp.plans[0].primary_region #=> String
1621
+ # resp.plans[0].version #=> String
1622
+ # resp.plans[0].updated_at #=> Time
1623
+ # resp.plans[0].description #=> String
1624
+ # resp.plans[0].execution_role #=> String
1625
+ # resp.plans[0].active_plan_execution #=> String
1626
+ # resp.plans[0].recovery_time_objective_minutes #=> Integer
1627
+ # resp.next_token #=> String
1628
+ #
1629
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/ListPlans AWS API Documentation
1630
+ #
1631
+ # @overload list_plans(params = {})
1632
+ # @param [Hash] params ({})
1633
+ def list_plans(params = {}, options = {})
1634
+ req = build_request(:list_plans, params)
1635
+ req.send_request(options)
1636
+ end
1637
+
1638
+ # Lists all Region switch plans in your Amazon Web Services account that
1639
+ # are available in the current Amazon Web Services Region.
1640
+ #
1641
+ # @option params [Integer] :max_results
1642
+ # The number of objects that you want to return with this call.
1643
+ #
1644
+ # @option params [String] :next_token
1645
+ # Specifies that you want to receive the next page of results. Valid
1646
+ # only if you received a `nextToken` response in the previous request.
1647
+ # If you did, it indicates that more output is available. Set this
1648
+ # parameter to the value provided by the previous call's `nextToken`
1649
+ # response to request the next page of results.
1650
+ #
1651
+ # @return [Types::ListPlansInRegionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1652
+ #
1653
+ # * {Types::ListPlansInRegionResponse#plans #plans} => Array&lt;Types::AbbreviatedPlan&gt;
1654
+ # * {Types::ListPlansInRegionResponse#next_token #next_token} => String
1655
+ #
1656
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1657
+ #
1658
+ # @example Request syntax with placeholder values
1659
+ #
1660
+ # resp = client.list_plans_in_region({
1661
+ # max_results: 1,
1662
+ # next_token: "NextToken",
1663
+ # })
1664
+ #
1665
+ # @example Response structure
1666
+ #
1667
+ # resp.plans #=> Array
1668
+ # resp.plans[0].arn #=> String
1669
+ # resp.plans[0].owner #=> String
1670
+ # resp.plans[0].name #=> String
1671
+ # resp.plans[0].regions #=> Array
1672
+ # resp.plans[0].regions[0] #=> String
1673
+ # resp.plans[0].recovery_approach #=> String, one of "activeActive", "activePassive"
1674
+ # resp.plans[0].primary_region #=> String
1675
+ # resp.plans[0].version #=> String
1676
+ # resp.plans[0].updated_at #=> Time
1677
+ # resp.plans[0].description #=> String
1678
+ # resp.plans[0].execution_role #=> String
1679
+ # resp.plans[0].active_plan_execution #=> String
1680
+ # resp.plans[0].recovery_time_objective_minutes #=> Integer
1681
+ # resp.next_token #=> String
1682
+ #
1683
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/ListPlansInRegion AWS API Documentation
1684
+ #
1685
+ # @overload list_plans_in_region(params = {})
1686
+ # @param [Hash] params ({})
1687
+ def list_plans_in_region(params = {}, options = {})
1688
+ req = build_request(:list_plans_in_region, params)
1689
+ req.send_request(options)
1690
+ end
1691
+
1692
+ # List the Amazon Route 53 health checks.
1693
+ #
1694
+ # @option params [required, String] :arn
1695
+ # The Amazon Resource Name (ARN) of the Amazon Route 53 health check
1696
+ # request.
1697
+ #
1698
+ # @option params [String] :hosted_zone_id
1699
+ # The hosted zone ID for the health checks.
1700
+ #
1701
+ # @option params [String] :record_name
1702
+ # The record name for the health checks.
1703
+ #
1704
+ # @option params [Integer] :max_results
1705
+ # The number of objects that you want to return with this call.
1706
+ #
1707
+ # @option params [String] :next_token
1708
+ # Specifies that you want to receive the next page of results. Valid
1709
+ # only if you received a `nextToken` response in the previous request.
1710
+ # If you did, it indicates that more output is available. Set this
1711
+ # parameter to the value provided by the previous call's `nextToken`
1712
+ # response to request the next page of results.
1713
+ #
1714
+ # @return [Types::ListRoute53HealthChecksResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1715
+ #
1716
+ # * {Types::ListRoute53HealthChecksResponse#health_checks #health_checks} => Array&lt;Types::Route53HealthCheck&gt;
1717
+ # * {Types::ListRoute53HealthChecksResponse#next_token #next_token} => String
1718
+ #
1719
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1720
+ #
1721
+ # @example Request syntax with placeholder values
1722
+ #
1723
+ # resp = client.list_route_53_health_checks({
1724
+ # arn: "PlanArn", # required
1725
+ # hosted_zone_id: "Route53HostedZoneId",
1726
+ # record_name: "Route53RecordName",
1727
+ # max_results: 1,
1728
+ # next_token: "NextToken",
1729
+ # })
1730
+ #
1731
+ # @example Response structure
1732
+ #
1733
+ # resp.health_checks #=> Array
1734
+ # resp.health_checks[0].hosted_zone_id #=> String
1735
+ # resp.health_checks[0].record_name #=> String
1736
+ # resp.health_checks[0].health_check_id #=> String
1737
+ # resp.health_checks[0].region #=> String
1738
+ # resp.next_token #=> String
1739
+ #
1740
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/ListRoute53HealthChecks AWS API Documentation
1741
+ #
1742
+ # @overload list_route_53_health_checks(params = {})
1743
+ # @param [Hash] params ({})
1744
+ def list_route_53_health_checks(params = {}, options = {})
1745
+ req = build_request(:list_route_53_health_checks, params)
1746
+ req.send_request(options)
1747
+ end
1748
+
1749
+ # Lists the tags attached to a Region switch resource.
1750
+ #
1751
+ # @option params [required, String] :arn
1752
+ # The Amazon Resource Name (ARN) of the resource.
1753
+ #
1754
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1755
+ #
1756
+ # * {Types::ListTagsForResourceResponse#resource_tags #resource_tags} => Hash&lt;String,String&gt;
1757
+ #
1758
+ # @example Request syntax with placeholder values
1759
+ #
1760
+ # resp = client.list_tags_for_resource({
1761
+ # arn: "PlanArn", # required
1762
+ # })
1763
+ #
1764
+ # @example Response structure
1765
+ #
1766
+ # resp.resource_tags #=> Hash
1767
+ # resp.resource_tags["TagKey"] #=> String
1768
+ #
1769
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/ListTagsForResource AWS API Documentation
1770
+ #
1771
+ # @overload list_tags_for_resource(params = {})
1772
+ # @param [Hash] params ({})
1773
+ def list_tags_for_resource(params = {}, options = {})
1774
+ req = build_request(:list_tags_for_resource, params)
1775
+ req.send_request(options)
1776
+ end
1777
+
1778
+ # Starts the execution of a Region switch plan. You can execute a plan
1779
+ # in either PRACTICE or RECOVERY mode.
1780
+ #
1781
+ # In PRACTICE mode, the execution simulates the steps without making
1782
+ # actual changes to your application's traffic routing. In RECOVERY
1783
+ # mode, the execution performs actual changes to shift traffic between
1784
+ # Regions.
1785
+ #
1786
+ # @option params [required, String] :plan_arn
1787
+ # The Amazon Resource Name (ARN) of the plan to execute.
1788
+ #
1789
+ # @option params [required, String] :target_region
1790
+ # The Amazon Web Services Region to target with this execution. This is
1791
+ # the Region that traffic will be shifted to or from, depending on the
1792
+ # action.
1793
+ #
1794
+ # @option params [required, String] :action
1795
+ # The action to perform. Valid values are ACTIVATE (to shift traffic to
1796
+ # the target Region) or DEACTIVATE (to shift traffic away from the
1797
+ # target Region).
1798
+ #
1799
+ # @option params [String] :mode
1800
+ # The plan execution mode. Valid values are `Practice`, for testing
1801
+ # without making actual changes, or `Recovery`, for actual traffic
1802
+ # shifting and application recovery.
1803
+ #
1804
+ # @option params [String] :comment
1805
+ # An optional comment explaining why the plan execution is being
1806
+ # started.
1807
+ #
1808
+ # @option params [String] :latest_version
1809
+ # A boolean value indicating whether to use the latest version of the
1810
+ # plan. If set to false, you must specify a specific version.
1811
+ #
1812
+ # @return [Types::StartPlanExecutionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1813
+ #
1814
+ # * {Types::StartPlanExecutionResponse#execution_id #execution_id} => String
1815
+ # * {Types::StartPlanExecutionResponse#plan #plan} => String
1816
+ # * {Types::StartPlanExecutionResponse#plan_version #plan_version} => String
1817
+ # * {Types::StartPlanExecutionResponse#activate_region #activate_region} => String
1818
+ # * {Types::StartPlanExecutionResponse#deactivate_region #deactivate_region} => String
1819
+ #
1820
+ # @example Request syntax with placeholder values
1821
+ #
1822
+ # resp = client.start_plan_execution({
1823
+ # plan_arn: "PlanArn", # required
1824
+ # target_region: "String", # required
1825
+ # action: "activate", # required, accepts activate, deactivate
1826
+ # mode: "graceful", # accepts graceful, ungraceful
1827
+ # comment: "ExecutionComment",
1828
+ # latest_version: "String",
1829
+ # })
1830
+ #
1831
+ # @example Response structure
1832
+ #
1833
+ # resp.execution_id #=> String
1834
+ # resp.plan #=> String
1835
+ # resp.plan_version #=> String
1836
+ # resp.activate_region #=> String
1837
+ # resp.deactivate_region #=> String
1838
+ #
1839
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/StartPlanExecution AWS API Documentation
1840
+ #
1841
+ # @overload start_plan_execution(params = {})
1842
+ # @param [Hash] params ({})
1843
+ def start_plan_execution(params = {}, options = {})
1844
+ req = build_request(:start_plan_execution, params)
1845
+ req.send_request(options)
1846
+ end
1847
+
1848
+ # Adds or updates tags for a Region switch resource. You can assign
1849
+ # metadata to your resources in the form of tags, which are key-value
1850
+ # pairs.
1851
+ #
1852
+ # @option params [required, String] :arn
1853
+ # The Amazon Resource Name (ARN) for a tag that you add to a resource.
1854
+ #
1855
+ # @option params [required, Hash<String,String>] :tags
1856
+ # Tags that you add to a resource. You can add a maximum of 50 tags in
1857
+ # Region switch.
1858
+ #
1859
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1860
+ #
1861
+ # @example Request syntax with placeholder values
1862
+ #
1863
+ # resp = client.tag_resource({
1864
+ # arn: "PlanArn", # required
1865
+ # tags: { # required
1866
+ # "TagKey" => "TagValue",
1867
+ # },
1868
+ # })
1869
+ #
1870
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/TagResource AWS API Documentation
1871
+ #
1872
+ # @overload tag_resource(params = {})
1873
+ # @param [Hash] params ({})
1874
+ def tag_resource(params = {}, options = {})
1875
+ req = build_request(:tag_resource, params)
1876
+ req.send_request(options)
1877
+ end
1878
+
1879
+ # Removes tags from a Region switch resource.
1880
+ #
1881
+ # @option params [required, String] :arn
1882
+ # The Amazon Resource Name (ARN) for a tag you remove a resource from.
1883
+ #
1884
+ # @option params [required, Array<String>] :resource_tag_keys
1885
+ # Tag keys that you remove from a resource.
1886
+ #
1887
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1888
+ #
1889
+ # @example Request syntax with placeholder values
1890
+ #
1891
+ # resp = client.untag_resource({
1892
+ # arn: "PlanArn", # required
1893
+ # resource_tag_keys: ["TagKey"], # required
1894
+ # })
1895
+ #
1896
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/UntagResource AWS API Documentation
1897
+ #
1898
+ # @overload untag_resource(params = {})
1899
+ # @param [Hash] params ({})
1900
+ def untag_resource(params = {}, options = {})
1901
+ req = build_request(:untag_resource, params)
1902
+ req.send_request(options)
1903
+ end
1904
+
1905
+ # Updates an existing Region switch plan. You can modify the plan's
1906
+ # description, workflows, execution role, recovery time objective,
1907
+ # associated alarms, and triggers.
1908
+ #
1909
+ # @option params [required, String] :arn
1910
+ # The Amazon Resource Name (ARN) of the plan.
1911
+ #
1912
+ # @option params [String] :description
1913
+ # The updated description for the Region switch plan.
1914
+ #
1915
+ # @option params [required, Array<Types::Workflow>] :workflows
1916
+ # The updated workflows for the Region switch plan.
1917
+ #
1918
+ # @option params [required, String] :execution_role
1919
+ # The updated IAM role ARN that grants Region switch the permissions
1920
+ # needed to execute the plan steps.
1921
+ #
1922
+ # @option params [Integer] :recovery_time_objective_minutes
1923
+ # The updated target recovery time objective (RTO) in minutes for the
1924
+ # plan.
1925
+ #
1926
+ # @option params [Hash<String,Types::AssociatedAlarm>] :associated_alarms
1927
+ # The updated CloudWatch alarms associated with the plan.
1928
+ #
1929
+ # @option params [Array<Types::Trigger>] :triggers
1930
+ # The updated conditions that can automatically trigger the execution of
1931
+ # the plan.
1932
+ #
1933
+ # @return [Types::UpdatePlanResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1934
+ #
1935
+ # * {Types::UpdatePlanResponse#plan #plan} => Types::Plan
1936
+ #
1937
+ # @example Request syntax with placeholder values
1938
+ #
1939
+ # resp = client.update_plan({
1940
+ # arn: "PlanArn", # required
1941
+ # description: "String",
1942
+ # workflows: [ # required
1943
+ # {
1944
+ # steps: [
1945
+ # {
1946
+ # name: "StepName", # required
1947
+ # description: "String",
1948
+ # execution_block_configuration: { # required
1949
+ # custom_action_lambda_config: {
1950
+ # timeout_minutes: 1,
1951
+ # lambdas: [ # required
1952
+ # {
1953
+ # cross_account_role: "IamRoleArn",
1954
+ # external_id: "String",
1955
+ # arn: "LambdaArn",
1956
+ # },
1957
+ # ],
1958
+ # retry_interval_minutes: 1.0, # required
1959
+ # region_to_run: "activatingRegion", # required, accepts activatingRegion, deactivatingRegion
1960
+ # ungraceful: {
1961
+ # behavior: "skip", # accepts skip
1962
+ # },
1963
+ # },
1964
+ # ec2_asg_capacity_increase_config: {
1965
+ # timeout_minutes: 1,
1966
+ # asgs: [ # required
1967
+ # {
1968
+ # cross_account_role: "IamRoleArn",
1969
+ # external_id: "String",
1970
+ # arn: "AsgArn",
1971
+ # },
1972
+ # ],
1973
+ # ungraceful: {
1974
+ # minimum_success_percentage: 1, # required
1975
+ # },
1976
+ # target_percent: 1,
1977
+ # capacity_monitoring_approach: "sampledMaxInLast24Hours", # accepts sampledMaxInLast24Hours, autoscalingMaxInLast24Hours
1978
+ # },
1979
+ # execution_approval_config: {
1980
+ # timeout_minutes: 1,
1981
+ # approval_role: "RoleArn", # required
1982
+ # },
1983
+ # arc_routing_control_config: {
1984
+ # timeout_minutes: 1,
1985
+ # cross_account_role: "IamRoleArn",
1986
+ # external_id: "String",
1987
+ # region_and_routing_controls: { # required
1988
+ # "String" => [
1989
+ # {
1990
+ # routing_control_arn: "RoutingControlArn", # required
1991
+ # state: "On", # required, accepts On, Off
1992
+ # },
1993
+ # ],
1994
+ # },
1995
+ # },
1996
+ # global_aurora_config: {
1997
+ # timeout_minutes: 1,
1998
+ # cross_account_role: "IamRoleArn",
1999
+ # external_id: "String",
2000
+ # behavior: "switchoverOnly", # required, accepts switchoverOnly, failover
2001
+ # ungraceful: {
2002
+ # ungraceful: "failover", # accepts failover
2003
+ # },
2004
+ # global_cluster_identifier: "GlobalClusterIdentifier", # required
2005
+ # database_cluster_arns: ["AuroraClusterArn"], # required
2006
+ # },
2007
+ # parallel_config: {
2008
+ # steps: { # required
2009
+ # # recursive Steps
2010
+ # },
2011
+ # },
2012
+ # region_switch_plan_config: {
2013
+ # cross_account_role: "IamRoleArn",
2014
+ # external_id: "String",
2015
+ # arn: "PlanArn", # required
2016
+ # },
2017
+ # ecs_capacity_increase_config: {
2018
+ # timeout_minutes: 1,
2019
+ # services: [ # required
2020
+ # {
2021
+ # cross_account_role: "IamRoleArn",
2022
+ # external_id: "String",
2023
+ # cluster_arn: "EcsClusterArn",
2024
+ # service_arn: "EcsServiceArn",
2025
+ # },
2026
+ # ],
2027
+ # ungraceful: {
2028
+ # minimum_success_percentage: 1, # required
2029
+ # },
2030
+ # target_percent: 1,
2031
+ # capacity_monitoring_approach: "sampledMaxInLast24Hours", # accepts sampledMaxInLast24Hours, containerInsightsMaxInLast24Hours
2032
+ # },
2033
+ # eks_resource_scaling_config: {
2034
+ # timeout_minutes: 1,
2035
+ # kubernetes_resource_type: { # required
2036
+ # api_version: "String", # required
2037
+ # kind: "String", # required
2038
+ # },
2039
+ # scaling_resources: [
2040
+ # {
2041
+ # "String" => {
2042
+ # "Region" => {
2043
+ # namespace: "KubernetesNamespace", # required
2044
+ # name: "String", # required
2045
+ # hpa_name: "String",
2046
+ # },
2047
+ # },
2048
+ # },
2049
+ # ],
2050
+ # eks_clusters: [
2051
+ # {
2052
+ # cross_account_role: "IamRoleArn",
2053
+ # external_id: "String",
2054
+ # cluster_arn: "EksClusterArn", # required
2055
+ # },
2056
+ # ],
2057
+ # ungraceful: {
2058
+ # minimum_success_percentage: 1, # required
2059
+ # },
2060
+ # target_percent: 1,
2061
+ # capacity_monitoring_approach: "sampledMaxInLast24Hours", # accepts sampledMaxInLast24Hours
2062
+ # },
2063
+ # route53_health_check_config: {
2064
+ # timeout_minutes: 1,
2065
+ # cross_account_role: "IamRoleArn",
2066
+ # external_id: "String",
2067
+ # hosted_zone_id: "Route53HostedZoneId", # required
2068
+ # record_name: "Route53RecordName", # required
2069
+ # record_sets: [
2070
+ # {
2071
+ # record_set_identifier: "Route53ResourceRecordSetIdentifier",
2072
+ # region: "Region",
2073
+ # },
2074
+ # ],
2075
+ # },
2076
+ # },
2077
+ # execution_block_type: "CustomActionLambda", # required, accepts CustomActionLambda, ManualApproval, AuroraGlobalDatabase, EC2AutoScaling, ARCRoutingControl, ARCRegionSwitchPlan, Parallel, ECSServiceScaling, EKSResourceScaling, Route53HealthCheck
2078
+ # },
2079
+ # ],
2080
+ # workflow_target_action: "activate", # required, accepts activate, deactivate
2081
+ # workflow_target_region: "Region",
2082
+ # workflow_description: "String",
2083
+ # },
2084
+ # ],
2085
+ # execution_role: "IamRoleArn", # required
2086
+ # recovery_time_objective_minutes: 1,
2087
+ # associated_alarms: {
2088
+ # "String" => {
2089
+ # cross_account_role: "IamRoleArn",
2090
+ # external_id: "String",
2091
+ # resource_identifier: "String", # required
2092
+ # alarm_type: "applicationHealth", # required, accepts applicationHealth, trigger
2093
+ # },
2094
+ # },
2095
+ # triggers: [
2096
+ # {
2097
+ # description: "String",
2098
+ # target_region: "Region", # required
2099
+ # action: "activate", # required, accepts activate, deactivate
2100
+ # conditions: [ # required
2101
+ # {
2102
+ # associated_alarm_name: "String", # required
2103
+ # condition: "red", # required, accepts red, green
2104
+ # },
2105
+ # ],
2106
+ # min_delay_minutes_between_executions: 1, # required
2107
+ # },
2108
+ # ],
2109
+ # })
2110
+ #
2111
+ # @example Response structure
2112
+ #
2113
+ # resp.plan.arn #=> String
2114
+ # resp.plan.description #=> String
2115
+ # resp.plan.workflows #=> Array
2116
+ # resp.plan.workflows[0].steps #=> Array
2117
+ # resp.plan.workflows[0].steps[0].name #=> String
2118
+ # resp.plan.workflows[0].steps[0].description #=> String
2119
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.timeout_minutes #=> Integer
2120
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas #=> Array
2121
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].cross_account_role #=> String
2122
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].external_id #=> String
2123
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.lambdas[0].arn #=> String
2124
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.retry_interval_minutes #=> Float
2125
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.region_to_run #=> String, one of "activatingRegion", "deactivatingRegion"
2126
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.custom_action_lambda_config.ungraceful.behavior #=> String, one of "skip"
2127
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.timeout_minutes #=> Integer
2128
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs #=> Array
2129
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].cross_account_role #=> String
2130
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].external_id #=> String
2131
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.asgs[0].arn #=> String
2132
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.ungraceful.minimum_success_percentage #=> Integer
2133
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.target_percent #=> Integer
2134
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ec2_asg_capacity_increase_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours", "autoscalingMaxInLast24Hours"
2135
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.execution_approval_config.timeout_minutes #=> Integer
2136
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.execution_approval_config.approval_role #=> String
2137
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.timeout_minutes #=> Integer
2138
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.cross_account_role #=> String
2139
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.external_id #=> String
2140
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls #=> Hash
2141
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"] #=> Array
2142
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"][0].routing_control_arn #=> String
2143
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.arc_routing_control_config.region_and_routing_controls["String"][0].state #=> String, one of "On", "Off"
2144
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.timeout_minutes #=> Integer
2145
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.cross_account_role #=> String
2146
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.external_id #=> String
2147
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.behavior #=> String, one of "switchoverOnly", "failover"
2148
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.ungraceful.ungraceful #=> String, one of "failover"
2149
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.global_cluster_identifier #=> String
2150
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.database_cluster_arns #=> Array
2151
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.global_aurora_config.database_cluster_arns[0] #=> String
2152
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.parallel_config.steps #=> Types::Steps
2153
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.cross_account_role #=> String
2154
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.external_id #=> String
2155
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.region_switch_plan_config.arn #=> String
2156
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.timeout_minutes #=> Integer
2157
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services #=> Array
2158
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].cross_account_role #=> String
2159
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].external_id #=> String
2160
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].cluster_arn #=> String
2161
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.services[0].service_arn #=> String
2162
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.ungraceful.minimum_success_percentage #=> Integer
2163
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.target_percent #=> Integer
2164
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.ecs_capacity_increase_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours", "containerInsightsMaxInLast24Hours"
2165
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.timeout_minutes #=> Integer
2166
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.kubernetes_resource_type.api_version #=> String
2167
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.kubernetes_resource_type.kind #=> String
2168
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources #=> Array
2169
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0] #=> Hash
2170
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"] #=> Hash
2171
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].namespace #=> String
2172
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].name #=> String
2173
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.scaling_resources[0]["String"]["Region"].hpa_name #=> String
2174
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters #=> Array
2175
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].cross_account_role #=> String
2176
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].external_id #=> String
2177
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.eks_clusters[0].cluster_arn #=> String
2178
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.ungraceful.minimum_success_percentage #=> Integer
2179
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.target_percent #=> Integer
2180
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.eks_resource_scaling_config.capacity_monitoring_approach #=> String, one of "sampledMaxInLast24Hours"
2181
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.timeout_minutes #=> Integer
2182
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.cross_account_role #=> String
2183
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.external_id #=> String
2184
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.hosted_zone_id #=> String
2185
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_name #=> String
2186
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets #=> Array
2187
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets[0].record_set_identifier #=> String
2188
+ # resp.plan.workflows[0].steps[0].execution_block_configuration.route53_health_check_config.record_sets[0].region #=> String
2189
+ # resp.plan.workflows[0].steps[0].execution_block_type #=> String, one of "CustomActionLambda", "ManualApproval", "AuroraGlobalDatabase", "EC2AutoScaling", "ARCRoutingControl", "ARCRegionSwitchPlan", "Parallel", "ECSServiceScaling", "EKSResourceScaling", "Route53HealthCheck"
2190
+ # resp.plan.workflows[0].workflow_target_action #=> String, one of "activate", "deactivate"
2191
+ # resp.plan.workflows[0].workflow_target_region #=> String
2192
+ # resp.plan.workflows[0].workflow_description #=> String
2193
+ # resp.plan.execution_role #=> String
2194
+ # resp.plan.recovery_time_objective_minutes #=> Integer
2195
+ # resp.plan.associated_alarms #=> Hash
2196
+ # resp.plan.associated_alarms["String"].cross_account_role #=> String
2197
+ # resp.plan.associated_alarms["String"].external_id #=> String
2198
+ # resp.plan.associated_alarms["String"].resource_identifier #=> String
2199
+ # resp.plan.associated_alarms["String"].alarm_type #=> String, one of "applicationHealth", "trigger"
2200
+ # resp.plan.triggers #=> Array
2201
+ # resp.plan.triggers[0].description #=> String
2202
+ # resp.plan.triggers[0].target_region #=> String
2203
+ # resp.plan.triggers[0].action #=> String, one of "activate", "deactivate"
2204
+ # resp.plan.triggers[0].conditions #=> Array
2205
+ # resp.plan.triggers[0].conditions[0].associated_alarm_name #=> String
2206
+ # resp.plan.triggers[0].conditions[0].condition #=> String, one of "red", "green"
2207
+ # resp.plan.triggers[0].min_delay_minutes_between_executions #=> Integer
2208
+ # resp.plan.name #=> String
2209
+ # resp.plan.regions #=> Array
2210
+ # resp.plan.regions[0] #=> String
2211
+ # resp.plan.recovery_approach #=> String, one of "activeActive", "activePassive"
2212
+ # resp.plan.primary_region #=> String
2213
+ # resp.plan.owner #=> String
2214
+ # resp.plan.version #=> String
2215
+ # resp.plan.updated_at #=> Time
2216
+ #
2217
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/UpdatePlan AWS API Documentation
2218
+ #
2219
+ # @overload update_plan(params = {})
2220
+ # @param [Hash] params ({})
2221
+ def update_plan(params = {}, options = {})
2222
+ req = build_request(:update_plan, params)
2223
+ req.send_request(options)
2224
+ end
2225
+
2226
+ # Updates an in-progress plan execution. This operation allows you to
2227
+ # modify certain aspects of the execution, such as adding a comment or
2228
+ # changing the action.
2229
+ #
2230
+ # @option params [required, String] :plan_arn
2231
+ # The Amazon Resource Name (ARN) of the plan with the execution to
2232
+ # update.
2233
+ #
2234
+ # @option params [required, String] :execution_id
2235
+ # The execution identifier of a plan execution.
2236
+ #
2237
+ # @option params [required, String] :action
2238
+ # The action specified for a plan execution, for example, Switch to
2239
+ # Graceful or Pause.
2240
+ #
2241
+ # @option params [String] :comment
2242
+ # An optional comment about the plan execution.
2243
+ #
2244
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2245
+ #
2246
+ # @example Request syntax with placeholder values
2247
+ #
2248
+ # resp = client.update_plan_execution({
2249
+ # plan_arn: "PlanArn", # required
2250
+ # execution_id: "ExecutionId", # required
2251
+ # action: "switchToGraceful", # required, accepts switchToGraceful, switchToUngraceful, pause, resume
2252
+ # comment: "ExecutionComment",
2253
+ # })
2254
+ #
2255
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/UpdatePlanExecution AWS API Documentation
2256
+ #
2257
+ # @overload update_plan_execution(params = {})
2258
+ # @param [Hash] params ({})
2259
+ def update_plan_execution(params = {}, options = {})
2260
+ req = build_request(:update_plan_execution, params)
2261
+ req.send_request(options)
2262
+ end
2263
+
2264
+ # Updates a specific step in an in-progress plan execution. This
2265
+ # operation allows you to modify the step's comment or action.
2266
+ #
2267
+ # @option params [required, String] :plan_arn
2268
+ # The Amazon Resource Name (ARN) of the plan containing the execution
2269
+ # step to update.
2270
+ #
2271
+ # @option params [required, String] :execution_id
2272
+ # The unique identifier of the plan execution containing the step to
2273
+ # update.
2274
+ #
2275
+ # @option params [required, String] :comment
2276
+ # An optional comment about the plan execution.
2277
+ #
2278
+ # @option params [required, String] :step_name
2279
+ # The name of the execution step to update.
2280
+ #
2281
+ # @option params [required, String] :action_to_take
2282
+ # The updated action to take for the step. This can be used to skip or
2283
+ # retry a step.
2284
+ #
2285
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2286
+ #
2287
+ # @example Request syntax with placeholder values
2288
+ #
2289
+ # resp = client.update_plan_execution_step({
2290
+ # plan_arn: "PlanArn", # required
2291
+ # execution_id: "ExecutionId", # required
2292
+ # comment: "ExecutionComment", # required
2293
+ # step_name: "String", # required
2294
+ # action_to_take: "switchToUngraceful", # required, accepts switchToUngraceful, skip
2295
+ # })
2296
+ #
2297
+ # @see http://docs.aws.amazon.com/goto/WebAPI/arc-region-switch-2022-07-26/UpdatePlanExecutionStep AWS API Documentation
2298
+ #
2299
+ # @overload update_plan_execution_step(params = {})
2300
+ # @param [Hash] params ({})
2301
+ def update_plan_execution_step(params = {}, options = {})
2302
+ req = build_request(:update_plan_execution_step, params)
2303
+ req.send_request(options)
2304
+ end
2305
+
2306
+ # @!endgroup
2307
+
2308
+ # @param params ({})
2309
+ # @api private
2310
+ def build_request(operation_name, params = {})
2311
+ handlers = @handlers.for(operation_name)
2312
+ tracer = config.telemetry_provider.tracer_provider.tracer(
2313
+ Aws::Telemetry.module_to_tracer_name('Aws::ARCRegionswitch')
2314
+ )
2315
+ context = Seahorse::Client::RequestContext.new(
2316
+ operation_name: operation_name,
2317
+ operation: config.api.operation(operation_name),
2318
+ client: self,
2319
+ params: params,
2320
+ config: config,
2321
+ tracer: tracer
2322
+ )
2323
+ context[:gem_name] = 'aws-sdk-arcregionswitch'
2324
+ context[:gem_version] = '1.0.0'
2325
+ Seahorse::Client::Request.new(handlers, context)
2326
+ end
2327
+
2328
+ # Polls an API operation until a resource enters a desired state.
2329
+ #
2330
+ # ## Basic Usage
2331
+ #
2332
+ # A waiter will call an API operation until:
2333
+ #
2334
+ # * It is successful
2335
+ # * It enters a terminal state
2336
+ # * It makes the maximum number of attempts
2337
+ #
2338
+ # In between attempts, the waiter will sleep.
2339
+ #
2340
+ # # polls in a loop, sleeping between attempts
2341
+ # client.wait_until(waiter_name, params)
2342
+ #
2343
+ # ## Configuration
2344
+ #
2345
+ # You can configure the maximum number of polling attempts, and the
2346
+ # delay (in seconds) between each polling attempt. You can pass
2347
+ # configuration as the final arguments hash.
2348
+ #
2349
+ # # poll for ~25 seconds
2350
+ # client.wait_until(waiter_name, params, {
2351
+ # max_attempts: 5,
2352
+ # delay: 5,
2353
+ # })
2354
+ #
2355
+ # ## Callbacks
2356
+ #
2357
+ # You can be notified before each polling attempt and before each
2358
+ # delay. If you throw `:success` or `:failure` from these callbacks,
2359
+ # it will terminate the waiter.
2360
+ #
2361
+ # started_at = Time.now
2362
+ # client.wait_until(waiter_name, params, {
2363
+ #
2364
+ # # disable max attempts
2365
+ # max_attempts: nil,
2366
+ #
2367
+ # # poll for 1 hour, instead of a number of attempts
2368
+ # before_wait: -> (attempts, response) do
2369
+ # throw :failure if Time.now - started_at > 3600
2370
+ # end
2371
+ # })
2372
+ #
2373
+ # ## Handling Errors
2374
+ #
2375
+ # When a waiter is unsuccessful, it will raise an error.
2376
+ # All of the failure errors extend from
2377
+ # {Aws::Waiters::Errors::WaiterFailed}.
2378
+ #
2379
+ # begin
2380
+ # client.wait_until(...)
2381
+ # rescue Aws::Waiters::Errors::WaiterFailed
2382
+ # # resource did not enter the desired state in time
2383
+ # end
2384
+ #
2385
+ # ## Valid Waiters
2386
+ #
2387
+ # The following table lists the valid waiter names, the operations they call,
2388
+ # and the default `:delay` and `:max_attempts` values.
2389
+ #
2390
+ # | waiter_name | params | :delay | :max_attempts |
2391
+ # | ----------------------------- | ----------------------------------- | -------- | ------------- |
2392
+ # | plan_evaluation_status_passed | {Client#get_plan_evaluation_status} | 30 | 5 |
2393
+ # | plan_execution_completed | {Client#get_plan_execution} | 30 | 5 |
2394
+ #
2395
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
2396
+ # because the waiter has entered a state that it will not transition
2397
+ # out of, preventing success.
2398
+ #
2399
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
2400
+ # maximum number of attempts have been made, and the waiter is not
2401
+ # yet successful.
2402
+ #
2403
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
2404
+ # while polling for a resource that is not expected.
2405
+ #
2406
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
2407
+ # for an unknown state.
2408
+ #
2409
+ # @return [Boolean] Returns `true` if the waiter was successful.
2410
+ # @param [Symbol] waiter_name
2411
+ # @param [Hash] params ({})
2412
+ # @param [Hash] options ({})
2413
+ # @option options [Integer] :max_attempts
2414
+ # @option options [Integer] :delay
2415
+ # @option options [Proc] :before_attempt
2416
+ # @option options [Proc] :before_wait
2417
+ def wait_until(waiter_name, params = {}, options = {})
2418
+ w = waiter(waiter_name, options)
2419
+ yield(w.waiter) if block_given? # deprecated
2420
+ w.wait(params)
2421
+ end
2422
+
2423
+ # @api private
2424
+ # @deprecated
2425
+ def waiter_names
2426
+ waiters.keys
2427
+ end
2428
+
2429
+ private
2430
+
2431
+ # @param [Symbol] waiter_name
2432
+ # @param [Hash] options ({})
2433
+ def waiter(waiter_name, options = {})
2434
+ waiter_class = waiters[waiter_name]
2435
+ if waiter_class
2436
+ waiter_class.new(options.merge(client: self))
2437
+ else
2438
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
2439
+ end
2440
+ end
2441
+
2442
+ def waiters
2443
+ {
2444
+ plan_evaluation_status_passed: Waiters::PlanEvaluationStatusPassed,
2445
+ plan_execution_completed: Waiters::PlanExecutionCompleted
2446
+ }
2447
+ end
2448
+
2449
+ class << self
2450
+
2451
+ # @api private
2452
+ attr_reader :identifier
2453
+
2454
+ # @api private
2455
+ def errors_module
2456
+ Errors
2457
+ end
2458
+
2459
+ end
2460
+ end
2461
+ end