aws-sdk-securityagent 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,3056 @@
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::SecurityAgent
40
+ # An API client for SecurityAgent. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::SecurityAgent::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 = :securityagent
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::SecurityAgent::Plugins::Endpoints)
89
+
90
+ # @overload initialize(options)
91
+ # @param [Hash] options
92
+ #
93
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
94
+ # A list of plugins to apply to the client. Each plugin is either a
95
+ # class name or an instance of a plugin class.
96
+ #
97
+ # @option options [required, Aws::CredentialProvider] :credentials
98
+ # Your AWS credentials used for authentication. This can be any class that includes and implements
99
+ # `Aws::CredentialProvider`, or instance of any one of the following classes:
100
+ #
101
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
102
+ # credentials.
103
+ #
104
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
105
+ # shared file, such as `~/.aws/config`.
106
+ #
107
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ #
109
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
110
+ # assume a role after providing credentials via the web.
111
+ #
112
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
113
+ # access token generated from `aws login`.
114
+ #
115
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
116
+ # process that outputs to stdout.
117
+ #
118
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
119
+ # from an EC2 IMDS on an EC2 instance.
120
+ #
121
+ # * `Aws::ECSCredentials` - Used for loading credentials from
122
+ # instances running in ECS.
123
+ #
124
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
125
+ # from the Cognito Identity service.
126
+ #
127
+ # When `:credentials` are not configured directly, the following locations will be searched for credentials:
128
+ #
129
+ # * `Aws.config[:credentials]`
130
+ #
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ #
134
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
135
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
136
+ #
137
+ # * `~/.aws/credentials`
138
+ #
139
+ # * `~/.aws/config`
140
+ #
141
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
142
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
143
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
144
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
145
+ #
146
+ # @option options [required, String] :region
147
+ # The AWS region to connect to. The configured `:region` is
148
+ # used to determine the service `:endpoint`. When not passed,
149
+ # a default `:region` is searched for in the following locations:
150
+ #
151
+ # * `Aws.config[:region]`
152
+ # * `ENV['AWS_REGION']`
153
+ # * `ENV['AMAZON_REGION']`
154
+ # * `ENV['AWS_DEFAULT_REGION']`
155
+ # * `~/.aws/credentials`
156
+ # * `~/.aws/config`
157
+ #
158
+ # @option options [String] :access_key_id
159
+ #
160
+ # @option options [String] :account_id
161
+ #
162
+ # @option options [Boolean] :active_endpoint_cache (false)
163
+ # When set to `true`, a thread polling for endpoints will be running in
164
+ # the background every 60 secs (default). Defaults to `false`.
165
+ #
166
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
167
+ # Used only in `adaptive` retry mode. When true, the request will sleep
168
+ # until there is sufficent client side capacity to retry the request.
169
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
170
+ # not retry instead of sleeping.
171
+ #
172
+ # @option options [Array<String>] :auth_scheme_preference
173
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
174
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
175
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
176
+ #
177
+ # @option options [Boolean] :client_side_monitoring (false)
178
+ # When `true`, client-side metrics will be collected for all API requests from
179
+ # this client.
180
+ #
181
+ # @option options [String] :client_side_monitoring_client_id ("")
182
+ # Allows you to provide an identifier for this client which will be attached to
183
+ # all generated client side metrics. Defaults to an empty string.
184
+ #
185
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
186
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
187
+ # side monitoring agent is running on, where client metrics will be published via UDP.
188
+ #
189
+ # @option options [Integer] :client_side_monitoring_port (31000)
190
+ # Required for publishing client metrics. The port that the client side monitoring
191
+ # agent is running on, where client metrics will be published via UDP.
192
+ #
193
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
194
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
195
+ # will use the Client Side Monitoring Agent Publisher.
196
+ #
197
+ # @option options [Boolean] :convert_params (true)
198
+ # When `true`, an attempt is made to coerce request parameters into
199
+ # the required types.
200
+ #
201
+ # @option options [Boolean] :correct_clock_skew (true)
202
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
203
+ # a clock skew correction and retry requests with skewed client clocks.
204
+ #
205
+ # @option options [String] :defaults_mode ("legacy")
206
+ # See {Aws::DefaultsModeConfiguration} for a list of the
207
+ # accepted modes and the configuration defaults that are included.
208
+ #
209
+ # @option options [Boolean] :disable_host_prefix_injection (false)
210
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
211
+ #
212
+ # @option options [Boolean] :disable_request_compression (false)
213
+ # When set to 'true' the request body will not be compressed
214
+ # for supported operations.
215
+ #
216
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
217
+ # Normally you should not configure the `:endpoint` option
218
+ # directly. This is normally constructed from the `:region`
219
+ # option. Configuring `:endpoint` is normally reserved for
220
+ # connecting to test or custom endpoints. The endpoint should
221
+ # be a URI formatted like:
222
+ #
223
+ # 'http://example.com'
224
+ # 'https://example.com'
225
+ # 'http://example.com:123'
226
+ #
227
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
228
+ # Used for the maximum size limit of the LRU cache storing endpoints data
229
+ # for endpoint discovery enabled operations. Defaults to 1000.
230
+ #
231
+ # @option options [Integer] :endpoint_cache_max_threads (10)
232
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
233
+ #
234
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
235
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
236
+ # Use this option to config the time interval in seconds for making
237
+ # requests fetching endpoints information. Defaults to 60 sec.
238
+ #
239
+ # @option options [Boolean] :endpoint_discovery (false)
240
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
241
+ #
242
+ # @option options [Boolean] :ignore_configured_endpoint_urls
243
+ # Setting to true disables use of endpoint URLs provided via environment
244
+ # variables and the shared configuration file.
245
+ #
246
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
247
+ # The log formatter.
248
+ #
249
+ # @option options [Symbol] :log_level (:info)
250
+ # The log level to send messages to the `:logger` at.
251
+ #
252
+ # @option options [Logger] :logger
253
+ # The Logger instance to send log messages to. If this option
254
+ # is not set, logging will be disabled.
255
+ #
256
+ # @option options [Integer] :max_attempts (3)
257
+ # An integer representing the maximum number attempts that will be made for
258
+ # a single request, including the initial attempt. For example,
259
+ # setting this value to 5 will result in a request being retried up to
260
+ # 4 times. Used in `standard` and `adaptive` retry modes.
261
+ #
262
+ # @option options [String] :profile ("default")
263
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
264
+ # When not specified, 'default' is used.
265
+ #
266
+ # @option options [String] :request_checksum_calculation ("when_supported")
267
+ # Determines when a checksum will be calculated for request payloads. Values are:
268
+ #
269
+ # * `when_supported` - (default) When set, a checksum will be
270
+ # calculated for all request payloads of operations modeled with the
271
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
272
+ # `requestAlgorithmMember` is modeled.
273
+ # * `when_required` - When set, a checksum will only be calculated for
274
+ # request payloads of operations modeled with the `httpChecksum` trait where
275
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
276
+ # is modeled and supplied.
277
+ #
278
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
279
+ # The minimum size in bytes that triggers compression for request
280
+ # bodies. The value must be non-negative integer value between 0
281
+ # and 10485780 bytes inclusive.
282
+ #
283
+ # @option options [String] :response_checksum_validation ("when_supported")
284
+ # Determines when checksum validation will be performed on response payloads. Values are:
285
+ #
286
+ # * `when_supported` - (default) When set, checksum validation is performed on all
287
+ # response payloads of operations modeled with the `httpChecksum` trait where
288
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
289
+ # are supported.
290
+ # * `when_required` - When set, checksum validation is not performed on
291
+ # response payloads of operations unless the checksum algorithm is supported and
292
+ # the `requestValidationModeMember` member is set to `ENABLED`.
293
+ #
294
+ # @option options [Proc] :retry_backoff
295
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
296
+ # This option is only used in the `legacy` retry mode.
297
+ #
298
+ # @option options [Float] :retry_base_delay (0.3)
299
+ # The base delay in seconds used by the default backoff function. This option
300
+ # is only used in the `legacy` retry mode.
301
+ #
302
+ # @option options [Symbol] :retry_jitter (:none)
303
+ # A delay randomiser function used by the default backoff function.
304
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
305
+ # otherwise a Proc that takes and returns a number. This option is only used
306
+ # in the `legacy` retry mode.
307
+ #
308
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
309
+ #
310
+ # @option options [Integer] :retry_limit (3)
311
+ # The maximum number of times to retry failed requests. Only
312
+ # ~ 500 level server errors and certain ~ 400 level client errors
313
+ # are retried. Generally, these are throttling errors, data
314
+ # checksum errors, networking errors, timeout errors, auth errors,
315
+ # endpoint discovery, and errors from expired credentials.
316
+ # This option is only used in the `legacy` retry mode.
317
+ #
318
+ # @option options [Integer] :retry_max_delay (0)
319
+ # The maximum number of seconds to delay between retries (0 for no limit)
320
+ # used by the default backoff function. This option is only used in the
321
+ # `legacy` retry mode.
322
+ #
323
+ # @option options [String] :retry_mode ("legacy")
324
+ # Specifies which retry algorithm to use. Values are:
325
+ #
326
+ # * `legacy` - The pre-existing retry behavior. This is default value if
327
+ # no retry mode is provided.
328
+ #
329
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
330
+ # This includes support for retry quotas, which limit the number of
331
+ # unsuccessful retries a client can make.
332
+ #
333
+ # * `adaptive` - An experimental retry mode that includes all the
334
+ # functionality of `standard` mode along with automatic client side
335
+ # throttling. This is a provisional mode that may change behavior
336
+ # in the future.
337
+ #
338
+ # @option options [String] :sdk_ua_app_id
339
+ # A unique and opaque application ID that is appended to the
340
+ # User-Agent header as app/sdk_ua_app_id. It should have a
341
+ # maximum length of 50. This variable is sourced from environment
342
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
343
+ #
344
+ # @option options [String] :secret_access_key
345
+ #
346
+ # @option options [String] :session_token
347
+ #
348
+ # @option options [Array] :sigv4a_signing_region_set
349
+ # A list of regions that should be signed with SigV4a signing. When
350
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
351
+ # in the following locations:
352
+ #
353
+ # * `Aws.config[:sigv4a_signing_region_set]`
354
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
355
+ # * `~/.aws/config`
356
+ #
357
+ # @option options [Boolean] :stub_responses (false)
358
+ # Causes the client to return stubbed responses. By default
359
+ # fake responses are generated and returned. You can specify
360
+ # the response data to return or errors to raise by calling
361
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
362
+ #
363
+ # ** Please note ** When response stubbing is enabled, no HTTP
364
+ # requests are made, and retries are disabled.
365
+ #
366
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
367
+ # Allows you to provide a telemetry provider, which is used to
368
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
369
+ # will not record or emit any telemetry data. The SDK supports the
370
+ # following telemetry providers:
371
+ #
372
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
373
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
374
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
375
+ #
376
+ # @option options [Aws::TokenProvider] :token_provider
377
+ # Your Bearer token used for authentication. This can be any class that includes and implements
378
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
379
+ #
380
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
381
+ # tokens.
382
+ #
383
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
384
+ # access token generated from `aws login`.
385
+ #
386
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
387
+ # will be used to search for tokens configured for your profile in shared configuration files.
388
+ #
389
+ # @option options [Boolean] :use_dualstack_endpoint
390
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
391
+ # will be used if available.
392
+ #
393
+ # @option options [Boolean] :use_fips_endpoint
394
+ # When set to `true`, fips compatible endpoints will be used if available.
395
+ # When a `fips` region is used, the region is normalized and this config
396
+ # is set to `true`.
397
+ #
398
+ # @option options [Boolean] :validate_params (true)
399
+ # When `true`, request parameters are validated before
400
+ # sending the request.
401
+ #
402
+ # @option options [Aws::SecurityAgent::EndpointProvider] :endpoint_provider
403
+ # The endpoint provider used to resolve endpoints. Any object that responds to
404
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
405
+ # `Aws::SecurityAgent::EndpointParameters`.
406
+ #
407
+ # @option options [Float] :http_continue_timeout (1)
408
+ # The number of seconds to wait for a 100-continue response before sending the
409
+ # request body. This option has no effect unless the request has "Expect"
410
+ # header set to "100-continue". Defaults to `nil` which disables this
411
+ # behaviour. This value can safely be set per request on the session.
412
+ #
413
+ # @option options [Float] :http_idle_timeout (5)
414
+ # The number of seconds a connection is allowed to sit idle before it
415
+ # is considered stale. Stale connections are closed and removed from the
416
+ # pool before making a request.
417
+ #
418
+ # @option options [Float] :http_open_timeout (15)
419
+ # The default number of seconds to wait for response data.
420
+ # This value can safely be set per-request on the session.
421
+ #
422
+ # @option options [URI::HTTP,String] :http_proxy
423
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
424
+ #
425
+ # @option options [Float] :http_read_timeout (60)
426
+ # The default number of seconds to wait for response data.
427
+ # This value can safely be set per-request on the session.
428
+ #
429
+ # @option options [Boolean] :http_wire_trace (false)
430
+ # When `true`, HTTP debug output will be sent to the `:logger`.
431
+ #
432
+ # @option options [Proc] :on_chunk_received
433
+ # When a Proc object is provided, it will be used as callback when each chunk
434
+ # of the response body is received. It provides three arguments: the chunk,
435
+ # the number of bytes received, and the total number of
436
+ # bytes in the response (or nil if the server did not send a `content-length`).
437
+ #
438
+ # @option options [Proc] :on_chunk_sent
439
+ # When a Proc object is provided, it will be used as callback when each chunk
440
+ # of the request body is sent. It provides three arguments: the chunk,
441
+ # the number of bytes read from the body, and the total number of
442
+ # bytes in the body.
443
+ #
444
+ # @option options [Boolean] :raise_response_errors (true)
445
+ # When `true`, response errors are raised.
446
+ #
447
+ # @option options [String] :ssl_ca_bundle
448
+ # Full path to the SSL certificate authority bundle file that should be used when
449
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
450
+ # `:ssl_ca_directory` the the system default will be used if available.
451
+ #
452
+ # @option options [String] :ssl_ca_directory
453
+ # Full path of the directory that contains the unbundled SSL certificate
454
+ # authority files for verifying peer certificates. If you do
455
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
456
+ # default will be used if available.
457
+ #
458
+ # @option options [String] :ssl_ca_store
459
+ # Sets the X509::Store to verify peer certificate.
460
+ #
461
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
462
+ # Sets a client certificate when creating http connections.
463
+ #
464
+ # @option options [OpenSSL::PKey] :ssl_key
465
+ # Sets a client key when creating http connections.
466
+ #
467
+ # @option options [Float] :ssl_timeout
468
+ # Sets the SSL timeout in seconds
469
+ #
470
+ # @option options [Boolean] :ssl_verify_peer (true)
471
+ # When `true`, SSL peer certificates are verified when establishing a connection.
472
+ #
473
+ def initialize(*args)
474
+ super
475
+ end
476
+
477
+ # @!group API Operations
478
+
479
+ # Adds an Artifact for the given agent space
480
+ #
481
+ # @option params [required, String] :agent_space_id
482
+ # Unique identifier of the agent space
483
+ #
484
+ # @option params [required, String, StringIO, File] :artifact_content
485
+ # Binary content of the artifact
486
+ #
487
+ # @option params [required, String] :artifact_type
488
+ # Type of the artifact file
489
+ #
490
+ # @option params [required, String] :file_name
491
+ # Name of the artifact file
492
+ #
493
+ # @return [Types::AddArtifactOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
494
+ #
495
+ # * {Types::AddArtifactOutput#artifact_id #artifact_id} => String
496
+ #
497
+ # @example Request syntax with placeholder values
498
+ #
499
+ # resp = client.add_artifact({
500
+ # agent_space_id: "AgentSpaceId", # required
501
+ # artifact_content: "data", # required
502
+ # artifact_type: "TXT", # required, accepts TXT, PNG, JPEG, MD, PDF, DOCX, DOC, JSON, YAML
503
+ # file_name: "String", # required
504
+ # })
505
+ #
506
+ # @example Response structure
507
+ #
508
+ # resp.artifact_id #=> String
509
+ #
510
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/AddArtifact AWS API Documentation
511
+ #
512
+ # @overload add_artifact(params = {})
513
+ # @param [Hash] params ({})
514
+ def add_artifact(params = {}, options = {})
515
+ req = build_request(:add_artifact, params)
516
+ req.send_request(options)
517
+ end
518
+
519
+ # Deletes multiple pentests in a single request
520
+ #
521
+ # @option params [required, Array<String>] :pentest_ids
522
+ # List of pentest IDs to delete
523
+ #
524
+ # @option params [required, String] :agent_space_id
525
+ # ID of the agent space where the pentests exist
526
+ #
527
+ # @return [Types::BatchDeletePentestsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
528
+ #
529
+ # * {Types::BatchDeletePentestsOutput#deleted #deleted} => Array&lt;Types::Pentest&gt;
530
+ # * {Types::BatchDeletePentestsOutput#failed #failed} => Array&lt;Types::DeletePentestFailure&gt;
531
+ #
532
+ # @example Request syntax with placeholder values
533
+ #
534
+ # resp = client.batch_delete_pentests({
535
+ # pentest_ids: ["String"], # required
536
+ # agent_space_id: "String", # required
537
+ # })
538
+ #
539
+ # @example Response structure
540
+ #
541
+ # resp.deleted #=> Array
542
+ # resp.deleted[0].pentest_id #=> String
543
+ # resp.deleted[0].agent_space_id #=> String
544
+ # resp.deleted[0].title #=> String
545
+ # resp.deleted[0].assets.endpoints #=> Array
546
+ # resp.deleted[0].assets.endpoints[0].uri #=> String
547
+ # resp.deleted[0].assets.actors #=> Array
548
+ # resp.deleted[0].assets.actors[0].identifier #=> String
549
+ # resp.deleted[0].assets.actors[0].uris #=> Array
550
+ # resp.deleted[0].assets.actors[0].uris[0] #=> String
551
+ # resp.deleted[0].assets.actors[0].authentication.provider_type #=> String, one of "SECRETS_MANAGER", "AWS_LAMBDA", "AWS_IAM_ROLE", "AWS_INTERNAL"
552
+ # resp.deleted[0].assets.actors[0].authentication.value #=> String
553
+ # resp.deleted[0].assets.actors[0].description #=> String
554
+ # resp.deleted[0].assets.documents #=> Array
555
+ # resp.deleted[0].assets.documents[0].s3_location #=> String
556
+ # resp.deleted[0].assets.documents[0].artifact_id #=> String
557
+ # resp.deleted[0].assets.source_code #=> Array
558
+ # resp.deleted[0].assets.source_code[0].s3_location #=> String
559
+ # resp.deleted[0].assets.integrated_repositories #=> Array
560
+ # resp.deleted[0].assets.integrated_repositories[0].integration_id #=> String
561
+ # resp.deleted[0].assets.integrated_repositories[0].provider_resource_id #=> String
562
+ # resp.deleted[0].exclude_risk_types #=> Array
563
+ # resp.deleted[0].exclude_risk_types[0] #=> String, one of "CROSS_SITE_SCRIPTING", "DEFAULT_CREDENTIALS", "INSECURE_DIRECT_OBJECT_REFERENCE", "PRIVILEGE_ESCALATION", "SERVER_SIDE_TEMPLATE_INJECTION", "COMMAND_INJECTION", "CODE_INJECTION", "SQL_INJECTION", "ARBITRARY_FILE_UPLOAD", "INSECURE_DESERIALIZATION", "LOCAL_FILE_INCLUSION", "INFORMATION_DISCLOSURE", "PATH_TRAVERSAL", "SERVER_SIDE_REQUEST_FORGERY", "JSON_WEB_TOKEN_VULNERABILITIES", "XML_EXTERNAL_ENTITY", "FILE_DELETION", "OTHER", "GRAPHQL_VULNERABILITIES", "BUSINESS_LOGIC_VULNERABILITIES", "CRYPTOGRAPHIC_VULNERABILITIES", "DENIAL_OF_SERVICE", "FILE_ACCESS", "FILE_CREATION", "DATABASE_MODIFICATION", "DATABASE_ACCESS", "OUTBOUND_SERVICE_REQUEST", "UNKNOWN"
564
+ # resp.deleted[0].service_role #=> String
565
+ # resp.deleted[0].log_config.log_group #=> String
566
+ # resp.deleted[0].log_config.log_stream #=> String
567
+ # resp.deleted[0].vpc_config.vpc_arn #=> String
568
+ # resp.deleted[0].vpc_config.security_group_arns #=> Array
569
+ # resp.deleted[0].vpc_config.security_group_arns[0] #=> String
570
+ # resp.deleted[0].vpc_config.subnet_arns #=> Array
571
+ # resp.deleted[0].vpc_config.subnet_arns[0] #=> String
572
+ # resp.deleted[0].network_traffic_config.rules #=> Array
573
+ # resp.deleted[0].network_traffic_config.rules[0].effect #=> String, one of "ALLOW", "DENY"
574
+ # resp.deleted[0].network_traffic_config.rules[0].pattern #=> String
575
+ # resp.deleted[0].network_traffic_config.rules[0].network_traffic_rule_type #=> String, one of "URL"
576
+ # resp.deleted[0].network_traffic_config.custom_headers #=> Array
577
+ # resp.deleted[0].network_traffic_config.custom_headers[0].name #=> String
578
+ # resp.deleted[0].network_traffic_config.custom_headers[0].value #=> String
579
+ # resp.deleted[0].code_remediation_strategy #=> String, one of "AUTOMATIC", "DISABLED"
580
+ # resp.deleted[0].created_at #=> Time
581
+ # resp.deleted[0].updated_at #=> Time
582
+ # resp.failed #=> Array
583
+ # resp.failed[0].pentest_id #=> String
584
+ # resp.failed[0].reason #=> String
585
+ #
586
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/BatchDeletePentests AWS API Documentation
587
+ #
588
+ # @overload batch_delete_pentests(params = {})
589
+ # @param [Hash] params ({})
590
+ def batch_delete_pentests(params = {}, options = {})
591
+ req = build_request(:batch_delete_pentests, params)
592
+ req.send_request(options)
593
+ end
594
+
595
+ # Retrieves multiple agent spaces in a single request
596
+ #
597
+ # @option params [required, Array<String>] :agent_space_ids
598
+ # List of agent space IDs to retrieve
599
+ #
600
+ # @return [Types::BatchGetAgentSpacesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
601
+ #
602
+ # * {Types::BatchGetAgentSpacesOutput#agent_spaces #agent_spaces} => Array&lt;Types::AgentSpace&gt;
603
+ # * {Types::BatchGetAgentSpacesOutput#not_found #not_found} => Array&lt;String&gt;
604
+ #
605
+ # @example Request syntax with placeholder values
606
+ #
607
+ # resp = client.batch_get_agent_spaces({
608
+ # agent_space_ids: ["AgentSpaceId"], # required
609
+ # })
610
+ #
611
+ # @example Response structure
612
+ #
613
+ # resp.agent_spaces #=> Array
614
+ # resp.agent_spaces[0].agent_space_id #=> String
615
+ # resp.agent_spaces[0].name #=> String
616
+ # resp.agent_spaces[0].description #=> String
617
+ # resp.agent_spaces[0].aws_resources.vpcs #=> Array
618
+ # resp.agent_spaces[0].aws_resources.vpcs[0].vpc_arn #=> String
619
+ # resp.agent_spaces[0].aws_resources.vpcs[0].security_group_arns #=> Array
620
+ # resp.agent_spaces[0].aws_resources.vpcs[0].security_group_arns[0] #=> String
621
+ # resp.agent_spaces[0].aws_resources.vpcs[0].subnet_arns #=> Array
622
+ # resp.agent_spaces[0].aws_resources.vpcs[0].subnet_arns[0] #=> String
623
+ # resp.agent_spaces[0].aws_resources.log_groups #=> Array
624
+ # resp.agent_spaces[0].aws_resources.log_groups[0] #=> String
625
+ # resp.agent_spaces[0].aws_resources.s3_buckets #=> Array
626
+ # resp.agent_spaces[0].aws_resources.s3_buckets[0] #=> String
627
+ # resp.agent_spaces[0].aws_resources.secret_arns #=> Array
628
+ # resp.agent_spaces[0].aws_resources.secret_arns[0] #=> String
629
+ # resp.agent_spaces[0].aws_resources.lambda_function_arns #=> Array
630
+ # resp.agent_spaces[0].aws_resources.lambda_function_arns[0] #=> String
631
+ # resp.agent_spaces[0].aws_resources.iam_roles #=> Array
632
+ # resp.agent_spaces[0].aws_resources.iam_roles[0] #=> String
633
+ # resp.agent_spaces[0].target_domain_ids #=> Array
634
+ # resp.agent_spaces[0].target_domain_ids[0] #=> String
635
+ # resp.agent_spaces[0].code_review_settings.controls_scanning #=> Boolean
636
+ # resp.agent_spaces[0].code_review_settings.general_purpose_scanning #=> Boolean
637
+ # resp.agent_spaces[0].kms_key_id #=> String
638
+ # resp.agent_spaces[0].created_at #=> Time
639
+ # resp.agent_spaces[0].updated_at #=> Time
640
+ # resp.not_found #=> Array
641
+ # resp.not_found[0] #=> String
642
+ #
643
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/BatchGetAgentSpaces AWS API Documentation
644
+ #
645
+ # @overload batch_get_agent_spaces(params = {})
646
+ # @param [Hash] params ({})
647
+ def batch_get_agent_spaces(params = {}, options = {})
648
+ req = build_request(:batch_get_agent_spaces, params)
649
+ req.send_request(options)
650
+ end
651
+
652
+ # Retrieve the list of artifact metadata for the given agent space
653
+ #
654
+ # @option params [required, String] :agent_space_id
655
+ # Unique identifier of the agent space
656
+ #
657
+ # @option params [required, Array<String>] :artifact_ids
658
+ # List of artifact identifiers
659
+ #
660
+ # @return [Types::BatchGetArtifactMetadataOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
661
+ #
662
+ # * {Types::BatchGetArtifactMetadataOutput#artifact_metadata_list #artifact_metadata_list} => Array&lt;Types::ArtifactMetadataItem&gt;
663
+ #
664
+ # @example Request syntax with placeholder values
665
+ #
666
+ # resp = client.batch_get_artifact_metadata({
667
+ # agent_space_id: "AgentSpaceId", # required
668
+ # artifact_ids: ["ArtifactId"], # required
669
+ # })
670
+ #
671
+ # @example Response structure
672
+ #
673
+ # resp.artifact_metadata_list #=> Array
674
+ # resp.artifact_metadata_list[0].agent_space_id #=> String
675
+ # resp.artifact_metadata_list[0].artifact_id #=> String
676
+ # resp.artifact_metadata_list[0].file_name #=> String
677
+ # resp.artifact_metadata_list[0].updated_at #=> Time
678
+ #
679
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/BatchGetArtifactMetadata AWS API Documentation
680
+ #
681
+ # @overload batch_get_artifact_metadata(params = {})
682
+ # @param [Hash] params ({})
683
+ def batch_get_artifact_metadata(params = {}, options = {})
684
+ req = build_request(:batch_get_artifact_metadata, params)
685
+ req.send_request(options)
686
+ end
687
+
688
+ # Retrieves multiple findings in a single request
689
+ #
690
+ # @option params [required, Array<String>] :finding_ids
691
+ # List of finding IDs to retrieve
692
+ #
693
+ # @option params [required, String] :agent_space_id
694
+ # ID of the agent space where the findings exist
695
+ #
696
+ # @return [Types::BatchGetFindingsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
697
+ #
698
+ # * {Types::BatchGetFindingsOutput#findings #findings} => Array&lt;Types::Finding&gt;
699
+ # * {Types::BatchGetFindingsOutput#not_found #not_found} => Array&lt;String&gt;
700
+ #
701
+ # @example Request syntax with placeholder values
702
+ #
703
+ # resp = client.batch_get_findings({
704
+ # finding_ids: ["String"], # required
705
+ # agent_space_id: "String", # required
706
+ # })
707
+ #
708
+ # @example Response structure
709
+ #
710
+ # resp.findings #=> Array
711
+ # resp.findings[0].finding_id #=> String
712
+ # resp.findings[0].agent_space_id #=> String
713
+ # resp.findings[0].pentest_id #=> String
714
+ # resp.findings[0].pentest_job_id #=> String
715
+ # resp.findings[0].task_id #=> String
716
+ # resp.findings[0].name #=> String
717
+ # resp.findings[0].description #=> String
718
+ # resp.findings[0].status #=> String, one of "ACTIVE", "RESOLVED", "ACCEPTED", "FALSE_POSITIVE"
719
+ # resp.findings[0].risk_type #=> String
720
+ # resp.findings[0].risk_level #=> String, one of "UNKNOWN", "INFORMATIONAL", "LOW", "MEDIUM", "HIGH", "CRITICAL"
721
+ # resp.findings[0].risk_score #=> String
722
+ # resp.findings[0].reasoning #=> String
723
+ # resp.findings[0].confidence #=> String, one of "FALSE_POSITIVE", "UNCONFIRMED", "LOW", "MEDIUM", "HIGH"
724
+ # resp.findings[0].attack_script #=> String
725
+ # resp.findings[0].code_remediation_task.status #=> String, one of "IN_PROGRESS", "COMPLETED", "FAILED"
726
+ # resp.findings[0].code_remediation_task.status_reason #=> String
727
+ # resp.findings[0].code_remediation_task.task_details #=> Array
728
+ # resp.findings[0].code_remediation_task.task_details[0].repo_name #=> String
729
+ # resp.findings[0].code_remediation_task.task_details[0].code_diff_link #=> String
730
+ # resp.findings[0].code_remediation_task.task_details[0].pull_request_link #=> String
731
+ # resp.findings[0].last_updated_by #=> String
732
+ # resp.findings[0].created_at #=> Time
733
+ # resp.findings[0].updated_at #=> Time
734
+ # resp.not_found #=> Array
735
+ # resp.not_found[0] #=> String
736
+ #
737
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/BatchGetFindings AWS API Documentation
738
+ #
739
+ # @overload batch_get_findings(params = {})
740
+ # @param [Hash] params ({})
741
+ def batch_get_findings(params = {}, options = {})
742
+ req = build_request(:batch_get_findings, params)
743
+ req.send_request(options)
744
+ end
745
+
746
+ # Retrieves multiple tasks for a pentest job in a single request
747
+ #
748
+ # @option params [required, String] :agent_space_id
749
+ # ID of the agent space where the pentest exists
750
+ #
751
+ # @option params [required, Array<String>] :task_ids
752
+ # List of task IDs to retrieve
753
+ #
754
+ # @return [Types::BatchGetPentestJobTasksOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
755
+ #
756
+ # * {Types::BatchGetPentestJobTasksOutput#tasks #tasks} => Array&lt;Types::Task&gt;
757
+ # * {Types::BatchGetPentestJobTasksOutput#not_found #not_found} => Array&lt;String&gt;
758
+ #
759
+ # @example Request syntax with placeholder values
760
+ #
761
+ # resp = client.batch_get_pentest_job_tasks({
762
+ # agent_space_id: "String", # required
763
+ # task_ids: ["String"], # required
764
+ # })
765
+ #
766
+ # @example Response structure
767
+ #
768
+ # resp.tasks #=> Array
769
+ # resp.tasks[0].task_id #=> String
770
+ # resp.tasks[0].pentest_id #=> String
771
+ # resp.tasks[0].pentest_job_id #=> String
772
+ # resp.tasks[0].agent_space_id #=> String
773
+ # resp.tasks[0].title #=> String
774
+ # resp.tasks[0].description #=> String
775
+ # resp.tasks[0].categories #=> Array
776
+ # resp.tasks[0].categories[0].name #=> String
777
+ # resp.tasks[0].categories[0].is_primary #=> Boolean
778
+ # resp.tasks[0].risk_type #=> String, one of "CROSS_SITE_SCRIPTING", "DEFAULT_CREDENTIALS", "INSECURE_DIRECT_OBJECT_REFERENCE", "PRIVILEGE_ESCALATION", "SERVER_SIDE_TEMPLATE_INJECTION", "COMMAND_INJECTION", "CODE_INJECTION", "SQL_INJECTION", "ARBITRARY_FILE_UPLOAD", "INSECURE_DESERIALIZATION", "LOCAL_FILE_INCLUSION", "INFORMATION_DISCLOSURE", "PATH_TRAVERSAL", "SERVER_SIDE_REQUEST_FORGERY", "JSON_WEB_TOKEN_VULNERABILITIES", "XML_EXTERNAL_ENTITY", "FILE_DELETION", "OTHER", "GRAPHQL_VULNERABILITIES", "BUSINESS_LOGIC_VULNERABILITIES", "CRYPTOGRAPHIC_VULNERABILITIES", "DENIAL_OF_SERVICE", "FILE_ACCESS", "FILE_CREATION", "DATABASE_MODIFICATION", "DATABASE_ACCESS", "OUTBOUND_SERVICE_REQUEST", "UNKNOWN"
779
+ # resp.tasks[0].target_endpoint.uri #=> String
780
+ # resp.tasks[0].execution_status #=> String, one of "IN_PROGRESS", "ABORTED", "COMPLETED", "INTERNAL_ERROR", "FAILED"
781
+ # resp.tasks[0].logs_location.log_type #=> String, one of "CLOUDWATCH"
782
+ # resp.tasks[0].logs_location.cloud_watch_log.log_group #=> String
783
+ # resp.tasks[0].logs_location.cloud_watch_log.log_stream #=> String
784
+ # resp.tasks[0].created_at #=> Time
785
+ # resp.tasks[0].updated_at #=> Time
786
+ # resp.not_found #=> Array
787
+ # resp.not_found[0] #=> String
788
+ #
789
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/BatchGetPentestJobTasks AWS API Documentation
790
+ #
791
+ # @overload batch_get_pentest_job_tasks(params = {})
792
+ # @param [Hash] params ({})
793
+ def batch_get_pentest_job_tasks(params = {}, options = {})
794
+ req = build_request(:batch_get_pentest_job_tasks, params)
795
+ req.send_request(options)
796
+ end
797
+
798
+ # Retrieves multiple pentest jobs in a single request
799
+ #
800
+ # @option params [required, Array<String>] :pentest_job_ids
801
+ # List of pentest job IDs to retrieve
802
+ #
803
+ # @option params [required, String] :agent_space_id
804
+ # ID of the agent space where the pentest exists
805
+ #
806
+ # @return [Types::BatchGetPentestJobsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
807
+ #
808
+ # * {Types::BatchGetPentestJobsOutput#pentest_jobs #pentest_jobs} => Array&lt;Types::PentestJob&gt;
809
+ # * {Types::BatchGetPentestJobsOutput#not_found #not_found} => Array&lt;String&gt;
810
+ #
811
+ # @example Request syntax with placeholder values
812
+ #
813
+ # resp = client.batch_get_pentest_jobs({
814
+ # pentest_job_ids: ["String"], # required
815
+ # agent_space_id: "String", # required
816
+ # })
817
+ #
818
+ # @example Response structure
819
+ #
820
+ # resp.pentest_jobs #=> Array
821
+ # resp.pentest_jobs[0].pentest_job_id #=> String
822
+ # resp.pentest_jobs[0].pentest_id #=> String
823
+ # resp.pentest_jobs[0].title #=> String
824
+ # resp.pentest_jobs[0].overview #=> String
825
+ # resp.pentest_jobs[0].status #=> String, one of "IN_PROGRESS", "STOPPING", "STOPPED", "FAILED", "COMPLETED"
826
+ # resp.pentest_jobs[0].endpoints #=> Array
827
+ # resp.pentest_jobs[0].endpoints[0].uri #=> String
828
+ # resp.pentest_jobs[0].actors #=> Array
829
+ # resp.pentest_jobs[0].actors[0].identifier #=> String
830
+ # resp.pentest_jobs[0].actors[0].uris #=> Array
831
+ # resp.pentest_jobs[0].actors[0].uris[0] #=> String
832
+ # resp.pentest_jobs[0].actors[0].authentication.provider_type #=> String, one of "SECRETS_MANAGER", "AWS_LAMBDA", "AWS_IAM_ROLE", "AWS_INTERNAL"
833
+ # resp.pentest_jobs[0].actors[0].authentication.value #=> String
834
+ # resp.pentest_jobs[0].actors[0].description #=> String
835
+ # resp.pentest_jobs[0].documents #=> Array
836
+ # resp.pentest_jobs[0].documents[0].s3_location #=> String
837
+ # resp.pentest_jobs[0].documents[0].artifact_id #=> String
838
+ # resp.pentest_jobs[0].source_code #=> Array
839
+ # resp.pentest_jobs[0].source_code[0].s3_location #=> String
840
+ # resp.pentest_jobs[0].exclude_paths #=> Array
841
+ # resp.pentest_jobs[0].exclude_paths[0].uri #=> String
842
+ # resp.pentest_jobs[0].allowed_domains #=> Array
843
+ # resp.pentest_jobs[0].allowed_domains[0].uri #=> String
844
+ # resp.pentest_jobs[0].exclude_risk_types #=> Array
845
+ # resp.pentest_jobs[0].exclude_risk_types[0] #=> String, one of "CROSS_SITE_SCRIPTING", "DEFAULT_CREDENTIALS", "INSECURE_DIRECT_OBJECT_REFERENCE", "PRIVILEGE_ESCALATION", "SERVER_SIDE_TEMPLATE_INJECTION", "COMMAND_INJECTION", "CODE_INJECTION", "SQL_INJECTION", "ARBITRARY_FILE_UPLOAD", "INSECURE_DESERIALIZATION", "LOCAL_FILE_INCLUSION", "INFORMATION_DISCLOSURE", "PATH_TRAVERSAL", "SERVER_SIDE_REQUEST_FORGERY", "JSON_WEB_TOKEN_VULNERABILITIES", "XML_EXTERNAL_ENTITY", "FILE_DELETION", "OTHER", "GRAPHQL_VULNERABILITIES", "BUSINESS_LOGIC_VULNERABILITIES", "CRYPTOGRAPHIC_VULNERABILITIES", "DENIAL_OF_SERVICE", "FILE_ACCESS", "FILE_CREATION", "DATABASE_MODIFICATION", "DATABASE_ACCESS", "OUTBOUND_SERVICE_REQUEST", "UNKNOWN"
846
+ # resp.pentest_jobs[0].steps #=> Array
847
+ # resp.pentest_jobs[0].steps[0].name #=> String, one of "PREFLIGHT", "STATIC_ANALYSIS", "PENTEST", "FINALIZING"
848
+ # resp.pentest_jobs[0].steps[0].status #=> String, one of "NOT_STARTED", "IN_PROGRESS", "COMPLETED", "FAILED", "STOPPED"
849
+ # resp.pentest_jobs[0].steps[0].created_at #=> Time
850
+ # resp.pentest_jobs[0].steps[0].updated_at #=> Time
851
+ # resp.pentest_jobs[0].execution_context #=> Array
852
+ # resp.pentest_jobs[0].execution_context[0].context_type #=> String, one of "ERROR", "CLIENT_ERROR", "WARNING", "INFO"
853
+ # resp.pentest_jobs[0].execution_context[0].context #=> String
854
+ # resp.pentest_jobs[0].execution_context[0].timestamp #=> Time
855
+ # resp.pentest_jobs[0].service_role #=> String
856
+ # resp.pentest_jobs[0].log_config.log_group #=> String
857
+ # resp.pentest_jobs[0].log_config.log_stream #=> String
858
+ # resp.pentest_jobs[0].vpc_config.vpc_arn #=> String
859
+ # resp.pentest_jobs[0].vpc_config.security_group_arns #=> Array
860
+ # resp.pentest_jobs[0].vpc_config.security_group_arns[0] #=> String
861
+ # resp.pentest_jobs[0].vpc_config.subnet_arns #=> Array
862
+ # resp.pentest_jobs[0].vpc_config.subnet_arns[0] #=> String
863
+ # resp.pentest_jobs[0].network_traffic_config.rules #=> Array
864
+ # resp.pentest_jobs[0].network_traffic_config.rules[0].effect #=> String, one of "ALLOW", "DENY"
865
+ # resp.pentest_jobs[0].network_traffic_config.rules[0].pattern #=> String
866
+ # resp.pentest_jobs[0].network_traffic_config.rules[0].network_traffic_rule_type #=> String, one of "URL"
867
+ # resp.pentest_jobs[0].network_traffic_config.custom_headers #=> Array
868
+ # resp.pentest_jobs[0].network_traffic_config.custom_headers[0].name #=> String
869
+ # resp.pentest_jobs[0].network_traffic_config.custom_headers[0].value #=> String
870
+ # resp.pentest_jobs[0].error_information.code #=> String, one of "CLIENT_ERROR", "INTERNAL_ERROR", "STOPPED_BY_USER"
871
+ # resp.pentest_jobs[0].error_information.message #=> String
872
+ # resp.pentest_jobs[0].integrated_repositories #=> Array
873
+ # resp.pentest_jobs[0].integrated_repositories[0].integration_id #=> String
874
+ # resp.pentest_jobs[0].integrated_repositories[0].provider_resource_id #=> String
875
+ # resp.pentest_jobs[0].code_remediation_strategy #=> String, one of "AUTOMATIC", "DISABLED"
876
+ # resp.pentest_jobs[0].created_at #=> Time
877
+ # resp.pentest_jobs[0].updated_at #=> Time
878
+ # resp.not_found #=> Array
879
+ # resp.not_found[0] #=> String
880
+ #
881
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/BatchGetPentestJobs AWS API Documentation
882
+ #
883
+ # @overload batch_get_pentest_jobs(params = {})
884
+ # @param [Hash] params ({})
885
+ def batch_get_pentest_jobs(params = {}, options = {})
886
+ req = build_request(:batch_get_pentest_jobs, params)
887
+ req.send_request(options)
888
+ end
889
+
890
+ # Retrieves multiple pentests in a single request
891
+ #
892
+ # @option params [required, Array<String>] :pentest_ids
893
+ # List of pentest IDs to retrieve
894
+ #
895
+ # @option params [required, String] :agent_space_id
896
+ # ID of the agent space where the pentest exists
897
+ #
898
+ # @return [Types::BatchGetPentestsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
899
+ #
900
+ # * {Types::BatchGetPentestsOutput#pentests #pentests} => Array&lt;Types::Pentest&gt;
901
+ # * {Types::BatchGetPentestsOutput#not_found #not_found} => Array&lt;String&gt;
902
+ #
903
+ # @example Request syntax with placeholder values
904
+ #
905
+ # resp = client.batch_get_pentests({
906
+ # pentest_ids: ["String"], # required
907
+ # agent_space_id: "String", # required
908
+ # })
909
+ #
910
+ # @example Response structure
911
+ #
912
+ # resp.pentests #=> Array
913
+ # resp.pentests[0].pentest_id #=> String
914
+ # resp.pentests[0].agent_space_id #=> String
915
+ # resp.pentests[0].title #=> String
916
+ # resp.pentests[0].assets.endpoints #=> Array
917
+ # resp.pentests[0].assets.endpoints[0].uri #=> String
918
+ # resp.pentests[0].assets.actors #=> Array
919
+ # resp.pentests[0].assets.actors[0].identifier #=> String
920
+ # resp.pentests[0].assets.actors[0].uris #=> Array
921
+ # resp.pentests[0].assets.actors[0].uris[0] #=> String
922
+ # resp.pentests[0].assets.actors[0].authentication.provider_type #=> String, one of "SECRETS_MANAGER", "AWS_LAMBDA", "AWS_IAM_ROLE", "AWS_INTERNAL"
923
+ # resp.pentests[0].assets.actors[0].authentication.value #=> String
924
+ # resp.pentests[0].assets.actors[0].description #=> String
925
+ # resp.pentests[0].assets.documents #=> Array
926
+ # resp.pentests[0].assets.documents[0].s3_location #=> String
927
+ # resp.pentests[0].assets.documents[0].artifact_id #=> String
928
+ # resp.pentests[0].assets.source_code #=> Array
929
+ # resp.pentests[0].assets.source_code[0].s3_location #=> String
930
+ # resp.pentests[0].assets.integrated_repositories #=> Array
931
+ # resp.pentests[0].assets.integrated_repositories[0].integration_id #=> String
932
+ # resp.pentests[0].assets.integrated_repositories[0].provider_resource_id #=> String
933
+ # resp.pentests[0].exclude_risk_types #=> Array
934
+ # resp.pentests[0].exclude_risk_types[0] #=> String, one of "CROSS_SITE_SCRIPTING", "DEFAULT_CREDENTIALS", "INSECURE_DIRECT_OBJECT_REFERENCE", "PRIVILEGE_ESCALATION", "SERVER_SIDE_TEMPLATE_INJECTION", "COMMAND_INJECTION", "CODE_INJECTION", "SQL_INJECTION", "ARBITRARY_FILE_UPLOAD", "INSECURE_DESERIALIZATION", "LOCAL_FILE_INCLUSION", "INFORMATION_DISCLOSURE", "PATH_TRAVERSAL", "SERVER_SIDE_REQUEST_FORGERY", "JSON_WEB_TOKEN_VULNERABILITIES", "XML_EXTERNAL_ENTITY", "FILE_DELETION", "OTHER", "GRAPHQL_VULNERABILITIES", "BUSINESS_LOGIC_VULNERABILITIES", "CRYPTOGRAPHIC_VULNERABILITIES", "DENIAL_OF_SERVICE", "FILE_ACCESS", "FILE_CREATION", "DATABASE_MODIFICATION", "DATABASE_ACCESS", "OUTBOUND_SERVICE_REQUEST", "UNKNOWN"
935
+ # resp.pentests[0].service_role #=> String
936
+ # resp.pentests[0].log_config.log_group #=> String
937
+ # resp.pentests[0].log_config.log_stream #=> String
938
+ # resp.pentests[0].vpc_config.vpc_arn #=> String
939
+ # resp.pentests[0].vpc_config.security_group_arns #=> Array
940
+ # resp.pentests[0].vpc_config.security_group_arns[0] #=> String
941
+ # resp.pentests[0].vpc_config.subnet_arns #=> Array
942
+ # resp.pentests[0].vpc_config.subnet_arns[0] #=> String
943
+ # resp.pentests[0].network_traffic_config.rules #=> Array
944
+ # resp.pentests[0].network_traffic_config.rules[0].effect #=> String, one of "ALLOW", "DENY"
945
+ # resp.pentests[0].network_traffic_config.rules[0].pattern #=> String
946
+ # resp.pentests[0].network_traffic_config.rules[0].network_traffic_rule_type #=> String, one of "URL"
947
+ # resp.pentests[0].network_traffic_config.custom_headers #=> Array
948
+ # resp.pentests[0].network_traffic_config.custom_headers[0].name #=> String
949
+ # resp.pentests[0].network_traffic_config.custom_headers[0].value #=> String
950
+ # resp.pentests[0].code_remediation_strategy #=> String, one of "AUTOMATIC", "DISABLED"
951
+ # resp.pentests[0].created_at #=> Time
952
+ # resp.pentests[0].updated_at #=> Time
953
+ # resp.not_found #=> Array
954
+ # resp.not_found[0] #=> String
955
+ #
956
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/BatchGetPentests AWS API Documentation
957
+ #
958
+ # @overload batch_get_pentests(params = {})
959
+ # @param [Hash] params ({})
960
+ def batch_get_pentests(params = {}, options = {})
961
+ req = build_request(:batch_get_pentests, params)
962
+ req.send_request(options)
963
+ end
964
+
965
+ # Retrieves multiple target domains in a single request
966
+ #
967
+ # @option params [required, Array<String>] :target_domain_ids
968
+ # List of target domain IDs to retrieve
969
+ #
970
+ # @return [Types::BatchGetTargetDomainsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
971
+ #
972
+ # * {Types::BatchGetTargetDomainsOutput#target_domains #target_domains} => Array&lt;Types::TargetDomain&gt;
973
+ # * {Types::BatchGetTargetDomainsOutput#not_found #not_found} => Array&lt;String&gt;
974
+ #
975
+ # @example Request syntax with placeholder values
976
+ #
977
+ # resp = client.batch_get_target_domains({
978
+ # target_domain_ids: ["String"], # required
979
+ # })
980
+ #
981
+ # @example Response structure
982
+ #
983
+ # resp.target_domains #=> Array
984
+ # resp.target_domains[0].target_domain_id #=> String
985
+ # resp.target_domains[0].domain_name #=> String
986
+ # resp.target_domains[0].verification_status #=> String, one of "PENDING", "VERIFIED", "FAILED", "UNREACHABLE"
987
+ # resp.target_domains[0].verification_details.method #=> String, one of "DNS_TXT", "HTTP_ROUTE"
988
+ # resp.target_domains[0].verification_details.dns_txt.token #=> String
989
+ # resp.target_domains[0].verification_details.dns_txt.dns_record_name #=> String
990
+ # resp.target_domains[0].verification_details.dns_txt.dns_record_type #=> String, one of "TXT"
991
+ # resp.target_domains[0].verification_details.http_route.token #=> String
992
+ # resp.target_domains[0].verification_details.http_route.route_path #=> String
993
+ # resp.target_domains[0].created_at #=> Time
994
+ # resp.target_domains[0].verified_at #=> Time
995
+ # resp.not_found #=> Array
996
+ # resp.not_found[0] #=> String
997
+ #
998
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/BatchGetTargetDomains AWS API Documentation
999
+ #
1000
+ # @overload batch_get_target_domains(params = {})
1001
+ # @param [Hash] params ({})
1002
+ def batch_get_target_domains(params = {}, options = {})
1003
+ req = build_request(:batch_get_target_domains, params)
1004
+ req.send_request(options)
1005
+ end
1006
+
1007
+ # Creates an agent space record
1008
+ #
1009
+ # @option params [required, String] :name
1010
+ # Name of the agent space
1011
+ #
1012
+ # @option params [String] :description
1013
+ # Description of the agent space
1014
+ #
1015
+ # @option params [Types::AWSResources] :aws_resources
1016
+ # AWS resource configurations associated with the agent space
1017
+ #
1018
+ # @option params [Array<String>] :target_domain_ids
1019
+ # Target domain IDs to associate with the agent space
1020
+ #
1021
+ # @option params [Types::CodeReviewSettings] :code_review_settings
1022
+ # Configuration for code review analysis, including controls scanning
1023
+ # and general purpose scanning settings
1024
+ #
1025
+ # @option params [String] :kms_key_id
1026
+ # Identifier of the KMS key used to encrypt data. Can be a key ID, key
1027
+ # ARN, alias name, or alias ARN. If not specified, an AWS managed key is
1028
+ # used.
1029
+ #
1030
+ # @option params [Hash<String,String>] :tags
1031
+ # Tags to associate with the agent space
1032
+ #
1033
+ # @return [Types::CreateAgentSpaceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1034
+ #
1035
+ # * {Types::CreateAgentSpaceOutput#agent_space_id #agent_space_id} => String
1036
+ # * {Types::CreateAgentSpaceOutput#name #name} => String
1037
+ # * {Types::CreateAgentSpaceOutput#description #description} => String
1038
+ # * {Types::CreateAgentSpaceOutput#aws_resources #aws_resources} => Types::AWSResources
1039
+ # * {Types::CreateAgentSpaceOutput#target_domain_ids #target_domain_ids} => Array&lt;String&gt;
1040
+ # * {Types::CreateAgentSpaceOutput#code_review_settings #code_review_settings} => Types::CodeReviewSettings
1041
+ # * {Types::CreateAgentSpaceOutput#kms_key_id #kms_key_id} => String
1042
+ # * {Types::CreateAgentSpaceOutput#created_at #created_at} => Time
1043
+ # * {Types::CreateAgentSpaceOutput#updated_at #updated_at} => Time
1044
+ #
1045
+ # @example Request syntax with placeholder values
1046
+ #
1047
+ # resp = client.create_agent_space({
1048
+ # name: "AgentName", # required
1049
+ # description: "String",
1050
+ # aws_resources: {
1051
+ # vpcs: [
1052
+ # {
1053
+ # vpc_arn: "VpcArn",
1054
+ # security_group_arns: ["SecurityGroupArn"],
1055
+ # subnet_arns: ["SubnetArn"],
1056
+ # },
1057
+ # ],
1058
+ # log_groups: ["LogGroupArn"],
1059
+ # s3_buckets: ["S3BucketArn"],
1060
+ # secret_arns: ["SecretArn"],
1061
+ # lambda_function_arns: ["LambdaFunctionArn"],
1062
+ # iam_roles: ["ServiceRole"],
1063
+ # },
1064
+ # target_domain_ids: ["String"],
1065
+ # code_review_settings: {
1066
+ # controls_scanning: false, # required
1067
+ # general_purpose_scanning: false, # required
1068
+ # },
1069
+ # kms_key_id: "KmsKeyId",
1070
+ # tags: {
1071
+ # "TagKey" => "TagValue",
1072
+ # },
1073
+ # })
1074
+ #
1075
+ # @example Response structure
1076
+ #
1077
+ # resp.agent_space_id #=> String
1078
+ # resp.name #=> String
1079
+ # resp.description #=> String
1080
+ # resp.aws_resources.vpcs #=> Array
1081
+ # resp.aws_resources.vpcs[0].vpc_arn #=> String
1082
+ # resp.aws_resources.vpcs[0].security_group_arns #=> Array
1083
+ # resp.aws_resources.vpcs[0].security_group_arns[0] #=> String
1084
+ # resp.aws_resources.vpcs[0].subnet_arns #=> Array
1085
+ # resp.aws_resources.vpcs[0].subnet_arns[0] #=> String
1086
+ # resp.aws_resources.log_groups #=> Array
1087
+ # resp.aws_resources.log_groups[0] #=> String
1088
+ # resp.aws_resources.s3_buckets #=> Array
1089
+ # resp.aws_resources.s3_buckets[0] #=> String
1090
+ # resp.aws_resources.secret_arns #=> Array
1091
+ # resp.aws_resources.secret_arns[0] #=> String
1092
+ # resp.aws_resources.lambda_function_arns #=> Array
1093
+ # resp.aws_resources.lambda_function_arns[0] #=> String
1094
+ # resp.aws_resources.iam_roles #=> Array
1095
+ # resp.aws_resources.iam_roles[0] #=> String
1096
+ # resp.target_domain_ids #=> Array
1097
+ # resp.target_domain_ids[0] #=> String
1098
+ # resp.code_review_settings.controls_scanning #=> Boolean
1099
+ # resp.code_review_settings.general_purpose_scanning #=> Boolean
1100
+ # resp.kms_key_id #=> String
1101
+ # resp.created_at #=> Time
1102
+ # resp.updated_at #=> Time
1103
+ #
1104
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/CreateAgentSpace AWS API Documentation
1105
+ #
1106
+ # @overload create_agent_space(params = {})
1107
+ # @param [Hash] params ({})
1108
+ def create_agent_space(params = {}, options = {})
1109
+ req = build_request(:create_agent_space, params)
1110
+ req.send_request(options)
1111
+ end
1112
+
1113
+ # Creates a new application
1114
+ #
1115
+ # @option params [String] :idc_instance_arn
1116
+ # ARN of the IAM Identity Center instance used for user authentication.
1117
+ # Optional for non-IdC applications
1118
+ #
1119
+ # @option params [String] :role_arn
1120
+ # ARN of the IAM role that the application uses to access AWS resources
1121
+ # on your behalf
1122
+ #
1123
+ # @option params [String] :default_kms_key_id
1124
+ # Default KMS key identifier used to encrypt application data
1125
+ #
1126
+ # @option params [Hash<String,String>] :tags
1127
+ # Tags to associate with the application
1128
+ #
1129
+ # @return [Types::CreateApplicationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1130
+ #
1131
+ # * {Types::CreateApplicationResponse#application_id #application_id} => String
1132
+ #
1133
+ # @example Request syntax with placeholder values
1134
+ #
1135
+ # resp = client.create_application({
1136
+ # idc_instance_arn: "IdCInstanceArn",
1137
+ # role_arn: "RoleArn",
1138
+ # default_kms_key_id: "DefaultKmsKeyId",
1139
+ # tags: {
1140
+ # "TagKey" => "TagValue",
1141
+ # },
1142
+ # })
1143
+ #
1144
+ # @example Response structure
1145
+ #
1146
+ # resp.application_id #=> String
1147
+ #
1148
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/CreateApplication AWS API Documentation
1149
+ #
1150
+ # @overload create_application(params = {})
1151
+ # @param [Hash] params ({})
1152
+ def create_application(params = {}, options = {})
1153
+ req = build_request(:create_application, params)
1154
+ req.send_request(options)
1155
+ end
1156
+
1157
+ # Creates the Integration of the Security Agent App with an external
1158
+ # Provider
1159
+ #
1160
+ # @option params [required, String] :provider
1161
+ # Provider to integrate with
1162
+ #
1163
+ # @option params [required, Types::ProviderInput] :input
1164
+ # Provider-specific input parameters
1165
+ #
1166
+ # @option params [required, String] :integration_display_name
1167
+ # Display name for the integration
1168
+ #
1169
+ # @option params [String] :kms_key_id
1170
+ # KMS key ID for encrypting integration details
1171
+ #
1172
+ # @option params [Hash<String,String>] :tags
1173
+ # Tags to associate with the integration
1174
+ #
1175
+ # @return [Types::CreateIntegrationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1176
+ #
1177
+ # * {Types::CreateIntegrationOutput#integration_id #integration_id} => String
1178
+ #
1179
+ # @example Request syntax with placeholder values
1180
+ #
1181
+ # resp = client.create_integration({
1182
+ # provider: "GITHUB", # required, accepts GITHUB
1183
+ # input: { # required
1184
+ # github: {
1185
+ # code: "AuthCode", # required
1186
+ # state: "CsrfState", # required
1187
+ # organization_name: "String",
1188
+ # },
1189
+ # },
1190
+ # integration_display_name: "String", # required
1191
+ # kms_key_id: "KmsKeyId",
1192
+ # tags: {
1193
+ # "TagKey" => "TagValue",
1194
+ # },
1195
+ # })
1196
+ #
1197
+ # @example Response structure
1198
+ #
1199
+ # resp.integration_id #=> String
1200
+ #
1201
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/CreateIntegration AWS API Documentation
1202
+ #
1203
+ # @overload create_integration(params = {})
1204
+ # @param [Hash] params ({})
1205
+ def create_integration(params = {}, options = {})
1206
+ req = build_request(:create_integration, params)
1207
+ req.send_request(options)
1208
+ end
1209
+
1210
+ # Adds a single member to an agent space with specified role
1211
+ #
1212
+ # @option params [required, String] :application_id
1213
+ # Application identifier
1214
+ #
1215
+ # @option params [required, String] :agent_space_id
1216
+ # Agent space identifier
1217
+ #
1218
+ # @option params [required, String] :membership_id
1219
+ # Member identifier (userId or agentSpaceId)
1220
+ #
1221
+ # @option params [required, String] :member_type
1222
+ # Type of member (USER or AGENT\_SPACE)
1223
+ #
1224
+ # @option params [Types::MembershipConfig] :config
1225
+ # Membership details (user or agent specific)
1226
+ #
1227
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1228
+ #
1229
+ # @example Request syntax with placeholder values
1230
+ #
1231
+ # resp = client.create_membership({
1232
+ # application_id: "ApplicationId", # required
1233
+ # agent_space_id: "AgentSpaceId", # required
1234
+ # membership_id: "MembershipId", # required
1235
+ # member_type: "USER", # required, accepts USER
1236
+ # config: {
1237
+ # user: {
1238
+ # role: "MEMBER", # accepts MEMBER
1239
+ # },
1240
+ # },
1241
+ # })
1242
+ #
1243
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/CreateMembership AWS API Documentation
1244
+ #
1245
+ # @overload create_membership(params = {})
1246
+ # @param [Hash] params ({})
1247
+ def create_membership(params = {}, options = {})
1248
+ req = build_request(:create_membership, params)
1249
+ req.send_request(options)
1250
+ end
1251
+
1252
+ # Creates a new pentest configuration
1253
+ #
1254
+ # @option params [required, String] :title
1255
+ # Title of the pentest
1256
+ #
1257
+ # @option params [required, String] :agent_space_id
1258
+ # ID of the agent space where the pentest should be created
1259
+ #
1260
+ # @option params [Types::Assets] :assets
1261
+ # Assets to be tested during the pentest
1262
+ #
1263
+ # @option params [Array<String>] :exclude_risk_types
1264
+ # A list of risk types excluded from the pentest execution
1265
+ #
1266
+ # @option params [String] :service_role
1267
+ # Service role ARN for accessing customer resources
1268
+ #
1269
+ # @option params [Types::CloudWatchLog] :log_config
1270
+ # CloudWatch log group and stream prefix where pentest execution logs
1271
+ # are stored
1272
+ #
1273
+ # @option params [Types::VpcConfig] :vpc_config
1274
+ # VPC configuration that the Security Agent accesses
1275
+ #
1276
+ # @option params [Types::NetworkTrafficConfig] :network_traffic_config
1277
+ # Configuration for network traffic filtering
1278
+ #
1279
+ # @option params [String] :code_remediation_strategy
1280
+ # Strategy for code remediation on findings
1281
+ #
1282
+ # @return [Types::CreatePentestOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1283
+ #
1284
+ # * {Types::CreatePentestOutput#pentest_id #pentest_id} => String
1285
+ # * {Types::CreatePentestOutput#title #title} => String
1286
+ # * {Types::CreatePentestOutput#created_at #created_at} => Time
1287
+ # * {Types::CreatePentestOutput#updated_at #updated_at} => Time
1288
+ # * {Types::CreatePentestOutput#assets #assets} => Types::Assets
1289
+ # * {Types::CreatePentestOutput#exclude_risk_types #exclude_risk_types} => Array&lt;String&gt;
1290
+ # * {Types::CreatePentestOutput#service_role #service_role} => String
1291
+ # * {Types::CreatePentestOutput#log_config #log_config} => Types::CloudWatchLog
1292
+ # * {Types::CreatePentestOutput#agent_space_id #agent_space_id} => String
1293
+ #
1294
+ # @example Request syntax with placeholder values
1295
+ #
1296
+ # resp = client.create_pentest({
1297
+ # title: "String", # required
1298
+ # agent_space_id: "String", # required
1299
+ # assets: {
1300
+ # endpoints: [
1301
+ # {
1302
+ # uri: "String",
1303
+ # },
1304
+ # ],
1305
+ # actors: [
1306
+ # {
1307
+ # identifier: "String",
1308
+ # uris: ["String"],
1309
+ # authentication: {
1310
+ # provider_type: "SECRETS_MANAGER", # accepts SECRETS_MANAGER, AWS_LAMBDA, AWS_IAM_ROLE, AWS_INTERNAL
1311
+ # value: "String",
1312
+ # },
1313
+ # description: "String",
1314
+ # },
1315
+ # ],
1316
+ # documents: [
1317
+ # {
1318
+ # s3_location: "String",
1319
+ # artifact_id: "String",
1320
+ # },
1321
+ # ],
1322
+ # source_code: [
1323
+ # {
1324
+ # s3_location: "String",
1325
+ # },
1326
+ # ],
1327
+ # integrated_repositories: [
1328
+ # {
1329
+ # integration_id: "String", # required
1330
+ # provider_resource_id: "String", # required
1331
+ # },
1332
+ # ],
1333
+ # },
1334
+ # exclude_risk_types: ["CROSS_SITE_SCRIPTING"], # accepts CROSS_SITE_SCRIPTING, DEFAULT_CREDENTIALS, INSECURE_DIRECT_OBJECT_REFERENCE, PRIVILEGE_ESCALATION, SERVER_SIDE_TEMPLATE_INJECTION, COMMAND_INJECTION, CODE_INJECTION, SQL_INJECTION, ARBITRARY_FILE_UPLOAD, INSECURE_DESERIALIZATION, LOCAL_FILE_INCLUSION, INFORMATION_DISCLOSURE, PATH_TRAVERSAL, SERVER_SIDE_REQUEST_FORGERY, JSON_WEB_TOKEN_VULNERABILITIES, XML_EXTERNAL_ENTITY, FILE_DELETION, OTHER, GRAPHQL_VULNERABILITIES, BUSINESS_LOGIC_VULNERABILITIES, CRYPTOGRAPHIC_VULNERABILITIES, DENIAL_OF_SERVICE, FILE_ACCESS, FILE_CREATION, DATABASE_MODIFICATION, DATABASE_ACCESS, OUTBOUND_SERVICE_REQUEST, UNKNOWN
1335
+ # service_role: "ServiceRole",
1336
+ # log_config: {
1337
+ # log_group: "String",
1338
+ # log_stream: "String",
1339
+ # },
1340
+ # vpc_config: {
1341
+ # vpc_arn: "VpcArn",
1342
+ # security_group_arns: ["SecurityGroupArn"],
1343
+ # subnet_arns: ["SubnetArn"],
1344
+ # },
1345
+ # network_traffic_config: {
1346
+ # rules: [
1347
+ # {
1348
+ # effect: "ALLOW", # accepts ALLOW, DENY
1349
+ # pattern: "String",
1350
+ # network_traffic_rule_type: "URL", # accepts URL
1351
+ # },
1352
+ # ],
1353
+ # custom_headers: [
1354
+ # {
1355
+ # name: "String",
1356
+ # value: "String",
1357
+ # },
1358
+ # ],
1359
+ # },
1360
+ # code_remediation_strategy: "AUTOMATIC", # accepts AUTOMATIC, DISABLED
1361
+ # })
1362
+ #
1363
+ # @example Response structure
1364
+ #
1365
+ # resp.pentest_id #=> String
1366
+ # resp.title #=> String
1367
+ # resp.created_at #=> Time
1368
+ # resp.updated_at #=> Time
1369
+ # resp.assets.endpoints #=> Array
1370
+ # resp.assets.endpoints[0].uri #=> String
1371
+ # resp.assets.actors #=> Array
1372
+ # resp.assets.actors[0].identifier #=> String
1373
+ # resp.assets.actors[0].uris #=> Array
1374
+ # resp.assets.actors[0].uris[0] #=> String
1375
+ # resp.assets.actors[0].authentication.provider_type #=> String, one of "SECRETS_MANAGER", "AWS_LAMBDA", "AWS_IAM_ROLE", "AWS_INTERNAL"
1376
+ # resp.assets.actors[0].authentication.value #=> String
1377
+ # resp.assets.actors[0].description #=> String
1378
+ # resp.assets.documents #=> Array
1379
+ # resp.assets.documents[0].s3_location #=> String
1380
+ # resp.assets.documents[0].artifact_id #=> String
1381
+ # resp.assets.source_code #=> Array
1382
+ # resp.assets.source_code[0].s3_location #=> String
1383
+ # resp.assets.integrated_repositories #=> Array
1384
+ # resp.assets.integrated_repositories[0].integration_id #=> String
1385
+ # resp.assets.integrated_repositories[0].provider_resource_id #=> String
1386
+ # resp.exclude_risk_types #=> Array
1387
+ # resp.exclude_risk_types[0] #=> String, one of "CROSS_SITE_SCRIPTING", "DEFAULT_CREDENTIALS", "INSECURE_DIRECT_OBJECT_REFERENCE", "PRIVILEGE_ESCALATION", "SERVER_SIDE_TEMPLATE_INJECTION", "COMMAND_INJECTION", "CODE_INJECTION", "SQL_INJECTION", "ARBITRARY_FILE_UPLOAD", "INSECURE_DESERIALIZATION", "LOCAL_FILE_INCLUSION", "INFORMATION_DISCLOSURE", "PATH_TRAVERSAL", "SERVER_SIDE_REQUEST_FORGERY", "JSON_WEB_TOKEN_VULNERABILITIES", "XML_EXTERNAL_ENTITY", "FILE_DELETION", "OTHER", "GRAPHQL_VULNERABILITIES", "BUSINESS_LOGIC_VULNERABILITIES", "CRYPTOGRAPHIC_VULNERABILITIES", "DENIAL_OF_SERVICE", "FILE_ACCESS", "FILE_CREATION", "DATABASE_MODIFICATION", "DATABASE_ACCESS", "OUTBOUND_SERVICE_REQUEST", "UNKNOWN"
1388
+ # resp.service_role #=> String
1389
+ # resp.log_config.log_group #=> String
1390
+ # resp.log_config.log_stream #=> String
1391
+ # resp.agent_space_id #=> String
1392
+ #
1393
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/CreatePentest AWS API Documentation
1394
+ #
1395
+ # @overload create_pentest(params = {})
1396
+ # @param [Hash] params ({})
1397
+ def create_pentest(params = {}, options = {})
1398
+ req = build_request(:create_pentest, params)
1399
+ req.send_request(options)
1400
+ end
1401
+
1402
+ # Creates a target domain record
1403
+ #
1404
+ # @option params [required, String] :target_domain_name
1405
+ # Domain name of the target domain
1406
+ #
1407
+ # @option params [required, String] :verification_method
1408
+ # Verification method for the target domain
1409
+ #
1410
+ # @option params [Hash<String,String>] :tags
1411
+ # Tags to associate with the target domain
1412
+ #
1413
+ # @return [Types::CreateTargetDomainOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1414
+ #
1415
+ # * {Types::CreateTargetDomainOutput#target_domain_id #target_domain_id} => String
1416
+ # * {Types::CreateTargetDomainOutput#domain_name #domain_name} => String
1417
+ # * {Types::CreateTargetDomainOutput#verification_status #verification_status} => String
1418
+ # * {Types::CreateTargetDomainOutput#verification_details #verification_details} => Types::VerificationDetails
1419
+ # * {Types::CreateTargetDomainOutput#created_at #created_at} => Time
1420
+ # * {Types::CreateTargetDomainOutput#verified_at #verified_at} => Time
1421
+ #
1422
+ # @example Request syntax with placeholder values
1423
+ #
1424
+ # resp = client.create_target_domain({
1425
+ # target_domain_name: "String", # required
1426
+ # verification_method: "DNS_TXT", # required, accepts DNS_TXT, HTTP_ROUTE
1427
+ # tags: {
1428
+ # "TagKey" => "TagValue",
1429
+ # },
1430
+ # })
1431
+ #
1432
+ # @example Response structure
1433
+ #
1434
+ # resp.target_domain_id #=> String
1435
+ # resp.domain_name #=> String
1436
+ # resp.verification_status #=> String, one of "PENDING", "VERIFIED", "FAILED", "UNREACHABLE"
1437
+ # resp.verification_details.method #=> String, one of "DNS_TXT", "HTTP_ROUTE"
1438
+ # resp.verification_details.dns_txt.token #=> String
1439
+ # resp.verification_details.dns_txt.dns_record_name #=> String
1440
+ # resp.verification_details.dns_txt.dns_record_type #=> String, one of "TXT"
1441
+ # resp.verification_details.http_route.token #=> String
1442
+ # resp.verification_details.http_route.route_path #=> String
1443
+ # resp.created_at #=> Time
1444
+ # resp.verified_at #=> Time
1445
+ #
1446
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/CreateTargetDomain AWS API Documentation
1447
+ #
1448
+ # @overload create_target_domain(params = {})
1449
+ # @param [Hash] params ({})
1450
+ def create_target_domain(params = {}, options = {})
1451
+ req = build_request(:create_target_domain, params)
1452
+ req.send_request(options)
1453
+ end
1454
+
1455
+ # Deletes an agent space record
1456
+ #
1457
+ # @option params [required, String] :agent_space_id
1458
+ # Unique identifier of the agent space to delete
1459
+ #
1460
+ # @return [Types::DeleteAgentSpaceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1461
+ #
1462
+ # * {Types::DeleteAgentSpaceOutput#agent_space_id #agent_space_id} => String
1463
+ #
1464
+ # @example Request syntax with placeholder values
1465
+ #
1466
+ # resp = client.delete_agent_space({
1467
+ # agent_space_id: "AgentSpaceId", # required
1468
+ # })
1469
+ #
1470
+ # @example Response structure
1471
+ #
1472
+ # resp.agent_space_id #=> String
1473
+ #
1474
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/DeleteAgentSpace AWS API Documentation
1475
+ #
1476
+ # @overload delete_agent_space(params = {})
1477
+ # @param [Hash] params ({})
1478
+ def delete_agent_space(params = {}, options = {})
1479
+ req = build_request(:delete_agent_space, params)
1480
+ req.send_request(options)
1481
+ end
1482
+
1483
+ # Deletes an application
1484
+ #
1485
+ # @option params [required, String] :application_id
1486
+ # Application ID
1487
+ #
1488
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1489
+ #
1490
+ # @example Request syntax with placeholder values
1491
+ #
1492
+ # resp = client.delete_application({
1493
+ # application_id: "ApplicationId", # required
1494
+ # })
1495
+ #
1496
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/DeleteApplication AWS API Documentation
1497
+ #
1498
+ # @overload delete_application(params = {})
1499
+ # @param [Hash] params ({})
1500
+ def delete_application(params = {}, options = {})
1501
+ req = build_request(:delete_application, params)
1502
+ req.send_request(options)
1503
+ end
1504
+
1505
+ # Delete an Artifact from the given agent space
1506
+ #
1507
+ # @option params [required, String] :agent_space_id
1508
+ # Unique identifier of the agent space
1509
+ #
1510
+ # @option params [required, String] :artifact_id
1511
+ # Unique identifier of the artifact
1512
+ #
1513
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1514
+ #
1515
+ # @example Request syntax with placeholder values
1516
+ #
1517
+ # resp = client.delete_artifact({
1518
+ # agent_space_id: "AgentSpaceId", # required
1519
+ # artifact_id: "ArtifactId", # required
1520
+ # })
1521
+ #
1522
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/DeleteArtifact AWS API Documentation
1523
+ #
1524
+ # @overload delete_artifact(params = {})
1525
+ # @param [Hash] params ({})
1526
+ def delete_artifact(params = {}, options = {})
1527
+ req = build_request(:delete_artifact, params)
1528
+ req.send_request(options)
1529
+ end
1530
+
1531
+ # Deletes the Integration of the Security Agent App with an external
1532
+ # Provider
1533
+ #
1534
+ # @option params [required, String] :integration_id
1535
+ # Unique identifier of the integration
1536
+ #
1537
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1538
+ #
1539
+ # @example Request syntax with placeholder values
1540
+ #
1541
+ # resp = client.delete_integration({
1542
+ # integration_id: "IntegrationId", # required
1543
+ # })
1544
+ #
1545
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/DeleteIntegration AWS API Documentation
1546
+ #
1547
+ # @overload delete_integration(params = {})
1548
+ # @param [Hash] params ({})
1549
+ def delete_integration(params = {}, options = {})
1550
+ req = build_request(:delete_integration, params)
1551
+ req.send_request(options)
1552
+ end
1553
+
1554
+ # Removes a single member associated to an agent space
1555
+ #
1556
+ # @option params [required, String] :application_id
1557
+ # Application identifier
1558
+ #
1559
+ # @option params [required, String] :agent_space_id
1560
+ # Agent space identifier
1561
+ #
1562
+ # @option params [required, String] :membership_id
1563
+ # Member identifier (userId or agentSpaceId)
1564
+ #
1565
+ # @option params [String] :member_type
1566
+ # Type of member (USER or AGENT\_SPACE)
1567
+ #
1568
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1569
+ #
1570
+ # @example Request syntax with placeholder values
1571
+ #
1572
+ # resp = client.delete_membership({
1573
+ # application_id: "ApplicationId", # required
1574
+ # agent_space_id: "AgentSpaceId", # required
1575
+ # membership_id: "MembershipId", # required
1576
+ # member_type: "USER", # accepts USER
1577
+ # })
1578
+ #
1579
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/DeleteMembership AWS API Documentation
1580
+ #
1581
+ # @overload delete_membership(params = {})
1582
+ # @param [Hash] params ({})
1583
+ def delete_membership(params = {}, options = {})
1584
+ req = build_request(:delete_membership, params)
1585
+ req.send_request(options)
1586
+ end
1587
+
1588
+ # Deletes a target domain record
1589
+ #
1590
+ # @option params [required, String] :target_domain_id
1591
+ # Unique identifier of the target domain to delete
1592
+ #
1593
+ # @return [Types::DeleteTargetDomainOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1594
+ #
1595
+ # * {Types::DeleteTargetDomainOutput#target_domain_id #target_domain_id} => String
1596
+ #
1597
+ # @example Request syntax with placeholder values
1598
+ #
1599
+ # resp = client.delete_target_domain({
1600
+ # target_domain_id: "TargetDomainId", # required
1601
+ # })
1602
+ #
1603
+ # @example Response structure
1604
+ #
1605
+ # resp.target_domain_id #=> String
1606
+ #
1607
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/DeleteTargetDomain AWS API Documentation
1608
+ #
1609
+ # @overload delete_target_domain(params = {})
1610
+ # @param [Hash] params ({})
1611
+ def delete_target_domain(params = {}, options = {})
1612
+ req = build_request(:delete_target_domain, params)
1613
+ req.send_request(options)
1614
+ end
1615
+
1616
+ # Retrieves application details by application ID
1617
+ #
1618
+ # @option params [required, String] :application_id
1619
+ # Application ID
1620
+ #
1621
+ # @return [Types::GetApplicationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1622
+ #
1623
+ # * {Types::GetApplicationResponse#application_id #application_id} => String
1624
+ # * {Types::GetApplicationResponse#domain #domain} => String
1625
+ # * {Types::GetApplicationResponse#application_name #application_name} => String
1626
+ # * {Types::GetApplicationResponse#idc_configuration #idc_configuration} => Types::IdCConfiguration
1627
+ # * {Types::GetApplicationResponse#role_arn #role_arn} => String
1628
+ # * {Types::GetApplicationResponse#default_kms_key_id #default_kms_key_id} => String
1629
+ #
1630
+ # @example Request syntax with placeholder values
1631
+ #
1632
+ # resp = client.get_application({
1633
+ # application_id: "ApplicationId", # required
1634
+ # })
1635
+ #
1636
+ # @example Response structure
1637
+ #
1638
+ # resp.application_id #=> String
1639
+ # resp.domain #=> String
1640
+ # resp.application_name #=> String
1641
+ # resp.idc_configuration.idc_application_arn #=> String
1642
+ # resp.idc_configuration.idc_instance_arn #=> String
1643
+ # resp.role_arn #=> String
1644
+ # resp.default_kms_key_id #=> String
1645
+ #
1646
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/GetApplication AWS API Documentation
1647
+ #
1648
+ # @overload get_application(params = {})
1649
+ # @param [Hash] params ({})
1650
+ def get_application(params = {}, options = {})
1651
+ req = build_request(:get_application, params)
1652
+ req.send_request(options)
1653
+ end
1654
+
1655
+ # Retrieve an Artifact for the given agent space
1656
+ #
1657
+ # @option params [required, String] :agent_space_id
1658
+ # Unique identifier of the agent space
1659
+ #
1660
+ # @option params [required, String] :artifact_id
1661
+ # Unique identifier of the artifact
1662
+ #
1663
+ # @return [Types::GetArtifactOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1664
+ #
1665
+ # * {Types::GetArtifactOutput#agent_space_id #agent_space_id} => String
1666
+ # * {Types::GetArtifactOutput#artifact_id #artifact_id} => String
1667
+ # * {Types::GetArtifactOutput#artifact #artifact} => Types::Artifact
1668
+ # * {Types::GetArtifactOutput#file_name #file_name} => String
1669
+ # * {Types::GetArtifactOutput#updated_at #updated_at} => Time
1670
+ #
1671
+ # @example Request syntax with placeholder values
1672
+ #
1673
+ # resp = client.get_artifact({
1674
+ # agent_space_id: "AgentSpaceId", # required
1675
+ # artifact_id: "ArtifactId", # required
1676
+ # })
1677
+ #
1678
+ # @example Response structure
1679
+ #
1680
+ # resp.agent_space_id #=> String
1681
+ # resp.artifact_id #=> String
1682
+ # resp.artifact.contents #=> String
1683
+ # resp.artifact.type #=> String, one of "TXT", "PNG", "JPEG", "MD", "PDF", "DOCX", "DOC", "JSON", "YAML"
1684
+ # resp.file_name #=> String
1685
+ # resp.updated_at #=> Time
1686
+ #
1687
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/GetArtifact AWS API Documentation
1688
+ #
1689
+ # @overload get_artifact(params = {})
1690
+ # @param [Hash] params ({})
1691
+ def get_artifact(params = {}, options = {})
1692
+ req = build_request(:get_artifact, params)
1693
+ req.send_request(options)
1694
+ end
1695
+
1696
+ # Gets Integration metadata from the provided id
1697
+ #
1698
+ # @option params [required, String] :integration_id
1699
+ # Unique identifier of the integration
1700
+ #
1701
+ # @return [Types::GetIntegrationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1702
+ #
1703
+ # * {Types::GetIntegrationOutput#integration_id #integration_id} => String
1704
+ # * {Types::GetIntegrationOutput#installation_id #installation_id} => String
1705
+ # * {Types::GetIntegrationOutput#provider #provider} => String
1706
+ # * {Types::GetIntegrationOutput#provider_type #provider_type} => String
1707
+ # * {Types::GetIntegrationOutput#display_name #display_name} => String
1708
+ # * {Types::GetIntegrationOutput#kms_key_id #kms_key_id} => String
1709
+ #
1710
+ # @example Request syntax with placeholder values
1711
+ #
1712
+ # resp = client.get_integration({
1713
+ # integration_id: "IntegrationId", # required
1714
+ # })
1715
+ #
1716
+ # @example Response structure
1717
+ #
1718
+ # resp.integration_id #=> String
1719
+ # resp.installation_id #=> String
1720
+ # resp.provider #=> String, one of "GITHUB"
1721
+ # resp.provider_type #=> String, one of "SOURCE_CODE", "DOCUMENTATION"
1722
+ # resp.display_name #=> String
1723
+ # resp.kms_key_id #=> String
1724
+ #
1725
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/GetIntegration AWS API Documentation
1726
+ #
1727
+ # @overload get_integration(params = {})
1728
+ # @param [Hash] params ({})
1729
+ def get_integration(params = {}, options = {})
1730
+ req = build_request(:get_integration, params)
1731
+ req.send_request(options)
1732
+ end
1733
+
1734
+ # Initiates the registration of Security Agent App for an external
1735
+ # Provider
1736
+ #
1737
+ # @option params [required, String] :provider
1738
+ # Provider to register with
1739
+ #
1740
+ # @return [Types::InitiateProviderRegistrationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1741
+ #
1742
+ # * {Types::InitiateProviderRegistrationOutput#redirect_to #redirect_to} => String
1743
+ # * {Types::InitiateProviderRegistrationOutput#csrf_state #csrf_state} => String
1744
+ #
1745
+ # @example Request syntax with placeholder values
1746
+ #
1747
+ # resp = client.initiate_provider_registration({
1748
+ # provider: "GITHUB", # required, accepts GITHUB
1749
+ # })
1750
+ #
1751
+ # @example Response structure
1752
+ #
1753
+ # resp.redirect_to #=> String
1754
+ # resp.csrf_state #=> String
1755
+ #
1756
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/InitiateProviderRegistration AWS API Documentation
1757
+ #
1758
+ # @overload initiate_provider_registration(params = {})
1759
+ # @param [Hash] params ({})
1760
+ def initiate_provider_registration(params = {}, options = {})
1761
+ req = build_request(:initiate_provider_registration, params)
1762
+ req.send_request(options)
1763
+ end
1764
+
1765
+ # Lists agent spaces
1766
+ #
1767
+ # @option params [String] :next_token
1768
+ # Token for pagination
1769
+ #
1770
+ # @option params [Integer] :max_results
1771
+ # Maximum number of agent spaces to return
1772
+ #
1773
+ # @return [Types::ListAgentSpacesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1774
+ #
1775
+ # * {Types::ListAgentSpacesOutput#agent_space_summaries #agent_space_summaries} => Array&lt;Types::AgentSpaceSummary&gt;
1776
+ # * {Types::ListAgentSpacesOutput#next_token #next_token} => String
1777
+ #
1778
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1779
+ #
1780
+ # @example Request syntax with placeholder values
1781
+ #
1782
+ # resp = client.list_agent_spaces({
1783
+ # next_token: "NextToken",
1784
+ # max_results: 1,
1785
+ # })
1786
+ #
1787
+ # @example Response structure
1788
+ #
1789
+ # resp.agent_space_summaries #=> Array
1790
+ # resp.agent_space_summaries[0].agent_space_id #=> String
1791
+ # resp.agent_space_summaries[0].name #=> String
1792
+ # resp.agent_space_summaries[0].created_at #=> Time
1793
+ # resp.agent_space_summaries[0].updated_at #=> Time
1794
+ # resp.next_token #=> String
1795
+ #
1796
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListAgentSpaces AWS API Documentation
1797
+ #
1798
+ # @overload list_agent_spaces(params = {})
1799
+ # @param [Hash] params ({})
1800
+ def list_agent_spaces(params = {}, options = {})
1801
+ req = build_request(:list_agent_spaces, params)
1802
+ req.send_request(options)
1803
+ end
1804
+
1805
+ # Lists all applications in the account
1806
+ #
1807
+ # @option params [String] :next_token
1808
+ # Token for pagination
1809
+ #
1810
+ # @option params [Integer] :max_results
1811
+ # Maximum number of results to return
1812
+ #
1813
+ # @return [Types::ListApplicationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1814
+ #
1815
+ # * {Types::ListApplicationsResponse#application_summaries #application_summaries} => Array&lt;Types::ApplicationSummary&gt;
1816
+ # * {Types::ListApplicationsResponse#next_token #next_token} => String
1817
+ #
1818
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1819
+ #
1820
+ # @example Request syntax with placeholder values
1821
+ #
1822
+ # resp = client.list_applications({
1823
+ # next_token: "NextToken",
1824
+ # max_results: 1,
1825
+ # })
1826
+ #
1827
+ # @example Response structure
1828
+ #
1829
+ # resp.application_summaries #=> Array
1830
+ # resp.application_summaries[0].application_id #=> String
1831
+ # resp.application_summaries[0].application_name #=> String
1832
+ # resp.application_summaries[0].domain #=> String
1833
+ # resp.application_summaries[0].default_kms_key_id #=> String
1834
+ # resp.next_token #=> String
1835
+ #
1836
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListApplications AWS API Documentation
1837
+ #
1838
+ # @overload list_applications(params = {})
1839
+ # @param [Hash] params ({})
1840
+ def list_applications(params = {}, options = {})
1841
+ req = build_request(:list_applications, params)
1842
+ req.send_request(options)
1843
+ end
1844
+
1845
+ # Lists the artifacts for the associated agent space
1846
+ #
1847
+ # @option params [required, String] :agent_space_id
1848
+ # Unique identifier of the agent space
1849
+ #
1850
+ # @option params [String] :next_token
1851
+ # Token for pagination
1852
+ #
1853
+ # @option params [Integer] :max_results
1854
+ # Maximum number of results to return
1855
+ #
1856
+ # @return [Types::ListArtifactsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1857
+ #
1858
+ # * {Types::ListArtifactsOutput#artifact_summaries #artifact_summaries} => Array&lt;Types::ArtifactSummary&gt;
1859
+ # * {Types::ListArtifactsOutput#next_token #next_token} => String
1860
+ #
1861
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1862
+ #
1863
+ # @example Request syntax with placeholder values
1864
+ #
1865
+ # resp = client.list_artifacts({
1866
+ # agent_space_id: "AgentSpaceId", # required
1867
+ # next_token: "NextToken",
1868
+ # max_results: 1,
1869
+ # })
1870
+ #
1871
+ # @example Response structure
1872
+ #
1873
+ # resp.artifact_summaries #=> Array
1874
+ # resp.artifact_summaries[0].artifact_id #=> String
1875
+ # resp.artifact_summaries[0].file_name #=> String
1876
+ # resp.artifact_summaries[0].artifact_type #=> String, one of "TXT", "PNG", "JPEG", "MD", "PDF", "DOCX", "DOC", "JSON", "YAML"
1877
+ # resp.next_token #=> String
1878
+ #
1879
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListArtifacts AWS API Documentation
1880
+ #
1881
+ # @overload list_artifacts(params = {})
1882
+ # @param [Hash] params ({})
1883
+ def list_artifacts(params = {}, options = {})
1884
+ req = build_request(:list_artifacts, params)
1885
+ req.send_request(options)
1886
+ end
1887
+
1888
+ # Lists discovered endpoints associated with a pentest job with optional
1889
+ # URI prefix filtering
1890
+ #
1891
+ # @option params [Integer] :max_results
1892
+ # Maximum number of discovered endpoints to return in a single request
1893
+ # (default: 50)
1894
+ #
1895
+ # @option params [required, String] :pentest_job_id
1896
+ # Identifier of the pentest job for which to retrieve discovered
1897
+ # endpoints
1898
+ #
1899
+ # @option params [required, String] :agent_space_id
1900
+ # ID of the agent space where the pentest job exists
1901
+ #
1902
+ # @option params [String] :prefix
1903
+ # Optional URI prefix filter to narrow down results
1904
+ #
1905
+ # @option params [String] :next_token
1906
+ # Token for pagination
1907
+ #
1908
+ # @return [Types::ListDiscoveredEndpointsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1909
+ #
1910
+ # * {Types::ListDiscoveredEndpointsOutput#discovered_endpoints #discovered_endpoints} => Array&lt;Types::DiscoveredEndpoint&gt;
1911
+ # * {Types::ListDiscoveredEndpointsOutput#next_token #next_token} => String
1912
+ #
1913
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1914
+ #
1915
+ # @example Request syntax with placeholder values
1916
+ #
1917
+ # resp = client.list_discovered_endpoints({
1918
+ # max_results: 1,
1919
+ # pentest_job_id: "String", # required
1920
+ # agent_space_id: "String", # required
1921
+ # prefix: "String",
1922
+ # next_token: "NextToken",
1923
+ # })
1924
+ #
1925
+ # @example Response structure
1926
+ #
1927
+ # resp.discovered_endpoints #=> Array
1928
+ # resp.discovered_endpoints[0].uri #=> String
1929
+ # resp.discovered_endpoints[0].pentest_job_id #=> String
1930
+ # resp.discovered_endpoints[0].task_id #=> String
1931
+ # resp.discovered_endpoints[0].agent_space_id #=> String
1932
+ # resp.discovered_endpoints[0].evidence #=> String
1933
+ # resp.discovered_endpoints[0].operation #=> String
1934
+ # resp.discovered_endpoints[0].description #=> String
1935
+ # resp.next_token #=> String
1936
+ #
1937
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListDiscoveredEndpoints AWS API Documentation
1938
+ #
1939
+ # @overload list_discovered_endpoints(params = {})
1940
+ # @param [Hash] params ({})
1941
+ def list_discovered_endpoints(params = {}, options = {})
1942
+ req = build_request(:list_discovered_endpoints, params)
1943
+ req.send_request(options)
1944
+ end
1945
+
1946
+ # Lists findings with filtering and pagination support. When filters are
1947
+ # applied, the actual number of results returned may be less than the
1948
+ # specified limit
1949
+ #
1950
+ # @option params [Integer] :max_results
1951
+ # Maximum number of findings to return in a single request (default: 50)
1952
+ #
1953
+ # @option params [required, String] :pentest_job_id
1954
+ # Identifier of the pentest job for which to retrieve associated
1955
+ # findings
1956
+ #
1957
+ # @option params [required, String] :agent_space_id
1958
+ # ID of the agent space where the pentest job exists
1959
+ #
1960
+ # @option params [String] :next_token
1961
+ # Token for pagination
1962
+ #
1963
+ # @option params [String] :risk_type
1964
+ # Filter findings by risk type
1965
+ #
1966
+ # @option params [String] :risk_level
1967
+ # Filter findings by risk level
1968
+ #
1969
+ # @option params [String] :status
1970
+ # Filter findings by status
1971
+ #
1972
+ # @option params [String] :confidence
1973
+ # Filter findings by confidence level
1974
+ #
1975
+ # @option params [String] :name
1976
+ # Filter findings by name (case-insensitive substring search)
1977
+ #
1978
+ # @return [Types::ListFindingsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1979
+ #
1980
+ # * {Types::ListFindingsOutput#findings_summaries #findings_summaries} => Array&lt;Types::FindingSummary&gt;
1981
+ # * {Types::ListFindingsOutput#next_token #next_token} => String
1982
+ #
1983
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1984
+ #
1985
+ # @example Request syntax with placeholder values
1986
+ #
1987
+ # resp = client.list_findings({
1988
+ # max_results: 1,
1989
+ # pentest_job_id: "String", # required
1990
+ # agent_space_id: "String", # required
1991
+ # next_token: "NextToken",
1992
+ # risk_type: "String",
1993
+ # risk_level: "UNKNOWN", # accepts UNKNOWN, INFORMATIONAL, LOW, MEDIUM, HIGH, CRITICAL
1994
+ # status: "ACTIVE", # accepts ACTIVE, RESOLVED, ACCEPTED, FALSE_POSITIVE
1995
+ # confidence: "FALSE_POSITIVE", # accepts FALSE_POSITIVE, UNCONFIRMED, LOW, MEDIUM, HIGH
1996
+ # name: "String",
1997
+ # })
1998
+ #
1999
+ # @example Response structure
2000
+ #
2001
+ # resp.findings_summaries #=> Array
2002
+ # resp.findings_summaries[0].finding_id #=> String
2003
+ # resp.findings_summaries[0].agent_space_id #=> String
2004
+ # resp.findings_summaries[0].pentest_id #=> String
2005
+ # resp.findings_summaries[0].pentest_job_id #=> String
2006
+ # resp.findings_summaries[0].name #=> String
2007
+ # resp.findings_summaries[0].status #=> String, one of "ACTIVE", "RESOLVED", "ACCEPTED", "FALSE_POSITIVE"
2008
+ # resp.findings_summaries[0].risk_type #=> String
2009
+ # resp.findings_summaries[0].risk_level #=> String, one of "UNKNOWN", "INFORMATIONAL", "LOW", "MEDIUM", "HIGH", "CRITICAL"
2010
+ # resp.findings_summaries[0].confidence #=> String, one of "FALSE_POSITIVE", "UNCONFIRMED", "LOW", "MEDIUM", "HIGH"
2011
+ # resp.findings_summaries[0].created_at #=> Time
2012
+ # resp.findings_summaries[0].updated_at #=> Time
2013
+ # resp.next_token #=> String
2014
+ #
2015
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListFindings AWS API Documentation
2016
+ #
2017
+ # @overload list_findings(params = {})
2018
+ # @param [Hash] params ({})
2019
+ def list_findings(params = {}, options = {})
2020
+ req = build_request(:list_findings, params)
2021
+ req.send_request(options)
2022
+ end
2023
+
2024
+ # Lists the integrated resources for an agent space
2025
+ #
2026
+ # @option params [required, String] :agent_space_id
2027
+ # Unique identifier of the agent space
2028
+ #
2029
+ # @option params [String] :integration_id
2030
+ # Filter integrated resources by a specific integration
2031
+ #
2032
+ # @option params [String] :resource_type
2033
+ # Filter integrated resources by resource type
2034
+ #
2035
+ # @option params [String] :next_token
2036
+ # Token for pagination
2037
+ #
2038
+ # @option params [Integer] :max_results
2039
+ # Maximum number of results to return
2040
+ #
2041
+ # @return [Types::ListIntegratedResourcesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2042
+ #
2043
+ # * {Types::ListIntegratedResourcesOutput#integrated_resource_summaries #integrated_resource_summaries} => Array&lt;Types::IntegratedResourceSummary&gt;
2044
+ # * {Types::ListIntegratedResourcesOutput#next_token #next_token} => String
2045
+ #
2046
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2047
+ #
2048
+ # @example Request syntax with placeholder values
2049
+ #
2050
+ # resp = client.list_integrated_resources({
2051
+ # agent_space_id: "AgentSpaceId", # required
2052
+ # integration_id: "IntegrationId",
2053
+ # resource_type: "CODE_REPOSITORY", # accepts CODE_REPOSITORY
2054
+ # next_token: "NextToken",
2055
+ # max_results: 1,
2056
+ # })
2057
+ #
2058
+ # @example Response structure
2059
+ #
2060
+ # resp.integrated_resource_summaries #=> Array
2061
+ # resp.integrated_resource_summaries[0].integration_id #=> String
2062
+ # resp.integrated_resource_summaries[0].resource.github_repository.name #=> String
2063
+ # resp.integrated_resource_summaries[0].resource.github_repository.provider_resource_id #=> String
2064
+ # resp.integrated_resource_summaries[0].resource.github_repository.owner #=> String
2065
+ # resp.integrated_resource_summaries[0].resource.github_repository.access_type #=> String, one of "PRIVATE", "PUBLIC"
2066
+ # resp.integrated_resource_summaries[0].capabilities.github.leave_comments #=> Boolean
2067
+ # resp.integrated_resource_summaries[0].capabilities.github.remediate_code #=> Boolean
2068
+ # resp.next_token #=> String
2069
+ #
2070
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListIntegratedResources AWS API Documentation
2071
+ #
2072
+ # @overload list_integrated_resources(params = {})
2073
+ # @param [Hash] params ({})
2074
+ def list_integrated_resources(params = {}, options = {})
2075
+ req = build_request(:list_integrated_resources, params)
2076
+ req.send_request(options)
2077
+ end
2078
+
2079
+ # Retrieves the Integrations associated with the user's account
2080
+ #
2081
+ # @option params [Types::IntegrationFilter] :filter
2082
+ # Filter criteria for integrations
2083
+ #
2084
+ # @option params [String] :next_token
2085
+ # Token for pagination
2086
+ #
2087
+ # @option params [Integer] :max_results
2088
+ # Maximum number of results to return
2089
+ #
2090
+ # @return [Types::ListIntegrationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2091
+ #
2092
+ # * {Types::ListIntegrationsOutput#integration_summaries #integration_summaries} => Array&lt;Types::IntegrationSummary&gt;
2093
+ # * {Types::ListIntegrationsOutput#next_token #next_token} => String
2094
+ #
2095
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2096
+ #
2097
+ # @example Request syntax with placeholder values
2098
+ #
2099
+ # resp = client.list_integrations({
2100
+ # filter: {
2101
+ # provider: "GITHUB", # accepts GITHUB
2102
+ # provider_type: "SOURCE_CODE", # accepts SOURCE_CODE, DOCUMENTATION
2103
+ # },
2104
+ # next_token: "NextToken",
2105
+ # max_results: 1,
2106
+ # })
2107
+ #
2108
+ # @example Response structure
2109
+ #
2110
+ # resp.integration_summaries #=> Array
2111
+ # resp.integration_summaries[0].integration_id #=> String
2112
+ # resp.integration_summaries[0].installation_id #=> String
2113
+ # resp.integration_summaries[0].provider #=> String, one of "GITHUB"
2114
+ # resp.integration_summaries[0].provider_type #=> String, one of "SOURCE_CODE", "DOCUMENTATION"
2115
+ # resp.integration_summaries[0].display_name #=> String
2116
+ # resp.next_token #=> String
2117
+ #
2118
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListIntegrations AWS API Documentation
2119
+ #
2120
+ # @overload list_integrations(params = {})
2121
+ # @param [Hash] params ({})
2122
+ def list_integrations(params = {}, options = {})
2123
+ req = build_request(:list_integrations, params)
2124
+ req.send_request(options)
2125
+ end
2126
+
2127
+ # Lists all members associated to an agent space with pagination support
2128
+ #
2129
+ # @option params [required, String] :application_id
2130
+ # Application identifier
2131
+ #
2132
+ # @option params [required, String] :agent_space_id
2133
+ # Agent space identifier
2134
+ #
2135
+ # @option params [String] :member_type
2136
+ # Filter by member type
2137
+ #
2138
+ # @option params [Integer] :max_results
2139
+ # Maximum number of results to return
2140
+ #
2141
+ # @option params [String] :next_token
2142
+ # Token for pagination
2143
+ #
2144
+ # @return [Types::ListMembershipsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2145
+ #
2146
+ # * {Types::ListMembershipsResponse#membership_summaries #membership_summaries} => Array&lt;Types::MembershipSummary&gt;
2147
+ # * {Types::ListMembershipsResponse#next_token #next_token} => String
2148
+ #
2149
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2150
+ #
2151
+ # @example Request syntax with placeholder values
2152
+ #
2153
+ # resp = client.list_memberships({
2154
+ # application_id: "ApplicationId", # required
2155
+ # agent_space_id: "AgentSpaceId", # required
2156
+ # member_type: "USER", # accepts USER, ALL
2157
+ # max_results: 1,
2158
+ # next_token: "NextToken",
2159
+ # })
2160
+ #
2161
+ # @example Response structure
2162
+ #
2163
+ # resp.membership_summaries #=> Array
2164
+ # resp.membership_summaries[0].membership_id #=> String
2165
+ # resp.membership_summaries[0].application_id #=> String
2166
+ # resp.membership_summaries[0].agent_space_id #=> String
2167
+ # resp.membership_summaries[0].member_type #=> String, one of "USER"
2168
+ # resp.membership_summaries[0].config.user.role #=> String, one of "MEMBER"
2169
+ # resp.membership_summaries[0].metadata.user.username #=> String
2170
+ # resp.membership_summaries[0].metadata.user.email #=> String
2171
+ # resp.membership_summaries[0].created_at #=> Time
2172
+ # resp.membership_summaries[0].updated_at #=> Time
2173
+ # resp.membership_summaries[0].created_by #=> String
2174
+ # resp.membership_summaries[0].updated_by #=> String
2175
+ # resp.next_token #=> String
2176
+ #
2177
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListMemberships AWS API Documentation
2178
+ #
2179
+ # @overload list_memberships(params = {})
2180
+ # @param [Hash] params ({})
2181
+ def list_memberships(params = {}, options = {})
2182
+ req = build_request(:list_memberships, params)
2183
+ req.send_request(options)
2184
+ end
2185
+
2186
+ # Lists tasks associated with a specific pentest job
2187
+ #
2188
+ # @option params [required, String] :agent_space_id
2189
+ # ID of the agent space where the pentest exists
2190
+ #
2191
+ # @option params [Integer] :max_results
2192
+ # Maximum number of tasks to return in a single request
2193
+ #
2194
+ # @option params [String] :pentest_job_id
2195
+ # Identifier of the pentest job whose tasks to list
2196
+ #
2197
+ # @option params [String] :step_name
2198
+ # Filter tasks by step name
2199
+ #
2200
+ # @option params [String] :category_name
2201
+ # Filter tasks by category name.
2202
+ #
2203
+ # @option params [String] :next_token
2204
+ # Token for pagination to retrieve the next set of results
2205
+ #
2206
+ # @return [Types::ListPentestJobTasksOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2207
+ #
2208
+ # * {Types::ListPentestJobTasksOutput#task_summaries #task_summaries} => Array&lt;Types::TaskSummary&gt;
2209
+ # * {Types::ListPentestJobTasksOutput#next_token #next_token} => String
2210
+ #
2211
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2212
+ #
2213
+ # @example Request syntax with placeholder values
2214
+ #
2215
+ # resp = client.list_pentest_job_tasks({
2216
+ # agent_space_id: "String", # required
2217
+ # max_results: 1,
2218
+ # pentest_job_id: "String",
2219
+ # step_name: "PREFLIGHT", # accepts PREFLIGHT, STATIC_ANALYSIS, PENTEST, FINALIZING
2220
+ # category_name: "String",
2221
+ # next_token: "NextToken",
2222
+ # })
2223
+ #
2224
+ # @example Response structure
2225
+ #
2226
+ # resp.task_summaries #=> Array
2227
+ # resp.task_summaries[0].task_id #=> String
2228
+ # resp.task_summaries[0].pentest_id #=> String
2229
+ # resp.task_summaries[0].pentest_job_id #=> String
2230
+ # resp.task_summaries[0].agent_space_id #=> String
2231
+ # resp.task_summaries[0].title #=> String
2232
+ # resp.task_summaries[0].risk_type #=> String, one of "CROSS_SITE_SCRIPTING", "DEFAULT_CREDENTIALS", "INSECURE_DIRECT_OBJECT_REFERENCE", "PRIVILEGE_ESCALATION", "SERVER_SIDE_TEMPLATE_INJECTION", "COMMAND_INJECTION", "CODE_INJECTION", "SQL_INJECTION", "ARBITRARY_FILE_UPLOAD", "INSECURE_DESERIALIZATION", "LOCAL_FILE_INCLUSION", "INFORMATION_DISCLOSURE", "PATH_TRAVERSAL", "SERVER_SIDE_REQUEST_FORGERY", "JSON_WEB_TOKEN_VULNERABILITIES", "XML_EXTERNAL_ENTITY", "FILE_DELETION", "OTHER", "GRAPHQL_VULNERABILITIES", "BUSINESS_LOGIC_VULNERABILITIES", "CRYPTOGRAPHIC_VULNERABILITIES", "DENIAL_OF_SERVICE", "FILE_ACCESS", "FILE_CREATION", "DATABASE_MODIFICATION", "DATABASE_ACCESS", "OUTBOUND_SERVICE_REQUEST", "UNKNOWN"
2233
+ # resp.task_summaries[0].execution_status #=> String, one of "IN_PROGRESS", "ABORTED", "COMPLETED", "INTERNAL_ERROR", "FAILED"
2234
+ # resp.task_summaries[0].created_at #=> Time
2235
+ # resp.task_summaries[0].updated_at #=> Time
2236
+ # resp.next_token #=> String
2237
+ #
2238
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListPentestJobTasks AWS API Documentation
2239
+ #
2240
+ # @overload list_pentest_job_tasks(params = {})
2241
+ # @param [Hash] params ({})
2242
+ def list_pentest_job_tasks(params = {}, options = {})
2243
+ req = build_request(:list_pentest_job_tasks, params)
2244
+ req.send_request(options)
2245
+ end
2246
+
2247
+ # Lists pentest jobs associated with a pentest
2248
+ #
2249
+ # @option params [Integer] :max_results
2250
+ # Maximum number of pentest jobs to return in a single request
2251
+ #
2252
+ # @option params [required, String] :pentest_id
2253
+ # Identifier of the pentest for which to retrieve associated jobs
2254
+ #
2255
+ # @option params [required, String] :agent_space_id
2256
+ # ID of the agent space where the pentest exists
2257
+ #
2258
+ # @option params [String] :next_token
2259
+ # Token for pagination
2260
+ #
2261
+ # @return [Types::ListPentestJobsForPentestOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2262
+ #
2263
+ # * {Types::ListPentestJobsForPentestOutput#pentest_job_summaries #pentest_job_summaries} => Array&lt;Types::PentestJobSummary&gt;
2264
+ # * {Types::ListPentestJobsForPentestOutput#next_token #next_token} => String
2265
+ #
2266
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2267
+ #
2268
+ # @example Request syntax with placeholder values
2269
+ #
2270
+ # resp = client.list_pentest_jobs_for_pentest({
2271
+ # max_results: 1,
2272
+ # pentest_id: "String", # required
2273
+ # agent_space_id: "String", # required
2274
+ # next_token: "NextToken",
2275
+ # })
2276
+ #
2277
+ # @example Response structure
2278
+ #
2279
+ # resp.pentest_job_summaries #=> Array
2280
+ # resp.pentest_job_summaries[0].pentest_job_id #=> String
2281
+ # resp.pentest_job_summaries[0].pentest_id #=> String
2282
+ # resp.pentest_job_summaries[0].title #=> String
2283
+ # resp.pentest_job_summaries[0].status #=> String, one of "IN_PROGRESS", "STOPPING", "STOPPED", "FAILED", "COMPLETED"
2284
+ # resp.pentest_job_summaries[0].created_at #=> Time
2285
+ # resp.pentest_job_summaries[0].updated_at #=> Time
2286
+ # resp.next_token #=> String
2287
+ #
2288
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListPentestJobsForPentest AWS API Documentation
2289
+ #
2290
+ # @overload list_pentest_jobs_for_pentest(params = {})
2291
+ # @param [Hash] params ({})
2292
+ def list_pentest_jobs_for_pentest(params = {}, options = {})
2293
+ req = build_request(:list_pentest_jobs_for_pentest, params)
2294
+ req.send_request(options)
2295
+ end
2296
+
2297
+ # Lists pentests with optional filtering by status
2298
+ #
2299
+ # @option params [Integer] :max_results
2300
+ # Maximum number of pentests to return in a single request
2301
+ #
2302
+ # @option params [String] :next_token
2303
+ # Token for pagination
2304
+ #
2305
+ # @option params [required, String] :agent_space_id
2306
+ # ID of the agent space where the pentest exists
2307
+ #
2308
+ # @return [Types::ListPentestsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2309
+ #
2310
+ # * {Types::ListPentestsOutput#pentest_summaries #pentest_summaries} => Array&lt;Types::PentestSummary&gt;
2311
+ # * {Types::ListPentestsOutput#next_token #next_token} => String
2312
+ #
2313
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2314
+ #
2315
+ # @example Request syntax with placeholder values
2316
+ #
2317
+ # resp = client.list_pentests({
2318
+ # max_results: 1,
2319
+ # next_token: "NextToken",
2320
+ # agent_space_id: "String", # required
2321
+ # })
2322
+ #
2323
+ # @example Response structure
2324
+ #
2325
+ # resp.pentest_summaries #=> Array
2326
+ # resp.pentest_summaries[0].pentest_id #=> String
2327
+ # resp.pentest_summaries[0].agent_space_id #=> String
2328
+ # resp.pentest_summaries[0].title #=> String
2329
+ # resp.pentest_summaries[0].created_at #=> Time
2330
+ # resp.pentest_summaries[0].updated_at #=> Time
2331
+ # resp.next_token #=> String
2332
+ #
2333
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListPentests AWS API Documentation
2334
+ #
2335
+ # @overload list_pentests(params = {})
2336
+ # @param [Hash] params ({})
2337
+ def list_pentests(params = {}, options = {})
2338
+ req = build_request(:list_pentests, params)
2339
+ req.send_request(options)
2340
+ end
2341
+
2342
+ # Lists tags for a Security Agent resource
2343
+ #
2344
+ # @option params [required, String] :resource_arn
2345
+ # ARN of the resource to list tags for
2346
+ #
2347
+ # @return [Types::ListTagsForResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2348
+ #
2349
+ # * {Types::ListTagsForResourceOutput#tags #tags} => Hash&lt;String,String&gt;
2350
+ #
2351
+ # @example Request syntax with placeholder values
2352
+ #
2353
+ # resp = client.list_tags_for_resource({
2354
+ # resource_arn: "ResourceArn", # required
2355
+ # })
2356
+ #
2357
+ # @example Response structure
2358
+ #
2359
+ # resp.tags #=> Hash
2360
+ # resp.tags["TagKey"] #=> String
2361
+ #
2362
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListTagsForResource AWS API Documentation
2363
+ #
2364
+ # @overload list_tags_for_resource(params = {})
2365
+ # @param [Hash] params ({})
2366
+ def list_tags_for_resource(params = {}, options = {})
2367
+ req = build_request(:list_tags_for_resource, params)
2368
+ req.send_request(options)
2369
+ end
2370
+
2371
+ # Lists target domains
2372
+ #
2373
+ # @option params [String] :next_token
2374
+ # Token for pagination
2375
+ #
2376
+ # @option params [Integer] :max_results
2377
+ # Maximum number of target domains to return
2378
+ #
2379
+ # @return [Types::ListTargetDomainsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2380
+ #
2381
+ # * {Types::ListTargetDomainsOutput#target_domain_summaries #target_domain_summaries} => Array&lt;Types::TargetDomainSummary&gt;
2382
+ # * {Types::ListTargetDomainsOutput#next_token #next_token} => String
2383
+ #
2384
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2385
+ #
2386
+ # @example Request syntax with placeholder values
2387
+ #
2388
+ # resp = client.list_target_domains({
2389
+ # next_token: "NextToken",
2390
+ # max_results: 1,
2391
+ # })
2392
+ #
2393
+ # @example Response structure
2394
+ #
2395
+ # resp.target_domain_summaries #=> Array
2396
+ # resp.target_domain_summaries[0].target_domain_id #=> String
2397
+ # resp.target_domain_summaries[0].domain_name #=> String
2398
+ # resp.target_domain_summaries[0].verification_status #=> String, one of "PENDING", "VERIFIED", "FAILED", "UNREACHABLE"
2399
+ # resp.next_token #=> String
2400
+ #
2401
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/ListTargetDomains AWS API Documentation
2402
+ #
2403
+ # @overload list_target_domains(params = {})
2404
+ # @param [Hash] params ({})
2405
+ def list_target_domains(params = {}, options = {})
2406
+ req = build_request(:list_target_domains, params)
2407
+ req.send_request(options)
2408
+ end
2409
+
2410
+ # Starts code remediation for the specified findings
2411
+ #
2412
+ # @option params [required, String] :agent_space_id
2413
+ # ID of the agent space where the pentest job exists
2414
+ #
2415
+ # @option params [required, String] :pentest_job_id
2416
+ # Identifier of the pentest job to start code remediation for
2417
+ #
2418
+ # @option params [required, Array<String>] :finding_ids
2419
+ # Identifiers of the findings to start code remediation for
2420
+ #
2421
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2422
+ #
2423
+ # @example Request syntax with placeholder values
2424
+ #
2425
+ # resp = client.start_code_remediation({
2426
+ # agent_space_id: "String", # required
2427
+ # pentest_job_id: "String", # required
2428
+ # finding_ids: ["String"], # required
2429
+ # })
2430
+ #
2431
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/StartCodeRemediation AWS API Documentation
2432
+ #
2433
+ # @overload start_code_remediation(params = {})
2434
+ # @param [Hash] params ({})
2435
+ def start_code_remediation(params = {}, options = {})
2436
+ req = build_request(:start_code_remediation, params)
2437
+ req.send_request(options)
2438
+ end
2439
+
2440
+ # Initiates the execution of a pentest
2441
+ #
2442
+ # @option params [required, String] :agent_space_id
2443
+ # ID of the agent space where the pentest exists
2444
+ #
2445
+ # @option params [required, String] :pentest_id
2446
+ # Identifier of the pentest to execute
2447
+ #
2448
+ # @return [Types::StartPentestJobOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2449
+ #
2450
+ # * {Types::StartPentestJobOutput#title #title} => String
2451
+ # * {Types::StartPentestJobOutput#status #status} => String
2452
+ # * {Types::StartPentestJobOutput#created_at #created_at} => Time
2453
+ # * {Types::StartPentestJobOutput#updated_at #updated_at} => Time
2454
+ # * {Types::StartPentestJobOutput#pentest_id #pentest_id} => String
2455
+ # * {Types::StartPentestJobOutput#pentest_job_id #pentest_job_id} => String
2456
+ # * {Types::StartPentestJobOutput#agent_space_id #agent_space_id} => String
2457
+ #
2458
+ # @example Request syntax with placeholder values
2459
+ #
2460
+ # resp = client.start_pentest_job({
2461
+ # agent_space_id: "String", # required
2462
+ # pentest_id: "String", # required
2463
+ # })
2464
+ #
2465
+ # @example Response structure
2466
+ #
2467
+ # resp.title #=> String
2468
+ # resp.status #=> String, one of "IN_PROGRESS", "STOPPING", "STOPPED", "FAILED", "COMPLETED"
2469
+ # resp.created_at #=> Time
2470
+ # resp.updated_at #=> Time
2471
+ # resp.pentest_id #=> String
2472
+ # resp.pentest_job_id #=> String
2473
+ # resp.agent_space_id #=> String
2474
+ #
2475
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/StartPentestJob AWS API Documentation
2476
+ #
2477
+ # @overload start_pentest_job(params = {})
2478
+ # @param [Hash] params ({})
2479
+ def start_pentest_job(params = {}, options = {})
2480
+ req = build_request(:start_pentest_job, params)
2481
+ req.send_request(options)
2482
+ end
2483
+
2484
+ # Stops the execution of a running pentest
2485
+ #
2486
+ # @option params [required, String] :agent_space_id
2487
+ # ID of the agent space where the pentest exists
2488
+ #
2489
+ # @option params [required, String] :pentest_job_id
2490
+ # Identifier of the pentest job to stop
2491
+ #
2492
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2493
+ #
2494
+ # @example Request syntax with placeholder values
2495
+ #
2496
+ # resp = client.stop_pentest_job({
2497
+ # agent_space_id: "String", # required
2498
+ # pentest_job_id: "String", # required
2499
+ # })
2500
+ #
2501
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/StopPentestJob AWS API Documentation
2502
+ #
2503
+ # @overload stop_pentest_job(params = {})
2504
+ # @param [Hash] params ({})
2505
+ def stop_pentest_job(params = {}, options = {})
2506
+ req = build_request(:stop_pentest_job, params)
2507
+ req.send_request(options)
2508
+ end
2509
+
2510
+ # Adds tags to a Security Agent resource
2511
+ #
2512
+ # @option params [required, String] :resource_arn
2513
+ # ARN of the resource to tag
2514
+ #
2515
+ # @option params [required, Hash<String,String>] :tags
2516
+ # Tags to add to the resource
2517
+ #
2518
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2519
+ #
2520
+ # @example Request syntax with placeholder values
2521
+ #
2522
+ # resp = client.tag_resource({
2523
+ # resource_arn: "ResourceArn", # required
2524
+ # tags: { # required
2525
+ # "TagKey" => "TagValue",
2526
+ # },
2527
+ # })
2528
+ #
2529
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/TagResource AWS API Documentation
2530
+ #
2531
+ # @overload tag_resource(params = {})
2532
+ # @param [Hash] params ({})
2533
+ def tag_resource(params = {}, options = {})
2534
+ req = build_request(:tag_resource, params)
2535
+ req.send_request(options)
2536
+ end
2537
+
2538
+ # Removes tags from a Security Agent resource
2539
+ #
2540
+ # @option params [required, String] :resource_arn
2541
+ # ARN of the resource to untag
2542
+ #
2543
+ # @option params [required, Array<String>] :tag_keys
2544
+ # List of tag keys to remove from the resource
2545
+ #
2546
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2547
+ #
2548
+ # @example Request syntax with placeholder values
2549
+ #
2550
+ # resp = client.untag_resource({
2551
+ # resource_arn: "ResourceArn", # required
2552
+ # tag_keys: ["TagKey"], # required
2553
+ # })
2554
+ #
2555
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/UntagResource AWS API Documentation
2556
+ #
2557
+ # @overload untag_resource(params = {})
2558
+ # @param [Hash] params ({})
2559
+ def untag_resource(params = {}, options = {})
2560
+ req = build_request(:untag_resource, params)
2561
+ req.send_request(options)
2562
+ end
2563
+
2564
+ # Updates an agent space record
2565
+ #
2566
+ # @option params [required, String] :agent_space_id
2567
+ # ID of the agent space to update
2568
+ #
2569
+ # @option params [String] :name
2570
+ # Name of the agent space
2571
+ #
2572
+ # @option params [String] :description
2573
+ # Description of the agent space
2574
+ #
2575
+ # @option params [Types::AWSResources] :aws_resources
2576
+ # AWS resource configurations associated with the agent space
2577
+ #
2578
+ # @option params [Array<String>] :target_domain_ids
2579
+ # Target domain IDs to associate with the agent space
2580
+ #
2581
+ # @option params [Types::CodeReviewSettings] :code_review_settings
2582
+ # Configuration for code review analysis, including controls scanning
2583
+ # and general purpose scanning settings
2584
+ #
2585
+ # @return [Types::UpdateAgentSpaceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2586
+ #
2587
+ # * {Types::UpdateAgentSpaceOutput#agent_space_id #agent_space_id} => String
2588
+ # * {Types::UpdateAgentSpaceOutput#name #name} => String
2589
+ # * {Types::UpdateAgentSpaceOutput#description #description} => String
2590
+ # * {Types::UpdateAgentSpaceOutput#aws_resources #aws_resources} => Types::AWSResources
2591
+ # * {Types::UpdateAgentSpaceOutput#target_domain_ids #target_domain_ids} => Array&lt;String&gt;
2592
+ # * {Types::UpdateAgentSpaceOutput#code_review_settings #code_review_settings} => Types::CodeReviewSettings
2593
+ # * {Types::UpdateAgentSpaceOutput#created_at #created_at} => Time
2594
+ # * {Types::UpdateAgentSpaceOutput#updated_at #updated_at} => Time
2595
+ #
2596
+ # @example Request syntax with placeholder values
2597
+ #
2598
+ # resp = client.update_agent_space({
2599
+ # agent_space_id: "AgentSpaceId", # required
2600
+ # name: "AgentName",
2601
+ # description: "String",
2602
+ # aws_resources: {
2603
+ # vpcs: [
2604
+ # {
2605
+ # vpc_arn: "VpcArn",
2606
+ # security_group_arns: ["SecurityGroupArn"],
2607
+ # subnet_arns: ["SubnetArn"],
2608
+ # },
2609
+ # ],
2610
+ # log_groups: ["LogGroupArn"],
2611
+ # s3_buckets: ["S3BucketArn"],
2612
+ # secret_arns: ["SecretArn"],
2613
+ # lambda_function_arns: ["LambdaFunctionArn"],
2614
+ # iam_roles: ["ServiceRole"],
2615
+ # },
2616
+ # target_domain_ids: ["String"],
2617
+ # code_review_settings: {
2618
+ # controls_scanning: false, # required
2619
+ # general_purpose_scanning: false, # required
2620
+ # },
2621
+ # })
2622
+ #
2623
+ # @example Response structure
2624
+ #
2625
+ # resp.agent_space_id #=> String
2626
+ # resp.name #=> String
2627
+ # resp.description #=> String
2628
+ # resp.aws_resources.vpcs #=> Array
2629
+ # resp.aws_resources.vpcs[0].vpc_arn #=> String
2630
+ # resp.aws_resources.vpcs[0].security_group_arns #=> Array
2631
+ # resp.aws_resources.vpcs[0].security_group_arns[0] #=> String
2632
+ # resp.aws_resources.vpcs[0].subnet_arns #=> Array
2633
+ # resp.aws_resources.vpcs[0].subnet_arns[0] #=> String
2634
+ # resp.aws_resources.log_groups #=> Array
2635
+ # resp.aws_resources.log_groups[0] #=> String
2636
+ # resp.aws_resources.s3_buckets #=> Array
2637
+ # resp.aws_resources.s3_buckets[0] #=> String
2638
+ # resp.aws_resources.secret_arns #=> Array
2639
+ # resp.aws_resources.secret_arns[0] #=> String
2640
+ # resp.aws_resources.lambda_function_arns #=> Array
2641
+ # resp.aws_resources.lambda_function_arns[0] #=> String
2642
+ # resp.aws_resources.iam_roles #=> Array
2643
+ # resp.aws_resources.iam_roles[0] #=> String
2644
+ # resp.target_domain_ids #=> Array
2645
+ # resp.target_domain_ids[0] #=> String
2646
+ # resp.code_review_settings.controls_scanning #=> Boolean
2647
+ # resp.code_review_settings.general_purpose_scanning #=> Boolean
2648
+ # resp.created_at #=> Time
2649
+ # resp.updated_at #=> Time
2650
+ #
2651
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/UpdateAgentSpace AWS API Documentation
2652
+ #
2653
+ # @overload update_agent_space(params = {})
2654
+ # @param [Hash] params ({})
2655
+ def update_agent_space(params = {}, options = {})
2656
+ req = build_request(:update_agent_space, params)
2657
+ req.send_request(options)
2658
+ end
2659
+
2660
+ # Updates application configuration
2661
+ #
2662
+ # @option params [required, String] :application_id
2663
+ # Application ID
2664
+ #
2665
+ # @option params [String] :role_arn
2666
+ # ARN of the IAM role that the application uses to access AWS resources
2667
+ # on your behalf
2668
+ #
2669
+ # @option params [String] :default_kms_key_id
2670
+ # Default KMS key identifier. Use an empty string to remove the default
2671
+ # KMS key.
2672
+ #
2673
+ # @return [Types::UpdateApplicationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2674
+ #
2675
+ # * {Types::UpdateApplicationResponse#application_id #application_id} => String
2676
+ #
2677
+ # @example Request syntax with placeholder values
2678
+ #
2679
+ # resp = client.update_application({
2680
+ # application_id: "ApplicationId", # required
2681
+ # role_arn: "RoleArn",
2682
+ # default_kms_key_id: "DefaultKmsKeyId",
2683
+ # })
2684
+ #
2685
+ # @example Response structure
2686
+ #
2687
+ # resp.application_id #=> String
2688
+ #
2689
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/UpdateApplication AWS API Documentation
2690
+ #
2691
+ # @overload update_application(params = {})
2692
+ # @param [Hash] params ({})
2693
+ def update_application(params = {}, options = {})
2694
+ req = build_request(:update_application, params)
2695
+ req.send_request(options)
2696
+ end
2697
+
2698
+ # Updates an existing security finding with new details or status
2699
+ #
2700
+ # @option params [required, String] :finding_id
2701
+ # Identifier of the finding to update
2702
+ #
2703
+ # @option params [required, String] :agent_space_id
2704
+ # ID of the agent space where the finding exists
2705
+ #
2706
+ # @option params [String] :risk_level
2707
+ # Updated severity level of the identified risk
2708
+ #
2709
+ # @option params [String] :status
2710
+ # Updated status of the finding
2711
+ #
2712
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2713
+ #
2714
+ # @example Request syntax with placeholder values
2715
+ #
2716
+ # resp = client.update_finding({
2717
+ # finding_id: "String", # required
2718
+ # agent_space_id: "String", # required
2719
+ # risk_level: "UNKNOWN", # accepts UNKNOWN, INFORMATIONAL, LOW, MEDIUM, HIGH, CRITICAL
2720
+ # status: "ACTIVE", # accepts ACTIVE, RESOLVED, ACCEPTED, FALSE_POSITIVE
2721
+ # })
2722
+ #
2723
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/UpdateFinding AWS API Documentation
2724
+ #
2725
+ # @overload update_finding(params = {})
2726
+ # @param [Hash] params ({})
2727
+ def update_finding(params = {}, options = {})
2728
+ req = build_request(:update_finding, params)
2729
+ req.send_request(options)
2730
+ end
2731
+
2732
+ # Updates the integrated resources for an agent space
2733
+ #
2734
+ # @option params [required, String] :agent_space_id
2735
+ # Unique identifier of the agent space
2736
+ #
2737
+ # @option params [required, String] :integration_id
2738
+ # Unique identifier of the integration
2739
+ #
2740
+ # @option params [required, Array<Types::IntegratedResourceInputItem>] :items
2741
+ # List of integrated resources to update
2742
+ #
2743
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2744
+ #
2745
+ # @example Request syntax with placeholder values
2746
+ #
2747
+ # resp = client.update_integrated_resources({
2748
+ # agent_space_id: "AgentSpaceId", # required
2749
+ # integration_id: "IntegrationId", # required
2750
+ # items: [ # required
2751
+ # {
2752
+ # resource: { # required
2753
+ # github_repository: {
2754
+ # name: "ProviderResourceName", # required
2755
+ # owner: "GitHubOwner", # required
2756
+ # },
2757
+ # },
2758
+ # capabilities: {
2759
+ # github: {
2760
+ # leave_comments: false,
2761
+ # remediate_code: false,
2762
+ # },
2763
+ # },
2764
+ # },
2765
+ # ],
2766
+ # })
2767
+ #
2768
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/UpdateIntegratedResources AWS API Documentation
2769
+ #
2770
+ # @overload update_integrated_resources(params = {})
2771
+ # @param [Hash] params ({})
2772
+ def update_integrated_resources(params = {}, options = {})
2773
+ req = build_request(:update_integrated_resources, params)
2774
+ req.send_request(options)
2775
+ end
2776
+
2777
+ # Updates an existing pentest with new configuration or settings
2778
+ #
2779
+ # @option params [required, String] :pentest_id
2780
+ # Identifier of the pentest to update
2781
+ #
2782
+ # @option params [required, String] :agent_space_id
2783
+ # ID of the agent space where the pentest exists
2784
+ #
2785
+ # @option params [String] :title
2786
+ # New title for the pentest
2787
+ #
2788
+ # @option params [Types::Assets] :assets
2789
+ # Updated assets to be tested
2790
+ #
2791
+ # @option params [Array<String>] :exclude_risk_types
2792
+ # A list of risk types excluded from the pentest execution
2793
+ #
2794
+ # @option params [String] :service_role
2795
+ # Updated service role ARN for accessing customer resources
2796
+ #
2797
+ # @option params [Types::CloudWatchLog] :log_config
2798
+ # CloudWatch log group and stream prefix where pentest execution logs
2799
+ # are stored
2800
+ #
2801
+ # @option params [Types::VpcConfig] :vpc_config
2802
+ # VPC configuration that the Security Agent accesses
2803
+ #
2804
+ # @option params [Types::NetworkTrafficConfig] :network_traffic_config
2805
+ # Configuration for network traffic filtering
2806
+ #
2807
+ # @option params [String] :code_remediation_strategy
2808
+ # Strategy for code remediation on findings
2809
+ #
2810
+ # @return [Types::UpdatePentestOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2811
+ #
2812
+ # * {Types::UpdatePentestOutput#pentest_id #pentest_id} => String
2813
+ # * {Types::UpdatePentestOutput#title #title} => String
2814
+ # * {Types::UpdatePentestOutput#created_at #created_at} => Time
2815
+ # * {Types::UpdatePentestOutput#updated_at #updated_at} => Time
2816
+ # * {Types::UpdatePentestOutput#assets #assets} => Types::Assets
2817
+ # * {Types::UpdatePentestOutput#exclude_risk_types #exclude_risk_types} => Array&lt;String&gt;
2818
+ # * {Types::UpdatePentestOutput#service_role #service_role} => String
2819
+ # * {Types::UpdatePentestOutput#log_config #log_config} => Types::CloudWatchLog
2820
+ # * {Types::UpdatePentestOutput#agent_space_id #agent_space_id} => String
2821
+ #
2822
+ # @example Request syntax with placeholder values
2823
+ #
2824
+ # resp = client.update_pentest({
2825
+ # pentest_id: "String", # required
2826
+ # agent_space_id: "String", # required
2827
+ # title: "String",
2828
+ # assets: {
2829
+ # endpoints: [
2830
+ # {
2831
+ # uri: "String",
2832
+ # },
2833
+ # ],
2834
+ # actors: [
2835
+ # {
2836
+ # identifier: "String",
2837
+ # uris: ["String"],
2838
+ # authentication: {
2839
+ # provider_type: "SECRETS_MANAGER", # accepts SECRETS_MANAGER, AWS_LAMBDA, AWS_IAM_ROLE, AWS_INTERNAL
2840
+ # value: "String",
2841
+ # },
2842
+ # description: "String",
2843
+ # },
2844
+ # ],
2845
+ # documents: [
2846
+ # {
2847
+ # s3_location: "String",
2848
+ # artifact_id: "String",
2849
+ # },
2850
+ # ],
2851
+ # source_code: [
2852
+ # {
2853
+ # s3_location: "String",
2854
+ # },
2855
+ # ],
2856
+ # integrated_repositories: [
2857
+ # {
2858
+ # integration_id: "String", # required
2859
+ # provider_resource_id: "String", # required
2860
+ # },
2861
+ # ],
2862
+ # },
2863
+ # exclude_risk_types: ["CROSS_SITE_SCRIPTING"], # accepts CROSS_SITE_SCRIPTING, DEFAULT_CREDENTIALS, INSECURE_DIRECT_OBJECT_REFERENCE, PRIVILEGE_ESCALATION, SERVER_SIDE_TEMPLATE_INJECTION, COMMAND_INJECTION, CODE_INJECTION, SQL_INJECTION, ARBITRARY_FILE_UPLOAD, INSECURE_DESERIALIZATION, LOCAL_FILE_INCLUSION, INFORMATION_DISCLOSURE, PATH_TRAVERSAL, SERVER_SIDE_REQUEST_FORGERY, JSON_WEB_TOKEN_VULNERABILITIES, XML_EXTERNAL_ENTITY, FILE_DELETION, OTHER, GRAPHQL_VULNERABILITIES, BUSINESS_LOGIC_VULNERABILITIES, CRYPTOGRAPHIC_VULNERABILITIES, DENIAL_OF_SERVICE, FILE_ACCESS, FILE_CREATION, DATABASE_MODIFICATION, DATABASE_ACCESS, OUTBOUND_SERVICE_REQUEST, UNKNOWN
2864
+ # service_role: "ServiceRole",
2865
+ # log_config: {
2866
+ # log_group: "String",
2867
+ # log_stream: "String",
2868
+ # },
2869
+ # vpc_config: {
2870
+ # vpc_arn: "VpcArn",
2871
+ # security_group_arns: ["SecurityGroupArn"],
2872
+ # subnet_arns: ["SubnetArn"],
2873
+ # },
2874
+ # network_traffic_config: {
2875
+ # rules: [
2876
+ # {
2877
+ # effect: "ALLOW", # accepts ALLOW, DENY
2878
+ # pattern: "String",
2879
+ # network_traffic_rule_type: "URL", # accepts URL
2880
+ # },
2881
+ # ],
2882
+ # custom_headers: [
2883
+ # {
2884
+ # name: "String",
2885
+ # value: "String",
2886
+ # },
2887
+ # ],
2888
+ # },
2889
+ # code_remediation_strategy: "AUTOMATIC", # accepts AUTOMATIC, DISABLED
2890
+ # })
2891
+ #
2892
+ # @example Response structure
2893
+ #
2894
+ # resp.pentest_id #=> String
2895
+ # resp.title #=> String
2896
+ # resp.created_at #=> Time
2897
+ # resp.updated_at #=> Time
2898
+ # resp.assets.endpoints #=> Array
2899
+ # resp.assets.endpoints[0].uri #=> String
2900
+ # resp.assets.actors #=> Array
2901
+ # resp.assets.actors[0].identifier #=> String
2902
+ # resp.assets.actors[0].uris #=> Array
2903
+ # resp.assets.actors[0].uris[0] #=> String
2904
+ # resp.assets.actors[0].authentication.provider_type #=> String, one of "SECRETS_MANAGER", "AWS_LAMBDA", "AWS_IAM_ROLE", "AWS_INTERNAL"
2905
+ # resp.assets.actors[0].authentication.value #=> String
2906
+ # resp.assets.actors[0].description #=> String
2907
+ # resp.assets.documents #=> Array
2908
+ # resp.assets.documents[0].s3_location #=> String
2909
+ # resp.assets.documents[0].artifact_id #=> String
2910
+ # resp.assets.source_code #=> Array
2911
+ # resp.assets.source_code[0].s3_location #=> String
2912
+ # resp.assets.integrated_repositories #=> Array
2913
+ # resp.assets.integrated_repositories[0].integration_id #=> String
2914
+ # resp.assets.integrated_repositories[0].provider_resource_id #=> String
2915
+ # resp.exclude_risk_types #=> Array
2916
+ # resp.exclude_risk_types[0] #=> String, one of "CROSS_SITE_SCRIPTING", "DEFAULT_CREDENTIALS", "INSECURE_DIRECT_OBJECT_REFERENCE", "PRIVILEGE_ESCALATION", "SERVER_SIDE_TEMPLATE_INJECTION", "COMMAND_INJECTION", "CODE_INJECTION", "SQL_INJECTION", "ARBITRARY_FILE_UPLOAD", "INSECURE_DESERIALIZATION", "LOCAL_FILE_INCLUSION", "INFORMATION_DISCLOSURE", "PATH_TRAVERSAL", "SERVER_SIDE_REQUEST_FORGERY", "JSON_WEB_TOKEN_VULNERABILITIES", "XML_EXTERNAL_ENTITY", "FILE_DELETION", "OTHER", "GRAPHQL_VULNERABILITIES", "BUSINESS_LOGIC_VULNERABILITIES", "CRYPTOGRAPHIC_VULNERABILITIES", "DENIAL_OF_SERVICE", "FILE_ACCESS", "FILE_CREATION", "DATABASE_MODIFICATION", "DATABASE_ACCESS", "OUTBOUND_SERVICE_REQUEST", "UNKNOWN"
2917
+ # resp.service_role #=> String
2918
+ # resp.log_config.log_group #=> String
2919
+ # resp.log_config.log_stream #=> String
2920
+ # resp.agent_space_id #=> String
2921
+ #
2922
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/UpdatePentest AWS API Documentation
2923
+ #
2924
+ # @overload update_pentest(params = {})
2925
+ # @param [Hash] params ({})
2926
+ def update_pentest(params = {}, options = {})
2927
+ req = build_request(:update_pentest, params)
2928
+ req.send_request(options)
2929
+ end
2930
+
2931
+ # Updates a target domain record
2932
+ #
2933
+ # @option params [required, String] :target_domain_id
2934
+ # Unique identifier of the target domain to update
2935
+ #
2936
+ # @option params [required, String] :verification_method
2937
+ # Verification method for the target domain
2938
+ #
2939
+ # @return [Types::UpdateTargetDomainOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2940
+ #
2941
+ # * {Types::UpdateTargetDomainOutput#target_domain_id #target_domain_id} => String
2942
+ # * {Types::UpdateTargetDomainOutput#domain_name #domain_name} => String
2943
+ # * {Types::UpdateTargetDomainOutput#verification_status #verification_status} => String
2944
+ # * {Types::UpdateTargetDomainOutput#verification_details #verification_details} => Types::VerificationDetails
2945
+ # * {Types::UpdateTargetDomainOutput#created_at #created_at} => Time
2946
+ # * {Types::UpdateTargetDomainOutput#verified_at #verified_at} => Time
2947
+ #
2948
+ # @example Request syntax with placeholder values
2949
+ #
2950
+ # resp = client.update_target_domain({
2951
+ # target_domain_id: "TargetDomainId", # required
2952
+ # verification_method: "DNS_TXT", # required, accepts DNS_TXT, HTTP_ROUTE
2953
+ # })
2954
+ #
2955
+ # @example Response structure
2956
+ #
2957
+ # resp.target_domain_id #=> String
2958
+ # resp.domain_name #=> String
2959
+ # resp.verification_status #=> String, one of "PENDING", "VERIFIED", "FAILED", "UNREACHABLE"
2960
+ # resp.verification_details.method #=> String, one of "DNS_TXT", "HTTP_ROUTE"
2961
+ # resp.verification_details.dns_txt.token #=> String
2962
+ # resp.verification_details.dns_txt.dns_record_name #=> String
2963
+ # resp.verification_details.dns_txt.dns_record_type #=> String, one of "TXT"
2964
+ # resp.verification_details.http_route.token #=> String
2965
+ # resp.verification_details.http_route.route_path #=> String
2966
+ # resp.created_at #=> Time
2967
+ # resp.verified_at #=> Time
2968
+ #
2969
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/UpdateTargetDomain AWS API Documentation
2970
+ #
2971
+ # @overload update_target_domain(params = {})
2972
+ # @param [Hash] params ({})
2973
+ def update_target_domain(params = {}, options = {})
2974
+ req = build_request(:update_target_domain, params)
2975
+ req.send_request(options)
2976
+ end
2977
+
2978
+ # Verifies ownership for a registered target domain
2979
+ #
2980
+ # @option params [required, String] :target_domain_id
2981
+ # Unique identifier of the target domain
2982
+ #
2983
+ # @return [Types::VerifyTargetDomainOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2984
+ #
2985
+ # * {Types::VerifyTargetDomainOutput#target_domain_id #target_domain_id} => String
2986
+ # * {Types::VerifyTargetDomainOutput#domain_name #domain_name} => String
2987
+ # * {Types::VerifyTargetDomainOutput#created_at #created_at} => Time
2988
+ # * {Types::VerifyTargetDomainOutput#updated_at #updated_at} => Time
2989
+ # * {Types::VerifyTargetDomainOutput#verified_at #verified_at} => Time
2990
+ # * {Types::VerifyTargetDomainOutput#status #status} => String
2991
+ #
2992
+ # @example Request syntax with placeholder values
2993
+ #
2994
+ # resp = client.verify_target_domain({
2995
+ # target_domain_id: "TargetDomainId", # required
2996
+ # })
2997
+ #
2998
+ # @example Response structure
2999
+ #
3000
+ # resp.target_domain_id #=> String
3001
+ # resp.domain_name #=> String
3002
+ # resp.created_at #=> Time
3003
+ # resp.updated_at #=> Time
3004
+ # resp.verified_at #=> Time
3005
+ # resp.status #=> String, one of "PENDING", "VERIFIED", "FAILED", "UNREACHABLE"
3006
+ #
3007
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityagent-2025-09-06/VerifyTargetDomain AWS API Documentation
3008
+ #
3009
+ # @overload verify_target_domain(params = {})
3010
+ # @param [Hash] params ({})
3011
+ def verify_target_domain(params = {}, options = {})
3012
+ req = build_request(:verify_target_domain, params)
3013
+ req.send_request(options)
3014
+ end
3015
+
3016
+ # @!endgroup
3017
+
3018
+ # @param params ({})
3019
+ # @api private
3020
+ def build_request(operation_name, params = {})
3021
+ handlers = @handlers.for(operation_name)
3022
+ tracer = config.telemetry_provider.tracer_provider.tracer(
3023
+ Aws::Telemetry.module_to_tracer_name('Aws::SecurityAgent')
3024
+ )
3025
+ context = Seahorse::Client::RequestContext.new(
3026
+ operation_name: operation_name,
3027
+ operation: config.api.operation(operation_name),
3028
+ client: self,
3029
+ params: params,
3030
+ config: config,
3031
+ tracer: tracer
3032
+ )
3033
+ context[:gem_name] = 'aws-sdk-securityagent'
3034
+ context[:gem_version] = '1.0.0'
3035
+ Seahorse::Client::Request.new(handlers, context)
3036
+ end
3037
+
3038
+ # @api private
3039
+ # @deprecated
3040
+ def waiter_names
3041
+ []
3042
+ end
3043
+
3044
+ class << self
3045
+
3046
+ # @api private
3047
+ attr_reader :identifier
3048
+
3049
+ # @api private
3050
+ def errors_module
3051
+ Errors
3052
+ end
3053
+
3054
+ end
3055
+ end
3056
+ end