aws-sdk-continuum 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,2632 @@
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::Continuum
40
+ # An API client for Continuum. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::Continuum::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 = :continuum
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::Continuum::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
203
+ # to apply a clock skew correction and retry requests with skewed client
204
+ # clocks. Takes effect only when `disable_clock_skew_correction` is not set.
205
+ #
206
+ # @option options [String] :defaults_mode ("legacy")
207
+ # See {Aws::DefaultsModeConfiguration} for a list of the
208
+ # accepted modes and the configuration defaults that are included.
209
+ #
210
+ # @option options [Boolean] :disable_clock_skew_correction
211
+ # Used only in `standard` and `adaptive` retry modes. When `true`, the
212
+ # SDK does not apply a clock skew correction, does not update its stored
213
+ # skew from responses, and does not retry clock skew errors. Clock skew
214
+ # correction is enabled by default.
215
+ #
216
+ # @option options [Boolean] :disable_host_prefix_injection (false)
217
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
218
+ #
219
+ # @option options [Boolean] :disable_request_compression (false)
220
+ # When set to 'true' the request body will not be compressed
221
+ # for supported operations.
222
+ #
223
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
224
+ # Normally you should not configure the `:endpoint` option
225
+ # directly. This is normally constructed from the `:region`
226
+ # option. Configuring `:endpoint` is normally reserved for
227
+ # connecting to test or custom endpoints. The endpoint should
228
+ # be a URI formatted like:
229
+ #
230
+ # 'http://example.com'
231
+ # 'https://example.com'
232
+ # 'http://example.com:123'
233
+ #
234
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
235
+ # Used for the maximum size limit of the LRU cache storing endpoints data
236
+ # for endpoint discovery enabled operations. Defaults to 1000.
237
+ #
238
+ # @option options [Integer] :endpoint_cache_max_threads (10)
239
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
240
+ #
241
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
242
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
243
+ # Use this option to config the time interval in seconds for making
244
+ # requests fetching endpoints information. Defaults to 60 sec.
245
+ #
246
+ # @option options [Boolean] :endpoint_discovery (false)
247
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
248
+ #
249
+ # @option options [Boolean] :ignore_configured_endpoint_urls
250
+ # Setting to true disables use of endpoint URLs provided via environment
251
+ # variables and the shared configuration file.
252
+ #
253
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
254
+ # The log formatter.
255
+ #
256
+ # @option options [Symbol] :log_level (:info)
257
+ # The log level to send messages to the `:logger` at.
258
+ #
259
+ # @option options [Logger] :logger
260
+ # The Logger instance to send log messages to. If this option
261
+ # is not set, logging will be disabled.
262
+ #
263
+ # @option options [Integer] :max_attempts (3)
264
+ # An integer representing the maximum number attempts that will be made for
265
+ # a single request, including the initial attempt. For example,
266
+ # setting this value to 5 will result in a request being retried up to
267
+ # 4 times. Used in `standard` and `adaptive` retry modes.
268
+ #
269
+ # @option options [String] :profile ("default")
270
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
271
+ # When not specified, 'default' is used.
272
+ #
273
+ # @option options [String] :request_checksum_calculation ("when_supported")
274
+ # Determines when a checksum will be calculated for request payloads. Values are:
275
+ #
276
+ # * `when_supported` - (default) When set, a checksum will be
277
+ # calculated for all request payloads of operations modeled with the
278
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
279
+ # `requestAlgorithmMember` is modeled.
280
+ # * `when_required` - When set, a checksum will only be calculated for
281
+ # request payloads of operations modeled with the `httpChecksum` trait where
282
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
283
+ # is modeled and supplied.
284
+ #
285
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
286
+ # The minimum size in bytes that triggers compression for request
287
+ # bodies. The value must be non-negative integer value between 0
288
+ # and 10485780 bytes inclusive.
289
+ #
290
+ # @option options [String] :response_checksum_validation ("when_supported")
291
+ # Determines when checksum validation will be performed on response payloads. Values are:
292
+ #
293
+ # * `when_supported` - (default) When set, checksum validation is performed on all
294
+ # response payloads of operations modeled with the `httpChecksum` trait where
295
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
296
+ # are supported.
297
+ # * `when_required` - When set, checksum validation is not performed on
298
+ # response payloads of operations unless the checksum algorithm is supported and
299
+ # the `requestValidationModeMember` member is set to `ENABLED`.
300
+ #
301
+ # @option options [Proc] :retry_backoff
302
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
303
+ # This option is only used in the `legacy` retry mode.
304
+ #
305
+ # @option options [Float] :retry_base_delay (0.3)
306
+ # The base delay in seconds used by the default backoff function. This option
307
+ # is only used in the `legacy` retry mode.
308
+ #
309
+ # @option options [Symbol] :retry_jitter (:none)
310
+ # A delay randomiser function used by the default backoff function.
311
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
312
+ # otherwise a Proc that takes and returns a number. This option is only used
313
+ # in the `legacy` retry mode.
314
+ #
315
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
316
+ #
317
+ # @option options [Integer] :retry_limit (3)
318
+ # The maximum number of times to retry failed requests. Only
319
+ # ~ 500 level server errors and certain ~ 400 level client errors
320
+ # are retried. Generally, these are throttling errors, data
321
+ # checksum errors, networking errors, timeout errors, auth errors,
322
+ # endpoint discovery, and errors from expired credentials.
323
+ # This option is only used in the `legacy` retry mode.
324
+ #
325
+ # @option options [Integer] :retry_max_delay (0)
326
+ # The maximum number of seconds to delay between retries (0 for no limit)
327
+ # used by the default backoff function. This option is only used in the
328
+ # `legacy` retry mode.
329
+ #
330
+ # @option options [String] :retry_mode ("legacy")
331
+ # Specifies which retry algorithm to use. Values are:
332
+ #
333
+ # * `legacy` - The pre-existing retry behavior. This is the default
334
+ # value if no retry mode is provided.
335
+ #
336
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
337
+ # This includes support for retry quotas, which limit the number of
338
+ # unsuccessful retries a client can make.
339
+ #
340
+ # * `adaptive` - A retry mode that includes all the functionality of
341
+ # `standard` mode along with automatic client side throttling.
342
+ #
343
+ # @option options [String] :sdk_ua_app_id
344
+ # A unique and opaque application ID that is appended to the
345
+ # User-Agent header as app/sdk_ua_app_id. It should have a
346
+ # maximum length of 50. This variable is sourced from environment
347
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
348
+ #
349
+ # @option options [String] :secret_access_key
350
+ #
351
+ # @option options [String] :session_token
352
+ #
353
+ # @option options [Array] :sigv4a_signing_region_set
354
+ # A list of regions that should be signed with SigV4a signing. When
355
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
356
+ # in the following locations:
357
+ #
358
+ # * `Aws.config[:sigv4a_signing_region_set]`
359
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
360
+ # * `~/.aws/config`
361
+ #
362
+ # @option options [Boolean] :stub_responses (false)
363
+ # Causes the client to return stubbed responses. By default
364
+ # fake responses are generated and returned. You can specify
365
+ # the response data to return or errors to raise by calling
366
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
367
+ #
368
+ # ** Please note ** When response stubbing is enabled, no HTTP
369
+ # requests are made, and retries are disabled.
370
+ #
371
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
372
+ # Allows you to provide a telemetry provider, which is used to
373
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
374
+ # will not record or emit any telemetry data. The SDK supports the
375
+ # following telemetry providers:
376
+ #
377
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
378
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
379
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
380
+ #
381
+ # @option options [Aws::TokenProvider] :token_provider
382
+ # Your Bearer token used for authentication. This can be any class that includes and implements
383
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
384
+ #
385
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
386
+ # tokens.
387
+ #
388
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
389
+ # access token generated from `aws login`.
390
+ #
391
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
392
+ # will be used to search for tokens configured for your profile in shared configuration files.
393
+ #
394
+ # @option options [Boolean] :use_dualstack_endpoint
395
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
396
+ # will be used if available.
397
+ #
398
+ # @option options [Boolean] :use_fips_endpoint
399
+ # When set to `true`, fips compatible endpoints will be used if available.
400
+ # When a `fips` region is used, the region is normalized and this config
401
+ # is set to `true`.
402
+ #
403
+ # @option options [Boolean] :validate_params (true)
404
+ # When `true`, request parameters are validated before
405
+ # sending the request.
406
+ #
407
+ # @option options [Aws::Continuum::EndpointProvider] :endpoint_provider
408
+ # The endpoint provider used to resolve endpoints. Any object that responds to
409
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
410
+ # `Aws::Continuum::EndpointParameters`.
411
+ #
412
+ # @option options [Float] :http_continue_timeout (1)
413
+ # The number of seconds to wait for a 100-continue response before sending the
414
+ # request body. This option has no effect unless the request has "Expect"
415
+ # header set to "100-continue". Defaults to `nil` which disables this
416
+ # behaviour. This value can safely be set per request on the session.
417
+ #
418
+ # @option options [Float] :http_idle_timeout (5)
419
+ # The number of seconds a connection is allowed to sit idle before it
420
+ # is considered stale. Stale connections are closed and removed from the
421
+ # pool before making a request.
422
+ #
423
+ # @option options [Float] :http_open_timeout (15)
424
+ # The default number of seconds to wait for response data.
425
+ # This value can safely be set per-request on the session.
426
+ #
427
+ # @option options [URI::HTTP,String] :http_proxy
428
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
429
+ #
430
+ # @option options [Float] :http_read_timeout (60)
431
+ # The default number of seconds to wait for response data.
432
+ # This value can safely be set per-request on the session.
433
+ #
434
+ # @option options [Boolean] :http_wire_trace (false)
435
+ # When `true`, HTTP debug output will be sent to the `:logger`.
436
+ #
437
+ # @option options [Proc] :on_chunk_received
438
+ # When a Proc object is provided, it will be used as callback when each chunk
439
+ # of the response body is received. It provides three arguments: the chunk,
440
+ # the number of bytes received, and the total number of
441
+ # bytes in the response (or nil if the server did not send a `content-length`).
442
+ #
443
+ # @option options [Proc] :on_chunk_sent
444
+ # When a Proc object is provided, it will be used as callback when each chunk
445
+ # of the request body is sent. It provides three arguments: the chunk,
446
+ # the number of bytes read from the body, and the total number of
447
+ # bytes in the body.
448
+ #
449
+ # @option options [Boolean] :raise_response_errors (true)
450
+ # When `true`, response errors are raised.
451
+ #
452
+ # @option options [String] :ssl_ca_bundle
453
+ # Full path to the SSL certificate authority bundle file that should be used when
454
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
455
+ # `:ssl_ca_directory` the the system default will be used if available.
456
+ #
457
+ # @option options [String] :ssl_ca_directory
458
+ # Full path of the directory that contains the unbundled SSL certificate
459
+ # authority files for verifying peer certificates. If you do
460
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
461
+ # default will be used if available.
462
+ #
463
+ # @option options [String] :ssl_ca_store
464
+ # Sets the X509::Store to verify peer certificate.
465
+ #
466
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
467
+ # Sets a client certificate when creating http connections.
468
+ #
469
+ # @option options [OpenSSL::PKey] :ssl_key
470
+ # Sets a client key when creating http connections.
471
+ #
472
+ # @option options [Float] :ssl_timeout
473
+ # Sets the SSL timeout in seconds
474
+ #
475
+ # @option options [Boolean] :ssl_verify_peer (true)
476
+ # When `true`, SSL peer certificates are verified when establishing a connection.
477
+ #
478
+ def initialize(*args)
479
+ super
480
+ end
481
+
482
+ # @!group API Operations
483
+
484
+ # Associates one Collector with this Environment and configures the
485
+ # customer role Continuum uses to authorize access to associated
486
+ # Collector data. The caller must have permission on the Environment and
487
+ # permission to pass the role. Continuum assumes the supplied role and
488
+ # calls GetCollectorDataAccessAuthorization on the requested Collector;
489
+ # only a successful authorization response permits the association. The
490
+ # caller does not need Collector data-access permission. The Environment
491
+ # retains its other Collector associations. Calling again with an
492
+ # existing association is safe and does not create a duplicate.
493
+ #
494
+ # @option params [required, String] :environment_id
495
+ # The unique identifier of the Environment making the association.
496
+ #
497
+ # @option params [String] :client_token
498
+ # Caller-provided token that makes retried association requests
499
+ # idempotent. The first successful request binds the token to the
500
+ # complete Collector ARN, supplied role, and result for at least 24
501
+ # hours. During that retry window, reusing it with a different request
502
+ # fails with ConflictException. A matching replay still requires the
503
+ # supplied role to have current Collector access. Once authorized, a
504
+ # matching replay returns the stored result without changing association
505
+ # state. Revocation can deny a replay; it does not remove the stored
506
+ # association or its original result.
507
+ #
508
+ # **A suitable default value is auto-generated.** You should normally
509
+ # not need to pass this option.**
510
+ #
511
+ # @option params [required, String] :collector_arn
512
+ # The ARN of the Collector to associate with this Environment.
513
+ #
514
+ # @option params [required, String] :collector_data_access_role_arn
515
+ # IAM role in the Environment account that Continuum assumes before
516
+ # authorizing access to associated Collector inventory. Every
517
+ # association, including a same-account association, requires this role.
518
+ # The supplied ARN replaces the Environment's previously stored role.
519
+ # The customer is responsible for granting the role access to every
520
+ # Collector that should contribute data.
521
+ #
522
+ # @return [Types::AssociateCollectorOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
523
+ #
524
+ # * {Types::AssociateCollectorOutput#environment_id #environment_id} => String
525
+ # * {Types::AssociateCollectorOutput#environment_arn #environment_arn} => String
526
+ # * {Types::AssociateCollectorOutput#associated_collector #associated_collector} => Types::AssociatedCollector
527
+ #
528
+ # @example Request syntax with placeholder values
529
+ #
530
+ # resp = client.associate_collector({
531
+ # environment_id: "EnvironmentId", # required
532
+ # client_token: "AssociationClientToken",
533
+ # collector_arn: "CollectorArn", # required
534
+ # collector_data_access_role_arn: "EnvironmentSourceRoleArn", # required
535
+ # })
536
+ #
537
+ # @example Response structure
538
+ #
539
+ # resp.environment_id #=> String
540
+ # resp.environment_arn #=> String
541
+ # resp.associated_collector.collector_id #=> String
542
+ # resp.associated_collector.collector_arn #=> String
543
+ #
544
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/AssociateCollector AWS API Documentation
545
+ #
546
+ # @overload associate_collector(params = {})
547
+ # @param [Hash] params ({})
548
+ def associate_collector(params = {}, options = {})
549
+ req = build_request(:associate_collector, params)
550
+ req.send_request(options)
551
+ end
552
+
553
+ # Ingests a customer-supplied security finding into an environment.
554
+ # Continuum validates the document synchronously against the required
555
+ # overlay fields for the declared format; invalid documents are rejected
556
+ # with a ValidationException. The maximum accepted document size is 256
557
+ # KB. The environment must have a source configured, and the finding
558
+ # must identify a code location so Continuum can tie it to a repository
559
+ # in the environment's build. Continuum assigns a findingId and stores
560
+ # the verbatim document. When no successful build yet contains the
561
+ # finding's repository, the finding stays SUBMITTED until the next
562
+ # successful build; if that build does not contain it either, the
563
+ # finding is DISCARDED with discardReason SOURCE\_REPO\_NOT\_FOUND.
564
+ #
565
+ # @option params [required, String] :environment_id
566
+ # The environment to ingest the finding into.
567
+ #
568
+ # @option params [required, Hash,Array,String,Numeric,Boolean] :ocsf_document
569
+ # The OCSF finding document to ingest, verbatim. Must declare a
570
+ # class\_uid Continuum supports (2002 Vulnerability Finding, or 2007
571
+ # Application Security Posture Finding) and validate against the
572
+ # vendored OCSF JSON Schema for that class, including the Continuum
573
+ # overlay requirements that finding\_info.uid be present and that
574
+ # vulnerabilities\[0\].affected\_code\[0\].file identify the code
575
+ # location. With several repositories in the environment, the file path
576
+ # must begin with the repository name. Maximum size 256 KB. Stored
577
+ # verbatim and normalized into the typed Finding members returned by
578
+ # GetCodeFinding. GetCodeFinding does not return the document itself.
579
+ #
580
+ # Document type used to carry open content
581
+ # (Hash,Array,String,Numeric,Boolean). A document type value is
582
+ # serialized using the same format as its surroundings and requires no
583
+ # additional encoding or escaping.
584
+ #
585
+ # @option params [String] :client_token
586
+ # Caller-provided idempotency token. A retry with the same token and an
587
+ # identical finding document replays the original result; the same token
588
+ # with different content is rejected.
589
+ #
590
+ # **A suitable default value is auto-generated.** You should normally
591
+ # not need to pass this option.**
592
+ #
593
+ # @return [Types::CreateCodeFindingOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
594
+ #
595
+ # * {Types::CreateCodeFindingOutput#finding_id #finding_id} => String
596
+ # * {Types::CreateCodeFindingOutput#finding_arn #finding_arn} => String
597
+ # * {Types::CreateCodeFindingOutput#title #title} => String
598
+ # * {Types::CreateCodeFindingOutput#status #status} => String
599
+ # * {Types::CreateCodeFindingOutput#created_at #created_at} => Time
600
+ #
601
+ # @example Request syntax with placeholder values
602
+ #
603
+ # resp = client.create_code_finding({
604
+ # environment_id: "EnvironmentId", # required
605
+ # ocsf_document: { # required
606
+ # },
607
+ # client_token: "FindingClientToken",
608
+ # })
609
+ #
610
+ # @example Response structure
611
+ #
612
+ # resp.finding_id #=> String
613
+ # resp.finding_arn #=> String
614
+ # resp.title #=> String
615
+ # resp.status #=> String, one of "SUBMITTED", "VALIDATING", "CONFIRMED", "DISCARDED"
616
+ # resp.created_at #=> Time
617
+ #
618
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/CreateCodeFinding AWS API Documentation
619
+ #
620
+ # @overload create_code_finding(params = {})
621
+ # @param [Hash] params ({})
622
+ def create_code_finding(params = {}, options = {})
623
+ req = build_request(:create_code_finding, params)
624
+ req.send_request(options)
625
+ end
626
+
627
+ # Creates an explicit scan request for one environment. CP creates
628
+ # durable work before any queue delivery occurs.
629
+ #
630
+ # Retrying a request that succeeded, with the same clientToken on the
631
+ # same environment, returns the original scan instead of starting
632
+ # another one. Token handling is not yet atomic: requests with the same
633
+ # token that run at the same time, or a retry after a request that
634
+ # failed partway through, can leave an additional scan, which may end in
635
+ # the FAILED state with a message that it was superseded. Deleting the
636
+ # environment makes its tokens unusable; a later request with one of
637
+ # them returns ResourceNotFoundException.
638
+ #
639
+ # Each environment can have a limited number of scans in progress at the
640
+ # same time. Once that limit is enforced, a request that would exceed it
641
+ # returns ServiceQuotaExceededException; wait for a scan to finish
642
+ # (ListCodeScans shows each scan's status), then retry.
643
+ #
644
+ # @option params [required, String] :environment_id
645
+ # Environment to scan.
646
+ #
647
+ # @option params [String] :client_token
648
+ # An optional token identifying one scan request for this environment.
649
+ # SDKs generate a token when omitted. If a request reaches the service
650
+ # without a token, the service generates one for that request, so each
651
+ # request without a token starts a new scan. To retry a request after a
652
+ # lost response, supply the same token on the same environment; once a
653
+ # request with that token has succeeded, a retry returns the original
654
+ # scan. Concurrent requests with the same token, or a retry after a
655
+ # request that failed partway through, can leave an additional scan,
656
+ # which may end FAILED as superseded. A token is bound to its scan for
657
+ # as long as the service retains the scan's build record, with no
658
+ # shorter expiry. Deleting the environment makes the binding
659
+ # inaccessible: a later request with the token returns
660
+ # ResourceNotFoundException.
661
+ #
662
+ # **A suitable default value is auto-generated.** You should normally
663
+ # not need to pass this option.**
664
+ #
665
+ # @return [Types::CreateCodeScanOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
666
+ #
667
+ # * {Types::CreateCodeScanOutput#scan #scan} => Types::CodeScanSummary
668
+ #
669
+ # @example Request syntax with placeholder values
670
+ #
671
+ # resp = client.create_code_scan({
672
+ # environment_id: "EnvironmentId", # required
673
+ # client_token: "ScanClientToken",
674
+ # })
675
+ #
676
+ # @example Response structure
677
+ #
678
+ # resp.scan.scan_run_id #=> String
679
+ # resp.scan.status #=> String, one of "SUBMITTED", "WAITING_FOR_BUILD", "BUILDING", "WAITING_FOR_SCAN", "SCANNING", "SUCCEEDED", "FAILED"
680
+ # resp.scan.origin #=> String, one of "MANUAL", "SCHEDULED"
681
+ # resp.scan.created_at #=> Time
682
+ # resp.scan.completed_at #=> Time
683
+ # resp.scan.failure_message #=> String
684
+ # resp.scan.failure_stage #=> String, one of "SUBMITTED", "WAITING_FOR_BUILD", "BUILDING", "WAITING_FOR_SCAN", "SCANNING"
685
+ #
686
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/CreateCodeScan AWS API Documentation
687
+ #
688
+ # @overload create_code_scan(params = {})
689
+ # @param [Hash] params ({})
690
+ def create_code_scan(params = {}, options = {})
691
+ req = build_request(:create_code_scan, params)
692
+ req.send_request(options)
693
+ end
694
+
695
+ # Creates the Collector for the caller's account. Provisions an AWS
696
+ # Config service-linked recorder using the caller's federated access
697
+ # session and begins recording infrastructure changes.
698
+ #
699
+ # @option params [String] :type
700
+ # Source to collect. Defaults to AWS\_COLLECTOR when omitted.
701
+ #
702
+ # @option params [Types::KubernetesClusterRoleConfiguration] :kubernetes_cluster_role
703
+ # IAM role configuration used to collect Kubernetes cluster metadata.
704
+ # The authenticated caller must be allowed to pass its exact roleArn to
705
+ # Continuum.
706
+ #
707
+ # @option params [String] :client_token
708
+ # Caller-provided token that makes retried create requests return the
709
+ # original Collector rather than creating a duplicate.
710
+ #
711
+ # **A suitable default value is auto-generated.** You should normally
712
+ # not need to pass this option.**
713
+ #
714
+ # @return [Types::CreateCollectorOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
715
+ #
716
+ # * {Types::CreateCollectorOutput#collector_id #collector_id} => String
717
+ # * {Types::CreateCollectorOutput#collector_arn #collector_arn} => String
718
+ # * {Types::CreateCollectorOutput#type #type} => String
719
+ # * {Types::CreateCollectorOutput#status #status} => String
720
+ # * {Types::CreateCollectorOutput#created_at #created_at} => Time
721
+ #
722
+ # @example Request syntax with placeholder values
723
+ #
724
+ # resp = client.create_collector({
725
+ # type: "AWS_COLLECTOR", # accepts AWS_COLLECTOR
726
+ # kubernetes_cluster_role: {
727
+ # role_arn: "KubernetesClusterRoleArn", # required
728
+ # external_id: "KubernetesClusterExternalId",
729
+ # },
730
+ # client_token: "CollectorClientToken",
731
+ # })
732
+ #
733
+ # @example Response structure
734
+ #
735
+ # resp.collector_id #=> String
736
+ # resp.collector_arn #=> String
737
+ # resp.type #=> String, one of "AWS_COLLECTOR"
738
+ # resp.status #=> String, one of "ACTIVE", "PENDING_DELETION"
739
+ # resp.created_at #=> Time
740
+ #
741
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/CreateCollector AWS API Documentation
742
+ #
743
+ # @overload create_collector(params = {})
744
+ # @param [Hash] params ({})
745
+ def create_collector(params = {}, options = {})
746
+ req = build_request(:create_collector, params)
747
+ req.send_request(options)
748
+ end
749
+
750
+ # Creates an environment and starts its validation and any requested
751
+ # provisioning. Storage provisioning and dependency checks may continue
752
+ # after the initial 201 response; use GetEnvironment to observe
753
+ # completion.
754
+ #
755
+ # @option params [required, String] :name
756
+ # The customer-visible name of the environment.
757
+ #
758
+ # @option params [Types::CreateEnvironmentConfiguration] :configuration
759
+ # Type-specific configuration. Omission creates a code environment with
760
+ # the default operating policy and no sources.
761
+ #
762
+ # @return [Types::CreateEnvironmentOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
763
+ #
764
+ # * {Types::CreateEnvironmentOutput#environment_id #environment_id} => String
765
+ # * {Types::CreateEnvironmentOutput#environment_arn #environment_arn} => String
766
+ # * {Types::CreateEnvironmentOutput#status #status} => String
767
+ # * {Types::CreateEnvironmentOutput#created_at #created_at} => Time
768
+ #
769
+ # @example Request syntax with placeholder values
770
+ #
771
+ # resp = client.create_environment({
772
+ # name: "EnvironmentName", # required
773
+ # configuration: {
774
+ # code_configuration: {
775
+ # source_configuration: {
776
+ # s3_sources: [
777
+ # {
778
+ # integration_id: "IntegrationId", # required
779
+ # code_prefix: "EnvironmentSourcePrefix",
780
+ # context_prefix: "EnvironmentSourcePrefix",
781
+ # },
782
+ # ],
783
+ # repository_sources: [
784
+ # {
785
+ # integration_id: "IntegrationId", # required
786
+ # repository: "RepositoryName", # required
787
+ # default_branch: "RepositoryBranch",
788
+ # },
789
+ # ],
790
+ # },
791
+ # environment_configuration: {
792
+ # network: {
793
+ # allowed_domains: ["DomainName"],
794
+ # },
795
+ # scan_frequency: "ScanFrequency",
796
+ # patch_creation_policy: "ENABLED", # accepts ENABLED, DISABLED
797
+ # },
798
+ # },
799
+ # },
800
+ # })
801
+ #
802
+ # @example Response structure
803
+ #
804
+ # resp.environment_id #=> String
805
+ # resp.environment_arn #=> String
806
+ # resp.status #=> String, one of "ACTIVE"
807
+ # resp.created_at #=> Time
808
+ #
809
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/CreateEnvironment AWS API Documentation
810
+ #
811
+ # @overload create_environment(params = {})
812
+ # @param [Hash] params ({})
813
+ def create_environment(params = {}, options = {})
814
+ req = build_request(:create_environment, params)
815
+ req.send_request(options)
816
+ end
817
+
818
+ # Creates a new integration with an external source provider. Repeating
819
+ # an identical request with the same clientToken returns the original
820
+ # integrationId, integrationArn, and createdAt. Token records are
821
+ # retained for eight hours after success or terminal failure, including
822
+ # after the integration is deleted; replaying a deleted integration's
823
+ # token does not recreate it. An identical request with a retained
824
+ # terminal failure returns the recorded error.
825
+ #
826
+ # Reusing a token with different parameters returns ValidationException.
827
+ # A fresh token starts a new create attempt; if the name is already
828
+ # owned by another integration, ConflictException includes that
829
+ # integration's identifier. An attempt still in progress may return
830
+ # ThrottlingException with retryAfterSeconds set to 1; retry with the
831
+ # same token and identical parameters.
832
+ #
833
+ # GitHub authorization codes are single use. Retry an unresolved attempt
834
+ # with its original token and unchanged parameters first. If the service
835
+ # reports a terminal failure, an expired attempt, or a successful token
836
+ # exchange whose integration could not be saved, restart GitHub
837
+ # authorization with a fresh token and authorization code. The service
838
+ # does not checkpoint provider results for recovery by another request.
839
+ #
840
+ # @option params [String] :client_token
841
+ # An optional token identifying one create attempt within the caller's
842
+ # account, Region, and operation. SDKs generate a token when omitted. If
843
+ # a request reaches the service without a token, the service generates
844
+ # one for that request. Each request without a token starts a new
845
+ # attempt. To replay an attempt, supply the same token and identical
846
+ # input. Authorized users and roles in the same account can retry an
847
+ # attempt this way. Token records are retained for eight hours after
848
+ # success or terminal failure, including after deletion of a
849
+ # successfully created integration. Different input with the same token
850
+ # returns ValidationException.
851
+ #
852
+ # **A suitable default value is auto-generated.** You should normally
853
+ # not need to pass this option.**
854
+ #
855
+ # @option params [required, String] :name
856
+ # The name for the integration.
857
+ #
858
+ # @option params [required, Types::ProviderConfiguration] :provider_configuration
859
+ # The provider-specific configuration required to create the
860
+ # integration. Only one member may be specified.
861
+ #
862
+ # @return [Types::CreateIntegrationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
863
+ #
864
+ # * {Types::CreateIntegrationOutput#integration_id #integration_id} => String
865
+ # * {Types::CreateIntegrationOutput#integration_arn #integration_arn} => String
866
+ # * {Types::CreateIntegrationOutput#created_at #created_at} => Time
867
+ #
868
+ # @example Request syntax with placeholder values
869
+ #
870
+ # resp = client.create_integration({
871
+ # client_token: "IntegrationClientToken",
872
+ # name: "IntegrationName", # required
873
+ # provider_configuration: { # required
874
+ # github: {
875
+ # authorization: { # required
876
+ # authorization_code: "AuthorizationCode", # required
877
+ # state: "OAuthState", # required
878
+ # redirect_url: "RedirectUrl",
879
+ # },
880
+ # organization_name: "GitHubOrganizationName",
881
+ # },
882
+ # gitlab: {
883
+ # instance_url: "GitLabInstanceUrl", # required
884
+ # target_type: "GROUP", # required, accepts GROUP, PROJECT
885
+ # target_path: "GitLabTargetPath", # required
886
+ # access_token: "GitLabAccessToken", # required
887
+ # },
888
+ # s3: {
889
+ # bucket: "IntegrationS3BucketName", # required
890
+ # role_arn: "IntegrationS3RoleArn", # required
891
+ # external_id: "IntegrationS3ExternalId", # required
892
+ # },
893
+ # },
894
+ # })
895
+ #
896
+ # @example Response structure
897
+ #
898
+ # resp.integration_id #=> String
899
+ # resp.integration_arn #=> String
900
+ # resp.created_at #=> Time
901
+ #
902
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/CreateIntegration AWS API Documentation
903
+ #
904
+ # @overload create_integration(params = {})
905
+ # @param [Hash] params ({})
906
+ def create_integration(params = {}, options = {})
907
+ req = build_request(:create_integration, params)
908
+ req.send_request(options)
909
+ end
910
+
911
+ # Deletes the Collector for the caller's account. The Collector first
912
+ # enters PENDING\_DELETION, then the service removes its schedule, AWS
913
+ # Config service-linked recorder, versioned S3 bucket, KMS key, and
914
+ # persisted record.
915
+ #
916
+ # @option params [required, String] :collector_id
917
+ # The unique identifier of the Collector to delete.
918
+ #
919
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
920
+ #
921
+ # @example Request syntax with placeholder values
922
+ #
923
+ # resp = client.delete_collector({
924
+ # collector_id: "CollectorId", # required
925
+ # })
926
+ #
927
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/DeleteCollector AWS API Documentation
928
+ #
929
+ # @overload delete_collector(params = {})
930
+ # @param [Hash] params ({})
931
+ def delete_collector(params = {}, options = {})
932
+ req = build_request(:delete_collector, params)
933
+ req.send_request(options)
934
+ end
935
+
936
+ # Deletes an environment and its associated resources.
937
+ #
938
+ # @option params [required, String] :environment_id
939
+ # The unique identifier of the environment to delete.
940
+ #
941
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
942
+ #
943
+ # @example Request syntax with placeholder values
944
+ #
945
+ # resp = client.delete_environment({
946
+ # environment_id: "EnvironmentId", # required
947
+ # })
948
+ #
949
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/DeleteEnvironment AWS API Documentation
950
+ #
951
+ # @overload delete_environment(params = {})
952
+ # @param [Hash] params ({})
953
+ def delete_environment(params = {}, options = {})
954
+ req = build_request(:delete_environment, params)
955
+ req.send_request(options)
956
+ end
957
+
958
+ # Deletes an integration and releases its name and account quota. Its
959
+ # retained CreateIntegration token receipt can still replay the original
960
+ # result without recreating the integration. Shared provider
961
+ # registrations are retained: deleting one integration does not remove
962
+ # provider access used by another integration. A fresh GitHub
963
+ # CreateIntegration attempt requires a fresh OAuth authorization code
964
+ # and a new clientToken.
965
+ #
966
+ # @option params [required, String] :integration_id
967
+ # The unique identifier of the integration to delete.
968
+ #
969
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
970
+ #
971
+ # @example Request syntax with placeholder values
972
+ #
973
+ # resp = client.delete_integration({
974
+ # integration_id: "IntegrationId", # required
975
+ # })
976
+ #
977
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/DeleteIntegration AWS API Documentation
978
+ #
979
+ # @overload delete_integration(params = {})
980
+ # @param [Hash] params ({})
981
+ def delete_integration(params = {}, options = {})
982
+ req = build_request(:delete_integration, params)
983
+ req.send_request(options)
984
+ end
985
+
986
+ # Removes one Collector association from this Environment, preserving
987
+ # its other associations. The stored Collector data-access role is
988
+ # cleared when no Collector associations remain. The Environment owner
989
+ # must have permission to disassociate. A current Collector access grant
990
+ # is not required, and the Collector does not need to remain active or
991
+ # present, so stale or revoked associations can be cleaned up.
992
+ #
993
+ # @option params [required, String] :environment_id
994
+ # The unique identifier of the Environment whose associations are
995
+ # updated.
996
+ #
997
+ # @option params [required, String] :collector_arn
998
+ # The ARN of the Collector to disassociate from this Environment.
999
+ #
1000
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1001
+ #
1002
+ # @example Request syntax with placeholder values
1003
+ #
1004
+ # resp = client.disassociate_collector({
1005
+ # environment_id: "EnvironmentId", # required
1006
+ # collector_arn: "CollectorArn", # required
1007
+ # })
1008
+ #
1009
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/DisassociateCollector AWS API Documentation
1010
+ #
1011
+ # @overload disassociate_collector(params = {})
1012
+ # @param [Hash] params ({})
1013
+ def disassociate_collector(params = {}, options = {})
1014
+ req = build_request(:disassociate_collector, params)
1015
+ req.send_request(options)
1016
+ end
1017
+
1018
+ # Retrieves the current state and details of a finding.
1019
+ #
1020
+ # @option params [required, String] :environment_id
1021
+ # The environment that owns the finding.
1022
+ #
1023
+ # @option params [required, String] :finding_id
1024
+ # The unique identifier of the finding to retrieve.
1025
+ #
1026
+ # @return [Types::GetCodeFindingOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1027
+ #
1028
+ # * {Types::GetCodeFindingOutput#type #type} => String
1029
+ # * {Types::GetCodeFindingOutput#title #title} => String
1030
+ # * {Types::GetCodeFindingOutput#severity #severity} => String
1031
+ # * {Types::GetCodeFindingOutput#summary #summary} => String
1032
+ # * {Types::GetCodeFindingOutput#detailed_description #detailed_description} => String
1033
+ # * {Types::GetCodeFindingOutput#category #category} => String
1034
+ # * {Types::GetCodeFindingOutput#sub_category #sub_category} => String
1035
+ # * {Types::GetCodeFindingOutput#cwe_ids #cwe_ids} => Array&lt;String&gt;
1036
+ # * {Types::GetCodeFindingOutput#owasp_category #owasp_category} => String
1037
+ # * {Types::GetCodeFindingOutput#mitigation #mitigation} => String
1038
+ # * {Types::GetCodeFindingOutput#file_path #file_path} => String
1039
+ # * {Types::GetCodeFindingOutput#line_number #line_number} => Integer
1040
+ # * {Types::GetCodeFindingOutput#cve_id #cve_id} => String
1041
+ # * {Types::GetCodeFindingOutput#cvss_base_score #cvss_base_score} => Float
1042
+ # * {Types::GetCodeFindingOutput#affected_packages #affected_packages} => Array&lt;Types::AffectedPackage&gt;
1043
+ # * {Types::GetCodeFindingOutput#vulnerable_code #vulnerable_code} => String
1044
+ # * {Types::GetCodeFindingOutput#relevant_inputs #relevant_inputs} => Array&lt;String&gt;
1045
+ # * {Types::GetCodeFindingOutput#steps_to_reproduce #steps_to_reproduce} => Array&lt;String&gt;
1046
+ # * {Types::GetCodeFindingOutput#validation #validation} => Types::FindingValidation
1047
+ # * {Types::GetCodeFindingOutput#end_line #end_line} => Integer
1048
+ # * {Types::GetCodeFindingOutput#mitre_techniques #mitre_techniques} => Array&lt;String&gt;
1049
+ # * {Types::GetCodeFindingOutput#remediation_references #remediation_references} => Array&lt;String&gt;
1050
+ # * {Types::GetCodeFindingOutput#ocsf_class #ocsf_class} => String
1051
+ # * {Types::GetCodeFindingOutput#ocsf_schema_version #ocsf_schema_version} => String
1052
+ # * {Types::GetCodeFindingOutput#product_name #product_name} => String
1053
+ # * {Types::GetCodeFindingOutput#product_vendor_name #product_vendor_name} => String
1054
+ # * {Types::GetCodeFindingOutput#product_version #product_version} => String
1055
+ # * {Types::GetCodeFindingOutput#source_status #source_status} => String
1056
+ # * {Types::GetCodeFindingOutput#source_status_id #source_status_id} => Integer
1057
+ # * {Types::GetCodeFindingOutput#first_seen_at #first_seen_at} => Time
1058
+ # * {Types::GetCodeFindingOutput#finding_types #finding_types} => Array&lt;String&gt;
1059
+ # * {Types::GetCodeFindingOutput#vulnerabilities #vulnerabilities} => Array&lt;Types::FindingVulnerability&gt;
1060
+ # * {Types::GetCodeFindingOutput#resources #resources} => Array&lt;Types::FindingResource&gt;
1061
+ # * {Types::GetCodeFindingOutput#posture #posture} => Types::FindingPosture
1062
+ # * {Types::GetCodeFindingOutput#finding_id #finding_id} => String
1063
+ # * {Types::GetCodeFindingOutput#finding_arn #finding_arn} => String
1064
+ # * {Types::GetCodeFindingOutput#environment_id #environment_id} => String
1065
+ # * {Types::GetCodeFindingOutput#source #source} => String
1066
+ # * {Types::GetCodeFindingOutput#source_finding_id #source_finding_id} => String
1067
+ # * {Types::GetCodeFindingOutput#reported_at #reported_at} => Time
1068
+ # * {Types::GetCodeFindingOutput#status #status} => String
1069
+ # * {Types::GetCodeFindingOutput#status_updated_at #status_updated_at} => Time
1070
+ # * {Types::GetCodeFindingOutput#created_at #created_at} => Time
1071
+ # * {Types::GetCodeFindingOutput#scan_run_id #scan_run_id} => String
1072
+ # * {Types::GetCodeFindingOutput#status_message #status_message} => String
1073
+ # * {Types::GetCodeFindingOutput#discard_reason #discard_reason} => String
1074
+ # * {Types::GetCodeFindingOutput#discard_reasoning #discard_reasoning} => String
1075
+ # * {Types::GetCodeFindingOutput#duplicate_of_issue_id #duplicate_of_issue_id} => String
1076
+ # * {Types::GetCodeFindingOutput#created_issue_id #created_issue_id} => String
1077
+ # * {Types::GetCodeFindingOutput#completed_at #completed_at} => Time
1078
+ #
1079
+ # @example Request syntax with placeholder values
1080
+ #
1081
+ # resp = client.get_code_finding({
1082
+ # environment_id: "EnvironmentId", # required
1083
+ # finding_id: "FindingId", # required
1084
+ # })
1085
+ #
1086
+ # @example Response structure
1087
+ #
1088
+ # resp.type #=> String, one of "CONTINUUM_CODE_VULN", "CUSTOMER_CODE_VULN"
1089
+ # resp.title #=> String
1090
+ # resp.severity #=> String, one of "UNKNOWN", "INFORMATIONAL", "LOW", "MEDIUM", "HIGH", "CRITICAL", "FATAL", "OTHER"
1091
+ # resp.summary #=> String
1092
+ # resp.detailed_description #=> String
1093
+ # resp.category #=> String
1094
+ # resp.sub_category #=> String
1095
+ # resp.cwe_ids #=> Array
1096
+ # resp.cwe_ids[0] #=> String
1097
+ # resp.owasp_category #=> String
1098
+ # resp.mitigation #=> String
1099
+ # resp.file_path #=> String
1100
+ # resp.line_number #=> Integer
1101
+ # resp.cve_id #=> String
1102
+ # resp.cvss_base_score #=> Float
1103
+ # resp.affected_packages #=> Array
1104
+ # resp.affected_packages[0].name #=> String
1105
+ # resp.affected_packages[0].version #=> String
1106
+ # resp.affected_packages[0].fixed_in_version #=> String
1107
+ # resp.affected_packages[0].package_manager #=> String
1108
+ # resp.vulnerable_code #=> String
1109
+ # resp.relevant_inputs #=> Array
1110
+ # resp.relevant_inputs[0] #=> String
1111
+ # resp.steps_to_reproduce #=> Array
1112
+ # resp.steps_to_reproduce[0] #=> String
1113
+ # resp.validation.verdict #=> String, one of "TRUE_POSITIVE", "FALSE_POSITIVE", "BENIGN_TRUE_POSITIVE", "NEEDS_REVIEW"
1114
+ # resp.validation.blocking_reason #=> String, one of "UNREACHABLE", "PROTECTED", "MISCLASSIFIED", "EXCLUDED", "NOT_FEASIBLE", "RISK_MITIGATED", "NONE"
1115
+ # resp.validation.confidence #=> Float
1116
+ # resp.validation.rationale #=> String
1117
+ # resp.validation.severity_adjustment #=> String, one of "CRITICAL", "HIGH", "MEDIUM", "LOW", "INFORMATIONAL", "UNCHANGED"
1118
+ # resp.validation.mitigating_controls #=> Array
1119
+ # resp.validation.mitigating_controls[0] #=> String
1120
+ # resp.validation.preconditions #=> Array
1121
+ # resp.validation.preconditions[0] #=> String
1122
+ # resp.validation.evidence #=> Array
1123
+ # resp.validation.evidence[0].file #=> String
1124
+ # resp.validation.evidence[0].line #=> Integer
1125
+ # resp.validation.evidence[0].snippet #=> String
1126
+ # resp.end_line #=> Integer
1127
+ # resp.mitre_techniques #=> Array
1128
+ # resp.mitre_techniques[0] #=> String
1129
+ # resp.remediation_references #=> Array
1130
+ # resp.remediation_references[0] #=> String
1131
+ # resp.ocsf_class #=> String, one of "VULNERABILITY_FINDING", "APPLICATION_SECURITY_POSTURE_FINDING"
1132
+ # resp.ocsf_schema_version #=> String
1133
+ # resp.product_name #=> String
1134
+ # resp.product_vendor_name #=> String
1135
+ # resp.product_version #=> String
1136
+ # resp.source_status #=> String
1137
+ # resp.source_status_id #=> Integer
1138
+ # resp.first_seen_at #=> Time
1139
+ # resp.finding_types #=> Array
1140
+ # resp.finding_types[0] #=> String
1141
+ # resp.vulnerabilities #=> Array
1142
+ # resp.vulnerabilities[0].title #=> String
1143
+ # resp.vulnerabilities[0].description #=> String
1144
+ # resp.vulnerabilities[0].cwe_id #=> String
1145
+ # resp.vulnerabilities[0].cwe_caption #=> String
1146
+ # resp.vulnerabilities[0].additional_cwe_ids #=> Array
1147
+ # resp.vulnerabilities[0].additional_cwe_ids[0] #=> String
1148
+ # resp.vulnerabilities[0].cve_id #=> String
1149
+ # resp.vulnerabilities[0].cvss_base_score #=> Float
1150
+ # resp.vulnerabilities[0].fix_coverage #=> String
1151
+ # resp.vulnerabilities[0].fix_coverage_id #=> Integer
1152
+ # resp.vulnerabilities[0].locations #=> Array
1153
+ # resp.vulnerabilities[0].locations[0].file_path #=> String
1154
+ # resp.vulnerabilities[0].locations[0].start_line #=> Integer
1155
+ # resp.vulnerabilities[0].locations[0].end_line #=> Integer
1156
+ # resp.vulnerabilities[0].remediation #=> String
1157
+ # resp.vulnerabilities[0].remediation_references #=> Array
1158
+ # resp.vulnerabilities[0].remediation_references[0] #=> String
1159
+ # resp.vulnerabilities[0].code #=> String
1160
+ # resp.vulnerabilities[0].details #=> String
1161
+ # resp.vulnerabilities[0].affected_packages #=> Array
1162
+ # resp.vulnerabilities[0].affected_packages[0].name #=> String
1163
+ # resp.vulnerabilities[0].affected_packages[0].version #=> String
1164
+ # resp.vulnerabilities[0].affected_packages[0].fixed_in_version #=> String
1165
+ # resp.vulnerabilities[0].affected_packages[0].package_manager #=> String
1166
+ # resp.resources #=> Array
1167
+ # resp.resources[0].uid #=> String
1168
+ # resp.resources[0].name #=> String
1169
+ # resp.resources[0].type #=> String
1170
+ # resp.resources[0].region #=> String
1171
+ # resp.posture.application #=> String
1172
+ # resp.posture.application_uid #=> String
1173
+ # resp.posture.application_version #=> String
1174
+ # resp.posture.control #=> String
1175
+ # resp.posture.description #=> String
1176
+ # resp.posture.standards #=> Array
1177
+ # resp.posture.standards[0] #=> String
1178
+ # resp.posture.requirements #=> Array
1179
+ # resp.posture.requirements[0] #=> String
1180
+ # resp.posture.checks #=> Array
1181
+ # resp.posture.checks[0].uid #=> String
1182
+ # resp.posture.checks[0].name #=> String
1183
+ # resp.posture.checks[0].description #=> String
1184
+ # resp.posture.status #=> String
1185
+ # resp.posture.status_id #=> Integer
1186
+ # resp.posture.remediation #=> String
1187
+ # resp.posture.remediation_references #=> Array
1188
+ # resp.posture.remediation_references[0] #=> String
1189
+ # resp.finding_id #=> String
1190
+ # resp.finding_arn #=> String
1191
+ # resp.environment_id #=> String
1192
+ # resp.source #=> String
1193
+ # resp.source_finding_id #=> String
1194
+ # resp.reported_at #=> Time
1195
+ # resp.status #=> String, one of "SUBMITTED", "VALIDATING", "CONFIRMED", "DISCARDED"
1196
+ # resp.status_updated_at #=> Time
1197
+ # resp.created_at #=> Time
1198
+ # resp.scan_run_id #=> String
1199
+ # resp.status_message #=> String
1200
+ # resp.discard_reason #=> String, one of "SCANNER_VALIDATED_FALSE_POSITIVE", "SCANNER_NEEDS_REVIEW", "FALSE_POSITIVE_VALIDATED_AGAINST_CONTEXT", "DUPLICATE_OF_OPEN_ISSUE", "DUPLICATE_OF_CLOSED_ISSUE", "COMPENSATING_CONTROL_PRESENT", "OUT_OF_SCOPE", "INSUFFICIENT_EVIDENCE", "PROCESSING_FAILED", "SOURCE_REPO_NOT_FOUND"
1201
+ # resp.discard_reasoning #=> String
1202
+ # resp.duplicate_of_issue_id #=> String
1203
+ # resp.created_issue_id #=> String
1204
+ # resp.completed_at #=> Time
1205
+ #
1206
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/GetCodeFinding AWS API Documentation
1207
+ #
1208
+ # @overload get_code_finding(params = {})
1209
+ # @param [Hash] params ({})
1210
+ def get_code_finding(params = {}, options = {})
1211
+ req = build_request(:get_code_finding, params)
1212
+ req.send_request(options)
1213
+ end
1214
+
1215
+ # Retrieves the current state and details of an issue.
1216
+ #
1217
+ # @option params [required, String] :environment_id
1218
+ # The environment that owns the issue.
1219
+ #
1220
+ # @option params [required, String] :issue_id
1221
+ # The unique identifier of the issue to retrieve.
1222
+ #
1223
+ # @return [Types::GetCodeIssueOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1224
+ #
1225
+ # * {Types::GetCodeIssueOutput#issue_id #issue_id} => String
1226
+ # * {Types::GetCodeIssueOutput#issue_arn #issue_arn} => String
1227
+ # * {Types::GetCodeIssueOutput#name #name} => String
1228
+ # * {Types::GetCodeIssueOutput#synopsis #synopsis} => String
1229
+ # * {Types::GetCodeIssueOutput#severity #severity} => String
1230
+ # * {Types::GetCodeIssueOutput#confidence #confidence} => Integer
1231
+ # * {Types::GetCodeIssueOutput#severity_reasoning #severity_reasoning} => String
1232
+ # * {Types::GetCodeIssueOutput#summary #summary} => String
1233
+ # * {Types::GetCodeIssueOutput#finding_ids #finding_ids} => Array&lt;String&gt;
1234
+ # * {Types::GetCodeIssueOutput#status #status} => String
1235
+ # * {Types::GetCodeIssueOutput#phase #phase} => String
1236
+ # * {Types::GetCodeIssueOutput#status_reason #status_reason} => String
1237
+ # * {Types::GetCodeIssueOutput#status_message #status_message} => String
1238
+ # * {Types::GetCodeIssueOutput#status_updated_at #status_updated_at} => Time
1239
+ # * {Types::GetCodeIssueOutput#created_at #created_at} => Time
1240
+ # * {Types::GetCodeIssueOutput#updated_at #updated_at} => Time
1241
+ # * {Types::GetCodeIssueOutput#evidence_availability #evidence_availability} => String
1242
+ # * {Types::GetCodeIssueOutput#patch_delivery #patch_delivery} => Types::IssuePatchDelivery
1243
+ #
1244
+ # @example Request syntax with placeholder values
1245
+ #
1246
+ # resp = client.get_code_issue({
1247
+ # environment_id: "EnvironmentId", # required
1248
+ # issue_id: "IssueId", # required
1249
+ # })
1250
+ #
1251
+ # @example Response structure
1252
+ #
1253
+ # resp.issue_id #=> String
1254
+ # resp.issue_arn #=> String
1255
+ # resp.name #=> String
1256
+ # resp.synopsis #=> String
1257
+ # resp.severity #=> String, one of "LOW", "MEDIUM", "HIGH", "CRITICAL"
1258
+ # resp.confidence #=> Integer
1259
+ # resp.severity_reasoning #=> String
1260
+ # resp.summary #=> String
1261
+ # resp.finding_ids #=> Array
1262
+ # resp.finding_ids[0] #=> String
1263
+ # resp.status #=> String, one of "CREATED", "IN_PROGRESS", "COMPLETED", "FAILED"
1264
+ # resp.phase #=> String, one of "VALIDATION", "PRIORITIZATION", "REMEDIATION"
1265
+ # resp.status_reason #=> String, one of "INTERNAL_ERROR", "REMEDIATION_FAILED"
1266
+ # resp.status_message #=> String
1267
+ # resp.status_updated_at #=> Time
1268
+ # resp.created_at #=> Time
1269
+ # resp.updated_at #=> Time
1270
+ # resp.evidence_availability #=> String, one of "NONE", "AVAILABLE"
1271
+ # resp.patch_delivery.status #=> String, one of "PENDING", "SUCCEEDED", "FAILED", "SKIPPED"
1272
+ # resp.patch_delivery.patch_count #=> Integer
1273
+ # resp.patch_delivery.succeeded_count #=> Integer
1274
+ # resp.patch_delivery.failed_count #=> Integer
1275
+ # resp.patch_delivery.failure_reasons #=> Array
1276
+ # resp.patch_delivery.failure_reasons[0] #=> String, one of "ARTIFACT_READ_FAILED", "ARTIFACT_SOURCE_MISMATCH", "ARTIFACT_SOURCE_MISSING", "BUILD_NOT_FOUND", "BUILD_READ_FAILED", "BUILD_RESULT_SCOPE_MISMATCH", "DELIVERY_NOT_CONFIGURED", "DELIVERY_SOURCE_KIND_CHANGED", "DUPLICATE_LOGICAL_REPOSITORY", "DUPLICATE_OR_INVALID_REPOSITORY", "ENVIRONMENT_DELETED", "ENVIRONMENT_NOT_ACTIVE", "ENVIRONMENT_NOT_FOUND", "ENVIRONMENT_READ_FAILED", "S3_ACCESS_DENIED", "S3_SOURCE_PREFIX_OVERLAP", "SOURCE_INTEGRATION_UNRESOLVED", "SOURCE_INTEGRATION_READ_FAILED", "SOURCE_INTEGRATION_INVALID", "SOURCE_INTEGRATION_CHANGED", "EXPORT_CREDENTIALS_MISSING", "EXPORT_CREDENTIAL_EXPIRY_INVALID", "EXPORT_DESTINATION_INVALID", "EXPORT_EXISTING_OBJECT_MISMATCH", "EXPORT_PUT_FAILED", "EXPORT_RECONCILIATION_READ_FAILED", "EXPORT_ROLE_ASSUMPTION_FAILED", "GITHUB_ACCESS_DENIED", "GITHUB_BASE_NOT_FOUND", "GITHUB_BRANCH_CONFLICT", "GITHUB_NOT_FOUND", "GITHUB_RATE_LIMITED", "GITHUB_REPOSITORY_CHANGED", "GITHUB_REPOSITORY_NOT_FOUND", "GITHUB_REQUEST_FAILED", "GITHUB_REQUEST_REJECTED", "GITHUB_RESPONSE_INVALID", "GREEN_ATTEMPT_NOT_SUCCESSFUL", "GREEN_COMPLETION_NOT_OBSERVED", "PATCH_NOT_SELECTED", "INCOMPLETE_SOURCE_REFERENCE", "INVALID_ARCHIVE_DIGEST", "INVALID_ARTIFACT_SOURCE", "INVALID_COMPLETED_MANIFEST", "INVALID_EXPORT_RECEIPT", "INVALID_GITHUB_PROVENANCE", "INVALID_S3_DESTINATION", "INVALID_SERVICE_RECEIPT", "INVALID_SOURCE_INVENTORY", "INVALID_SOURCE_MANIFEST", "INVALID_SOURCE_REFERENCE", "ISSUE_INTEGRITY_FAILURE", "ISSUE_NOT_FOUND", "MANIFEST_INVENTORY_MISMATCH", "MANIFEST_PROVENANCE_CHANGED", "MANIFEST_REPOSITORY_SET_MISMATCH", "MANIFEST_SCOPE_OR_VERSION_MISMATCH", "MISSING_BUILD_RESULT", "MISSING_COMPLETED_MANIFEST", "MISSING_RESULT_DIGEST", "MISSING_SOURCE_MANIFEST", "MISSING_SOURCE_TARGET", "PATCH_NOT_APPLICABLE", "PATCH_STORAGE_IDENTITY_MISSING", "PATCH_UNSUPPORTED", "PUBLICATION_OUTCOME_UNKNOWN_AFTER_RETRY_LIMIT", "PUBLISHER_DEADLINE_EXCEEDED", "RESULT_COMPLETED_MANIFEST_MISMATCH", "RESULT_SOURCE_BINDING_MISMATCH", "SERVICE_COPY_DIGEST_MISMATCH", "SERVICE_OBJECT_READ_FAILED", "SERVICE_OBJECT_TOO_LARGE", "SERVICE_RECEIPT_OUTSIDE_ISSUE", "SOURCE_OBJECT_DIGEST_MISMATCH", "SOURCE_REFERENCE_OUTSIDE_BUILD", "SOURCE_TARGET_BUILD_MISMATCH", "UNKNOWN_REPOSITORY", "UNKNOWN_SOURCE_PROVIDER", "UNSUPPORTED_ENVIRONMENT_SCHEMA", "github_destination_not_enabled", "patch_creation_policy_disabled"
1277
+ #
1278
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/GetCodeIssue AWS API Documentation
1279
+ #
1280
+ # @overload get_code_issue(params = {})
1281
+ # @param [Hash] params ({})
1282
+ def get_code_issue(params = {}, options = {})
1283
+ req = build_request(:get_code_issue, params)
1284
+ req.send_request(options)
1285
+ end
1286
+
1287
+ # Retrieves one immutable artifact attached to an issue, including its
1288
+ # content.
1289
+ #
1290
+ # @option params [required, String] :environment_id
1291
+ # The environment that owns the issue.
1292
+ #
1293
+ # @option params [required, String] :issue_id
1294
+ # The issue the artifact is attached to.
1295
+ #
1296
+ # @option params [required, String] :artifact_id
1297
+ # The unique identifier of the artifact to retrieve.
1298
+ #
1299
+ # @return [Types::GetCodeIssueArtifactOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1300
+ #
1301
+ # * {Types::GetCodeIssueArtifactOutput#artifact_id #artifact_id} => String
1302
+ # * {Types::GetCodeIssueArtifactOutput#artifact_type #artifact_type} => String
1303
+ # * {Types::GetCodeIssueArtifactOutput#media_type #media_type} => String
1304
+ # * {Types::GetCodeIssueArtifactOutput#body #body} => Types::IssueArtifactBody
1305
+ # * {Types::GetCodeIssueArtifactOutput#metadata #metadata} => Hash,Array,String,Numeric,Boolean
1306
+ # * {Types::GetCodeIssueArtifactOutput#producer #producer} => Types::IssueArtifactProducerSummary
1307
+ # * {Types::GetCodeIssueArtifactOutput#created_at #created_at} => Time
1308
+ #
1309
+ # @example Request syntax with placeholder values
1310
+ #
1311
+ # resp = client.get_code_issue_artifact({
1312
+ # environment_id: "EnvironmentId", # required
1313
+ # issue_id: "IssueId", # required
1314
+ # artifact_id: "IssueArtifactId", # required
1315
+ # })
1316
+ #
1317
+ # @example Response structure
1318
+ #
1319
+ # resp.artifact_id #=> String
1320
+ # resp.artifact_type #=> String, one of "EVIDENCE", "AGENT_COMMUNICATION", "VALIDATION_EVIDENCE", "REMEDIATION_PROPOSAL", "DECISION", "PATCH"
1321
+ # resp.media_type #=> String
1322
+ # resp.body.validation_evidence.exploitable #=> String, one of "EXPLOITABLE", "NOT_EXPLOITABLE", "UNCERTAIN"
1323
+ # resp.body.validation_evidence.terminal_status #=> String, one of "COMPLETED", "FAILED", "NO_SOURCE_AVAILABLE", "PARTIAL"
1324
+ # resp.body.validation_evidence.flow_verdicts #=> Array
1325
+ # resp.body.validation_evidence.flow_verdicts[0].flow_id #=> String
1326
+ # resp.body.validation_evidence.flow_verdicts[0].verdict #=> String, one of "CONFIRMED", "DENIED", "INCONCLUSIVE"
1327
+ # resp.body.validation_evidence.flow_verdicts[0].confidence #=> Float
1328
+ # resp.body.validation_evidence.flow_verdicts[0].evidence #=> Array
1329
+ # resp.body.validation_evidence.flow_verdicts[0].evidence[0] #=> String
1330
+ # resp.body.validation_evidence.attack_flows_confirmed #=> Array
1331
+ # resp.body.validation_evidence.attack_flows_confirmed[0] #=> String
1332
+ # resp.body.validation_evidence.exploit_artifact.payload #=> String
1333
+ # resp.body.validation_evidence.exploit_artifact.target_url #=> String
1334
+ # resp.body.validation_evidence.exploit_artifact.http_method #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"
1335
+ # resp.body.validation_evidence.exploit_artifact.headers #=> Hash
1336
+ # resp.body.validation_evidence.exploit_artifact.headers["ArtifactCitation"] #=> String
1337
+ # resp.body.validation_evidence.exploit_artifact.response_status #=> Integer
1338
+ # resp.body.validation_evidence.exploit_artifact.response_snippet #=> String
1339
+ # resp.body.validation_evidence.exploit_artifact.effect #=> String, one of "DATA_LEAKED", "ERROR_REVEALED", "BEHAVIOR_CHANGED", "NO_EFFECT"
1340
+ # resp.body.validation_evidence.executed_proof.code.proof_code #=> Array
1341
+ # resp.body.validation_evidence.executed_proof.code.proof_code[0].content #=> String
1342
+ # resp.body.validation_evidence.executed_proof.output.console_output #=> String
1343
+ # resp.body.validation_evidence.executed_proof.observed_effect #=> String, one of "DATA_LEAKED", "ERROR_REVEALED", "BEHAVIOR_CHANGED", "NO_EFFECT"
1344
+ # resp.body.validation_evidence.source_analysis.summary #=> String
1345
+ # resp.body.validation_evidence.source_analysis.inferred_effect #=> String, one of "DATA_LEAKED", "ERROR_REVEALED", "BEHAVIOR_CHANGED", "NO_EFFECT"
1346
+ # resp.body.validation_evidence.per_finding_results #=> Array
1347
+ # resp.body.validation_evidence.per_finding_results[0].finding_id #=> String
1348
+ # resp.body.validation_evidence.per_finding_results[0].exploitable #=> String, one of "EXPLOITABLE", "NOT_EXPLOITABLE", "UNCERTAIN"
1349
+ # resp.body.validation_evidence.per_finding_results[0].confidence #=> Float
1350
+ # resp.body.validation_evidence.per_finding_results[0].flow_verdicts #=> Array
1351
+ # resp.body.validation_evidence.per_finding_results[0].flow_verdicts[0].flow_id #=> String
1352
+ # resp.body.validation_evidence.per_finding_results[0].flow_verdicts[0].verdict #=> String, one of "CONFIRMED", "DENIED", "INCONCLUSIVE"
1353
+ # resp.body.validation_evidence.per_finding_results[0].flow_verdicts[0].confidence #=> Float
1354
+ # resp.body.validation_evidence.per_finding_results[0].flow_verdicts[0].evidence #=> Array
1355
+ # resp.body.validation_evidence.per_finding_results[0].flow_verdicts[0].evidence[0] #=> String
1356
+ # resp.body.validation_evidence.per_finding_results[0].reasoning_chain #=> Array
1357
+ # resp.body.validation_evidence.per_finding_results[0].reasoning_chain[0].step #=> Integer
1358
+ # resp.body.validation_evidence.per_finding_results[0].reasoning_chain[0].claim #=> String
1359
+ # resp.body.validation_evidence.per_finding_results[0].reasoning_chain[0].source #=> String
1360
+ # resp.body.validation_evidence.per_finding_results[0].reasoning_chain[0].confidence #=> Float
1361
+ # resp.body.validation_evidence.per_finding_results[0].exploit_artifact.payload #=> String
1362
+ # resp.body.validation_evidence.per_finding_results[0].exploit_artifact.target_url #=> String
1363
+ # resp.body.validation_evidence.per_finding_results[0].exploit_artifact.http_method #=> String, one of "GET", "HEAD", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"
1364
+ # resp.body.validation_evidence.per_finding_results[0].exploit_artifact.headers #=> Hash
1365
+ # resp.body.validation_evidence.per_finding_results[0].exploit_artifact.headers["ArtifactCitation"] #=> String
1366
+ # resp.body.validation_evidence.per_finding_results[0].exploit_artifact.response_status #=> Integer
1367
+ # resp.body.validation_evidence.per_finding_results[0].exploit_artifact.response_snippet #=> String
1368
+ # resp.body.validation_evidence.per_finding_results[0].exploit_artifact.effect #=> String, one of "DATA_LEAKED", "ERROR_REVEALED", "BEHAVIOR_CHANGED", "NO_EFFECT"
1369
+ # resp.body.prevalidation_signals.produced_by #=> String
1370
+ # resp.body.prevalidation_signals.signals #=> Array
1371
+ # resp.body.prevalidation_signals.signals[0].subject_ref #=> String
1372
+ # resp.body.prevalidation_signals.signals[0].dimension #=> String, one of "EXPLOITABILITY", "BLAST_RADIUS", "NETWORK_EXPOSURE", "PRECONDITION", "CODE_CONTEXT", "LIKELIHOOD_ASSESSMENT", "IMPACT_ASSESSMENT"
1373
+ # resp.body.prevalidation_signals.signals[0].signal_strength #=> String, one of "NONE", "WEAK", "MODERATE", "STRONG"
1374
+ # resp.body.prevalidation_signals.signals[0].conclusion #=> String
1375
+ # resp.body.prevalidation_signals.signals[0].producer_id #=> String
1376
+ # resp.body.prevalidation_signals.signals[0].producer_version #=> String
1377
+ # resp.body.prevalidation_signals.signals[0].confidence #=> Float
1378
+ # resp.body.prevalidation_signals.signals[0].confidence_reasoning.summary #=> String
1379
+ # resp.body.prevalidation_signals.signals[0].confidence_reasoning.factors #=> Array
1380
+ # resp.body.prevalidation_signals.signals[0].confidence_reasoning.factors[0] #=> String
1381
+ # resp.body.prevalidation_signals.signals[0].computed.likelihood_band #=> String, one of "VERY_LOW", "LOW", "MODERATE", "HIGH"
1382
+ # resp.body.prevalidation_signals.signals[0].computed.impact_band #=> String, one of "VERY_LOW", "LOW", "MODERATE", "HIGH"
1383
+ # resp.body.prevalidation_signals.signals[0].computed.barriers #=> Integer
1384
+ # resp.body.prevalidation_signals.signals[0].preconditions.reachable_from_attacker.value #=> Boolean
1385
+ # resp.body.prevalidation_signals.signals[0].preconditions.reachable_from_attacker.basis #=> String, one of "CODE", "GRAPH", "FINDING", "INFERRED", "NO_EVIDENCE_DEFAULT"
1386
+ # resp.body.prevalidation_signals.signals[0].preconditions.reachable_from_attacker.reason #=> String
1387
+ # resp.body.prevalidation_signals.signals[0].preconditions.reachable_from_attacker.missing_info #=> String
1388
+ # resp.body.prevalidation_signals.signals[0].preconditions.configuration_needed.value #=> Boolean
1389
+ # resp.body.prevalidation_signals.signals[0].preconditions.configuration_needed.basis #=> String, one of "CODE", "GRAPH", "FINDING", "INFERRED", "NO_EVIDENCE_DEFAULT"
1390
+ # resp.body.prevalidation_signals.signals[0].preconditions.configuration_needed.reason #=> String
1391
+ # resp.body.prevalidation_signals.signals[0].preconditions.configuration_needed.missing_info #=> String
1392
+ # resp.body.prevalidation_signals.signals[0].preconditions.access_level.value #=> String, one of "NONE", "ANY_AUTHENTICATED", "PRIVILEGED"
1393
+ # resp.body.prevalidation_signals.signals[0].preconditions.access_level.basis #=> String, one of "CODE", "GRAPH", "FINDING", "INFERRED", "NO_EVIDENCE_DEFAULT"
1394
+ # resp.body.prevalidation_signals.signals[0].preconditions.access_level.reason #=> String
1395
+ # resp.body.prevalidation_signals.signals[0].preconditions.access_level.missing_info #=> String
1396
+ # resp.body.prevalidation_signals.signals[0].preconditions.user_interaction_required.value #=> Boolean
1397
+ # resp.body.prevalidation_signals.signals[0].preconditions.user_interaction_required.basis #=> String, one of "CODE", "GRAPH", "FINDING", "INFERRED", "NO_EVIDENCE_DEFAULT"
1398
+ # resp.body.prevalidation_signals.signals[0].preconditions.user_interaction_required.reason #=> String
1399
+ # resp.body.prevalidation_signals.signals[0].preconditions.user_interaction_required.missing_info #=> String
1400
+ # resp.body.prevalidation_signals.signals[0].impact_dimensions.attacker_gains.value #=> String, one of "EXECUTE", "MODIFY_PRIVILEGED", "MODIFY_DATA", "MODIFY_COSMETIC", "READ", "NEITHER"
1401
+ # resp.body.prevalidation_signals.signals[0].impact_dimensions.attacker_gains.basis #=> String, one of "CODE", "GRAPH", "FINDING", "INFERRED", "NO_EVIDENCE_DEFAULT"
1402
+ # resp.body.prevalidation_signals.signals[0].impact_dimensions.attacker_gains.reason #=> String
1403
+ # resp.body.prevalidation_signals.signals[0].impact_dimensions.attacker_gains.missing_info #=> String
1404
+ # resp.body.prevalidation_signals.signals[0].impact_dimensions.blast_radius.value #=> String, one of "CROSS_TENANT", "OTHER_USERS_IN_TENANT", "OWN_SCOPE"
1405
+ # resp.body.prevalidation_signals.signals[0].impact_dimensions.blast_radius.basis #=> String, one of "CODE", "GRAPH", "FINDING", "INFERRED", "NO_EVIDENCE_DEFAULT"
1406
+ # resp.body.prevalidation_signals.signals[0].impact_dimensions.blast_radius.reason #=> String
1407
+ # resp.body.prevalidation_signals.signals[0].impact_dimensions.blast_radius.missing_info #=> String
1408
+ # resp.body.prevalidation_signals.signals[0].impact_dimensions.target_value.value #=> String, one of "HIGH", "MEDIUM", "LOW"
1409
+ # resp.body.prevalidation_signals.signals[0].impact_dimensions.target_value.basis #=> String, one of "CODE", "GRAPH", "FINDING", "INFERRED", "NO_EVIDENCE_DEFAULT"
1410
+ # resp.body.prevalidation_signals.signals[0].impact_dimensions.target_value.reason #=> String
1411
+ # resp.body.prevalidation_signals.signals[0].impact_dimensions.target_value.missing_info #=> String
1412
+ # resp.body.prevalidation_signals.signals[0].exploitability.verdict #=> String, one of "EXPLOITABLE", "NOT_EXPLOITABLE", "UNCERTAIN"
1413
+ # resp.body.prevalidation_signals.signals[0].exploitability.reached_crown_jewels #=> Boolean
1414
+ # resp.body.prevalidation_signals.signals[0].exploitability.highest_layer_reached #=> Integer
1415
+ # resp.body.prevalidation_signals.signals[0].exploitability.confidence_tier #=> String, one of "SOURCE_READ", "STATIC_PROVEN", "BUILD_PROVEN", "RUNTIME_PROVEN"
1416
+ # resp.body.prevalidation_signals.signals[0].exploitability.scriptable #=> Boolean
1417
+ # resp.body.prevalidation_signals.signals[0].exploitability.source_validation_artifact_id #=> String
1418
+ # resp.body.remediation_proposal.patch #=> String
1419
+ # resp.body.remediation_proposal.format #=> String, one of "GIT_MAILBOX_PATCH", "GIT_BINARY_DIFF", "GIT_DIFF"
1420
+ # resp.body.remediation_proposal.filename #=> String
1421
+ # resp.body.remediation_proposal.patch_sha_256 #=> String
1422
+ # resp.body.patch.patch #=> String
1423
+ # resp.body.patch.format #=> String, one of "GIT_MAILBOX_PATCH", "GIT_BINARY_DIFF", "GIT_DIFF"
1424
+ # resp.body.patch.repository_name #=> String
1425
+ # resp.body.patch.patch_sha_256 #=> String
1426
+ # resp.body.patch.size_bytes #=> Integer
1427
+ # resp.body.patch.delivery.status #=> String, one of "PENDING", "SUCCEEDED", "FAILED", "SKIPPED", "ABANDONED"
1428
+ # resp.body.patch.delivery.target.s3.bucket #=> String
1429
+ # resp.body.patch.delivery.target.s3.key #=> String
1430
+ # resp.body.patch.delivery.target.s3.version #=> String
1431
+ # resp.body.patch.delivery.target.github.owner #=> String
1432
+ # resp.body.patch.delivery.target.github.repository #=> String
1433
+ # resp.body.patch.delivery.target.github.pull_request_number #=> Integer
1434
+ # resp.body.patch.delivery.target.github.head_sha #=> String
1435
+ # resp.body.patch.delivery.updated_at #=> Time
1436
+ # resp.body.raw #=> String
1437
+ # resp.producer.agent #=> String
1438
+ # resp.created_at #=> Time
1439
+ #
1440
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/GetCodeIssueArtifact AWS API Documentation
1441
+ #
1442
+ # @overload get_code_issue_artifact(params = {})
1443
+ # @param [Hash] params ({})
1444
+ def get_code_issue_artifact(params = {}, options = {})
1445
+ req = build_request(:get_code_issue_artifact, params)
1446
+ req.send_request(options)
1447
+ end
1448
+
1449
+ # Retrieves one customer-visible environment scan.
1450
+ #
1451
+ # @option params [required, String] :environment_id
1452
+ # Environment that owns the scan.
1453
+ #
1454
+ # @option params [required, String] :scan_run_id
1455
+ # Scan to retrieve.
1456
+ #
1457
+ # @return [Types::GetCodeScanOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1458
+ #
1459
+ # * {Types::GetCodeScanOutput#scan #scan} => Types::CodeScanData
1460
+ #
1461
+ # @example Request syntax with placeholder values
1462
+ #
1463
+ # resp = client.get_code_scan({
1464
+ # environment_id: "EnvironmentId", # required
1465
+ # scan_run_id: "ScanRunId", # required
1466
+ # })
1467
+ #
1468
+ # @example Response structure
1469
+ #
1470
+ # resp.scan.scan_run_id #=> String
1471
+ # resp.scan.status #=> String, one of "SUBMITTED", "WAITING_FOR_BUILD", "BUILDING", "WAITING_FOR_SCAN", "SCANNING", "SUCCEEDED", "FAILED"
1472
+ # resp.scan.origin #=> String, one of "MANUAL", "SCHEDULED"
1473
+ # resp.scan.created_at #=> Time
1474
+ # resp.scan.completed_at #=> Time
1475
+ # resp.scan.failure_message #=> String
1476
+ # resp.scan.failure_stage #=> String, one of "SUBMITTED", "WAITING_FOR_BUILD", "BUILDING", "WAITING_FOR_SCAN", "SCANNING"
1477
+ #
1478
+ #
1479
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1480
+ #
1481
+ # * code_scan_succeeded
1482
+ #
1483
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/GetCodeScan AWS API Documentation
1484
+ #
1485
+ # @overload get_code_scan(params = {})
1486
+ # @param [Hash] params ({})
1487
+ def get_code_scan(params = {}, options = {})
1488
+ req = build_request(:get_code_scan, params)
1489
+ req.send_request(options)
1490
+ end
1491
+
1492
+ # Retrieves the current state of the Collector for the caller's
1493
+ # account.
1494
+ #
1495
+ # @option params [required, String] :collector_id
1496
+ # The unique identifier of the Collector to retrieve.
1497
+ #
1498
+ # @return [Types::GetCollectorOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1499
+ #
1500
+ # * {Types::GetCollectorOutput#collector_id #collector_id} => String
1501
+ # * {Types::GetCollectorOutput#collector_arn #collector_arn} => String
1502
+ # * {Types::GetCollectorOutput#type #type} => String
1503
+ # * {Types::GetCollectorOutput#status #status} => String
1504
+ # * {Types::GetCollectorOutput#config_recorder_arn #config_recorder_arn} => String
1505
+ # * {Types::GetCollectorOutput#kubernetes_cluster_role_arn #kubernetes_cluster_role_arn} => String
1506
+ # * {Types::GetCollectorOutput#created_at #created_at} => Time
1507
+ # * {Types::GetCollectorOutput#updated_at #updated_at} => Time
1508
+ #
1509
+ # @example Request syntax with placeholder values
1510
+ #
1511
+ # resp = client.get_collector({
1512
+ # collector_id: "CollectorId", # required
1513
+ # })
1514
+ #
1515
+ # @example Response structure
1516
+ #
1517
+ # resp.collector_id #=> String
1518
+ # resp.collector_arn #=> String
1519
+ # resp.type #=> String, one of "AWS_COLLECTOR"
1520
+ # resp.status #=> String, one of "ACTIVE", "PENDING_DELETION"
1521
+ # resp.config_recorder_arn #=> String
1522
+ # resp.kubernetes_cluster_role_arn #=> String
1523
+ # resp.created_at #=> Time
1524
+ # resp.updated_at #=> Time
1525
+ #
1526
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/GetCollector AWS API Documentation
1527
+ #
1528
+ # @overload get_collector(params = {})
1529
+ # @param [Hash] params ({})
1530
+ def get_collector(params = {}, options = {})
1531
+ req = build_request(:get_collector, params)
1532
+ req.send_request(options)
1533
+ end
1534
+
1535
+ # Authorizes an Environment's access to a Collector's data. Continuum
1536
+ # calls this operation with the Environment's Collector data-access
1537
+ # role before it reads the Collector's inventory, so grant
1538
+ # continuum:GetCollectorDataAccessAuthorization to that role and, for a
1539
+ # Collector in another account, in the Collector's resource policy. The
1540
+ # operation evaluates the action against the exact Collector ARN and the
1541
+ # Collector's current resource policy using IAM and the caller's
1542
+ # authenticated request context, with environmentArn as the
1543
+ # continuum:EnvironmentArn condition key. A successful request returns
1544
+ # HTTP 200 with no response members. If access is not granted, the
1545
+ # operation returns AccessDeniedException without disclosing Collector
1546
+ # existence, ownership, or the policy layer that denied access. The
1547
+ # service does not reinterpret the policy using only an account ID.
1548
+ #
1549
+ # @option params [required, String] :account_id
1550
+ # The AWS account that owns the Collector.
1551
+ #
1552
+ # @option params [required, String] :collector_id
1553
+ # The unique identifier of the Collector.
1554
+ #
1555
+ # @option params [String] :environment_arn
1556
+ # The full ARN of the Environment requesting the Collector's data. The
1557
+ # Environment must be in the caller's account. Continuum supplies this
1558
+ # value as the continuum:EnvironmentArn condition key.
1559
+ #
1560
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1561
+ #
1562
+ # @example Request syntax with placeholder values
1563
+ #
1564
+ # resp = client.get_collector_data_access_authorization({
1565
+ # account_id: "AwsAccountId", # required
1566
+ # collector_id: "CollectorId", # required
1567
+ # environment_arn: "EnvironmentArn",
1568
+ # })
1569
+ #
1570
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/GetCollectorDataAccessAuthorization AWS API Documentation
1571
+ #
1572
+ # @overload get_collector_data_access_authorization(params = {})
1573
+ # @param [Hash] params ({})
1574
+ def get_collector_data_access_authorization(params = {}, options = {})
1575
+ req = build_request(:get_collector_data_access_authorization, params)
1576
+ req.send_request(options)
1577
+ end
1578
+
1579
+ # Retrieves the current state and configuration of an environment.
1580
+ #
1581
+ # @option params [required, String] :environment_id
1582
+ # The unique identifier of the environment to retrieve.
1583
+ #
1584
+ # @return [Types::GetEnvironmentOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1585
+ #
1586
+ # * {Types::GetEnvironmentOutput#environment_id #environment_id} => String
1587
+ # * {Types::GetEnvironmentOutput#environment_arn #environment_arn} => String
1588
+ # * {Types::GetEnvironmentOutput#name #name} => String
1589
+ # * {Types::GetEnvironmentOutput#status #status} => String
1590
+ # * {Types::GetEnvironmentOutput#status_message #status_message} => String
1591
+ # * {Types::GetEnvironmentOutput#status_updated_at #status_updated_at} => Time
1592
+ # * {Types::GetEnvironmentOutput#created_at #created_at} => Time
1593
+ # * {Types::GetEnvironmentOutput#updated_at #updated_at} => Time
1594
+ # * {Types::GetEnvironmentOutput#configuration #configuration} => Types::EnvironmentConfigurationDetails
1595
+ #
1596
+ # @example Request syntax with placeholder values
1597
+ #
1598
+ # resp = client.get_environment({
1599
+ # environment_id: "EnvironmentId", # required
1600
+ # })
1601
+ #
1602
+ # @example Response structure
1603
+ #
1604
+ # resp.environment_id #=> String
1605
+ # resp.environment_arn #=> String
1606
+ # resp.name #=> String
1607
+ # resp.status #=> String, one of "ACTIVE"
1608
+ # resp.status_message #=> String
1609
+ # resp.status_updated_at #=> Time
1610
+ # resp.created_at #=> Time
1611
+ # resp.updated_at #=> Time
1612
+ # resp.configuration.code_configuration.collector_details.collector_data_access_role_arn #=> String
1613
+ # resp.configuration.code_configuration.source_configuration.s3_sources #=> Array
1614
+ # resp.configuration.code_configuration.source_configuration.s3_sources[0].integration_id #=> String
1615
+ # resp.configuration.code_configuration.source_configuration.s3_sources[0].code_prefix #=> String
1616
+ # resp.configuration.code_configuration.source_configuration.s3_sources[0].context_prefix #=> String
1617
+ # resp.configuration.code_configuration.source_configuration.repository_sources #=> Array
1618
+ # resp.configuration.code_configuration.source_configuration.repository_sources[0].integration_id #=> String
1619
+ # resp.configuration.code_configuration.source_configuration.repository_sources[0].repository #=> String
1620
+ # resp.configuration.code_configuration.source_configuration.repository_sources[0].default_branch #=> String
1621
+ # resp.configuration.code_configuration.environment_configuration.network.allowed_domains #=> Array
1622
+ # resp.configuration.code_configuration.environment_configuration.network.allowed_domains[0] #=> String
1623
+ # resp.configuration.code_configuration.environment_configuration.scan_frequency #=> String
1624
+ # resp.configuration.code_configuration.environment_configuration.patch_creation_policy #=> String, one of "ENABLED", "DISABLED"
1625
+ # resp.configuration.code_configuration.latest_scan.scan_run_id #=> String
1626
+ # resp.configuration.code_configuration.latest_scan.status #=> String, one of "SUBMITTED", "WAITING_FOR_BUILD", "BUILDING", "WAITING_FOR_SCAN", "SCANNING", "SUCCEEDED", "FAILED"
1627
+ # resp.configuration.code_configuration.latest_scan.origin #=> String, one of "MANUAL", "SCHEDULED"
1628
+ # resp.configuration.code_configuration.latest_scan.created_at #=> Time
1629
+ # resp.configuration.code_configuration.latest_scan.completed_at #=> Time
1630
+ # resp.configuration.code_configuration.latest_scan.failure_message #=> String
1631
+ # resp.configuration.code_configuration.latest_scan.failure_stage #=> String, one of "SUBMITTED", "WAITING_FOR_BUILD", "BUILDING", "WAITING_FOR_SCAN", "SCANNING"
1632
+ #
1633
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/GetEnvironment AWS API Documentation
1634
+ #
1635
+ # @overload get_environment(params = {})
1636
+ # @param [Hash] params ({})
1637
+ def get_environment(params = {}, options = {})
1638
+ req = build_request(:get_environment, params)
1639
+ req.send_request(options)
1640
+ end
1641
+
1642
+ # Retrieves information about an integration.
1643
+ #
1644
+ # @option params [required, String] :integration_id
1645
+ # The unique identifier of the integration to retrieve.
1646
+ #
1647
+ # @return [Types::GetIntegrationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1648
+ #
1649
+ # * {Types::GetIntegrationOutput#integration_id #integration_id} => String
1650
+ # * {Types::GetIntegrationOutput#integration_arn #integration_arn} => String
1651
+ # * {Types::GetIntegrationOutput#name #name} => String
1652
+ # * {Types::GetIntegrationOutput#integration_type #integration_type} => String
1653
+ # * {Types::GetIntegrationOutput#provider_details #provider_details} => Types::ProviderDetails
1654
+ # * {Types::GetIntegrationOutput#created_at #created_at} => Time
1655
+ # * {Types::GetIntegrationOutput#updated_at #updated_at} => Time
1656
+ #
1657
+ # @example Request syntax with placeholder values
1658
+ #
1659
+ # resp = client.get_integration({
1660
+ # integration_id: "IntegrationId", # required
1661
+ # })
1662
+ #
1663
+ # @example Response structure
1664
+ #
1665
+ # resp.integration_id #=> String
1666
+ # resp.integration_arn #=> String
1667
+ # resp.name #=> String
1668
+ # resp.integration_type #=> String, one of "GITHUB", "GITLAB", "S3"
1669
+ # resp.provider_details.github.organization_name #=> String
1670
+ # resp.provider_details.gitlab.instance_url #=> String
1671
+ # resp.provider_details.gitlab.target_type #=> String, one of "GROUP", "PROJECT"
1672
+ # resp.provider_details.gitlab.target_path #=> String
1673
+ # resp.provider_details.gitlab.token_rotation #=> String, one of "AUTOMATIC", "NONE"
1674
+ # resp.provider_details.gitlab.expires_at #=> Time
1675
+ # resp.provider_details.s3.bucket #=> String
1676
+ # resp.provider_details.s3.role_arn #=> String
1677
+ # resp.created_at #=> Time
1678
+ # resp.updated_at #=> Time
1679
+ #
1680
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/GetIntegration AWS API Documentation
1681
+ #
1682
+ # @overload get_integration(params = {})
1683
+ # @param [Hash] params ({})
1684
+ def get_integration(params = {}, options = {})
1685
+ req = build_request(:get_integration, params)
1686
+ req.send_request(options)
1687
+ end
1688
+
1689
+ # Retrieves the resource policy attached to a Continuum resource.
1690
+ #
1691
+ # @option params [required, String] :arn
1692
+ # The ARN of a resource in the caller's account.
1693
+ #
1694
+ # @return [Types::GetResourcePolicyOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1695
+ #
1696
+ # * {Types::GetResourcePolicyOutput#arn #arn} => String
1697
+ # * {Types::GetResourcePolicyOutput#policy #policy} => String
1698
+ # * {Types::GetResourcePolicyOutput#revision_id #revision_id} => String
1699
+ #
1700
+ # @example Request syntax with placeholder values
1701
+ #
1702
+ # resp = client.get_resource_policy({
1703
+ # arn: "ResourcePolicyTargetArn", # required
1704
+ # })
1705
+ #
1706
+ # @example Response structure
1707
+ #
1708
+ # resp.arn #=> String
1709
+ # resp.policy #=> String
1710
+ # resp.revision_id #=> String
1711
+ #
1712
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/GetResourcePolicy AWS API Documentation
1713
+ #
1714
+ # @overload get_resource_policy(params = {})
1715
+ # @param [Hash] params ({})
1716
+ def get_resource_policy(params = {}, options = {})
1717
+ req = build_request(:get_resource_policy, params)
1718
+ req.send_request(options)
1719
+ end
1720
+
1721
+ # Lists the Collectors currently associated with one Environment in
1722
+ # ascending collectorId order. Each entry carries the Collector ARN, so
1723
+ # a listed association can be passed straight to DisassociateCollector,
1724
+ # including when the Collector belongs to another account. An
1725
+ # association recorded before Continuum persisted the ARN is omitted
1726
+ # from the response, because without the ARN it cannot be acted on.
1727
+ #
1728
+ # @option params [required, String] :environment_id
1729
+ # The unique identifier of the Environment whose associations to list.
1730
+ #
1731
+ # @option params [Integer] :max_results
1732
+ # Maximum number of associated Collectors to return.
1733
+ #
1734
+ # @option params [String] :next_token
1735
+ # Pagination token returned by a prior request.
1736
+ #
1737
+ # @return [Types::ListAssociatedCollectorsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1738
+ #
1739
+ # * {Types::ListAssociatedCollectorsOutput#associated_collectors #associated_collectors} => Array&lt;Types::AssociatedCollector&gt;
1740
+ # * {Types::ListAssociatedCollectorsOutput#next_token #next_token} => String
1741
+ #
1742
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1743
+ #
1744
+ # @example Request syntax with placeholder values
1745
+ #
1746
+ # resp = client.list_associated_collectors({
1747
+ # environment_id: "EnvironmentId", # required
1748
+ # max_results: 1,
1749
+ # next_token: "NextToken",
1750
+ # })
1751
+ #
1752
+ # @example Response structure
1753
+ #
1754
+ # resp.associated_collectors #=> Array
1755
+ # resp.associated_collectors[0].collector_id #=> String
1756
+ # resp.associated_collectors[0].collector_arn #=> String
1757
+ # resp.next_token #=> String
1758
+ #
1759
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/ListAssociatedCollectors AWS API Documentation
1760
+ #
1761
+ # @overload list_associated_collectors(params = {})
1762
+ # @param [Hash] params ({})
1763
+ def list_associated_collectors(params = {}, options = {})
1764
+ req = build_request(:list_associated_collectors, params)
1765
+ req.send_request(options)
1766
+ end
1767
+
1768
+ # Lists the Environments currently associated with one Collector in
1769
+ # lexicographically ascending environmentArn order. The ARN identifies
1770
+ # each Environment across accounts within the Collector's Region.
1771
+ #
1772
+ # @option params [required, String] :collector_id
1773
+ # The unique identifier of the Collector whose associations to list.
1774
+ #
1775
+ # @option params [Integer] :max_results
1776
+ # Maximum number of Environment associations to return.
1777
+ #
1778
+ # @option params [String] :next_token
1779
+ # Pagination token returned by a prior request.
1780
+ #
1781
+ # @return [Types::ListAssociatedEnvironmentsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1782
+ #
1783
+ # * {Types::ListAssociatedEnvironmentsOutput#associated_environments #associated_environments} => Array&lt;Types::AssociatedEnvironment&gt;
1784
+ # * {Types::ListAssociatedEnvironmentsOutput#next_token #next_token} => String
1785
+ #
1786
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1787
+ #
1788
+ # @example Request syntax with placeholder values
1789
+ #
1790
+ # resp = client.list_associated_environments({
1791
+ # collector_id: "CollectorId", # required
1792
+ # max_results: 1,
1793
+ # next_token: "NextToken",
1794
+ # })
1795
+ #
1796
+ # @example Response structure
1797
+ #
1798
+ # resp.associated_environments #=> Array
1799
+ # resp.associated_environments[0].environment_id #=> String
1800
+ # resp.associated_environments[0].environment_arn #=> String
1801
+ # resp.associated_environments[0].name #=> String
1802
+ # resp.associated_environments[0].status #=> String, one of "ACTIVE"
1803
+ # resp.associated_environments[0].created_at #=> Time
1804
+ # resp.next_token #=> String
1805
+ #
1806
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/ListAssociatedEnvironments AWS API Documentation
1807
+ #
1808
+ # @overload list_associated_environments(params = {})
1809
+ # @param [Hash] params ({})
1810
+ def list_associated_environments(params = {}, options = {})
1811
+ req = build_request(:list_associated_environments, params)
1812
+ req.send_request(options)
1813
+ end
1814
+
1815
+ # Lists the findings in an environment in descending findingId order.
1816
+ #
1817
+ # @option params [required, String] :environment_id
1818
+ # The environment whose findings to list.
1819
+ #
1820
+ # @option params [Integer] :max_results
1821
+ # The maximum number of results to return in a single call.
1822
+ #
1823
+ # @option params [String] :next_token
1824
+ # A pagination token returned by a previous call. Set to null for the
1825
+ # first request; use the returned token for subsequent calls.
1826
+ #
1827
+ # @return [Types::ListCodeFindingsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1828
+ #
1829
+ # * {Types::ListCodeFindingsOutput#items #items} => Array&lt;Types::FindingSummary&gt;
1830
+ # * {Types::ListCodeFindingsOutput#next_token #next_token} => String
1831
+ #
1832
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1833
+ #
1834
+ # @example Request syntax with placeholder values
1835
+ #
1836
+ # resp = client.list_code_findings({
1837
+ # environment_id: "EnvironmentId", # required
1838
+ # max_results: 1,
1839
+ # next_token: "NextToken",
1840
+ # })
1841
+ #
1842
+ # @example Response structure
1843
+ #
1844
+ # resp.items #=> Array
1845
+ # resp.items[0].finding_id #=> String
1846
+ # resp.items[0].finding_arn #=> String
1847
+ # resp.items[0].environment_id #=> String
1848
+ # resp.items[0].source #=> String
1849
+ # resp.items[0].source_finding_id #=> String
1850
+ # resp.items[0].reported_at #=> Time
1851
+ # resp.items[0].status #=> String, one of "SUBMITTED", "VALIDATING", "CONFIRMED", "DISCARDED"
1852
+ # resp.items[0].status_updated_at #=> Time
1853
+ # resp.items[0].created_at #=> Time
1854
+ # resp.items[0].scan_run_id #=> String
1855
+ # resp.items[0].status_message #=> String
1856
+ # resp.items[0].discard_reason #=> String, one of "SCANNER_VALIDATED_FALSE_POSITIVE", "SCANNER_NEEDS_REVIEW", "FALSE_POSITIVE_VALIDATED_AGAINST_CONTEXT", "DUPLICATE_OF_OPEN_ISSUE", "DUPLICATE_OF_CLOSED_ISSUE", "COMPENSATING_CONTROL_PRESENT", "OUT_OF_SCOPE", "INSUFFICIENT_EVIDENCE", "PROCESSING_FAILED", "SOURCE_REPO_NOT_FOUND"
1857
+ # resp.items[0].discard_reasoning #=> String
1858
+ # resp.items[0].duplicate_of_issue_id #=> String
1859
+ # resp.items[0].created_issue_id #=> String
1860
+ # resp.items[0].completed_at #=> Time
1861
+ # resp.items[0].type #=> String, one of "CONTINUUM_CODE_VULN", "CUSTOMER_CODE_VULN"
1862
+ # resp.items[0].title #=> String
1863
+ # resp.items[0].severity #=> String, one of "UNKNOWN", "INFORMATIONAL", "LOW", "MEDIUM", "HIGH", "CRITICAL", "FATAL", "OTHER"
1864
+ # resp.items[0].category #=> String
1865
+ # resp.items[0].file_path #=> String
1866
+ # resp.next_token #=> String
1867
+ #
1868
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/ListCodeFindings AWS API Documentation
1869
+ #
1870
+ # @overload list_code_findings(params = {})
1871
+ # @param [Hash] params ({})
1872
+ def list_code_findings(params = {}, options = {})
1873
+ req = build_request(:list_code_findings, params)
1874
+ req.send_request(options)
1875
+ end
1876
+
1877
+ # Lists the artifacts attached to an issue in descending artifactId
1878
+ # order. Content is returned by GetCodeIssueArtifact.
1879
+ #
1880
+ # @option params [required, String] :environment_id
1881
+ # The environment that owns the issue.
1882
+ #
1883
+ # @option params [required, String] :issue_id
1884
+ # The issue whose artifacts to list.
1885
+ #
1886
+ # @option params [String] :artifact_type
1887
+ # Optional filter for a semantic artifact category. Omit to list all
1888
+ # artifacts attached to the issue.
1889
+ #
1890
+ # @option params [Integer] :max_results
1891
+ # The maximum number of results to return in a single call.
1892
+ #
1893
+ # @option params [String] :next_token
1894
+ # A pagination token returned by a previous call. Set to null for the
1895
+ # first request; use the returned token for subsequent calls.
1896
+ #
1897
+ # @return [Types::ListCodeIssueArtifactsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1898
+ #
1899
+ # * {Types::ListCodeIssueArtifactsOutput#items #items} => Array&lt;Types::IssueArtifactItem&gt;
1900
+ # * {Types::ListCodeIssueArtifactsOutput#next_token #next_token} => String
1901
+ #
1902
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1903
+ #
1904
+ # @example Request syntax with placeholder values
1905
+ #
1906
+ # resp = client.list_code_issue_artifacts({
1907
+ # environment_id: "EnvironmentId", # required
1908
+ # issue_id: "IssueId", # required
1909
+ # artifact_type: "EVIDENCE", # accepts EVIDENCE, AGENT_COMMUNICATION, VALIDATION_EVIDENCE, REMEDIATION_PROPOSAL, DECISION, PATCH
1910
+ # max_results: 1,
1911
+ # next_token: "NextToken",
1912
+ # })
1913
+ #
1914
+ # @example Response structure
1915
+ #
1916
+ # resp.items #=> Array
1917
+ # resp.items[0].artifact_id #=> String
1918
+ # resp.items[0].artifact_type #=> String, one of "EVIDENCE", "AGENT_COMMUNICATION", "VALIDATION_EVIDENCE", "REMEDIATION_PROPOSAL", "DECISION", "PATCH"
1919
+ # resp.items[0].media_type #=> String
1920
+ # resp.items[0].producer.agent #=> String
1921
+ # resp.items[0].content_size_bytes #=> Integer
1922
+ # resp.items[0].created_at #=> Time
1923
+ # resp.next_token #=> String
1924
+ #
1925
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/ListCodeIssueArtifacts AWS API Documentation
1926
+ #
1927
+ # @overload list_code_issue_artifacts(params = {})
1928
+ # @param [Hash] params ({})
1929
+ def list_code_issue_artifacts(params = {}, options = {})
1930
+ req = build_request(:list_code_issue_artifacts, params)
1931
+ req.send_request(options)
1932
+ end
1933
+
1934
+ # Lists the issues in an environment in descending issueId order.
1935
+ #
1936
+ # @option params [required, String] :environment_id
1937
+ # The environment whose issues to list.
1938
+ #
1939
+ # @option params [Integer] :max_results
1940
+ # The maximum number of results to return in a single call.
1941
+ #
1942
+ # @option params [String] :next_token
1943
+ # A pagination token returned by a previous call. Set to null for the
1944
+ # first request; use the returned token for subsequent calls.
1945
+ #
1946
+ # @return [Types::ListCodeIssuesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1947
+ #
1948
+ # * {Types::ListCodeIssuesOutput#items #items} => Array&lt;Types::IssueSummary&gt;
1949
+ # * {Types::ListCodeIssuesOutput#next_token #next_token} => String
1950
+ #
1951
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1952
+ #
1953
+ # @example Request syntax with placeholder values
1954
+ #
1955
+ # resp = client.list_code_issues({
1956
+ # environment_id: "EnvironmentId", # required
1957
+ # max_results: 1,
1958
+ # next_token: "NextToken",
1959
+ # })
1960
+ #
1961
+ # @example Response structure
1962
+ #
1963
+ # resp.items #=> Array
1964
+ # resp.items[0].issue_id #=> String
1965
+ # resp.items[0].issue_arn #=> String
1966
+ # resp.items[0].name #=> String
1967
+ # resp.items[0].severity #=> String, one of "LOW", "MEDIUM", "HIGH", "CRITICAL"
1968
+ # resp.items[0].confidence #=> Integer
1969
+ # resp.items[0].status #=> String, one of "CREATED", "IN_PROGRESS", "COMPLETED", "FAILED"
1970
+ # resp.items[0].phase #=> String, one of "VALIDATION", "PRIORITIZATION", "REMEDIATION"
1971
+ # resp.items[0].status_reason #=> String, one of "INTERNAL_ERROR", "REMEDIATION_FAILED"
1972
+ # resp.items[0].status_message #=> String
1973
+ # resp.items[0].status_updated_at #=> Time
1974
+ # resp.items[0].created_at #=> Time
1975
+ # resp.items[0].updated_at #=> Time
1976
+ # resp.next_token #=> String
1977
+ #
1978
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/ListCodeIssues AWS API Documentation
1979
+ #
1980
+ # @overload list_code_issues(params = {})
1981
+ # @param [Hash] params ({})
1982
+ def list_code_issues(params = {}, options = {})
1983
+ req = build_request(:list_code_issues, params)
1984
+ req.send_request(options)
1985
+ end
1986
+
1987
+ # Lists customer-visible scans for one environment in descending
1988
+ # scanRunId order.
1989
+ #
1990
+ # @option params [required, String] :environment_id
1991
+ # Environment whose scans to list.
1992
+ #
1993
+ # @option params [Integer] :max_results
1994
+ # Maximum number of scans to return.
1995
+ #
1996
+ # @option params [String] :next_token
1997
+ # Pagination token returned by a prior request.
1998
+ #
1999
+ # @return [Types::ListCodeScansOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2000
+ #
2001
+ # * {Types::ListCodeScansOutput#scans #scans} => Array&lt;Types::CodeScanSummary&gt;
2002
+ # * {Types::ListCodeScansOutput#next_token #next_token} => String
2003
+ #
2004
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2005
+ #
2006
+ # @example Request syntax with placeholder values
2007
+ #
2008
+ # resp = client.list_code_scans({
2009
+ # environment_id: "EnvironmentId", # required
2010
+ # max_results: 1,
2011
+ # next_token: "NextToken",
2012
+ # })
2013
+ #
2014
+ # @example Response structure
2015
+ #
2016
+ # resp.scans #=> Array
2017
+ # resp.scans[0].scan_run_id #=> String
2018
+ # resp.scans[0].status #=> String, one of "SUBMITTED", "WAITING_FOR_BUILD", "BUILDING", "WAITING_FOR_SCAN", "SCANNING", "SUCCEEDED", "FAILED"
2019
+ # resp.scans[0].origin #=> String, one of "MANUAL", "SCHEDULED"
2020
+ # resp.scans[0].created_at #=> Time
2021
+ # resp.scans[0].completed_at #=> Time
2022
+ # resp.scans[0].failure_message #=> String
2023
+ # resp.scans[0].failure_stage #=> String, one of "SUBMITTED", "WAITING_FOR_BUILD", "BUILDING", "WAITING_FOR_SCAN", "SCANNING"
2024
+ # resp.next_token #=> String
2025
+ #
2026
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/ListCodeScans AWS API Documentation
2027
+ #
2028
+ # @overload list_code_scans(params = {})
2029
+ # @param [Hash] params ({})
2030
+ def list_code_scans(params = {}, options = {})
2031
+ req = build_request(:list_code_scans, params)
2032
+ req.send_request(options)
2033
+ end
2034
+
2035
+ # Lists the Collectors owned by the authenticated caller's account,
2036
+ # including a Collector whose deletion is in progress. A Collector that
2037
+ # is still being created is omitted. The account-scoped Collector quota
2038
+ # currently permits at most one result, so no result ordering applies.
2039
+ #
2040
+ # @return [Types::ListCollectorsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2041
+ #
2042
+ # * {Types::ListCollectorsOutput#items #items} => Array&lt;Types::CollectorSummary&gt;
2043
+ #
2044
+ # @example Response structure
2045
+ #
2046
+ # resp.items #=> Array
2047
+ # resp.items[0].collector_id #=> String
2048
+ # resp.items[0].collector_arn #=> String
2049
+ # resp.items[0].type #=> String, one of "AWS_COLLECTOR"
2050
+ # resp.items[0].status #=> String, one of "ACTIVE", "PENDING_DELETION"
2051
+ # resp.items[0].created_at #=> Time
2052
+ #
2053
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/ListCollectors AWS API Documentation
2054
+ #
2055
+ # @overload list_collectors(params = {})
2056
+ # @param [Hash] params ({})
2057
+ def list_collectors(params = {}, options = {})
2058
+ req = build_request(:list_collectors, params)
2059
+ req.send_request(options)
2060
+ end
2061
+
2062
+ # Lists all environments in your account in descending environmentId
2063
+ # order. This complete-inventory operation intentionally has no response
2064
+ # filters; see the input documentation for the API standards
2065
+ # justification.
2066
+ #
2067
+ # @option params [Integer] :max_results
2068
+ # The maximum number of results to return in a single call.
2069
+ #
2070
+ # @option params [String] :next_token
2071
+ # A pagination token returned by a previous call. Set to null for the
2072
+ # first request; use the returned token for subsequent calls.
2073
+ #
2074
+ # @return [Types::ListEnvironmentsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2075
+ #
2076
+ # * {Types::ListEnvironmentsOutput#items #items} => Array&lt;Types::EnvironmentListEntry&gt;
2077
+ # * {Types::ListEnvironmentsOutput#next_token #next_token} => String
2078
+ #
2079
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2080
+ #
2081
+ # @example Request syntax with placeholder values
2082
+ #
2083
+ # resp = client.list_environments({
2084
+ # max_results: 1,
2085
+ # next_token: "NextToken",
2086
+ # })
2087
+ #
2088
+ # @example Response structure
2089
+ #
2090
+ # resp.items #=> Array
2091
+ # resp.items[0].environment_id #=> String
2092
+ # resp.items[0].environment_arn #=> String
2093
+ # resp.items[0].name #=> String
2094
+ # resp.items[0].status #=> String, one of "ACTIVE"
2095
+ # resp.items[0].created_at #=> Time
2096
+ # resp.next_token #=> String
2097
+ #
2098
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/ListEnvironments AWS API Documentation
2099
+ #
2100
+ # @overload list_environments(params = {})
2101
+ # @param [Hash] params ({})
2102
+ def list_environments(params = {}, options = {})
2103
+ req = build_request(:list_environments, params)
2104
+ req.send_request(options)
2105
+ end
2106
+
2107
+ # Lists the integrations in your account in descending integrationId
2108
+ # order.
2109
+ #
2110
+ # @option params [Integer] :max_results
2111
+ # The maximum number of results to return in a single call.
2112
+ #
2113
+ # @option params [String] :next_token
2114
+ # A pagination token returned by a previous call. Set to null for the
2115
+ # first request; use the returned token for subsequent calls.
2116
+ #
2117
+ # @return [Types::ListIntegrationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2118
+ #
2119
+ # * {Types::ListIntegrationsOutput#items #items} => Array&lt;Types::IntegrationSummary&gt;
2120
+ # * {Types::ListIntegrationsOutput#next_token #next_token} => String
2121
+ #
2122
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2123
+ #
2124
+ # @example Request syntax with placeholder values
2125
+ #
2126
+ # resp = client.list_integrations({
2127
+ # max_results: 1,
2128
+ # next_token: "NextToken",
2129
+ # })
2130
+ #
2131
+ # @example Response structure
2132
+ #
2133
+ # resp.items #=> Array
2134
+ # resp.items[0].integration_id #=> String
2135
+ # resp.items[0].integration_arn #=> String
2136
+ # resp.items[0].name #=> String
2137
+ # resp.items[0].integration_type #=> String, one of "GITHUB", "GITLAB", "S3"
2138
+ # resp.items[0].provider_details.github.organization_name #=> String
2139
+ # resp.items[0].provider_details.gitlab.instance_url #=> String
2140
+ # resp.items[0].provider_details.gitlab.target_type #=> String, one of "GROUP", "PROJECT"
2141
+ # resp.items[0].provider_details.gitlab.target_path #=> String
2142
+ # resp.items[0].provider_details.gitlab.token_rotation #=> String, one of "AUTOMATIC", "NONE"
2143
+ # resp.items[0].provider_details.gitlab.expires_at #=> Time
2144
+ # resp.items[0].provider_details.s3.bucket #=> String
2145
+ # resp.items[0].provider_details.s3.role_arn #=> String
2146
+ # resp.items[0].created_at #=> Time
2147
+ # resp.items[0].updated_at #=> Time
2148
+ # resp.next_token #=> String
2149
+ #
2150
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/ListIntegrations AWS API Documentation
2151
+ #
2152
+ # @overload list_integrations(params = {})
2153
+ # @param [Hash] params ({})
2154
+ def list_integrations(params = {}, options = {})
2155
+ req = build_request(:list_integrations, params)
2156
+ req.send_request(options)
2157
+ end
2158
+
2159
+ # Creates or replaces the resource policy attached to a Continuum
2160
+ # resource.
2161
+ #
2162
+ # @option params [required, String] :arn
2163
+ # The ARN of a resource in the caller's account.
2164
+ #
2165
+ # @option params [String] :policy
2166
+ # Omit or supply an empty Statement array to clear resource-policy
2167
+ # grants and store the canonical empty-statement policy. Cross-account
2168
+ # access is denied; same-account access remains subject to identity
2169
+ # policies. Use an explicit Deny statement to deny same-account
2170
+ # principals too.
2171
+ #
2172
+ # @option params [String] :expected_revision_id
2173
+ # Optional optimistic-concurrency token for the currently observed
2174
+ # policy.
2175
+ #
2176
+ # @return [Types::PutResourcePolicyOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2177
+ #
2178
+ # * {Types::PutResourcePolicyOutput#arn #arn} => String
2179
+ # * {Types::PutResourcePolicyOutput#policy #policy} => String
2180
+ # * {Types::PutResourcePolicyOutput#revision_id #revision_id} => String
2181
+ #
2182
+ # @example Request syntax with placeholder values
2183
+ #
2184
+ # resp = client.put_resource_policy({
2185
+ # arn: "ResourcePolicyTargetArn", # required
2186
+ # policy: "ResourcePolicyInputDocument",
2187
+ # expected_revision_id: "ResourcePolicyRevisionId",
2188
+ # })
2189
+ #
2190
+ # @example Response structure
2191
+ #
2192
+ # resp.arn #=> String
2193
+ # resp.policy #=> String
2194
+ # resp.revision_id #=> String
2195
+ #
2196
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/PutResourcePolicy AWS API Documentation
2197
+ #
2198
+ # @overload put_resource_policy(params = {})
2199
+ # @param [Hash] params ({})
2200
+ def put_resource_policy(params = {}, options = {})
2201
+ req = build_request(:put_resource_policy, params)
2202
+ req.send_request(options)
2203
+ end
2204
+
2205
+ # Starts an OAuth authorization for a new integration and returns the
2206
+ # values the caller sends to the provider's authorization endpoint. The
2207
+ # authorization belongs to the calling AWS account, can be redeemed once
2208
+ # by CreateIntegration from that same account, and expires after ten
2209
+ # minutes.
2210
+ #
2211
+ # @option params [required, String] :provider_type
2212
+ # The provider to authorize. Only GITHUB is supported.
2213
+ #
2214
+ # @option params [String] :name
2215
+ # The name the integration will be created with. When specified, the
2216
+ # request fails with ConflictException if an integration with this name
2217
+ # already exists in the account, before the caller leaves for the
2218
+ # provider. The name is only checked: it is not reserved, stored, or
2219
+ # authorized. CreateIntegration requires its own name, checks it again,
2220
+ # and may use a different one.
2221
+ #
2222
+ # @return [Types::StartIntegrationAuthorizationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2223
+ #
2224
+ # * {Types::StartIntegrationAuthorizationOutput#state #state} => String
2225
+ # * {Types::StartIntegrationAuthorizationOutput#code_challenge #code_challenge} => String
2226
+ # * {Types::StartIntegrationAuthorizationOutput#code_challenge_method #code_challenge_method} => String
2227
+ # * {Types::StartIntegrationAuthorizationOutput#expires_at #expires_at} => Time
2228
+ #
2229
+ # @example Request syntax with placeholder values
2230
+ #
2231
+ # resp = client.start_integration_authorization({
2232
+ # provider_type: "GITHUB", # required, accepts GITHUB
2233
+ # name: "IntegrationName",
2234
+ # })
2235
+ #
2236
+ # @example Response structure
2237
+ #
2238
+ # resp.state #=> String
2239
+ # resp.code_challenge #=> String
2240
+ # resp.code_challenge_method #=> String, one of "S256"
2241
+ # resp.expires_at #=> Time
2242
+ #
2243
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/StartIntegrationAuthorization AWS API Documentation
2244
+ #
2245
+ # @overload start_integration_authorization(params = {})
2246
+ # @param [Hash] params ({})
2247
+ def start_integration_authorization(params = {}, options = {})
2248
+ req = build_request(:start_integration_authorization, params)
2249
+ req.send_request(options)
2250
+ end
2251
+
2252
+ # Updates the customer-controlled mutable properties of a Collector.
2253
+ # Only the name and Kubernetes cluster IAM role can be changed.
2254
+ #
2255
+ # @option params [required, String] :collector_id
2256
+ # The unique identifier of the Collector to update.
2257
+ #
2258
+ # @option params [String] :name
2259
+ # The new customer-visible name.
2260
+ #
2261
+ # @option params [Types::KubernetesClusterRoleUpdate] :kubernetes_cluster_role
2262
+ # Atomic update to the IAM role configuration used to collect Kubernetes
2263
+ # cluster metadata. The set variant requires a complete configuration;
2264
+ # the authenticated caller must be allowed to pass its exact roleArn to
2265
+ # Continuum. The remove variant clears both the role and external ID.
2266
+ #
2267
+ # @return [Types::UpdateCollectorOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2268
+ #
2269
+ # * {Types::UpdateCollectorOutput#collector_id #collector_id} => String
2270
+ # * {Types::UpdateCollectorOutput#collector_arn #collector_arn} => String
2271
+ # * {Types::UpdateCollectorOutput#type #type} => String
2272
+ # * {Types::UpdateCollectorOutput#status #status} => String
2273
+ # * {Types::UpdateCollectorOutput#config_recorder_arn #config_recorder_arn} => String
2274
+ # * {Types::UpdateCollectorOutput#kubernetes_cluster_role_arn #kubernetes_cluster_role_arn} => String
2275
+ # * {Types::UpdateCollectorOutput#created_at #created_at} => Time
2276
+ # * {Types::UpdateCollectorOutput#updated_at #updated_at} => Time
2277
+ #
2278
+ # @example Request syntax with placeholder values
2279
+ #
2280
+ # resp = client.update_collector({
2281
+ # collector_id: "CollectorId", # required
2282
+ # name: "CollectorName",
2283
+ # kubernetes_cluster_role: {
2284
+ # set: {
2285
+ # role_arn: "KubernetesClusterRoleArn", # required
2286
+ # external_id: "KubernetesClusterExternalId",
2287
+ # },
2288
+ # remove: {
2289
+ # },
2290
+ # },
2291
+ # })
2292
+ #
2293
+ # @example Response structure
2294
+ #
2295
+ # resp.collector_id #=> String
2296
+ # resp.collector_arn #=> String
2297
+ # resp.type #=> String, one of "AWS_COLLECTOR"
2298
+ # resp.status #=> String, one of "ACTIVE", "PENDING_DELETION"
2299
+ # resp.config_recorder_arn #=> String
2300
+ # resp.kubernetes_cluster_role_arn #=> String
2301
+ # resp.created_at #=> Time
2302
+ # resp.updated_at #=> Time
2303
+ #
2304
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/UpdateCollector AWS API Documentation
2305
+ #
2306
+ # @overload update_collector(params = {})
2307
+ # @param [Hash] params ({})
2308
+ def update_collector(params = {}, options = {})
2309
+ req = build_request(:update_collector, params)
2310
+ req.send_request(options)
2311
+ end
2312
+
2313
+ # Updates the customer-controlled mutable properties of an environment.
2314
+ # Only the name, the environment's S3 integration source and repository
2315
+ # selections, its scan frequency, its network policy, and its patch
2316
+ # creation policy can be changed.
2317
+ #
2318
+ # @option params [required, String] :environment_id
2319
+ # The unique identifier of the environment to update.
2320
+ #
2321
+ # @option params [String] :name
2322
+ # The new customer-visible name.
2323
+ #
2324
+ # @option params [Types::UpdateEnvironmentConfiguration] :configuration
2325
+ # Type-specific configuration changes. Omission preserves the
2326
+ # configuration.
2327
+ #
2328
+ # @return [Types::UpdateEnvironmentOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2329
+ #
2330
+ # * {Types::UpdateEnvironmentOutput#environment_id #environment_id} => String
2331
+ # * {Types::UpdateEnvironmentOutput#environment_arn #environment_arn} => String
2332
+ # * {Types::UpdateEnvironmentOutput#name #name} => String
2333
+ # * {Types::UpdateEnvironmentOutput#status #status} => String
2334
+ # * {Types::UpdateEnvironmentOutput#status_message #status_message} => String
2335
+ # * {Types::UpdateEnvironmentOutput#status_updated_at #status_updated_at} => Time
2336
+ # * {Types::UpdateEnvironmentOutput#created_at #created_at} => Time
2337
+ # * {Types::UpdateEnvironmentOutput#configuration #configuration} => Types::EnvironmentConfigurationDetails
2338
+ #
2339
+ # @example Request syntax with placeholder values
2340
+ #
2341
+ # resp = client.update_environment({
2342
+ # environment_id: "EnvironmentId", # required
2343
+ # name: "EnvironmentName",
2344
+ # configuration: {
2345
+ # code_configuration: {
2346
+ # source_configuration: {
2347
+ # s3_sources: [
2348
+ # {
2349
+ # integration_id: "IntegrationId", # required
2350
+ # code_prefix: "EnvironmentSourcePrefix",
2351
+ # context_prefix: "EnvironmentSourcePrefix",
2352
+ # },
2353
+ # ],
2354
+ # repository_sources: [
2355
+ # {
2356
+ # integration_id: "IntegrationId", # required
2357
+ # repository: "RepositoryName", # required
2358
+ # default_branch: "RepositoryBranch",
2359
+ # },
2360
+ # ],
2361
+ # },
2362
+ # environment_configuration: {
2363
+ # network: {
2364
+ # allowed_domains: ["DomainName"],
2365
+ # },
2366
+ # scan_frequency: "ScanFrequency",
2367
+ # patch_creation_policy: "ENABLED", # accepts ENABLED, DISABLED
2368
+ # },
2369
+ # },
2370
+ # },
2371
+ # })
2372
+ #
2373
+ # @example Response structure
2374
+ #
2375
+ # resp.environment_id #=> String
2376
+ # resp.environment_arn #=> String
2377
+ # resp.name #=> String
2378
+ # resp.status #=> String, one of "ACTIVE"
2379
+ # resp.status_message #=> String
2380
+ # resp.status_updated_at #=> Time
2381
+ # resp.created_at #=> Time
2382
+ # resp.configuration.code_configuration.collector_details.collector_data_access_role_arn #=> String
2383
+ # resp.configuration.code_configuration.source_configuration.s3_sources #=> Array
2384
+ # resp.configuration.code_configuration.source_configuration.s3_sources[0].integration_id #=> String
2385
+ # resp.configuration.code_configuration.source_configuration.s3_sources[0].code_prefix #=> String
2386
+ # resp.configuration.code_configuration.source_configuration.s3_sources[0].context_prefix #=> String
2387
+ # resp.configuration.code_configuration.source_configuration.repository_sources #=> Array
2388
+ # resp.configuration.code_configuration.source_configuration.repository_sources[0].integration_id #=> String
2389
+ # resp.configuration.code_configuration.source_configuration.repository_sources[0].repository #=> String
2390
+ # resp.configuration.code_configuration.source_configuration.repository_sources[0].default_branch #=> String
2391
+ # resp.configuration.code_configuration.environment_configuration.network.allowed_domains #=> Array
2392
+ # resp.configuration.code_configuration.environment_configuration.network.allowed_domains[0] #=> String
2393
+ # resp.configuration.code_configuration.environment_configuration.scan_frequency #=> String
2394
+ # resp.configuration.code_configuration.environment_configuration.patch_creation_policy #=> String, one of "ENABLED", "DISABLED"
2395
+ # resp.configuration.code_configuration.latest_scan.scan_run_id #=> String
2396
+ # resp.configuration.code_configuration.latest_scan.status #=> String, one of "SUBMITTED", "WAITING_FOR_BUILD", "BUILDING", "WAITING_FOR_SCAN", "SCANNING", "SUCCEEDED", "FAILED"
2397
+ # resp.configuration.code_configuration.latest_scan.origin #=> String, one of "MANUAL", "SCHEDULED"
2398
+ # resp.configuration.code_configuration.latest_scan.created_at #=> Time
2399
+ # resp.configuration.code_configuration.latest_scan.completed_at #=> Time
2400
+ # resp.configuration.code_configuration.latest_scan.failure_message #=> String
2401
+ # resp.configuration.code_configuration.latest_scan.failure_stage #=> String, one of "SUBMITTED", "WAITING_FOR_BUILD", "BUILDING", "WAITING_FOR_SCAN", "SCANNING"
2402
+ #
2403
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/UpdateEnvironment AWS API Documentation
2404
+ #
2405
+ # @overload update_environment(params = {})
2406
+ # @param [Hash] params ({})
2407
+ def update_environment(params = {}, options = {})
2408
+ req = build_request(:update_environment, params)
2409
+ req.send_request(options)
2410
+ end
2411
+
2412
+ # Rotates the credentials used by an Amazon S3 integration. Only S3
2413
+ # integrations can be updated; GitHub integrations cannot be modified.
2414
+ # The integration's name, provider type, and bucket remain fixed.
2415
+ #
2416
+ # The caller must have iam:PassRole permission for the supplied role,
2417
+ # including when only the external ID changes. Continuum verifies that
2418
+ # the role can be assumed with the requested external ID and can access
2419
+ # the existing bucket before saving both credentials atomically.
2420
+ # Omitting externalId preserves its current value. Repeating both
2421
+ # current credentials leaves updatedAt unchanged, but still requires
2422
+ # authorization and access validation.
2423
+ #
2424
+ # @option params [required, String] :integration_id
2425
+ # The unique identifier of the S3 integration to update.
2426
+ #
2427
+ # @option params [required, Types::UpdateProviderConfiguration] :provider_configuration
2428
+ # The provider-specific changes to apply. The member must match the
2429
+ # integration's provider type, and only S3 integrations can be updated.
2430
+ #
2431
+ # @return [Types::UpdateIntegrationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2432
+ #
2433
+ # * {Types::UpdateIntegrationOutput#integration_id #integration_id} => String
2434
+ # * {Types::UpdateIntegrationOutput#integration_arn #integration_arn} => String
2435
+ # * {Types::UpdateIntegrationOutput#name #name} => String
2436
+ # * {Types::UpdateIntegrationOutput#integration_type #integration_type} => String
2437
+ # * {Types::UpdateIntegrationOutput#provider_details #provider_details} => Types::ProviderDetails
2438
+ # * {Types::UpdateIntegrationOutput#created_at #created_at} => Time
2439
+ # * {Types::UpdateIntegrationOutput#updated_at #updated_at} => Time
2440
+ #
2441
+ # @example Request syntax with placeholder values
2442
+ #
2443
+ # resp = client.update_integration({
2444
+ # integration_id: "IntegrationId", # required
2445
+ # provider_configuration: { # required
2446
+ # s3: {
2447
+ # role_arn: "IntegrationS3RoleArn", # required
2448
+ # external_id: "IntegrationS3ExternalId",
2449
+ # },
2450
+ # },
2451
+ # })
2452
+ #
2453
+ # @example Response structure
2454
+ #
2455
+ # resp.integration_id #=> String
2456
+ # resp.integration_arn #=> String
2457
+ # resp.name #=> String
2458
+ # resp.integration_type #=> String, one of "GITHUB", "GITLAB", "S3"
2459
+ # resp.provider_details.github.organization_name #=> String
2460
+ # resp.provider_details.gitlab.instance_url #=> String
2461
+ # resp.provider_details.gitlab.target_type #=> String, one of "GROUP", "PROJECT"
2462
+ # resp.provider_details.gitlab.target_path #=> String
2463
+ # resp.provider_details.gitlab.token_rotation #=> String, one of "AUTOMATIC", "NONE"
2464
+ # resp.provider_details.gitlab.expires_at #=> Time
2465
+ # resp.provider_details.s3.bucket #=> String
2466
+ # resp.provider_details.s3.role_arn #=> String
2467
+ # resp.created_at #=> Time
2468
+ # resp.updated_at #=> Time
2469
+ #
2470
+ # @see http://docs.aws.amazon.com/goto/WebAPI/continuum-2022-07-26/UpdateIntegration AWS API Documentation
2471
+ #
2472
+ # @overload update_integration(params = {})
2473
+ # @param [Hash] params ({})
2474
+ def update_integration(params = {}, options = {})
2475
+ req = build_request(:update_integration, params)
2476
+ req.send_request(options)
2477
+ end
2478
+
2479
+ # @!endgroup
2480
+
2481
+ # @param params ({})
2482
+ # @api private
2483
+ def build_request(operation_name, params = {})
2484
+ handlers = @handlers.for(operation_name)
2485
+ tracer = config.telemetry_provider.tracer_provider.tracer(
2486
+ Aws::Telemetry.module_to_tracer_name('Aws::Continuum')
2487
+ )
2488
+ context = Seahorse::Client::RequestContext.new(
2489
+ operation_name: operation_name,
2490
+ operation: config.api.operation(operation_name),
2491
+ client: self,
2492
+ params: params,
2493
+ config: config,
2494
+ tracer: tracer
2495
+ )
2496
+ context[:gem_name] = 'aws-sdk-continuum'
2497
+ context[:gem_version] = '1.0.0'
2498
+ Seahorse::Client::Request.new(handlers, context)
2499
+ end
2500
+
2501
+ # Polls an API operation until a resource enters a desired state.
2502
+ #
2503
+ # ## Basic Usage
2504
+ #
2505
+ # A waiter will call an API operation until:
2506
+ #
2507
+ # * It is successful
2508
+ # * It enters a terminal state
2509
+ # * It makes the maximum number of attempts
2510
+ #
2511
+ # In between attempts, the waiter will sleep.
2512
+ #
2513
+ # # polls in a loop, sleeping between attempts
2514
+ # client.wait_until(waiter_name, params)
2515
+ #
2516
+ # ## Configuration
2517
+ #
2518
+ # You can configure the maximum number of polling attempts, and the
2519
+ # delay (in seconds) between each polling attempt. You can pass
2520
+ # configuration as the final arguments hash.
2521
+ #
2522
+ # # poll for ~25 seconds
2523
+ # client.wait_until(waiter_name, params, {
2524
+ # max_attempts: 5,
2525
+ # delay: 5,
2526
+ # })
2527
+ #
2528
+ # ## Callbacks
2529
+ #
2530
+ # You can be notified before each polling attempt and before each
2531
+ # delay. If you throw `:success` or `:failure` from these callbacks,
2532
+ # it will terminate the waiter.
2533
+ #
2534
+ # started_at = Time.now
2535
+ # client.wait_until(waiter_name, params, {
2536
+ #
2537
+ # # disable max attempts
2538
+ # max_attempts: nil,
2539
+ #
2540
+ # # poll for 1 hour, instead of a number of attempts
2541
+ # before_wait: -> (attempts, response) do
2542
+ # throw :failure if Time.now - started_at > 3600
2543
+ # end
2544
+ # })
2545
+ #
2546
+ # ## Handling Errors
2547
+ #
2548
+ # When a waiter is unsuccessful, it will raise an error.
2549
+ # All of the failure errors extend from
2550
+ # {Aws::Waiters::Errors::WaiterFailed}.
2551
+ #
2552
+ # begin
2553
+ # client.wait_until(...)
2554
+ # rescue Aws::Waiters::Errors::WaiterFailed
2555
+ # # resource did not enter the desired state in time
2556
+ # end
2557
+ #
2558
+ # ## Valid Waiters
2559
+ #
2560
+ # The following table lists the valid waiter names, the operations they call,
2561
+ # and the default `:delay` and `:max_attempts` values.
2562
+ #
2563
+ # | waiter_name | params | :delay | :max_attempts |
2564
+ # | ------------------- | ---------------------- | -------- | ------------- |
2565
+ # | code_scan_succeeded | {Client#get_code_scan} | 60 | 480 |
2566
+ #
2567
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
2568
+ # because the waiter has entered a state that it will not transition
2569
+ # out of, preventing success.
2570
+ #
2571
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
2572
+ # maximum number of attempts have been made, and the waiter is not
2573
+ # yet successful.
2574
+ #
2575
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
2576
+ # while polling for a resource that is not expected.
2577
+ #
2578
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
2579
+ # for an unknown state.
2580
+ #
2581
+ # @return [Boolean] Returns `true` if the waiter was successful.
2582
+ # @param [Symbol] waiter_name
2583
+ # @param [Hash] params ({})
2584
+ # @param [Hash] options ({})
2585
+ # @option options [Integer] :max_attempts
2586
+ # @option options [Integer] :delay
2587
+ # @option options [Proc] :before_attempt
2588
+ # @option options [Proc] :before_wait
2589
+ def wait_until(waiter_name, params = {}, options = {})
2590
+ w = waiter(waiter_name, options)
2591
+ yield(w.waiter) if block_given? # deprecated
2592
+ w.wait(params)
2593
+ end
2594
+
2595
+ # @api private
2596
+ # @deprecated
2597
+ def waiter_names
2598
+ waiters.keys
2599
+ end
2600
+
2601
+ private
2602
+
2603
+ # @param [Symbol] waiter_name
2604
+ # @param [Hash] options ({})
2605
+ def waiter(waiter_name, options = {})
2606
+ waiter_class = waiters[waiter_name]
2607
+ if waiter_class
2608
+ waiter_class.new(options.merge(client: self))
2609
+ else
2610
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
2611
+ end
2612
+ end
2613
+
2614
+ def waiters
2615
+ {
2616
+ code_scan_succeeded: Waiters::CodeScanSucceeded
2617
+ }
2618
+ end
2619
+
2620
+ class << self
2621
+
2622
+ # @api private
2623
+ attr_reader :identifier
2624
+
2625
+ # @api private
2626
+ def errors_module
2627
+ Errors
2628
+ end
2629
+
2630
+ end
2631
+ end
2632
+ end