aws-sdk-elementalinference 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,1124 @@
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/rest_json'
38
+
39
+ module Aws::ElementalInference
40
+ # An API client for ElementalInference. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::ElementalInference::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 = :elementalinference
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::RestJson)
88
+ add_plugin(Aws::ElementalInference::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 any class that includes and implements
99
+ # `Aws::CredentialProvider`, or instance of any one of the 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 locations will be searched for credentials:
128
+ #
129
+ # * `Aws.config[:credentials]`
130
+ #
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ #
134
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
135
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
136
+ #
137
+ # * `~/.aws/credentials`
138
+ #
139
+ # * `~/.aws/config`
140
+ #
141
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
142
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
143
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
144
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
145
+ #
146
+ # @option options [required, String] :region
147
+ # The AWS region to connect to. The configured `:region` is
148
+ # used to determine the service `:endpoint`. When not passed,
149
+ # a default `:region` is searched for in the following locations:
150
+ #
151
+ # * `Aws.config[:region]`
152
+ # * `ENV['AWS_REGION']`
153
+ # * `ENV['AMAZON_REGION']`
154
+ # * `ENV['AWS_DEFAULT_REGION']`
155
+ # * `~/.aws/credentials`
156
+ # * `~/.aws/config`
157
+ #
158
+ # @option options [String] :access_key_id
159
+ #
160
+ # @option options [String] :account_id
161
+ #
162
+ # @option options [Boolean] :active_endpoint_cache (false)
163
+ # When set to `true`, a thread polling for endpoints will be running in
164
+ # the background every 60 secs (default). Defaults to `false`.
165
+ #
166
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
167
+ # Used only in `adaptive` retry mode. When true, the request will sleep
168
+ # until there is sufficent client side capacity to retry the request.
169
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
170
+ # not retry instead of sleeping.
171
+ #
172
+ # @option options [Array<String>] :auth_scheme_preference
173
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
174
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
175
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
176
+ #
177
+ # @option options [Boolean] :client_side_monitoring (false)
178
+ # When `true`, client-side metrics will be collected for all API requests from
179
+ # this client.
180
+ #
181
+ # @option options [String] :client_side_monitoring_client_id ("")
182
+ # Allows you to provide an identifier for this client which will be attached to
183
+ # all generated client side metrics. Defaults to an empty string.
184
+ #
185
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
186
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
187
+ # side monitoring agent is running on, where client metrics will be published via UDP.
188
+ #
189
+ # @option options [Integer] :client_side_monitoring_port (31000)
190
+ # Required for publishing client metrics. The port that the client side monitoring
191
+ # agent is running on, where client metrics will be published via UDP.
192
+ #
193
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
194
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
195
+ # will use the Client Side Monitoring Agent Publisher.
196
+ #
197
+ # @option options [Boolean] :convert_params (true)
198
+ # When `true`, an attempt is made to coerce request parameters into
199
+ # the required types.
200
+ #
201
+ # @option options [Boolean] :correct_clock_skew (true)
202
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
203
+ # a clock skew correction and retry requests with skewed client clocks.
204
+ #
205
+ # @option options [String] :defaults_mode ("legacy")
206
+ # See {Aws::DefaultsModeConfiguration} for a list of the
207
+ # accepted modes and the configuration defaults that are included.
208
+ #
209
+ # @option options [Boolean] :disable_host_prefix_injection (false)
210
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
211
+ #
212
+ # @option options [Boolean] :disable_request_compression (false)
213
+ # When set to 'true' the request body will not be compressed
214
+ # for supported operations.
215
+ #
216
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
217
+ # Normally you should not configure the `:endpoint` option
218
+ # directly. This is normally constructed from the `:region`
219
+ # option. Configuring `:endpoint` is normally reserved for
220
+ # connecting to test or custom endpoints. The endpoint should
221
+ # be a URI formatted like:
222
+ #
223
+ # 'http://example.com'
224
+ # 'https://example.com'
225
+ # 'http://example.com:123'
226
+ #
227
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
228
+ # Used for the maximum size limit of the LRU cache storing endpoints data
229
+ # for endpoint discovery enabled operations. Defaults to 1000.
230
+ #
231
+ # @option options [Integer] :endpoint_cache_max_threads (10)
232
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
233
+ #
234
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
235
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
236
+ # Use this option to config the time interval in seconds for making
237
+ # requests fetching endpoints information. Defaults to 60 sec.
238
+ #
239
+ # @option options [Boolean] :endpoint_discovery (false)
240
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
241
+ #
242
+ # @option options [Boolean] :ignore_configured_endpoint_urls
243
+ # Setting to true disables use of endpoint URLs provided via environment
244
+ # variables and the shared configuration file.
245
+ #
246
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
247
+ # The log formatter.
248
+ #
249
+ # @option options [Symbol] :log_level (:info)
250
+ # The log level to send messages to the `:logger` at.
251
+ #
252
+ # @option options [Logger] :logger
253
+ # The Logger instance to send log messages to. If this option
254
+ # is not set, logging will be disabled.
255
+ #
256
+ # @option options [Integer] :max_attempts (3)
257
+ # An integer representing the maximum number attempts that will be made for
258
+ # a single request, including the initial attempt. For example,
259
+ # setting this value to 5 will result in a request being retried up to
260
+ # 4 times. Used in `standard` and `adaptive` retry modes.
261
+ #
262
+ # @option options [String] :profile ("default")
263
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
264
+ # When not specified, 'default' is used.
265
+ #
266
+ # @option options [String] :request_checksum_calculation ("when_supported")
267
+ # Determines when a checksum will be calculated for request payloads. Values are:
268
+ #
269
+ # * `when_supported` - (default) When set, a checksum will be
270
+ # calculated for all request payloads of operations modeled with the
271
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
272
+ # `requestAlgorithmMember` is modeled.
273
+ # * `when_required` - When set, a checksum will only be calculated for
274
+ # request payloads of operations modeled with the `httpChecksum` trait where
275
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
276
+ # is modeled and supplied.
277
+ #
278
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
279
+ # The minimum size in bytes that triggers compression for request
280
+ # bodies. The value must be non-negative integer value between 0
281
+ # and 10485780 bytes inclusive.
282
+ #
283
+ # @option options [String] :response_checksum_validation ("when_supported")
284
+ # Determines when checksum validation will be performed on response payloads. Values are:
285
+ #
286
+ # * `when_supported` - (default) When set, checksum validation is performed on all
287
+ # response payloads of operations modeled with the `httpChecksum` trait where
288
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
289
+ # are supported.
290
+ # * `when_required` - When set, checksum validation is not performed on
291
+ # response payloads of operations unless the checksum algorithm is supported and
292
+ # the `requestValidationModeMember` member is set to `ENABLED`.
293
+ #
294
+ # @option options [Proc] :retry_backoff
295
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
296
+ # This option is only used in the `legacy` retry mode.
297
+ #
298
+ # @option options [Float] :retry_base_delay (0.3)
299
+ # The base delay in seconds used by the default backoff function. This option
300
+ # is only used in the `legacy` retry mode.
301
+ #
302
+ # @option options [Symbol] :retry_jitter (:none)
303
+ # A delay randomiser function used by the default backoff function.
304
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
305
+ # otherwise a Proc that takes and returns a number. This option is only used
306
+ # in the `legacy` retry mode.
307
+ #
308
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
309
+ #
310
+ # @option options [Integer] :retry_limit (3)
311
+ # The maximum number of times to retry failed requests. Only
312
+ # ~ 500 level server errors and certain ~ 400 level client errors
313
+ # are retried. Generally, these are throttling errors, data
314
+ # checksum errors, networking errors, timeout errors, auth errors,
315
+ # endpoint discovery, and errors from expired credentials.
316
+ # This option is only used in the `legacy` retry mode.
317
+ #
318
+ # @option options [Integer] :retry_max_delay (0)
319
+ # The maximum number of seconds to delay between retries (0 for no limit)
320
+ # used by the default backoff function. This option is only used in the
321
+ # `legacy` retry mode.
322
+ #
323
+ # @option options [String] :retry_mode ("legacy")
324
+ # Specifies which retry algorithm to use. Values are:
325
+ #
326
+ # * `legacy` - The pre-existing retry behavior. This is default value if
327
+ # no retry mode is provided.
328
+ #
329
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
330
+ # This includes support for retry quotas, which limit the number of
331
+ # unsuccessful retries a client can make.
332
+ #
333
+ # * `adaptive` - An experimental retry mode that includes all the
334
+ # functionality of `standard` mode along with automatic client side
335
+ # throttling. This is a provisional mode that may change behavior
336
+ # in the future.
337
+ #
338
+ # @option options [String] :sdk_ua_app_id
339
+ # A unique and opaque application ID that is appended to the
340
+ # User-Agent header as app/sdk_ua_app_id. It should have a
341
+ # maximum length of 50. This variable is sourced from environment
342
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
343
+ #
344
+ # @option options [String] :secret_access_key
345
+ #
346
+ # @option options [String] :session_token
347
+ #
348
+ # @option options [Array] :sigv4a_signing_region_set
349
+ # A list of regions that should be signed with SigV4a signing. When
350
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
351
+ # in the following locations:
352
+ #
353
+ # * `Aws.config[:sigv4a_signing_region_set]`
354
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
355
+ # * `~/.aws/config`
356
+ #
357
+ # @option options [Boolean] :stub_responses (false)
358
+ # Causes the client to return stubbed responses. By default
359
+ # fake responses are generated and returned. You can specify
360
+ # the response data to return or errors to raise by calling
361
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
362
+ #
363
+ # ** Please note ** When response stubbing is enabled, no HTTP
364
+ # requests are made, and retries are disabled.
365
+ #
366
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
367
+ # Allows you to provide a telemetry provider, which is used to
368
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
369
+ # will not record or emit any telemetry data. The SDK supports the
370
+ # following telemetry providers:
371
+ #
372
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
373
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
374
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
375
+ #
376
+ # @option options [Aws::TokenProvider] :token_provider
377
+ # Your Bearer token used for authentication. This can be any class that includes and implements
378
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
379
+ #
380
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
381
+ # tokens.
382
+ #
383
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
384
+ # access token generated from `aws login`.
385
+ #
386
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
387
+ # will be used to search for tokens configured for your profile in shared configuration files.
388
+ #
389
+ # @option options [Boolean] :use_dualstack_endpoint
390
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
391
+ # will be used if available.
392
+ #
393
+ # @option options [Boolean] :use_fips_endpoint
394
+ # When set to `true`, fips compatible endpoints will be used if available.
395
+ # When a `fips` region is used, the region is normalized and this config
396
+ # is set to `true`.
397
+ #
398
+ # @option options [Boolean] :validate_params (true)
399
+ # When `true`, request parameters are validated before
400
+ # sending the request.
401
+ #
402
+ # @option options [Aws::ElementalInference::EndpointProvider] :endpoint_provider
403
+ # The endpoint provider used to resolve endpoints. Any object that responds to
404
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
405
+ # `Aws::ElementalInference::EndpointParameters`.
406
+ #
407
+ # @option options [Float] :http_continue_timeout (1)
408
+ # The number of seconds to wait for a 100-continue response before sending the
409
+ # request body. This option has no effect unless the request has "Expect"
410
+ # header set to "100-continue". Defaults to `nil` which disables this
411
+ # behaviour. This value can safely be set per request on the session.
412
+ #
413
+ # @option options [Float] :http_idle_timeout (5)
414
+ # The number of seconds a connection is allowed to sit idle before it
415
+ # is considered stale. Stale connections are closed and removed from the
416
+ # pool before making a request.
417
+ #
418
+ # @option options [Float] :http_open_timeout (15)
419
+ # The default number of seconds to wait for response data.
420
+ # This value can safely be set per-request on the session.
421
+ #
422
+ # @option options [URI::HTTP,String] :http_proxy
423
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
424
+ #
425
+ # @option options [Float] :http_read_timeout (60)
426
+ # The default number of seconds to wait for response data.
427
+ # This value can safely be set per-request on the session.
428
+ #
429
+ # @option options [Boolean] :http_wire_trace (false)
430
+ # When `true`, HTTP debug output will be sent to the `:logger`.
431
+ #
432
+ # @option options [Proc] :on_chunk_received
433
+ # When a Proc object is provided, it will be used as callback when each chunk
434
+ # of the response body is received. It provides three arguments: the chunk,
435
+ # the number of bytes received, and the total number of
436
+ # bytes in the response (or nil if the server did not send a `content-length`).
437
+ #
438
+ # @option options [Proc] :on_chunk_sent
439
+ # When a Proc object is provided, it will be used as callback when each chunk
440
+ # of the request body is sent. It provides three arguments: the chunk,
441
+ # the number of bytes read from the body, and the total number of
442
+ # bytes in the body.
443
+ #
444
+ # @option options [Boolean] :raise_response_errors (true)
445
+ # When `true`, response errors are raised.
446
+ #
447
+ # @option options [String] :ssl_ca_bundle
448
+ # Full path to the SSL certificate authority bundle file that should be used when
449
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
450
+ # `:ssl_ca_directory` the the system default will be used if available.
451
+ #
452
+ # @option options [String] :ssl_ca_directory
453
+ # Full path of the directory that contains the unbundled SSL certificate
454
+ # authority files for verifying peer certificates. If you do
455
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
456
+ # default will be used if available.
457
+ #
458
+ # @option options [String] :ssl_ca_store
459
+ # Sets the X509::Store to verify peer certificate.
460
+ #
461
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
462
+ # Sets a client certificate when creating http connections.
463
+ #
464
+ # @option options [OpenSSL::PKey] :ssl_key
465
+ # Sets a client key when creating http connections.
466
+ #
467
+ # @option options [Float] :ssl_timeout
468
+ # Sets the SSL timeout in seconds
469
+ #
470
+ # @option options [Boolean] :ssl_verify_peer (true)
471
+ # When `true`, SSL peer certificates are verified when establishing a connection.
472
+ #
473
+ def initialize(*args)
474
+ super
475
+ end
476
+
477
+ # @!group API Operations
478
+
479
+ # Associates a resource with the feed. The resource provides the input
480
+ # that Elemental Inference needs needs in order to perform an Elemental
481
+ # Inference feature, such as cropping video. You always provide the
482
+ # resource by associating it with a feed. You can associate only one
483
+ # resource with each feed.
484
+ #
485
+ # @option params [required, String] :id
486
+ # The ID of the feed.
487
+ #
488
+ # @option params [required, String] :associated_resource_name
489
+ # An identifier for the resource. If the resource is from an AWS
490
+ # service, this identifier must be the full ARN of that resource.
491
+ # Otherwise, the identifier is a name that you assign and that is
492
+ # appropriate for the application that owns the resource. This name must
493
+ # not resemble an ARN.
494
+ #
495
+ # **A suitable default value is auto-generated.** You should normally
496
+ # not need to pass this option.**
497
+ #
498
+ # @option params [required, Array<Types::CreateOutput>] :outputs
499
+ # The outputs to add to this feed. You must specify at least one output.
500
+ # You can later use the UpdateFeed action to change the list of outputs.
501
+ #
502
+ # @option params [Boolean] :dry_run
503
+ # Set to true if you want to do a dry run of the associate action.
504
+ #
505
+ # @return [Types::AssociateFeedResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
506
+ #
507
+ # * {Types::AssociateFeedResponse#arn #arn} => String
508
+ # * {Types::AssociateFeedResponse#id #id} => String
509
+ #
510
+ # @example Request syntax with placeholder values
511
+ #
512
+ # resp = client.associate_feed({
513
+ # id: "FeedId", # required
514
+ # associated_resource_name: "AssociatedResourceName", # required
515
+ # outputs: [ # required
516
+ # {
517
+ # name: "ResourceName", # required
518
+ # output_config: { # required
519
+ # cropping: {
520
+ # },
521
+ # clipping: {
522
+ # callback_metadata: "ResourceDescription",
523
+ # },
524
+ # },
525
+ # status: "ENABLED", # required, accepts ENABLED, DISABLED
526
+ # description: "ResourceDescription",
527
+ # },
528
+ # ],
529
+ # dry_run: false,
530
+ # })
531
+ #
532
+ # @example Response structure
533
+ #
534
+ # resp.arn #=> String
535
+ # resp.id #=> String
536
+ #
537
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elementalinference-2018-11-14/AssociateFeed AWS API Documentation
538
+ #
539
+ # @overload associate_feed(params = {})
540
+ # @param [Hash] params ({})
541
+ def associate_feed(params = {}, options = {})
542
+ req = build_request(:associate_feed, params)
543
+ req.send_request(options)
544
+ end
545
+
546
+ # Creates a feed. The feed is the target for live streams being sent by
547
+ # the calling application. An example of a calling application is AWS
548
+ # Elemental MediaLive. After you create the feed, you can associate a
549
+ # resource with the feed.
550
+ #
551
+ # @option params [required, String] :name
552
+ # A name for this feed.
553
+ #
554
+ # @option params [required, Array<Types::CreateOutput>] :outputs
555
+ # An array of outputs for this feed. Each output represents a specific
556
+ # Elemental Inference feature. For example, an output might represent
557
+ # the crop feature.
558
+ #
559
+ # @option params [Hash<String,String>] :tags
560
+ # If you want to include tags, add them now. You won't be able to add
561
+ # them later.
562
+ #
563
+ # @return [Types::CreateFeedResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
564
+ #
565
+ # * {Types::CreateFeedResponse#arn #arn} => String
566
+ # * {Types::CreateFeedResponse#name #name} => String
567
+ # * {Types::CreateFeedResponse#id #id} => String
568
+ # * {Types::CreateFeedResponse#data_endpoints #data_endpoints} => Array&lt;String&gt;
569
+ # * {Types::CreateFeedResponse#outputs #outputs} => Array&lt;Types::GetOutput&gt;
570
+ # * {Types::CreateFeedResponse#status #status} => String
571
+ # * {Types::CreateFeedResponse#association #association} => Types::FeedAssociation
572
+ # * {Types::CreateFeedResponse#tags #tags} => Hash&lt;String,String&gt;
573
+ #
574
+ # @example Request syntax with placeholder values
575
+ #
576
+ # resp = client.create_feed({
577
+ # name: "ResourceName", # required
578
+ # outputs: [ # required
579
+ # {
580
+ # name: "ResourceName", # required
581
+ # output_config: { # required
582
+ # cropping: {
583
+ # },
584
+ # clipping: {
585
+ # callback_metadata: "ResourceDescription",
586
+ # },
587
+ # },
588
+ # status: "ENABLED", # required, accepts ENABLED, DISABLED
589
+ # description: "ResourceDescription",
590
+ # },
591
+ # ],
592
+ # tags: {
593
+ # "TagKey" => "TagValue",
594
+ # },
595
+ # })
596
+ #
597
+ # @example Response structure
598
+ #
599
+ # resp.arn #=> String
600
+ # resp.name #=> String
601
+ # resp.id #=> String
602
+ # resp.data_endpoints #=> Array
603
+ # resp.data_endpoints[0] #=> String
604
+ # resp.outputs #=> Array
605
+ # resp.outputs[0].name #=> String
606
+ # resp.outputs[0].output_config.clipping.callback_metadata #=> String
607
+ # resp.outputs[0].status #=> String, one of "ENABLED", "DISABLED"
608
+ # resp.outputs[0].description #=> String
609
+ # resp.outputs[0].from_association #=> Boolean
610
+ # resp.status #=> String, one of "CREATING", "AVAILABLE", "ACTIVE", "UPDATING", "DELETING", "DELETED", "ARCHIVED"
611
+ # resp.association.associated_resource_name #=> String
612
+ # resp.tags #=> Hash
613
+ # resp.tags["TagKey"] #=> String
614
+ #
615
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elementalinference-2018-11-14/CreateFeed AWS API Documentation
616
+ #
617
+ # @overload create_feed(params = {})
618
+ # @param [Hash] params ({})
619
+ def create_feed(params = {}, options = {})
620
+ req = build_request(:create_feed, params)
621
+ req.send_request(options)
622
+ end
623
+
624
+ # Deletes the specified feed. The feed can be deleted at any time.
625
+ #
626
+ # @option params [required, String] :id
627
+ # The ID of the feed.
628
+ #
629
+ # @return [Types::DeleteFeedResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
630
+ #
631
+ # * {Types::DeleteFeedResponse#arn #arn} => String
632
+ # * {Types::DeleteFeedResponse#id #id} => String
633
+ # * {Types::DeleteFeedResponse#status #status} => String
634
+ #
635
+ # @example Request syntax with placeholder values
636
+ #
637
+ # resp = client.delete_feed({
638
+ # id: "FeedId", # required
639
+ # })
640
+ #
641
+ # @example Response structure
642
+ #
643
+ # resp.arn #=> String
644
+ # resp.id #=> String
645
+ # resp.status #=> String, one of "CREATING", "AVAILABLE", "ACTIVE", "UPDATING", "DELETING", "DELETED", "ARCHIVED"
646
+ #
647
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elementalinference-2018-11-14/DeleteFeed AWS API Documentation
648
+ #
649
+ # @overload delete_feed(params = {})
650
+ # @param [Hash] params ({})
651
+ def delete_feed(params = {}, options = {})
652
+ req = build_request(:delete_feed, params)
653
+ req.send_request(options)
654
+ end
655
+
656
+ # Releases the resource (for example, an MediaLive channel) that is
657
+ # associated with this feed. The outputs in the feed become disabled.
658
+ #
659
+ # @option params [required, String] :id
660
+ # The ID of the feed where you want to release the resource.
661
+ #
662
+ # @option params [required, String] :associated_resource_name
663
+ # The name of the resource currently associated with the feed'.
664
+ #
665
+ # **A suitable default value is auto-generated.** You should normally
666
+ # not need to pass this option.**
667
+ #
668
+ # @option params [Boolean] :dry_run
669
+ # Set to true if you want to do a dry run of the disassociate action.
670
+ #
671
+ # @return [Types::DisassociateFeedResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
672
+ #
673
+ # * {Types::DisassociateFeedResponse#arn #arn} => String
674
+ # * {Types::DisassociateFeedResponse#id #id} => String
675
+ #
676
+ # @example Request syntax with placeholder values
677
+ #
678
+ # resp = client.disassociate_feed({
679
+ # id: "FeedId", # required
680
+ # associated_resource_name: "AssociatedResourceName", # required
681
+ # dry_run: false,
682
+ # })
683
+ #
684
+ # @example Response structure
685
+ #
686
+ # resp.arn #=> String
687
+ # resp.id #=> String
688
+ #
689
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elementalinference-2018-11-14/DisassociateFeed AWS API Documentation
690
+ #
691
+ # @overload disassociate_feed(params = {})
692
+ # @param [Hash] params ({})
693
+ def disassociate_feed(params = {}, options = {})
694
+ req = build_request(:disassociate_feed, params)
695
+ req.send_request(options)
696
+ end
697
+
698
+ # Retrieves information about the specified feed.
699
+ #
700
+ # @option params [required, String] :id
701
+ # The ID of the feed to query.
702
+ #
703
+ # @return [Types::GetFeedResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
704
+ #
705
+ # * {Types::GetFeedResponse#arn #arn} => String
706
+ # * {Types::GetFeedResponse#name #name} => String
707
+ # * {Types::GetFeedResponse#id #id} => String
708
+ # * {Types::GetFeedResponse#data_endpoints #data_endpoints} => Array&lt;String&gt;
709
+ # * {Types::GetFeedResponse#outputs #outputs} => Array&lt;Types::GetOutput&gt;
710
+ # * {Types::GetFeedResponse#status #status} => String
711
+ # * {Types::GetFeedResponse#association #association} => Types::FeedAssociation
712
+ # * {Types::GetFeedResponse#tags #tags} => Hash&lt;String,String&gt;
713
+ #
714
+ # @example Request syntax with placeholder values
715
+ #
716
+ # resp = client.get_feed({
717
+ # id: "FeedId", # required
718
+ # })
719
+ #
720
+ # @example Response structure
721
+ #
722
+ # resp.arn #=> String
723
+ # resp.name #=> String
724
+ # resp.id #=> String
725
+ # resp.data_endpoints #=> Array
726
+ # resp.data_endpoints[0] #=> String
727
+ # resp.outputs #=> Array
728
+ # resp.outputs[0].name #=> String
729
+ # resp.outputs[0].output_config.clipping.callback_metadata #=> String
730
+ # resp.outputs[0].status #=> String, one of "ENABLED", "DISABLED"
731
+ # resp.outputs[0].description #=> String
732
+ # resp.outputs[0].from_association #=> Boolean
733
+ # resp.status #=> String, one of "CREATING", "AVAILABLE", "ACTIVE", "UPDATING", "DELETING", "DELETED", "ARCHIVED"
734
+ # resp.association.associated_resource_name #=> String
735
+ # resp.tags #=> Hash
736
+ # resp.tags["TagKey"] #=> String
737
+ #
738
+ #
739
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
740
+ #
741
+ # * feed_deleted
742
+ #
743
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elementalinference-2018-11-14/GetFeed AWS API Documentation
744
+ #
745
+ # @overload get_feed(params = {})
746
+ # @param [Hash] params ({})
747
+ def get_feed(params = {}, options = {})
748
+ req = build_request(:get_feed, params)
749
+ req.send_request(options)
750
+ end
751
+
752
+ # Displays a list of feeds that belong to this AWS account.
753
+ #
754
+ # @option params [Integer] :max_results
755
+ # The maximum number of results to return per API request.
756
+ #
757
+ # For example, you submit a list request with MaxResults set at 5.
758
+ # Although 20 items match your request, the service returns no more than
759
+ # the first 5 items. (The service also returns a NextToken value that
760
+ # you can use to fetch the next batch of results.)
761
+ #
762
+ # The service might return fewer results than the MaxResults value. If
763
+ # MaxResults is not included in the request, the service defaults to
764
+ # pagination with a maximum of 10 results per page.
765
+ #
766
+ # Valid Range: Minimum value of 1. Maximum value of 1000.
767
+ #
768
+ # @option params [String] :next_token
769
+ # The token that identifies the batch of results that you want to see.
770
+ #
771
+ # For example, you submit a ListBridges request with MaxResults set at
772
+ # 5. The service returns the first batch of results (up to 5) and a
773
+ # NextToken value. To see the next batch of results, you can submit the
774
+ # ListBridges request a second time and specify the NextToken value.
775
+ #
776
+ # @return [Types::ListFeedsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
777
+ #
778
+ # * {Types::ListFeedsResponse#feeds #feeds} => Array&lt;Types::FeedSummary&gt;
779
+ # * {Types::ListFeedsResponse#next_token #next_token} => String
780
+ #
781
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
782
+ #
783
+ # @example Request syntax with placeholder values
784
+ #
785
+ # resp = client.list_feeds({
786
+ # max_results: 1,
787
+ # next_token: "String",
788
+ # })
789
+ #
790
+ # @example Response structure
791
+ #
792
+ # resp.feeds #=> Array
793
+ # resp.feeds[0].arn #=> String
794
+ # resp.feeds[0].id #=> String
795
+ # resp.feeds[0].name #=> String
796
+ # resp.feeds[0].association.associated_resource_name #=> String
797
+ # resp.feeds[0].status #=> String, one of "CREATING", "AVAILABLE", "ACTIVE", "UPDATING", "DELETING", "DELETED", "ARCHIVED"
798
+ # resp.next_token #=> String
799
+ #
800
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elementalinference-2018-11-14/ListFeeds AWS API Documentation
801
+ #
802
+ # @overload list_feeds(params = {})
803
+ # @param [Hash] params ({})
804
+ def list_feeds(params = {}, options = {})
805
+ req = build_request(:list_feeds, params)
806
+ req.send_request(options)
807
+ end
808
+
809
+ # List all tags that are on an Elemental Inference resource in the
810
+ # current region.
811
+ #
812
+ # @option params [required, String] :resource_arn
813
+ # The ARN of the resource whose tags you want to query.
814
+ #
815
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
816
+ #
817
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
818
+ #
819
+ # @example Request syntax with placeholder values
820
+ #
821
+ # resp = client.list_tags_for_resource({
822
+ # resource_arn: "ResourceArn", # required
823
+ # })
824
+ #
825
+ # @example Response structure
826
+ #
827
+ # resp.tags #=> Hash
828
+ # resp.tags["TagKey"] #=> String
829
+ #
830
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elementalinference-2018-11-14/ListTagsForResource AWS API Documentation
831
+ #
832
+ # @overload list_tags_for_resource(params = {})
833
+ # @param [Hash] params ({})
834
+ def list_tags_for_resource(params = {}, options = {})
835
+ req = build_request(:list_tags_for_resource, params)
836
+ req.send_request(options)
837
+ end
838
+
839
+ # Associates the specified tags to the resource identified by the
840
+ # specified resourceArn in the current region. If existing tags on a
841
+ # resource are not specified in the request parameters, they are not
842
+ # changed. When a resource is deleted, the tags associated with that
843
+ # resource are also deleted.
844
+ #
845
+ # @option params [required, String] :resource_arn
846
+ # The ARN of the resource where you want to add tags.
847
+ #
848
+ # @option params [required, Hash<String,String>] :tags
849
+ # A list of tags to add to the resource.
850
+ #
851
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
852
+ #
853
+ # @example Request syntax with placeholder values
854
+ #
855
+ # resp = client.tag_resource({
856
+ # resource_arn: "ResourceArn", # required
857
+ # tags: { # required
858
+ # "TagKey" => "TagValue",
859
+ # },
860
+ # })
861
+ #
862
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elementalinference-2018-11-14/TagResource AWS API Documentation
863
+ #
864
+ # @overload tag_resource(params = {})
865
+ # @param [Hash] params ({})
866
+ def tag_resource(params = {}, options = {})
867
+ req = build_request(:tag_resource, params)
868
+ req.send_request(options)
869
+ end
870
+
871
+ # Deletes specified tags from the specified resource in the current
872
+ # region.
873
+ #
874
+ # @option params [required, String] :resource_arn
875
+ # The ARN of the resource where you want to delete one or more tags.
876
+ #
877
+ # @option params [required, Array<String>] :tag_keys
878
+ # The keys of the tags to delete.
879
+ #
880
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
881
+ #
882
+ # @example Request syntax with placeholder values
883
+ #
884
+ # resp = client.untag_resource({
885
+ # resource_arn: "ResourceArn", # required
886
+ # tag_keys: ["TagKey"], # required
887
+ # })
888
+ #
889
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elementalinference-2018-11-14/UntagResource AWS API Documentation
890
+ #
891
+ # @overload untag_resource(params = {})
892
+ # @param [Hash] params ({})
893
+ def untag_resource(params = {}, options = {})
894
+ req = build_request(:untag_resource, params)
895
+ req.send_request(options)
896
+ end
897
+
898
+ # Updates the name and/or outputs in a feed.
899
+ #
900
+ # @option params [required, String] :name
901
+ # Required. You can specify the existing name (to leave it unchanged) or
902
+ # a new name.
903
+ #
904
+ # @option params [required, String] :id
905
+ # The ID of the feed to update.
906
+ #
907
+ # @option params [required, Array<Types::UpdateOutput>] :outputs
908
+ # Required. You can specify the existing array of outputs (to leave
909
+ # outputs unchanged) or you can specify a new array.
910
+ #
911
+ # @return [Types::UpdateFeedResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
912
+ #
913
+ # * {Types::UpdateFeedResponse#arn #arn} => String
914
+ # * {Types::UpdateFeedResponse#name #name} => String
915
+ # * {Types::UpdateFeedResponse#id #id} => String
916
+ # * {Types::UpdateFeedResponse#data_endpoints #data_endpoints} => Array&lt;String&gt;
917
+ # * {Types::UpdateFeedResponse#outputs #outputs} => Array&lt;Types::GetOutput&gt;
918
+ # * {Types::UpdateFeedResponse#status #status} => String
919
+ # * {Types::UpdateFeedResponse#association #association} => Types::FeedAssociation
920
+ # * {Types::UpdateFeedResponse#tags #tags} => Hash&lt;String,String&gt;
921
+ #
922
+ # @example Request syntax with placeholder values
923
+ #
924
+ # resp = client.update_feed({
925
+ # name: "ResourceName", # required
926
+ # id: "FeedId", # required
927
+ # outputs: [ # required
928
+ # {
929
+ # name: "ResourceName", # required
930
+ # output_config: { # required
931
+ # cropping: {
932
+ # },
933
+ # clipping: {
934
+ # callback_metadata: "ResourceDescription",
935
+ # },
936
+ # },
937
+ # status: "ENABLED", # required, accepts ENABLED, DISABLED
938
+ # description: "ResourceDescription",
939
+ # from_association: false,
940
+ # },
941
+ # ],
942
+ # })
943
+ #
944
+ # @example Response structure
945
+ #
946
+ # resp.arn #=> String
947
+ # resp.name #=> String
948
+ # resp.id #=> String
949
+ # resp.data_endpoints #=> Array
950
+ # resp.data_endpoints[0] #=> String
951
+ # resp.outputs #=> Array
952
+ # resp.outputs[0].name #=> String
953
+ # resp.outputs[0].output_config.clipping.callback_metadata #=> String
954
+ # resp.outputs[0].status #=> String, one of "ENABLED", "DISABLED"
955
+ # resp.outputs[0].description #=> String
956
+ # resp.outputs[0].from_association #=> Boolean
957
+ # resp.status #=> String, one of "CREATING", "AVAILABLE", "ACTIVE", "UPDATING", "DELETING", "DELETED", "ARCHIVED"
958
+ # resp.association.associated_resource_name #=> String
959
+ # resp.tags #=> Hash
960
+ # resp.tags["TagKey"] #=> String
961
+ #
962
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elementalinference-2018-11-14/UpdateFeed AWS API Documentation
963
+ #
964
+ # @overload update_feed(params = {})
965
+ # @param [Hash] params ({})
966
+ def update_feed(params = {}, options = {})
967
+ req = build_request(:update_feed, params)
968
+ req.send_request(options)
969
+ end
970
+
971
+ # @!endgroup
972
+
973
+ # @param params ({})
974
+ # @api private
975
+ def build_request(operation_name, params = {})
976
+ handlers = @handlers.for(operation_name)
977
+ tracer = config.telemetry_provider.tracer_provider.tracer(
978
+ Aws::Telemetry.module_to_tracer_name('Aws::ElementalInference')
979
+ )
980
+ context = Seahorse::Client::RequestContext.new(
981
+ operation_name: operation_name,
982
+ operation: config.api.operation(operation_name),
983
+ client: self,
984
+ params: params,
985
+ config: config,
986
+ tracer: tracer
987
+ )
988
+ context[:gem_name] = 'aws-sdk-elementalinference'
989
+ context[:gem_version] = '1.0.0'
990
+ Seahorse::Client::Request.new(handlers, context)
991
+ end
992
+
993
+ # Polls an API operation until a resource enters a desired state.
994
+ #
995
+ # ## Basic Usage
996
+ #
997
+ # A waiter will call an API operation until:
998
+ #
999
+ # * It is successful
1000
+ # * It enters a terminal state
1001
+ # * It makes the maximum number of attempts
1002
+ #
1003
+ # In between attempts, the waiter will sleep.
1004
+ #
1005
+ # # polls in a loop, sleeping between attempts
1006
+ # client.wait_until(waiter_name, params)
1007
+ #
1008
+ # ## Configuration
1009
+ #
1010
+ # You can configure the maximum number of polling attempts, and the
1011
+ # delay (in seconds) between each polling attempt. You can pass
1012
+ # configuration as the final arguments hash.
1013
+ #
1014
+ # # poll for ~25 seconds
1015
+ # client.wait_until(waiter_name, params, {
1016
+ # max_attempts: 5,
1017
+ # delay: 5,
1018
+ # })
1019
+ #
1020
+ # ## Callbacks
1021
+ #
1022
+ # You can be notified before each polling attempt and before each
1023
+ # delay. If you throw `:success` or `:failure` from these callbacks,
1024
+ # it will terminate the waiter.
1025
+ #
1026
+ # started_at = Time.now
1027
+ # client.wait_until(waiter_name, params, {
1028
+ #
1029
+ # # disable max attempts
1030
+ # max_attempts: nil,
1031
+ #
1032
+ # # poll for 1 hour, instead of a number of attempts
1033
+ # before_wait: -> (attempts, response) do
1034
+ # throw :failure if Time.now - started_at > 3600
1035
+ # end
1036
+ # })
1037
+ #
1038
+ # ## Handling Errors
1039
+ #
1040
+ # When a waiter is unsuccessful, it will raise an error.
1041
+ # All of the failure errors extend from
1042
+ # {Aws::Waiters::Errors::WaiterFailed}.
1043
+ #
1044
+ # begin
1045
+ # client.wait_until(...)
1046
+ # rescue Aws::Waiters::Errors::WaiterFailed
1047
+ # # resource did not enter the desired state in time
1048
+ # end
1049
+ #
1050
+ # ## Valid Waiters
1051
+ #
1052
+ # The following table lists the valid waiter names, the operations they call,
1053
+ # and the default `:delay` and `:max_attempts` values.
1054
+ #
1055
+ # | waiter_name | params | :delay | :max_attempts |
1056
+ # | ------------ | ----------------- | -------- | ------------- |
1057
+ # | feed_deleted | {Client#get_feed} | 3 | 40 |
1058
+ #
1059
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
1060
+ # because the waiter has entered a state that it will not transition
1061
+ # out of, preventing success.
1062
+ #
1063
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
1064
+ # maximum number of attempts have been made, and the waiter is not
1065
+ # yet successful.
1066
+ #
1067
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
1068
+ # while polling for a resource that is not expected.
1069
+ #
1070
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
1071
+ # for an unknown state.
1072
+ #
1073
+ # @return [Boolean] Returns `true` if the waiter was successful.
1074
+ # @param [Symbol] waiter_name
1075
+ # @param [Hash] params ({})
1076
+ # @param [Hash] options ({})
1077
+ # @option options [Integer] :max_attempts
1078
+ # @option options [Integer] :delay
1079
+ # @option options [Proc] :before_attempt
1080
+ # @option options [Proc] :before_wait
1081
+ def wait_until(waiter_name, params = {}, options = {})
1082
+ w = waiter(waiter_name, options)
1083
+ yield(w.waiter) if block_given? # deprecated
1084
+ w.wait(params)
1085
+ end
1086
+
1087
+ # @api private
1088
+ # @deprecated
1089
+ def waiter_names
1090
+ waiters.keys
1091
+ end
1092
+
1093
+ private
1094
+
1095
+ # @param [Symbol] waiter_name
1096
+ # @param [Hash] options ({})
1097
+ def waiter(waiter_name, options = {})
1098
+ waiter_class = waiters[waiter_name]
1099
+ if waiter_class
1100
+ waiter_class.new(options.merge(client: self))
1101
+ else
1102
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
1103
+ end
1104
+ end
1105
+
1106
+ def waiters
1107
+ {
1108
+ feed_deleted: Waiters::FeedDeleted
1109
+ }
1110
+ end
1111
+
1112
+ class << self
1113
+
1114
+ # @api private
1115
+ attr_reader :identifier
1116
+
1117
+ # @api private
1118
+ def errors_module
1119
+ Errors
1120
+ end
1121
+
1122
+ end
1123
+ end
1124
+ end