aws-sdk-devopsagent 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,3635 @@
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
+ require 'aws-sdk-core/plugins/event_stream_configuration'
39
+
40
+ module Aws::DevOpsAgent
41
+ # An API client for DevOpsAgent. To construct a client, you need to configure a `:region` and `:credentials`.
42
+ #
43
+ # client = Aws::DevOpsAgent::Client.new(
44
+ # region: region_name,
45
+ # credentials: credentials,
46
+ # # ...
47
+ # )
48
+ #
49
+ # For details on configuring region and credentials see
50
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
51
+ #
52
+ # See {#initialize} for a full list of supported configuration options.
53
+ class Client < Seahorse::Client::Base
54
+
55
+ include Aws::ClientStubs
56
+
57
+ @identifier = :devopsagent
58
+
59
+ set_api(ClientApi::API)
60
+
61
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
62
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
63
+ add_plugin(Aws::Plugins::Logging)
64
+ add_plugin(Aws::Plugins::ParamConverter)
65
+ add_plugin(Aws::Plugins::ParamValidator)
66
+ add_plugin(Aws::Plugins::UserAgent)
67
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
68
+ add_plugin(Aws::Plugins::RetryErrors)
69
+ add_plugin(Aws::Plugins::GlobalConfiguration)
70
+ add_plugin(Aws::Plugins::RegionalEndpoint)
71
+ add_plugin(Aws::Plugins::EndpointDiscovery)
72
+ add_plugin(Aws::Plugins::EndpointPattern)
73
+ add_plugin(Aws::Plugins::ResponsePaging)
74
+ add_plugin(Aws::Plugins::StubResponses)
75
+ add_plugin(Aws::Plugins::IdempotencyToken)
76
+ add_plugin(Aws::Plugins::InvocationId)
77
+ add_plugin(Aws::Plugins::JsonvalueConverter)
78
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
79
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
80
+ add_plugin(Aws::Plugins::TransferEncoding)
81
+ add_plugin(Aws::Plugins::HttpChecksum)
82
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
83
+ add_plugin(Aws::Plugins::RequestCompression)
84
+ add_plugin(Aws::Plugins::DefaultsMode)
85
+ add_plugin(Aws::Plugins::RecursionDetection)
86
+ add_plugin(Aws::Plugins::Telemetry)
87
+ add_plugin(Aws::Plugins::Sign)
88
+ add_plugin(Aws::Plugins::Protocols::RestJson)
89
+ add_plugin(Aws::Plugins::EventStreamConfiguration)
90
+ add_plugin(Aws::DevOpsAgent::Plugins::Endpoints)
91
+
92
+ # @overload initialize(options)
93
+ # @param [Hash] options
94
+ #
95
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
96
+ # A list of plugins to apply to the client. Each plugin is either a
97
+ # class name or an instance of a plugin class.
98
+ #
99
+ # @option options [required, Aws::CredentialProvider] :credentials
100
+ # Your AWS credentials used for authentication. This can be any class that includes and implements
101
+ # `Aws::CredentialProvider`, or instance of any one of the following classes:
102
+ #
103
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
104
+ # credentials.
105
+ #
106
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
107
+ # shared file, such as `~/.aws/config`.
108
+ #
109
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
110
+ #
111
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
112
+ # assume a role after providing credentials via the web.
113
+ #
114
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
115
+ # access token generated from `aws login`.
116
+ #
117
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
118
+ # process that outputs to stdout.
119
+ #
120
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
121
+ # from an EC2 IMDS on an EC2 instance.
122
+ #
123
+ # * `Aws::ECSCredentials` - Used for loading credentials from
124
+ # instances running in ECS.
125
+ #
126
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
127
+ # from the Cognito Identity service.
128
+ #
129
+ # When `:credentials` are not configured directly, the following locations will be searched for credentials:
130
+ #
131
+ # * `Aws.config[:credentials]`
132
+ #
133
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
134
+ # `:account_id` options.
135
+ #
136
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
137
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
138
+ #
139
+ # * `~/.aws/credentials`
140
+ #
141
+ # * `~/.aws/config`
142
+ #
143
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
144
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
145
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
146
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
147
+ #
148
+ # @option options [required, String] :region
149
+ # The AWS region to connect to. The configured `:region` is
150
+ # used to determine the service `:endpoint`. When not passed,
151
+ # a default `:region` is searched for in the following locations:
152
+ #
153
+ # * `Aws.config[:region]`
154
+ # * `ENV['AWS_REGION']`
155
+ # * `ENV['AMAZON_REGION']`
156
+ # * `ENV['AWS_DEFAULT_REGION']`
157
+ # * `~/.aws/credentials`
158
+ # * `~/.aws/config`
159
+ #
160
+ # @option options [String] :access_key_id
161
+ #
162
+ # @option options [String] :account_id
163
+ #
164
+ # @option options [Boolean] :active_endpoint_cache (false)
165
+ # When set to `true`, a thread polling for endpoints will be running in
166
+ # the background every 60 secs (default). Defaults to `false`.
167
+ #
168
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
169
+ # Used only in `adaptive` retry mode. When true, the request will sleep
170
+ # until there is sufficent client side capacity to retry the request.
171
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
172
+ # not retry instead of sleeping.
173
+ #
174
+ # @option options [Array<String>] :auth_scheme_preference
175
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
176
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
177
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
178
+ #
179
+ # @option options [Boolean] :client_side_monitoring (false)
180
+ # When `true`, client-side metrics will be collected for all API requests from
181
+ # this client.
182
+ #
183
+ # @option options [String] :client_side_monitoring_client_id ("")
184
+ # Allows you to provide an identifier for this client which will be attached to
185
+ # all generated client side metrics. Defaults to an empty string.
186
+ #
187
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
188
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
189
+ # side monitoring agent is running on, where client metrics will be published via UDP.
190
+ #
191
+ # @option options [Integer] :client_side_monitoring_port (31000)
192
+ # Required for publishing client metrics. The port that the client side monitoring
193
+ # agent is running on, where client metrics will be published via UDP.
194
+ #
195
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
196
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
197
+ # will use the Client Side Monitoring Agent Publisher.
198
+ #
199
+ # @option options [Boolean] :convert_params (true)
200
+ # When `true`, an attempt is made to coerce request parameters into
201
+ # the required types.
202
+ #
203
+ # @option options [Boolean] :correct_clock_skew (true)
204
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
205
+ # a clock skew correction and retry requests with skewed client clocks.
206
+ #
207
+ # @option options [String] :defaults_mode ("legacy")
208
+ # See {Aws::DefaultsModeConfiguration} for a list of the
209
+ # accepted modes and the configuration defaults that are included.
210
+ #
211
+ # @option options [Boolean] :disable_host_prefix_injection (false)
212
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
213
+ #
214
+ # @option options [Boolean] :disable_request_compression (false)
215
+ # When set to 'true' the request body will not be compressed
216
+ # for supported operations.
217
+ #
218
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
219
+ # Normally you should not configure the `:endpoint` option
220
+ # directly. This is normally constructed from the `:region`
221
+ # option. Configuring `:endpoint` is normally reserved for
222
+ # connecting to test or custom endpoints. The endpoint should
223
+ # be a URI formatted like:
224
+ #
225
+ # 'http://example.com'
226
+ # 'https://example.com'
227
+ # 'http://example.com:123'
228
+ #
229
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
230
+ # Used for the maximum size limit of the LRU cache storing endpoints data
231
+ # for endpoint discovery enabled operations. Defaults to 1000.
232
+ #
233
+ # @option options [Integer] :endpoint_cache_max_threads (10)
234
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
235
+ #
236
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
237
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
238
+ # Use this option to config the time interval in seconds for making
239
+ # requests fetching endpoints information. Defaults to 60 sec.
240
+ #
241
+ # @option options [Boolean] :endpoint_discovery (false)
242
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
243
+ #
244
+ # @option options [Proc] :event_stream_handler
245
+ # When an EventStream or Proc object is provided, it will be used as callback for each chunk of event stream response received along the way.
246
+ #
247
+ # @option options [Boolean] :ignore_configured_endpoint_urls
248
+ # Setting to true disables use of endpoint URLs provided via environment
249
+ # variables and the shared configuration file.
250
+ #
251
+ # @option options [Proc] :input_event_stream_handler
252
+ # When an EventStream or Proc object is provided, it can be used for sending events for the event stream.
253
+ #
254
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
255
+ # The log formatter.
256
+ #
257
+ # @option options [Symbol] :log_level (:info)
258
+ # The log level to send messages to the `:logger` at.
259
+ #
260
+ # @option options [Logger] :logger
261
+ # The Logger instance to send log messages to. If this option
262
+ # is not set, logging will be disabled.
263
+ #
264
+ # @option options [Integer] :max_attempts (3)
265
+ # An integer representing the maximum number attempts that will be made for
266
+ # a single request, including the initial attempt. For example,
267
+ # setting this value to 5 will result in a request being retried up to
268
+ # 4 times. Used in `standard` and `adaptive` retry modes.
269
+ #
270
+ # @option options [Proc] :output_event_stream_handler
271
+ # When an EventStream or Proc object is provided, it will be used as callback for each chunk of event stream response received along the way.
272
+ #
273
+ # @option options [String] :profile ("default")
274
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
275
+ # When not specified, 'default' is used.
276
+ #
277
+ # @option options [String] :request_checksum_calculation ("when_supported")
278
+ # Determines when a checksum will be calculated for request payloads. Values are:
279
+ #
280
+ # * `when_supported` - (default) When set, a checksum will be
281
+ # calculated for all request payloads of operations modeled with the
282
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
283
+ # `requestAlgorithmMember` is modeled.
284
+ # * `when_required` - When set, a checksum will only be calculated for
285
+ # request payloads of operations modeled with the `httpChecksum` trait where
286
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
287
+ # is modeled and supplied.
288
+ #
289
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
290
+ # The minimum size in bytes that triggers compression for request
291
+ # bodies. The value must be non-negative integer value between 0
292
+ # and 10485780 bytes inclusive.
293
+ #
294
+ # @option options [String] :response_checksum_validation ("when_supported")
295
+ # Determines when checksum validation will be performed on response payloads. Values are:
296
+ #
297
+ # * `when_supported` - (default) When set, checksum validation is performed on all
298
+ # response payloads of operations modeled with the `httpChecksum` trait where
299
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
300
+ # are supported.
301
+ # * `when_required` - When set, checksum validation is not performed on
302
+ # response payloads of operations unless the checksum algorithm is supported and
303
+ # the `requestValidationModeMember` member is set to `ENABLED`.
304
+ #
305
+ # @option options [Proc] :retry_backoff
306
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
307
+ # This option is only used in the `legacy` retry mode.
308
+ #
309
+ # @option options [Float] :retry_base_delay (0.3)
310
+ # The base delay in seconds used by the default backoff function. This option
311
+ # is only used in the `legacy` retry mode.
312
+ #
313
+ # @option options [Symbol] :retry_jitter (:none)
314
+ # A delay randomiser function used by the default backoff function.
315
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
316
+ # otherwise a Proc that takes and returns a number. This option is only used
317
+ # in the `legacy` retry mode.
318
+ #
319
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
320
+ #
321
+ # @option options [Integer] :retry_limit (3)
322
+ # The maximum number of times to retry failed requests. Only
323
+ # ~ 500 level server errors and certain ~ 400 level client errors
324
+ # are retried. Generally, these are throttling errors, data
325
+ # checksum errors, networking errors, timeout errors, auth errors,
326
+ # endpoint discovery, and errors from expired credentials.
327
+ # This option is only used in the `legacy` retry mode.
328
+ #
329
+ # @option options [Integer] :retry_max_delay (0)
330
+ # The maximum number of seconds to delay between retries (0 for no limit)
331
+ # used by the default backoff function. This option is only used in the
332
+ # `legacy` retry mode.
333
+ #
334
+ # @option options [String] :retry_mode ("legacy")
335
+ # Specifies which retry algorithm to use. Values are:
336
+ #
337
+ # * `legacy` - The pre-existing retry behavior. This is default value if
338
+ # no retry mode is provided.
339
+ #
340
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
341
+ # This includes support for retry quotas, which limit the number of
342
+ # unsuccessful retries a client can make.
343
+ #
344
+ # * `adaptive` - An experimental retry mode that includes all the
345
+ # functionality of `standard` mode along with automatic client side
346
+ # throttling. This is a provisional mode that may change behavior
347
+ # in the future.
348
+ #
349
+ # @option options [String] :sdk_ua_app_id
350
+ # A unique and opaque application ID that is appended to the
351
+ # User-Agent header as app/sdk_ua_app_id. It should have a
352
+ # maximum length of 50. This variable is sourced from environment
353
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
354
+ #
355
+ # @option options [String] :secret_access_key
356
+ #
357
+ # @option options [String] :session_token
358
+ #
359
+ # @option options [Array] :sigv4a_signing_region_set
360
+ # A list of regions that should be signed with SigV4a signing. When
361
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
362
+ # in the following locations:
363
+ #
364
+ # * `Aws.config[:sigv4a_signing_region_set]`
365
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
366
+ # * `~/.aws/config`
367
+ #
368
+ # @option options [Boolean] :stub_responses (false)
369
+ # Causes the client to return stubbed responses. By default
370
+ # fake responses are generated and returned. You can specify
371
+ # the response data to return or errors to raise by calling
372
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
373
+ #
374
+ # ** Please note ** When response stubbing is enabled, no HTTP
375
+ # requests are made, and retries are disabled.
376
+ #
377
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
378
+ # Allows you to provide a telemetry provider, which is used to
379
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
380
+ # will not record or emit any telemetry data. The SDK supports the
381
+ # following telemetry providers:
382
+ #
383
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
384
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
385
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
386
+ #
387
+ # @option options [Aws::TokenProvider] :token_provider
388
+ # Your Bearer token used for authentication. This can be any class that includes and implements
389
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
390
+ #
391
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
392
+ # tokens.
393
+ #
394
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
395
+ # access token generated from `aws login`.
396
+ #
397
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
398
+ # will be used to search for tokens configured for your profile in shared configuration files.
399
+ #
400
+ # @option options [Boolean] :use_dualstack_endpoint
401
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
402
+ # will be used if available.
403
+ #
404
+ # @option options [Boolean] :use_fips_endpoint
405
+ # When set to `true`, fips compatible endpoints will be used if available.
406
+ # When a `fips` region is used, the region is normalized and this config
407
+ # is set to `true`.
408
+ #
409
+ # @option options [Boolean] :validate_params (true)
410
+ # When `true`, request parameters are validated before
411
+ # sending the request.
412
+ #
413
+ # @option options [Aws::DevOpsAgent::EndpointProvider] :endpoint_provider
414
+ # The endpoint provider used to resolve endpoints. Any object that responds to
415
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
416
+ # `Aws::DevOpsAgent::EndpointParameters`.
417
+ #
418
+ # @option options [Float] :http_continue_timeout (1)
419
+ # The number of seconds to wait for a 100-continue response before sending the
420
+ # request body. This option has no effect unless the request has "Expect"
421
+ # header set to "100-continue". Defaults to `nil` which disables this
422
+ # behaviour. This value can safely be set per request on the session.
423
+ #
424
+ # @option options [Float] :http_idle_timeout (5)
425
+ # The number of seconds a connection is allowed to sit idle before it
426
+ # is considered stale. Stale connections are closed and removed from the
427
+ # pool before making a request.
428
+ #
429
+ # @option options [Float] :http_open_timeout (15)
430
+ # The default number of seconds to wait for response data.
431
+ # This value can safely be set per-request on the session.
432
+ #
433
+ # @option options [URI::HTTP,String] :http_proxy
434
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
435
+ #
436
+ # @option options [Float] :http_read_timeout (60)
437
+ # The default number of seconds to wait for response data.
438
+ # This value can safely be set per-request on the session.
439
+ #
440
+ # @option options [Boolean] :http_wire_trace (false)
441
+ # When `true`, HTTP debug output will be sent to the `:logger`.
442
+ #
443
+ # @option options [Proc] :on_chunk_received
444
+ # When a Proc object is provided, it will be used as callback when each chunk
445
+ # of the response body is received. It provides three arguments: the chunk,
446
+ # the number of bytes received, and the total number of
447
+ # bytes in the response (or nil if the server did not send a `content-length`).
448
+ #
449
+ # @option options [Proc] :on_chunk_sent
450
+ # When a Proc object is provided, it will be used as callback when each chunk
451
+ # of the request body is sent. It provides three arguments: the chunk,
452
+ # the number of bytes read from the body, and the total number of
453
+ # bytes in the body.
454
+ #
455
+ # @option options [Boolean] :raise_response_errors (true)
456
+ # When `true`, response errors are raised.
457
+ #
458
+ # @option options [String] :ssl_ca_bundle
459
+ # Full path to the SSL certificate authority bundle file that should be used when
460
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
461
+ # `:ssl_ca_directory` the the system default will be used if available.
462
+ #
463
+ # @option options [String] :ssl_ca_directory
464
+ # Full path of the directory that contains the unbundled SSL certificate
465
+ # authority files for verifying peer certificates. If you do
466
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
467
+ # default will be used if available.
468
+ #
469
+ # @option options [String] :ssl_ca_store
470
+ # Sets the X509::Store to verify peer certificate.
471
+ #
472
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
473
+ # Sets a client certificate when creating http connections.
474
+ #
475
+ # @option options [OpenSSL::PKey] :ssl_key
476
+ # Sets a client key when creating http connections.
477
+ #
478
+ # @option options [Float] :ssl_timeout
479
+ # Sets the SSL timeout in seconds
480
+ #
481
+ # @option options [Boolean] :ssl_verify_peer (true)
482
+ # When `true`, SSL peer certificates are verified when establishing a connection.
483
+ #
484
+ def initialize(*args)
485
+ super
486
+ end
487
+
488
+ # @!group API Operations
489
+
490
+ # Authorize Ingestion Hub subscription operation. Looks to see if the
491
+ # derived accountId from FAS has an AgentSpace.
492
+ #
493
+ # @option params [required, String] :resource_arn_being_authorized
494
+ # The ARN of the resource being authorized for vended log delivery.
495
+ #
496
+ # @option params [required, String] :delivery_source_arn
497
+ # The ARN of the delivery source for vended log delivery.
498
+ #
499
+ # @option params [String] :log_type
500
+ # The type of log to be delivered.
501
+ #
502
+ # @return [Types::AllowVendedLogDeliveryForResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
503
+ #
504
+ # * {Types::AllowVendedLogDeliveryForResourceOutput#message #message} => String
505
+ #
506
+ # @example Request syntax with placeholder values
507
+ #
508
+ # resp = client.allow_vended_log_delivery_for_resource({
509
+ # resource_arn_being_authorized: "String", # required
510
+ # delivery_source_arn: "AllowVendedLogDeliveryForResourceInputDeliverySourceArnString", # required
511
+ # log_type: "String",
512
+ # })
513
+ #
514
+ # @example Response structure
515
+ #
516
+ # resp.message #=> String
517
+ #
518
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/AllowVendedLogDeliveryForResource AWS API Documentation
519
+ #
520
+ # @overload allow_vended_log_delivery_for_resource(params = {})
521
+ # @param [Hash] params ({})
522
+ def allow_vended_log_delivery_for_resource(params = {}, options = {})
523
+ req = build_request(:allow_vended_log_delivery_for_resource, params)
524
+ req.send_request(options)
525
+ end
526
+
527
+ # Adds a specific service association to an AgentSpace. It overwrites
528
+ # the existing association of the same service. Returns 201 Created on
529
+ # success.
530
+ #
531
+ # @option params [required, String] :agent_space_id
532
+ # The unique identifier of the AgentSpace
533
+ #
534
+ # @option params [required, String] :service_id
535
+ # The unique identifier of the service.
536
+ #
537
+ # @option params [required, Types::ServiceConfiguration] :configuration
538
+ # The configuration that directs how AgentSpace interacts with the given
539
+ # service.
540
+ #
541
+ # @return [Types::AssociateServiceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
542
+ #
543
+ # * {Types::AssociateServiceOutput#association #association} => Types::Association
544
+ # * {Types::AssociateServiceOutput#webhook #webhook} => Types::GenericWebhook
545
+ #
546
+ # @example Request syntax with placeholder values
547
+ #
548
+ # resp = client.associate_service({
549
+ # agent_space_id: "AgentSpaceId", # required
550
+ # service_id: "ServiceId", # required
551
+ # configuration: { # required
552
+ # source_aws: {
553
+ # account_id: "SourceAwsConfigurationAccountIdString", # required
554
+ # account_type: "source", # required, accepts source
555
+ # assumable_role_arn: "RoleArn", # required
556
+ # external_id: "String",
557
+ # },
558
+ # aws: {
559
+ # assumable_role_arn: "RoleArn", # required
560
+ # account_id: "AWSConfigurationAccountIdString", # required
561
+ # account_type: "monitor", # required, accepts monitor
562
+ # },
563
+ # github: {
564
+ # repo_name: "String", # required
565
+ # repo_id: "String", # required
566
+ # owner: "String", # required
567
+ # owner_type: "organization", # required, accepts organization, user
568
+ # instance_identifier: "String",
569
+ # },
570
+ # slack: {
571
+ # workspace_id: "SlackConfigurationWorkspaceIdString", # required
572
+ # workspace_name: "String", # required
573
+ # transmission_target: { # required
574
+ # ops_oncall_target: { # required
575
+ # channel_name: "String",
576
+ # channel_id: "SlackChannelChannelIdString", # required
577
+ # },
578
+ # ops_sre_target: {
579
+ # channel_name: "String",
580
+ # channel_id: "SlackChannelChannelIdString", # required
581
+ # },
582
+ # },
583
+ # },
584
+ # dynatrace: {
585
+ # env_id: "String", # required
586
+ # resources: ["String"],
587
+ # },
588
+ # servicenow: {
589
+ # instance_id: "String",
590
+ # auth_scopes: ["String"],
591
+ # },
592
+ # mcpservernewrelic: {
593
+ # account_id: "MCPServerNewRelicConfigurationAccountIdString", # required
594
+ # endpoint: "MCPServerNewRelicConfigurationEndpointString", # required
595
+ # },
596
+ # gitlab: {
597
+ # project_id: "String", # required
598
+ # project_path: "String", # required
599
+ # instance_identifier: "String",
600
+ # },
601
+ # event_channel: {
602
+ # },
603
+ # azure: {
604
+ # subscription_id: "String", # required
605
+ # },
606
+ # azuredevops: {
607
+ # organization_name: "String", # required
608
+ # project_id: "String", # required
609
+ # project_name: "String", # required
610
+ # },
611
+ # mcpservergrafana: {
612
+ # endpoint: "MCPServerGrafanaConfigurationEndpointString", # required
613
+ # organization_id: "MCPServerGrafanaConfigurationOrganizationIdString",
614
+ # tools: ["MCPToolsListMemberString"],
615
+ # },
616
+ # pagerduty: {
617
+ # services: ["String"], # required
618
+ # customer_email: "EmailAddress", # required
619
+ # },
620
+ # msteams: {
621
+ # team_id: "Guid", # required
622
+ # team_name: "String", # required
623
+ # transmission_target: { # required
624
+ # ops_oncall_target: {
625
+ # channel_name: "String", # required
626
+ # channel_id: "Guid", # required
627
+ # },
628
+ # ops_sre_target: {
629
+ # channel_name: "String", # required
630
+ # channel_id: "Guid", # required
631
+ # },
632
+ # },
633
+ # },
634
+ # },
635
+ # })
636
+ #
637
+ # @example Response structure
638
+ #
639
+ # resp.association.agent_space_id #=> String
640
+ # resp.association.created_at #=> Time
641
+ # resp.association.updated_at #=> Time
642
+ # resp.association.status #=> String, one of "valid", "invalid", "pending-confirmation"
643
+ # resp.association.association_id #=> String
644
+ # resp.association.service_id #=> String
645
+ # resp.association.configuration.source_aws.account_id #=> String
646
+ # resp.association.configuration.source_aws.account_type #=> String, one of "source"
647
+ # resp.association.configuration.source_aws.assumable_role_arn #=> String
648
+ # resp.association.configuration.source_aws.external_id #=> String
649
+ # resp.association.configuration.aws.assumable_role_arn #=> String
650
+ # resp.association.configuration.aws.account_id #=> String
651
+ # resp.association.configuration.aws.account_type #=> String, one of "monitor"
652
+ # resp.association.configuration.github.repo_name #=> String
653
+ # resp.association.configuration.github.repo_id #=> String
654
+ # resp.association.configuration.github.owner #=> String
655
+ # resp.association.configuration.github.owner_type #=> String, one of "organization", "user"
656
+ # resp.association.configuration.github.instance_identifier #=> String
657
+ # resp.association.configuration.slack.workspace_id #=> String
658
+ # resp.association.configuration.slack.workspace_name #=> String
659
+ # resp.association.configuration.slack.transmission_target.ops_oncall_target.channel_name #=> String
660
+ # resp.association.configuration.slack.transmission_target.ops_oncall_target.channel_id #=> String
661
+ # resp.association.configuration.slack.transmission_target.ops_sre_target.channel_name #=> String
662
+ # resp.association.configuration.slack.transmission_target.ops_sre_target.channel_id #=> String
663
+ # resp.association.configuration.dynatrace.env_id #=> String
664
+ # resp.association.configuration.dynatrace.resources #=> Array
665
+ # resp.association.configuration.dynatrace.resources[0] #=> String
666
+ # resp.association.configuration.servicenow.instance_id #=> String
667
+ # resp.association.configuration.servicenow.auth_scopes #=> Array
668
+ # resp.association.configuration.servicenow.auth_scopes[0] #=> String
669
+ # resp.association.configuration.mcpservernewrelic.account_id #=> String
670
+ # resp.association.configuration.mcpservernewrelic.endpoint #=> String
671
+ # resp.association.configuration.gitlab.project_id #=> String
672
+ # resp.association.configuration.gitlab.project_path #=> String
673
+ # resp.association.configuration.gitlab.instance_identifier #=> String
674
+ # resp.association.configuration.azure.subscription_id #=> String
675
+ # resp.association.configuration.azuredevops.organization_name #=> String
676
+ # resp.association.configuration.azuredevops.project_id #=> String
677
+ # resp.association.configuration.azuredevops.project_name #=> String
678
+ # resp.association.configuration.mcpservergrafana.endpoint #=> String
679
+ # resp.association.configuration.mcpservergrafana.organization_id #=> String
680
+ # resp.association.configuration.mcpservergrafana.tools #=> Array
681
+ # resp.association.configuration.mcpservergrafana.tools[0] #=> String
682
+ # resp.association.configuration.pagerduty.services #=> Array
683
+ # resp.association.configuration.pagerduty.services[0] #=> String
684
+ # resp.association.configuration.pagerduty.customer_email #=> String
685
+ # resp.association.configuration.msteams.team_id #=> String
686
+ # resp.association.configuration.msteams.team_name #=> String
687
+ # resp.association.configuration.msteams.transmission_target.ops_oncall_target.channel_name #=> String
688
+ # resp.association.configuration.msteams.transmission_target.ops_oncall_target.channel_id #=> String
689
+ # resp.association.configuration.msteams.transmission_target.ops_sre_target.channel_name #=> String
690
+ # resp.association.configuration.msteams.transmission_target.ops_sre_target.channel_id #=> String
691
+ # resp.webhook.webhook_url #=> String
692
+ # resp.webhook.webhook_id #=> String
693
+ # resp.webhook.webhook_type #=> String, one of "hmac", "apikey", "gitlab", "pagerduty"
694
+ # resp.webhook.webhook_secret #=> String
695
+ # resp.webhook.api_key #=> String
696
+ #
697
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/AssociateService AWS API Documentation
698
+ #
699
+ # @overload associate_service(params = {})
700
+ # @param [Hash] params ({})
701
+ def associate_service(params = {}, options = {})
702
+ req = build_request(:associate_service, params)
703
+ req.send_request(options)
704
+ end
705
+
706
+ # Creates a new AgentSpace with the specified name and description.
707
+ # Duplicate space names are allowed.
708
+ #
709
+ # @option params [required, String] :name
710
+ # The name of the AgentSpace.
711
+ #
712
+ # @option params [String] :description
713
+ # The description of the AgentSpace.
714
+ #
715
+ # @option params [String] :locale
716
+ # The locale for the AgentSpace, which determines the language used in
717
+ # agent responses.
718
+ #
719
+ # @option params [String] :kms_key_arn
720
+ # The ARN of the AWS Key Management Service (AWS KMS) customer managed
721
+ # key that's used to encrypt resources.
722
+ #
723
+ # @option params [String] :client_token
724
+ # Client-provided token to ensure request idempotency. When the same
725
+ # token is provided in subsequent calls, the same response is returned
726
+ # within a 8-hour window.
727
+ #
728
+ # **A suitable default value is auto-generated.** You should normally
729
+ # not need to pass this option.**
730
+ #
731
+ # @option params [Hash<String,String>] :tags
732
+ # Tags to add to the AgentSpace at creation time.
733
+ #
734
+ # @return [Types::CreateAgentSpaceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
735
+ #
736
+ # * {Types::CreateAgentSpaceOutput#agent_space #agent_space} => Types::AgentSpace
737
+ # * {Types::CreateAgentSpaceOutput#tags #tags} => Hash&lt;String,String&gt;
738
+ #
739
+ # @example Request syntax with placeholder values
740
+ #
741
+ # resp = client.create_agent_space({
742
+ # name: "AgentSpaceName", # required
743
+ # description: "Description",
744
+ # locale: "Locale",
745
+ # kms_key_arn: "KmsKeyArn",
746
+ # client_token: "CreateAgentSpaceInputClientTokenString",
747
+ # tags: {
748
+ # "TagKey" => "TagValue",
749
+ # },
750
+ # })
751
+ #
752
+ # @example Response structure
753
+ #
754
+ # resp.agent_space.name #=> String
755
+ # resp.agent_space.description #=> String
756
+ # resp.agent_space.locale #=> String
757
+ # resp.agent_space.created_at #=> Time
758
+ # resp.agent_space.updated_at #=> Time
759
+ # resp.agent_space.kms_key_arn #=> String
760
+ # resp.agent_space.agent_space_id #=> String
761
+ # resp.tags #=> Hash
762
+ # resp.tags["TagKey"] #=> String
763
+ #
764
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/CreateAgentSpace AWS API Documentation
765
+ #
766
+ # @overload create_agent_space(params = {})
767
+ # @param [Hash] params ({})
768
+ def create_agent_space(params = {}, options = {})
769
+ req = build_request(:create_agent_space, params)
770
+ req.send_request(options)
771
+ end
772
+
773
+ # Creates a new backlog task in the specified agent space
774
+ #
775
+ # @option params [required, String] :agent_space_id
776
+ # The unique identifier for the agent space where the task will be
777
+ # created
778
+ #
779
+ # @option params [Types::ReferenceInput] :reference
780
+ # Optional reference information for the task
781
+ #
782
+ # @option params [required, String] :task_type
783
+ # The type of task being created
784
+ #
785
+ # @option params [required, String] :title
786
+ # The title of the backlog task
787
+ #
788
+ # @option params [String] :description
789
+ # Optional detailed description of the task
790
+ #
791
+ # @option params [required, String] :priority
792
+ # The priority level of the task
793
+ #
794
+ # @option params [String] :client_token
795
+ # Client-provided token for idempotent operations
796
+ #
797
+ # **A suitable default value is auto-generated.** You should normally
798
+ # not need to pass this option.**
799
+ #
800
+ # @return [Types::CreateBacklogTaskResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
801
+ #
802
+ # * {Types::CreateBacklogTaskResponse#task #task} => Types::Task
803
+ #
804
+ # @example Request syntax with placeholder values
805
+ #
806
+ # resp = client.create_backlog_task({
807
+ # agent_space_id: "AgentSpaceId", # required
808
+ # reference: {
809
+ # system: "ReferenceInputSystemString", # required
810
+ # title: "ReferenceInputTitleString",
811
+ # reference_id: "ResourceId", # required
812
+ # reference_url: "ReferenceInputReferenceUrlString", # required
813
+ # association_id: "ResourceId", # required
814
+ # },
815
+ # task_type: "INVESTIGATION", # required, accepts INVESTIGATION, EVALUATION
816
+ # title: "BacklogTaskTitle", # required
817
+ # description: "BacklogTaskDescription",
818
+ # priority: "CRITICAL", # required, accepts CRITICAL, HIGH, MEDIUM, LOW, MINIMAL
819
+ # client_token: "String",
820
+ # })
821
+ #
822
+ # @example Response structure
823
+ #
824
+ # resp.task.agent_space_id #=> String
825
+ # resp.task.task_id #=> String
826
+ # resp.task.execution_id #=> String
827
+ # resp.task.title #=> String
828
+ # resp.task.description #=> String
829
+ # resp.task.reference.system #=> String
830
+ # resp.task.reference.title #=> String
831
+ # resp.task.reference.reference_id #=> String
832
+ # resp.task.reference.reference_url #=> String
833
+ # resp.task.reference.association_id #=> String
834
+ # resp.task.task_type #=> String, one of "INVESTIGATION", "EVALUATION"
835
+ # resp.task.priority #=> String, one of "CRITICAL", "HIGH", "MEDIUM", "LOW", "MINIMAL"
836
+ # resp.task.status #=> String, one of "PENDING_TRIAGE", "LINKED", "PENDING_START", "IN_PROGRESS", "PENDING_CUSTOMER_APPROVAL", "COMPLETED", "FAILED", "TIMED_OUT", "CANCELED"
837
+ # resp.task.created_at #=> Time
838
+ # resp.task.updated_at #=> Time
839
+ # resp.task.version #=> Integer
840
+ # resp.task.primary_task_id #=> String
841
+ # resp.task.status_reason #=> String
842
+ # resp.task.has_linked_tasks #=> Boolean
843
+ #
844
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/CreateBacklogTask AWS API Documentation
845
+ #
846
+ # @overload create_backlog_task(params = {})
847
+ # @param [Hash] params ({})
848
+ def create_backlog_task(params = {}, options = {})
849
+ req = build_request(:create_backlog_task, params)
850
+ req.send_request(options)
851
+ end
852
+
853
+ # Creates a new chat execution in the specified agent space
854
+ #
855
+ # @option params [required, String] :agent_space_id
856
+ # Unique identifier for an agent space (allows alphanumeric characters
857
+ # and hyphens; 1-64 characters)
858
+ #
859
+ # @option params [required, String] :user_id
860
+ # The user identifier for the chat
861
+ #
862
+ # @option params [String] :user_type
863
+ # The authentication type of the user
864
+ #
865
+ # @return [Types::CreateChatResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
866
+ #
867
+ # * {Types::CreateChatResponse#execution_id #execution_id} => String
868
+ # * {Types::CreateChatResponse#created_at #created_at} => Time
869
+ #
870
+ # @example Request syntax with placeholder values
871
+ #
872
+ # resp = client.create_chat({
873
+ # agent_space_id: "AgentSpaceId", # required
874
+ # user_id: "ResourceId", # required
875
+ # user_type: "IAM", # accepts IAM, IDC, IDP
876
+ # })
877
+ #
878
+ # @example Response structure
879
+ #
880
+ # resp.execution_id #=> String
881
+ # resp.created_at #=> Time
882
+ #
883
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/CreateChat AWS API Documentation
884
+ #
885
+ # @overload create_chat(params = {})
886
+ # @param [Hash] params ({})
887
+ def create_chat(params = {}, options = {})
888
+ req = build_request(:create_chat, params)
889
+ req.send_request(options)
890
+ end
891
+
892
+ # Creates a Private Connection to a target resource.
893
+ #
894
+ # @option params [required, String] :name
895
+ # Unique name for this Private Connection within the account.
896
+ #
897
+ # @option params [required, Types::PrivateConnectionMode] :mode
898
+ # Private Connection mode configuration.
899
+ #
900
+ # @option params [Hash<String,String>] :tags
901
+ # Tags to add to the Private Connection at creation time.
902
+ #
903
+ # @return [Types::CreatePrivateConnectionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
904
+ #
905
+ # * {Types::CreatePrivateConnectionOutput#name #name} => String
906
+ # * {Types::CreatePrivateConnectionOutput#type #type} => String
907
+ # * {Types::CreatePrivateConnectionOutput#resource_gateway_id #resource_gateway_id} => String
908
+ # * {Types::CreatePrivateConnectionOutput#host_address #host_address} => String
909
+ # * {Types::CreatePrivateConnectionOutput#vpc_id #vpc_id} => String
910
+ # * {Types::CreatePrivateConnectionOutput#resource_configuration_id #resource_configuration_id} => String
911
+ # * {Types::CreatePrivateConnectionOutput#status #status} => String
912
+ # * {Types::CreatePrivateConnectionOutput#certificate_expiry_time #certificate_expiry_time} => Time
913
+ # * {Types::CreatePrivateConnectionOutput#tags #tags} => Hash&lt;String,String&gt;
914
+ #
915
+ # @example Request syntax with placeholder values
916
+ #
917
+ # resp = client.create_private_connection({
918
+ # name: "PrivateConnectionName", # required
919
+ # mode: { # required
920
+ # service_managed: {
921
+ # host_address: "IpAddressOrDnsName", # required
922
+ # vpc_id: "VpcId", # required
923
+ # subnet_ids: ["SubnetId"], # required
924
+ # security_group_ids: ["SecurityGroupId"],
925
+ # ip_address_type: "IPV4", # accepts IPV4, IPV6, DUAL_STACK
926
+ # ipv4_addresses_per_eni: 1,
927
+ # port_ranges: ["PortRange"],
928
+ # certificate: "CertificateString",
929
+ # },
930
+ # self_managed: {
931
+ # resource_configuration_id: "ResourceConfigurationArn", # required
932
+ # certificate: "CertificateString",
933
+ # },
934
+ # },
935
+ # tags: {
936
+ # "TagKey" => "TagValue",
937
+ # },
938
+ # })
939
+ #
940
+ # @example Response structure
941
+ #
942
+ # resp.name #=> String
943
+ # resp.type #=> String, one of "SELF_MANAGED", "SERVICE_MANAGED"
944
+ # resp.resource_gateway_id #=> String
945
+ # resp.host_address #=> String
946
+ # resp.vpc_id #=> String
947
+ # resp.resource_configuration_id #=> String
948
+ # resp.status #=> String, one of "ACTIVE", "CREATE_IN_PROGRESS", "CREATE_FAILED", "DELETE_IN_PROGRESS", "DELETE_FAILED"
949
+ # resp.certificate_expiry_time #=> Time
950
+ # resp.tags #=> Hash
951
+ # resp.tags["TagKey"] #=> String
952
+ #
953
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/CreatePrivateConnection AWS API Documentation
954
+ #
955
+ # @overload create_private_connection(params = {})
956
+ # @param [Hash] params ({})
957
+ def create_private_connection(params = {}, options = {})
958
+ req = build_request(:create_private_connection, params)
959
+ req.send_request(options)
960
+ end
961
+
962
+ # Deletes an AgentSpace. This operation is idempotent and returns a 204
963
+ # No Content response on success.
964
+ #
965
+ # @option params [required, String] :agent_space_id
966
+ # The unique identifier of the AgentSpace
967
+ #
968
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
969
+ #
970
+ # @example Request syntax with placeholder values
971
+ #
972
+ # resp = client.delete_agent_space({
973
+ # agent_space_id: "AgentSpaceId", # required
974
+ # })
975
+ #
976
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/DeleteAgentSpace AWS API Documentation
977
+ #
978
+ # @overload delete_agent_space(params = {})
979
+ # @param [Hash] params ({})
980
+ def delete_agent_space(params = {}, options = {})
981
+ req = build_request(:delete_agent_space, params)
982
+ req.send_request(options)
983
+ end
984
+
985
+ # Deletes a Private Connection. The deletion is asynchronous and returns
986
+ # DELETE\_IN\_PROGRESS status.
987
+ #
988
+ # @option params [required, String] :name
989
+ # The name of the Private Connection.
990
+ #
991
+ # @return [Types::DeletePrivateConnectionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
992
+ #
993
+ # * {Types::DeletePrivateConnectionOutput#name #name} => String
994
+ # * {Types::DeletePrivateConnectionOutput#status #status} => String
995
+ #
996
+ # @example Request syntax with placeholder values
997
+ #
998
+ # resp = client.delete_private_connection({
999
+ # name: "PrivateConnectionName", # required
1000
+ # })
1001
+ #
1002
+ # @example Response structure
1003
+ #
1004
+ # resp.name #=> String
1005
+ # resp.status #=> String, one of "ACTIVE", "CREATE_IN_PROGRESS", "CREATE_FAILED", "DELETE_IN_PROGRESS", "DELETE_FAILED"
1006
+ #
1007
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/DeletePrivateConnection AWS API Documentation
1008
+ #
1009
+ # @overload delete_private_connection(params = {})
1010
+ # @param [Hash] params ({})
1011
+ def delete_private_connection(params = {}, options = {})
1012
+ req = build_request(:delete_private_connection, params)
1013
+ req.send_request(options)
1014
+ end
1015
+
1016
+ # Deregister a service
1017
+ #
1018
+ # @option params [required, String] :service_id
1019
+ # The service id to deregister. A service can only be deregistered if it
1020
+ # is not associated with any AgentSpace.
1021
+ #
1022
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1023
+ #
1024
+ # @example Request syntax with placeholder values
1025
+ #
1026
+ # resp = client.deregister_service({
1027
+ # service_id: "ServiceId", # required
1028
+ # })
1029
+ #
1030
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/DeregisterService AWS API Documentation
1031
+ #
1032
+ # @overload deregister_service(params = {})
1033
+ # @param [Hash] params ({})
1034
+ def deregister_service(params = {}, options = {})
1035
+ req = build_request(:deregister_service, params)
1036
+ req.send_request(options)
1037
+ end
1038
+
1039
+ # Retrieves details of an existing Private Connection.
1040
+ #
1041
+ # @option params [required, String] :name
1042
+ # The name of the Private Connection.
1043
+ #
1044
+ # @return [Types::DescribePrivateConnectionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1045
+ #
1046
+ # * {Types::DescribePrivateConnectionOutput#name #name} => String
1047
+ # * {Types::DescribePrivateConnectionOutput#type #type} => String
1048
+ # * {Types::DescribePrivateConnectionOutput#resource_gateway_id #resource_gateway_id} => String
1049
+ # * {Types::DescribePrivateConnectionOutput#host_address #host_address} => String
1050
+ # * {Types::DescribePrivateConnectionOutput#vpc_id #vpc_id} => String
1051
+ # * {Types::DescribePrivateConnectionOutput#resource_configuration_id #resource_configuration_id} => String
1052
+ # * {Types::DescribePrivateConnectionOutput#status #status} => String
1053
+ # * {Types::DescribePrivateConnectionOutput#certificate_expiry_time #certificate_expiry_time} => Time
1054
+ # * {Types::DescribePrivateConnectionOutput#tags #tags} => Hash&lt;String,String&gt;
1055
+ #
1056
+ # @example Request syntax with placeholder values
1057
+ #
1058
+ # resp = client.describe_private_connection({
1059
+ # name: "PrivateConnectionName", # required
1060
+ # })
1061
+ #
1062
+ # @example Response structure
1063
+ #
1064
+ # resp.name #=> String
1065
+ # resp.type #=> String, one of "SELF_MANAGED", "SERVICE_MANAGED"
1066
+ # resp.resource_gateway_id #=> String
1067
+ # resp.host_address #=> String
1068
+ # resp.vpc_id #=> String
1069
+ # resp.resource_configuration_id #=> String
1070
+ # resp.status #=> String, one of "ACTIVE", "CREATE_IN_PROGRESS", "CREATE_FAILED", "DELETE_IN_PROGRESS", "DELETE_FAILED"
1071
+ # resp.certificate_expiry_time #=> Time
1072
+ # resp.tags #=> Hash
1073
+ # resp.tags["TagKey"] #=> String
1074
+ #
1075
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/DescribePrivateConnection AWS API Documentation
1076
+ #
1077
+ # @overload describe_private_connection(params = {})
1078
+ # @param [Hash] params ({})
1079
+ def describe_private_connection(params = {}, options = {})
1080
+ req = build_request(:describe_private_connection, params)
1081
+ req.send_request(options)
1082
+ end
1083
+
1084
+ # Describe the support level of a CloudSmith customer account.
1085
+ #
1086
+ # @option params [required, String] :agent_space_id
1087
+ # The unique identifier for the agent space containing the task
1088
+ #
1089
+ # @option params [required, String] :task_id
1090
+ # The unique identifier for this task
1091
+ #
1092
+ # @return [Types::DescribeSupportLevelResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1093
+ #
1094
+ # * {Types::DescribeSupportLevelResponse#support_level #support_level} => Types::SupportLevel
1095
+ # * {Types::DescribeSupportLevelResponse#mosaic_support_level #mosaic_support_level} => Types::SupportLevel
1096
+ # * {Types::DescribeSupportLevelResponse#active_subscription #active_subscription} => Boolean
1097
+ #
1098
+ # @example Request syntax with placeholder values
1099
+ #
1100
+ # resp = client.describe_support_level({
1101
+ # agent_space_id: "AgentSpaceId", # required
1102
+ # task_id: "String", # required
1103
+ # })
1104
+ #
1105
+ # @example Response structure
1106
+ #
1107
+ # resp.support_level.code #=> String
1108
+ # resp.support_level.name #=> String
1109
+ # resp.mosaic_support_level.code #=> String
1110
+ # resp.mosaic_support_level.name #=> String
1111
+ # resp.active_subscription #=> Boolean
1112
+ #
1113
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/DescribeSupportLevel AWS API Documentation
1114
+ #
1115
+ # @overload describe_support_level(params = {})
1116
+ # @param [Hash] params ({})
1117
+ def describe_support_level(params = {}, options = {})
1118
+ req = build_request(:describe_support_level, params)
1119
+ req.send_request(options)
1120
+ end
1121
+
1122
+ # Disable the Operator App for the specified AgentSpace
1123
+ #
1124
+ # @option params [required, String] :agent_space_id
1125
+ # The unique identifier of the AgentSpace
1126
+ #
1127
+ # @option params [String] :auth_flow
1128
+ # The authentication flow configured for the operator App. e.g. idc
1129
+ #
1130
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1131
+ #
1132
+ # @example Request syntax with placeholder values
1133
+ #
1134
+ # resp = client.disable_operator_app({
1135
+ # agent_space_id: "AgentSpaceId", # required
1136
+ # auth_flow: "iam", # accepts iam, idc, idp
1137
+ # })
1138
+ #
1139
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/DisableOperatorApp AWS API Documentation
1140
+ #
1141
+ # @overload disable_operator_app(params = {})
1142
+ # @param [Hash] params ({})
1143
+ def disable_operator_app(params = {}, options = {})
1144
+ req = build_request(:disable_operator_app, params)
1145
+ req.send_request(options)
1146
+ end
1147
+
1148
+ # Deletes a specific service association from an AgentSpace. This
1149
+ # operation is idempotent and returns a 204 No Content response on
1150
+ # success.
1151
+ #
1152
+ # @option params [required, String] :agent_space_id
1153
+ # The unique identifier of the AgentSpace
1154
+ #
1155
+ # @option params [required, String] :association_id
1156
+ # The unique identifier of the given association.
1157
+ #
1158
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1159
+ #
1160
+ # @example Request syntax with placeholder values
1161
+ #
1162
+ # resp = client.disassociate_service({
1163
+ # agent_space_id: "AgentSpaceId", # required
1164
+ # association_id: "AssociationId", # required
1165
+ # })
1166
+ #
1167
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/DisassociateService AWS API Documentation
1168
+ #
1169
+ # @overload disassociate_service(params = {})
1170
+ # @param [Hash] params ({})
1171
+ def disassociate_service(params = {}, options = {})
1172
+ req = build_request(:disassociate_service, params)
1173
+ req.send_request(options)
1174
+ end
1175
+
1176
+ # Enable the Operator App to access the given AgentSpace
1177
+ #
1178
+ # @option params [required, String] :agent_space_id
1179
+ # The unique identifier of the AgentSpace
1180
+ #
1181
+ # @option params [required, String] :auth_flow
1182
+ # The authentication flow configured for the operator App. e.g. iam or
1183
+ # idc
1184
+ #
1185
+ # @option params [required, String] :operator_app_role_arn
1186
+ # The IAM role end users assume to access AIDevOps APIs
1187
+ #
1188
+ # @option params [String] :idc_instance_arn
1189
+ # The IdC instance Arn used to create an IdC auth application
1190
+ #
1191
+ # @option params [String] :issuer_url
1192
+ # The OIDC issuer URL of the external Identity Provider
1193
+ #
1194
+ # @option params [String] :idp_client_id
1195
+ # The OIDC client ID for the IdP application
1196
+ #
1197
+ # @option params [String] :idp_client_secret
1198
+ # The OIDC client secret for the IdP application
1199
+ #
1200
+ # @option params [String] :provider
1201
+ # The Identity Provider name (e.g., Entra, Okta, Google)
1202
+ #
1203
+ # @return [Types::EnableOperatorAppOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1204
+ #
1205
+ # * {Types::EnableOperatorAppOutput#agent_space_id #agent_space_id} => String
1206
+ # * {Types::EnableOperatorAppOutput#iam #iam} => Types::IamAuthConfiguration
1207
+ # * {Types::EnableOperatorAppOutput#idc #idc} => Types::IdcAuthConfiguration
1208
+ # * {Types::EnableOperatorAppOutput#idp #idp} => Types::IdpAuthConfiguration
1209
+ #
1210
+ # @example Request syntax with placeholder values
1211
+ #
1212
+ # resp = client.enable_operator_app({
1213
+ # agent_space_id: "AgentSpaceId", # required
1214
+ # auth_flow: "iam", # required, accepts iam, idc, idp
1215
+ # operator_app_role_arn: "RoleArn", # required
1216
+ # idc_instance_arn: "String",
1217
+ # issuer_url: "String",
1218
+ # idp_client_id: "IdpClientId",
1219
+ # idp_client_secret: "IdpClientSecret",
1220
+ # provider: "String",
1221
+ # })
1222
+ #
1223
+ # @example Response structure
1224
+ #
1225
+ # resp.agent_space_id #=> String
1226
+ # resp.iam.operator_app_role_arn #=> String
1227
+ # resp.iam.created_at #=> Time
1228
+ # resp.iam.updated_at #=> Time
1229
+ # resp.idc.operator_app_role_arn #=> String
1230
+ # resp.idc.idc_instance_arn #=> String
1231
+ # resp.idc.idc_application_arn #=> String
1232
+ # resp.idc.created_at #=> Time
1233
+ # resp.idc.updated_at #=> Time
1234
+ # resp.idp.issuer_url #=> String
1235
+ # resp.idp.client_id #=> String
1236
+ # resp.idp.operator_app_role_arn #=> String
1237
+ # resp.idp.provider #=> String
1238
+ # resp.idp.created_at #=> Time
1239
+ # resp.idp.updated_at #=> Time
1240
+ #
1241
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/EnableOperatorApp AWS API Documentation
1242
+ #
1243
+ # @overload enable_operator_app(params = {})
1244
+ # @param [Hash] params ({})
1245
+ def enable_operator_app(params = {}, options = {})
1246
+ req = build_request(:enable_operator_app, params)
1247
+ req.send_request(options)
1248
+ end
1249
+
1250
+ # End a chat session for a support case in the specified agent space
1251
+ #
1252
+ # @option params [required, String] :agent_space_id
1253
+ # The unique identifier for the agent space containing the task
1254
+ #
1255
+ # @option params [required, String] :task_id
1256
+ # The unique identifier for the task execution to end
1257
+ #
1258
+ # @option params [String] :reason
1259
+ # Reason for ending the chat session (optional, defaults to 'Chat Ended
1260
+ # by CloudSmith')
1261
+ #
1262
+ # @option params [String] :requester
1263
+ # Who initiated the chat end request (optional, defaults to
1264
+ # 'CloudSmith')
1265
+ #
1266
+ # @option params [String] :client_token
1267
+ # Client-provided token for idempotent operations
1268
+ #
1269
+ # **A suitable default value is auto-generated.** You should normally
1270
+ # not need to pass this option.**
1271
+ #
1272
+ # @return [Types::EndChatForCaseResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1273
+ #
1274
+ # * {Types::EndChatForCaseResponse#is_disconnected #is_disconnected} => Boolean
1275
+ # * {Types::EndChatForCaseResponse#execution_id #execution_id} => String
1276
+ # * {Types::EndChatForCaseResponse#error_message #error_message} => String
1277
+ #
1278
+ # @example Request syntax with placeholder values
1279
+ #
1280
+ # resp = client.end_chat_for_case({
1281
+ # agent_space_id: "AgentSpaceId", # required
1282
+ # task_id: "String", # required
1283
+ # reason: "String",
1284
+ # requester: "String",
1285
+ # client_token: "String",
1286
+ # })
1287
+ #
1288
+ # @example Response structure
1289
+ #
1290
+ # resp.is_disconnected #=> Boolean
1291
+ # resp.execution_id #=> String
1292
+ # resp.error_message #=> String
1293
+ #
1294
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/EndChatForCase AWS API Documentation
1295
+ #
1296
+ # @overload end_chat_for_case(params = {})
1297
+ # @param [Hash] params ({})
1298
+ def end_chat_for_case(params = {}, options = {})
1299
+ req = build_request(:end_chat_for_case, params)
1300
+ req.send_request(options)
1301
+ end
1302
+
1303
+ # Retrieves monthly account usage metrics and limits for the AWS
1304
+ # account.
1305
+ #
1306
+ # @return [Types::GetAccountUsageOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1307
+ #
1308
+ # * {Types::GetAccountUsageOutput#monthly_account_investigation_hours #monthly_account_investigation_hours} => Types::UsageMetric
1309
+ # * {Types::GetAccountUsageOutput#monthly_account_evaluation_hours #monthly_account_evaluation_hours} => Types::UsageMetric
1310
+ # * {Types::GetAccountUsageOutput#monthly_account_system_learning_hours #monthly_account_system_learning_hours} => Types::UsageMetric
1311
+ # * {Types::GetAccountUsageOutput#usage_period_start_time #usage_period_start_time} => Time
1312
+ # * {Types::GetAccountUsageOutput#usage_period_end_time #usage_period_end_time} => Time
1313
+ #
1314
+ # @example Response structure
1315
+ #
1316
+ # resp.monthly_account_investigation_hours.limit #=> Integer
1317
+ # resp.monthly_account_investigation_hours.usage #=> Float
1318
+ # resp.monthly_account_evaluation_hours.limit #=> Integer
1319
+ # resp.monthly_account_evaluation_hours.usage #=> Float
1320
+ # resp.monthly_account_system_learning_hours.limit #=> Integer
1321
+ # resp.monthly_account_system_learning_hours.usage #=> Float
1322
+ # resp.usage_period_start_time #=> Time
1323
+ # resp.usage_period_end_time #=> Time
1324
+ #
1325
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/GetAccountUsage AWS API Documentation
1326
+ #
1327
+ # @overload get_account_usage(params = {})
1328
+ # @param [Hash] params ({})
1329
+ def get_account_usage(params = {}, options = {})
1330
+ req = build_request(:get_account_usage, params)
1331
+ req.send_request(options)
1332
+ end
1333
+
1334
+ # Retrieves detailed information about a specific AgentSpace.
1335
+ #
1336
+ # @option params [required, String] :agent_space_id
1337
+ # The unique identifier of the AgentSpace
1338
+ #
1339
+ # @return [Types::GetAgentSpaceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1340
+ #
1341
+ # * {Types::GetAgentSpaceOutput#agent_space #agent_space} => Types::AgentSpace
1342
+ # * {Types::GetAgentSpaceOutput#tags #tags} => Hash&lt;String,String&gt;
1343
+ #
1344
+ # @example Request syntax with placeholder values
1345
+ #
1346
+ # resp = client.get_agent_space({
1347
+ # agent_space_id: "AgentSpaceId", # required
1348
+ # })
1349
+ #
1350
+ # @example Response structure
1351
+ #
1352
+ # resp.agent_space.name #=> String
1353
+ # resp.agent_space.description #=> String
1354
+ # resp.agent_space.locale #=> String
1355
+ # resp.agent_space.created_at #=> Time
1356
+ # resp.agent_space.updated_at #=> Time
1357
+ # resp.agent_space.kms_key_arn #=> String
1358
+ # resp.agent_space.agent_space_id #=> String
1359
+ # resp.tags #=> Hash
1360
+ # resp.tags["TagKey"] #=> String
1361
+ #
1362
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/GetAgentSpace AWS API Documentation
1363
+ #
1364
+ # @overload get_agent_space(params = {})
1365
+ # @param [Hash] params ({})
1366
+ def get_agent_space(params = {}, options = {})
1367
+ req = build_request(:get_agent_space, params)
1368
+ req.send_request(options)
1369
+ end
1370
+
1371
+ # Retrieves given associations configured for a specific AgentSpace.
1372
+ #
1373
+ # @option params [required, String] :agent_space_id
1374
+ # The unique identifier of the AgentSpace
1375
+ #
1376
+ # @option params [required, String] :association_id
1377
+ # The unique identifier of the given association.
1378
+ #
1379
+ # @return [Types::GetAssociationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1380
+ #
1381
+ # * {Types::GetAssociationOutput#association #association} => Types::Association
1382
+ #
1383
+ # @example Request syntax with placeholder values
1384
+ #
1385
+ # resp = client.get_association({
1386
+ # agent_space_id: "AgentSpaceId", # required
1387
+ # association_id: "AssociationId", # required
1388
+ # })
1389
+ #
1390
+ # @example Response structure
1391
+ #
1392
+ # resp.association.agent_space_id #=> String
1393
+ # resp.association.created_at #=> Time
1394
+ # resp.association.updated_at #=> Time
1395
+ # resp.association.status #=> String, one of "valid", "invalid", "pending-confirmation"
1396
+ # resp.association.association_id #=> String
1397
+ # resp.association.service_id #=> String
1398
+ # resp.association.configuration.source_aws.account_id #=> String
1399
+ # resp.association.configuration.source_aws.account_type #=> String, one of "source"
1400
+ # resp.association.configuration.source_aws.assumable_role_arn #=> String
1401
+ # resp.association.configuration.source_aws.external_id #=> String
1402
+ # resp.association.configuration.aws.assumable_role_arn #=> String
1403
+ # resp.association.configuration.aws.account_id #=> String
1404
+ # resp.association.configuration.aws.account_type #=> String, one of "monitor"
1405
+ # resp.association.configuration.github.repo_name #=> String
1406
+ # resp.association.configuration.github.repo_id #=> String
1407
+ # resp.association.configuration.github.owner #=> String
1408
+ # resp.association.configuration.github.owner_type #=> String, one of "organization", "user"
1409
+ # resp.association.configuration.github.instance_identifier #=> String
1410
+ # resp.association.configuration.slack.workspace_id #=> String
1411
+ # resp.association.configuration.slack.workspace_name #=> String
1412
+ # resp.association.configuration.slack.transmission_target.ops_oncall_target.channel_name #=> String
1413
+ # resp.association.configuration.slack.transmission_target.ops_oncall_target.channel_id #=> String
1414
+ # resp.association.configuration.slack.transmission_target.ops_sre_target.channel_name #=> String
1415
+ # resp.association.configuration.slack.transmission_target.ops_sre_target.channel_id #=> String
1416
+ # resp.association.configuration.dynatrace.env_id #=> String
1417
+ # resp.association.configuration.dynatrace.resources #=> Array
1418
+ # resp.association.configuration.dynatrace.resources[0] #=> String
1419
+ # resp.association.configuration.servicenow.instance_id #=> String
1420
+ # resp.association.configuration.servicenow.auth_scopes #=> Array
1421
+ # resp.association.configuration.servicenow.auth_scopes[0] #=> String
1422
+ # resp.association.configuration.mcpservernewrelic.account_id #=> String
1423
+ # resp.association.configuration.mcpservernewrelic.endpoint #=> String
1424
+ # resp.association.configuration.gitlab.project_id #=> String
1425
+ # resp.association.configuration.gitlab.project_path #=> String
1426
+ # resp.association.configuration.gitlab.instance_identifier #=> String
1427
+ # resp.association.configuration.azure.subscription_id #=> String
1428
+ # resp.association.configuration.azuredevops.organization_name #=> String
1429
+ # resp.association.configuration.azuredevops.project_id #=> String
1430
+ # resp.association.configuration.azuredevops.project_name #=> String
1431
+ # resp.association.configuration.mcpservergrafana.endpoint #=> String
1432
+ # resp.association.configuration.mcpservergrafana.organization_id #=> String
1433
+ # resp.association.configuration.mcpservergrafana.tools #=> Array
1434
+ # resp.association.configuration.mcpservergrafana.tools[0] #=> String
1435
+ # resp.association.configuration.pagerduty.services #=> Array
1436
+ # resp.association.configuration.pagerduty.services[0] #=> String
1437
+ # resp.association.configuration.pagerduty.customer_email #=> String
1438
+ # resp.association.configuration.msteams.team_id #=> String
1439
+ # resp.association.configuration.msteams.team_name #=> String
1440
+ # resp.association.configuration.msteams.transmission_target.ops_oncall_target.channel_name #=> String
1441
+ # resp.association.configuration.msteams.transmission_target.ops_oncall_target.channel_id #=> String
1442
+ # resp.association.configuration.msteams.transmission_target.ops_sre_target.channel_name #=> String
1443
+ # resp.association.configuration.msteams.transmission_target.ops_sre_target.channel_id #=> String
1444
+ #
1445
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/GetAssociation AWS API Documentation
1446
+ #
1447
+ # @overload get_association(params = {})
1448
+ # @param [Hash] params ({})
1449
+ def get_association(params = {}, options = {})
1450
+ req = build_request(:get_association, params)
1451
+ req.send_request(options)
1452
+ end
1453
+
1454
+ # Gets a backlog task for the specified agent space and task id
1455
+ #
1456
+ # @option params [required, String] :agent_space_id
1457
+ # The unique identifier for the agent space containing the task
1458
+ #
1459
+ # @option params [required, String] :task_id
1460
+ # The unique identifier of the task to retrieve
1461
+ #
1462
+ # @return [Types::GetBacklogTaskResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1463
+ #
1464
+ # * {Types::GetBacklogTaskResponse#task #task} => Types::Task
1465
+ #
1466
+ # @example Request syntax with placeholder values
1467
+ #
1468
+ # resp = client.get_backlog_task({
1469
+ # agent_space_id: "AgentSpaceId", # required
1470
+ # task_id: "ResourceId", # required
1471
+ # })
1472
+ #
1473
+ # @example Response structure
1474
+ #
1475
+ # resp.task.agent_space_id #=> String
1476
+ # resp.task.task_id #=> String
1477
+ # resp.task.execution_id #=> String
1478
+ # resp.task.title #=> String
1479
+ # resp.task.description #=> String
1480
+ # resp.task.reference.system #=> String
1481
+ # resp.task.reference.title #=> String
1482
+ # resp.task.reference.reference_id #=> String
1483
+ # resp.task.reference.reference_url #=> String
1484
+ # resp.task.reference.association_id #=> String
1485
+ # resp.task.task_type #=> String, one of "INVESTIGATION", "EVALUATION"
1486
+ # resp.task.priority #=> String, one of "CRITICAL", "HIGH", "MEDIUM", "LOW", "MINIMAL"
1487
+ # resp.task.status #=> String, one of "PENDING_TRIAGE", "LINKED", "PENDING_START", "IN_PROGRESS", "PENDING_CUSTOMER_APPROVAL", "COMPLETED", "FAILED", "TIMED_OUT", "CANCELED"
1488
+ # resp.task.created_at #=> Time
1489
+ # resp.task.updated_at #=> Time
1490
+ # resp.task.version #=> Integer
1491
+ # resp.task.primary_task_id #=> String
1492
+ # resp.task.status_reason #=> String
1493
+ # resp.task.has_linked_tasks #=> Boolean
1494
+ #
1495
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/GetBacklogTask AWS API Documentation
1496
+ #
1497
+ # @overload get_backlog_task(params = {})
1498
+ # @param [Hash] params ({})
1499
+ def get_backlog_task(params = {}, options = {})
1500
+ req = build_request(:get_backlog_task, params)
1501
+ req.send_request(options)
1502
+ end
1503
+
1504
+ # Get the full auth configuration of operator including any enabled auth
1505
+ # flow
1506
+ #
1507
+ # @option params [required, String] :agent_space_id
1508
+ # The unique identifier of the AgentSpace
1509
+ #
1510
+ # @return [Types::GetOperatorAppOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1511
+ #
1512
+ # * {Types::GetOperatorAppOutput#iam #iam} => Types::IamAuthConfiguration
1513
+ # * {Types::GetOperatorAppOutput#idc #idc} => Types::IdcAuthConfiguration
1514
+ # * {Types::GetOperatorAppOutput#idp #idp} => Types::IdpAuthConfiguration
1515
+ #
1516
+ # @example Request syntax with placeholder values
1517
+ #
1518
+ # resp = client.get_operator_app({
1519
+ # agent_space_id: "AgentSpaceId", # required
1520
+ # })
1521
+ #
1522
+ # @example Response structure
1523
+ #
1524
+ # resp.iam.operator_app_role_arn #=> String
1525
+ # resp.iam.created_at #=> Time
1526
+ # resp.iam.updated_at #=> Time
1527
+ # resp.idc.operator_app_role_arn #=> String
1528
+ # resp.idc.idc_instance_arn #=> String
1529
+ # resp.idc.idc_application_arn #=> String
1530
+ # resp.idc.created_at #=> Time
1531
+ # resp.idc.updated_at #=> Time
1532
+ # resp.idp.issuer_url #=> String
1533
+ # resp.idp.client_id #=> String
1534
+ # resp.idp.operator_app_role_arn #=> String
1535
+ # resp.idp.provider #=> String
1536
+ # resp.idp.created_at #=> Time
1537
+ # resp.idp.updated_at #=> Time
1538
+ #
1539
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/GetOperatorApp AWS API Documentation
1540
+ #
1541
+ # @overload get_operator_app(params = {})
1542
+ # @param [Hash] params ({})
1543
+ def get_operator_app(params = {}, options = {})
1544
+ req = build_request(:get_operator_app, params)
1545
+ req.send_request(options)
1546
+ end
1547
+
1548
+ # Retrieves a specific recommendation by its ID
1549
+ #
1550
+ # @option params [required, String] :agent_space_id
1551
+ # The unique identifier for the agent space containing the
1552
+ # recommendation
1553
+ #
1554
+ # @option params [required, String] :recommendation_id
1555
+ # The unique identifier for the recommendation to retrieve
1556
+ #
1557
+ # @option params [Integer] :recommendation_version
1558
+ # Specific version of the recommendation to retrieve. If not specified,
1559
+ # returns the latest version.
1560
+ #
1561
+ # @return [Types::GetRecommendationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1562
+ #
1563
+ # * {Types::GetRecommendationResponse#recommendation #recommendation} => Types::Recommendation
1564
+ #
1565
+ # @example Request syntax with placeholder values
1566
+ #
1567
+ # resp = client.get_recommendation({
1568
+ # agent_space_id: "AgentSpaceId", # required
1569
+ # recommendation_id: "ResourceId", # required
1570
+ # recommendation_version: 1,
1571
+ # })
1572
+ #
1573
+ # @example Response structure
1574
+ #
1575
+ # resp.recommendation.agent_space_arn #=> String
1576
+ # resp.recommendation.recommendation_id #=> String
1577
+ # resp.recommendation.task_id #=> String
1578
+ # resp.recommendation.goal_id #=> String
1579
+ # resp.recommendation.title #=> String
1580
+ # resp.recommendation.content.summary #=> String
1581
+ # resp.recommendation.content.spec #=> String
1582
+ # resp.recommendation.status #=> String, one of "PROPOSED", "ACCEPTED", "REJECTED", "CLOSED", "COMPLETED", "UPDATE_IN_PROGRESS"
1583
+ # resp.recommendation.priority #=> String, one of "HIGH", "MEDIUM", "LOW"
1584
+ # resp.recommendation.goal_version #=> Integer
1585
+ # resp.recommendation.additional_context #=> String
1586
+ # resp.recommendation.created_at #=> Time
1587
+ # resp.recommendation.updated_at #=> Time
1588
+ # resp.recommendation.version #=> Integer
1589
+ #
1590
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/GetRecommendation AWS API Documentation
1591
+ #
1592
+ # @overload get_recommendation(params = {})
1593
+ # @param [Hash] params ({})
1594
+ def get_recommendation(params = {}, options = {})
1595
+ req = build_request(:get_recommendation, params)
1596
+ req.send_request(options)
1597
+ end
1598
+
1599
+ # Retrieves given service by it's unique identifier
1600
+ #
1601
+ # @option params [required, String] :service_id
1602
+ # The unique identifier of the given service.
1603
+ #
1604
+ # @return [Types::GetServiceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1605
+ #
1606
+ # * {Types::GetServiceOutput#service #service} => Types::RegisteredService
1607
+ # * {Types::GetServiceOutput#tags #tags} => Hash&lt;String,String&gt;
1608
+ #
1609
+ # @example Request syntax with placeholder values
1610
+ #
1611
+ # resp = client.get_service({
1612
+ # service_id: "ServiceId", # required
1613
+ # })
1614
+ #
1615
+ # @example Response structure
1616
+ #
1617
+ # resp.service.service_id #=> String
1618
+ # resp.service.service_type #=> String, one of "github", "slack", "azure", "azuredevops", "msteams", "dynatrace", "servicenow", "pagerduty", "gitlab", "eventChannel", "mcpservernewrelic", "mcpservergrafana", "mcpserverdatadog", "mcpserver", "mcpserversplunk", "azureidentity", "mcpserversigv4"
1619
+ # resp.service.name #=> String
1620
+ # resp.service.accessible_resources #=> Array
1621
+ # resp.service.additional_service_details.github.owner #=> String
1622
+ # resp.service.additional_service_details.github.owner_type #=> String, one of "organization", "user"
1623
+ # resp.service.additional_service_details.github.target_url #=> String
1624
+ # resp.service.additional_service_details.slack.team_id #=> String
1625
+ # resp.service.additional_service_details.slack.team_name #=> String
1626
+ # resp.service.additional_service_details.mcpserverdatadog.name #=> String
1627
+ # resp.service.additional_service_details.mcpserverdatadog.endpoint #=> String
1628
+ # resp.service.additional_service_details.mcpserverdatadog.authorization_method #=> String, one of "oauth-client-credentials", "oauth-3lo", "api-key", "bearer-token"
1629
+ # resp.service.additional_service_details.mcpserverdatadog.description #=> String
1630
+ # resp.service.additional_service_details.mcpserverdatadog.api_key_header #=> String
1631
+ # resp.service.additional_service_details.mcpserver.name #=> String
1632
+ # resp.service.additional_service_details.mcpserver.endpoint #=> String
1633
+ # resp.service.additional_service_details.mcpserver.authorization_method #=> String, one of "oauth-client-credentials", "oauth-3lo", "api-key", "bearer-token"
1634
+ # resp.service.additional_service_details.mcpserver.description #=> String
1635
+ # resp.service.additional_service_details.mcpserver.api_key_header #=> String
1636
+ # resp.service.additional_service_details.servicenow.instance_url #=> String
1637
+ # resp.service.additional_service_details.gitlab.target_url #=> String
1638
+ # resp.service.additional_service_details.gitlab.token_type #=> String, one of "personal", "group"
1639
+ # resp.service.additional_service_details.gitlab.group_id #=> String
1640
+ # resp.service.additional_service_details.mcpserversplunk.name #=> String
1641
+ # resp.service.additional_service_details.mcpserversplunk.endpoint #=> String
1642
+ # resp.service.additional_service_details.mcpserversplunk.authorization_method #=> String, one of "oauth-client-credentials", "oauth-3lo", "api-key", "bearer-token"
1643
+ # resp.service.additional_service_details.mcpserversplunk.description #=> String
1644
+ # resp.service.additional_service_details.mcpserversplunk.api_key_header #=> String
1645
+ # resp.service.additional_service_details.mcpservernewrelic.account_id #=> String
1646
+ # resp.service.additional_service_details.mcpservernewrelic.region #=> String, one of "US", "EU"
1647
+ # resp.service.additional_service_details.mcpservernewrelic.description #=> String
1648
+ # resp.service.additional_service_details.azuredevops.organization_name #=> String
1649
+ # resp.service.additional_service_details.azureidentity.tenant_id #=> String
1650
+ # resp.service.additional_service_details.azureidentity.client_id #=> String
1651
+ # resp.service.additional_service_details.azureidentity.web_identity_role_arn #=> String
1652
+ # resp.service.additional_service_details.azureidentity.web_identity_token_audiences #=> Array
1653
+ # resp.service.additional_service_details.azureidentity.web_identity_token_audiences[0] #=> String
1654
+ # resp.service.additional_service_details.mcpservergrafana.endpoint #=> String
1655
+ # resp.service.additional_service_details.mcpservergrafana.authorization_method #=> String, one of "oauth-client-credentials", "oauth-3lo", "api-key", "bearer-token"
1656
+ # resp.service.additional_service_details.pagerduty.scopes #=> Array
1657
+ # resp.service.additional_service_details.pagerduty.scopes[0] #=> String
1658
+ # resp.service.additional_service_details.mcpserversigv4.name #=> String
1659
+ # resp.service.additional_service_details.mcpserversigv4.endpoint #=> String
1660
+ # resp.service.additional_service_details.mcpserversigv4.description #=> String
1661
+ # resp.service.additional_service_details.mcpserversigv4.region #=> String
1662
+ # resp.service.additional_service_details.mcpserversigv4.service #=> String
1663
+ # resp.service.additional_service_details.mcpserversigv4.role_arn #=> String
1664
+ # resp.service.kms_key_arn #=> String
1665
+ # resp.service.private_connection_name #=> String
1666
+ # resp.tags #=> Hash
1667
+ # resp.tags["TagKey"] #=> String
1668
+ #
1669
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/GetService AWS API Documentation
1670
+ #
1671
+ # @overload get_service(params = {})
1672
+ # @param [Hash] params ({})
1673
+ def get_service(params = {}, options = {})
1674
+ req = build_request(:get_service, params)
1675
+ req.send_request(options)
1676
+ end
1677
+
1678
+ # Initiate a chat for support case in the specified agent space
1679
+ #
1680
+ # @option params [required, String] :agent_space_id
1681
+ # The unique identifier for the agent space containing the task
1682
+ #
1683
+ # @option params [required, String] :task_id
1684
+ # The unique identifier for this task
1685
+ #
1686
+ # @option params [String] :client_token
1687
+ # Client-provided token for idempotent operations
1688
+ #
1689
+ # **A suitable default value is auto-generated.** You should normally
1690
+ # not need to pass this option.**
1691
+ #
1692
+ # @return [Types::InitiateChatForCaseResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1693
+ #
1694
+ # * {Types::InitiateChatForCaseResponse#chat_participant_connection #chat_participant_connection} => Types::ChatParticipantConnection
1695
+ #
1696
+ # @example Request syntax with placeholder values
1697
+ #
1698
+ # resp = client.initiate_chat_for_case({
1699
+ # agent_space_id: "AgentSpaceId", # required
1700
+ # task_id: "String", # required
1701
+ # client_token: "String",
1702
+ # })
1703
+ #
1704
+ # @example Response structure
1705
+ #
1706
+ # resp.chat_participant_connection.initial_contact_id #=> String
1707
+ # resp.chat_participant_connection.participant_id #=> String
1708
+ # resp.chat_participant_connection.participant_token #=> String
1709
+ #
1710
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/InitiateChatForCase AWS API Documentation
1711
+ #
1712
+ # @overload initiate_chat_for_case(params = {})
1713
+ # @param [Hash] params ({})
1714
+ def initiate_chat_for_case(params = {}, options = {})
1715
+ req = build_request(:initiate_chat_for_case, params)
1716
+ req.send_request(options)
1717
+ end
1718
+
1719
+ # Lists all AgentSpaces with optional pagination.
1720
+ #
1721
+ # @option params [Integer] :max_results
1722
+ # Maximum number of results to return in a single call.
1723
+ #
1724
+ # @option params [String] :next_token
1725
+ # Token for the next page of results.
1726
+ #
1727
+ # @return [Types::ListAgentSpacesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1728
+ #
1729
+ # * {Types::ListAgentSpacesOutput#next_token #next_token} => String
1730
+ # * {Types::ListAgentSpacesOutput#agent_spaces #agent_spaces} => Array&lt;Types::AgentSpace&gt;
1731
+ #
1732
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1733
+ #
1734
+ # @example Request syntax with placeholder values
1735
+ #
1736
+ # resp = client.list_agent_spaces({
1737
+ # max_results: 1,
1738
+ # next_token: "NextToken",
1739
+ # })
1740
+ #
1741
+ # @example Response structure
1742
+ #
1743
+ # resp.next_token #=> String
1744
+ # resp.agent_spaces #=> Array
1745
+ # resp.agent_spaces[0].name #=> String
1746
+ # resp.agent_spaces[0].description #=> String
1747
+ # resp.agent_spaces[0].locale #=> String
1748
+ # resp.agent_spaces[0].created_at #=> Time
1749
+ # resp.agent_spaces[0].updated_at #=> Time
1750
+ # resp.agent_spaces[0].kms_key_arn #=> String
1751
+ # resp.agent_spaces[0].agent_space_id #=> String
1752
+ #
1753
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListAgentSpaces AWS API Documentation
1754
+ #
1755
+ # @overload list_agent_spaces(params = {})
1756
+ # @param [Hash] params ({})
1757
+ def list_agent_spaces(params = {}, options = {})
1758
+ req = build_request(:list_agent_spaces, params)
1759
+ req.send_request(options)
1760
+ end
1761
+
1762
+ # List all associations for given AgentSpace
1763
+ #
1764
+ # @option params [required, String] :agent_space_id
1765
+ # The unique identifier of the AgentSpace
1766
+ #
1767
+ # @option params [Integer] :max_results
1768
+ # Maximum number of results to return in a single call.
1769
+ #
1770
+ # @option params [String] :next_token
1771
+ # Token for the next page of results.
1772
+ #
1773
+ # @option params [String] :filter_service_types
1774
+ # A comma-separated list of service types to filter list associations
1775
+ # output
1776
+ #
1777
+ # @return [Types::ListAssociationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1778
+ #
1779
+ # * {Types::ListAssociationsOutput#next_token #next_token} => String
1780
+ # * {Types::ListAssociationsOutput#associations #associations} => Array&lt;Types::Association&gt;
1781
+ #
1782
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1783
+ #
1784
+ # @example Request syntax with placeholder values
1785
+ #
1786
+ # resp = client.list_associations({
1787
+ # agent_space_id: "AgentSpaceId", # required
1788
+ # max_results: 1,
1789
+ # next_token: "NextToken",
1790
+ # filter_service_types: "ListAssociationsInputFilterServiceTypesString",
1791
+ # })
1792
+ #
1793
+ # @example Response structure
1794
+ #
1795
+ # resp.next_token #=> String
1796
+ # resp.associations #=> Array
1797
+ # resp.associations[0].agent_space_id #=> String
1798
+ # resp.associations[0].created_at #=> Time
1799
+ # resp.associations[0].updated_at #=> Time
1800
+ # resp.associations[0].status #=> String, one of "valid", "invalid", "pending-confirmation"
1801
+ # resp.associations[0].association_id #=> String
1802
+ # resp.associations[0].service_id #=> String
1803
+ # resp.associations[0].configuration.source_aws.account_id #=> String
1804
+ # resp.associations[0].configuration.source_aws.account_type #=> String, one of "source"
1805
+ # resp.associations[0].configuration.source_aws.assumable_role_arn #=> String
1806
+ # resp.associations[0].configuration.source_aws.external_id #=> String
1807
+ # resp.associations[0].configuration.aws.assumable_role_arn #=> String
1808
+ # resp.associations[0].configuration.aws.account_id #=> String
1809
+ # resp.associations[0].configuration.aws.account_type #=> String, one of "monitor"
1810
+ # resp.associations[0].configuration.github.repo_name #=> String
1811
+ # resp.associations[0].configuration.github.repo_id #=> String
1812
+ # resp.associations[0].configuration.github.owner #=> String
1813
+ # resp.associations[0].configuration.github.owner_type #=> String, one of "organization", "user"
1814
+ # resp.associations[0].configuration.github.instance_identifier #=> String
1815
+ # resp.associations[0].configuration.slack.workspace_id #=> String
1816
+ # resp.associations[0].configuration.slack.workspace_name #=> String
1817
+ # resp.associations[0].configuration.slack.transmission_target.ops_oncall_target.channel_name #=> String
1818
+ # resp.associations[0].configuration.slack.transmission_target.ops_oncall_target.channel_id #=> String
1819
+ # resp.associations[0].configuration.slack.transmission_target.ops_sre_target.channel_name #=> String
1820
+ # resp.associations[0].configuration.slack.transmission_target.ops_sre_target.channel_id #=> String
1821
+ # resp.associations[0].configuration.dynatrace.env_id #=> String
1822
+ # resp.associations[0].configuration.dynatrace.resources #=> Array
1823
+ # resp.associations[0].configuration.dynatrace.resources[0] #=> String
1824
+ # resp.associations[0].configuration.servicenow.instance_id #=> String
1825
+ # resp.associations[0].configuration.servicenow.auth_scopes #=> Array
1826
+ # resp.associations[0].configuration.servicenow.auth_scopes[0] #=> String
1827
+ # resp.associations[0].configuration.mcpservernewrelic.account_id #=> String
1828
+ # resp.associations[0].configuration.mcpservernewrelic.endpoint #=> String
1829
+ # resp.associations[0].configuration.gitlab.project_id #=> String
1830
+ # resp.associations[0].configuration.gitlab.project_path #=> String
1831
+ # resp.associations[0].configuration.gitlab.instance_identifier #=> String
1832
+ # resp.associations[0].configuration.azure.subscription_id #=> String
1833
+ # resp.associations[0].configuration.azuredevops.organization_name #=> String
1834
+ # resp.associations[0].configuration.azuredevops.project_id #=> String
1835
+ # resp.associations[0].configuration.azuredevops.project_name #=> String
1836
+ # resp.associations[0].configuration.mcpservergrafana.endpoint #=> String
1837
+ # resp.associations[0].configuration.mcpservergrafana.organization_id #=> String
1838
+ # resp.associations[0].configuration.mcpservergrafana.tools #=> Array
1839
+ # resp.associations[0].configuration.mcpservergrafana.tools[0] #=> String
1840
+ # resp.associations[0].configuration.pagerduty.services #=> Array
1841
+ # resp.associations[0].configuration.pagerduty.services[0] #=> String
1842
+ # resp.associations[0].configuration.pagerduty.customer_email #=> String
1843
+ # resp.associations[0].configuration.msteams.team_id #=> String
1844
+ # resp.associations[0].configuration.msteams.team_name #=> String
1845
+ # resp.associations[0].configuration.msteams.transmission_target.ops_oncall_target.channel_name #=> String
1846
+ # resp.associations[0].configuration.msteams.transmission_target.ops_oncall_target.channel_id #=> String
1847
+ # resp.associations[0].configuration.msteams.transmission_target.ops_sre_target.channel_name #=> String
1848
+ # resp.associations[0].configuration.msteams.transmission_target.ops_sre_target.channel_id #=> String
1849
+ #
1850
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListAssociations AWS API Documentation
1851
+ #
1852
+ # @overload list_associations(params = {})
1853
+ # @param [Hash] params ({})
1854
+ def list_associations(params = {}, options = {})
1855
+ req = build_request(:list_associations, params)
1856
+ req.send_request(options)
1857
+ end
1858
+
1859
+ # Lists backlog tasks in the specified agent space with optional
1860
+ # filtering and sorting
1861
+ #
1862
+ # @option params [required, String] :agent_space_id
1863
+ # The unique identifier for the agent space containing the tasks
1864
+ #
1865
+ # @option params [Types::TaskFilter] :filter
1866
+ # Filter criteria to apply when listing tasks
1867
+ #
1868
+ # Filtering restrictions:
1869
+ #
1870
+ # * Each filter field list is limited to a single value
1871
+ # * Filtering by Priority and Status at the same time when not filtering
1872
+ # by Type is not permitted
1873
+ # * Timestamp filters (createdAfter, createdBefore) can be combined with
1874
+ # other filters when not sorting by priority
1875
+ #
1876
+ # @option params [Integer] :limit
1877
+ # Maximum number of tasks to return in a single response (1-1000,
1878
+ # default: 100)
1879
+ #
1880
+ # @option params [String] :next_token
1881
+ # Token for retrieving the next page of results
1882
+ #
1883
+ # @option params [String] :sort_field
1884
+ # Field to sort by
1885
+ #
1886
+ # Sorting restrictions:
1887
+ #
1888
+ # * Only sorting on createdAt is supported when using priority or status
1889
+ # filters alone.
1890
+ # * Sorting by priority is not supported when using Timestamp filters
1891
+ # (createdAfter, createdBefore)
1892
+ #
1893
+ # @option params [String] :order
1894
+ # Sort order for the tasks based on sortField (default: DESC)
1895
+ #
1896
+ # @return [Types::ListBacklogTasksResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1897
+ #
1898
+ # * {Types::ListBacklogTasksResponse#tasks #tasks} => Array&lt;Types::Task&gt;
1899
+ # * {Types::ListBacklogTasksResponse#next_token #next_token} => String
1900
+ #
1901
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1902
+ #
1903
+ # @example Request syntax with placeholder values
1904
+ #
1905
+ # resp = client.list_backlog_tasks({
1906
+ # agent_space_id: "AgentSpaceId", # required
1907
+ # filter: {
1908
+ # created_after: Time.now,
1909
+ # created_before: Time.now,
1910
+ # priority: ["CRITICAL"], # accepts CRITICAL, HIGH, MEDIUM, LOW, MINIMAL
1911
+ # status: ["PENDING_TRIAGE"], # accepts PENDING_TRIAGE, LINKED, PENDING_START, IN_PROGRESS, PENDING_CUSTOMER_APPROVAL, COMPLETED, FAILED, TIMED_OUT, CANCELED
1912
+ # task_type: ["INVESTIGATION"], # accepts INVESTIGATION, EVALUATION
1913
+ # primary_task_id: "ResourceId",
1914
+ # },
1915
+ # limit: 1,
1916
+ # next_token: "NextToken",
1917
+ # sort_field: "CREATED_AT", # accepts CREATED_AT, PRIORITY
1918
+ # order: "ASC", # accepts ASC, DESC
1919
+ # })
1920
+ #
1921
+ # @example Response structure
1922
+ #
1923
+ # resp.tasks #=> Array
1924
+ # resp.tasks[0].agent_space_id #=> String
1925
+ # resp.tasks[0].task_id #=> String
1926
+ # resp.tasks[0].execution_id #=> String
1927
+ # resp.tasks[0].title #=> String
1928
+ # resp.tasks[0].description #=> String
1929
+ # resp.tasks[0].reference.system #=> String
1930
+ # resp.tasks[0].reference.title #=> String
1931
+ # resp.tasks[0].reference.reference_id #=> String
1932
+ # resp.tasks[0].reference.reference_url #=> String
1933
+ # resp.tasks[0].reference.association_id #=> String
1934
+ # resp.tasks[0].task_type #=> String, one of "INVESTIGATION", "EVALUATION"
1935
+ # resp.tasks[0].priority #=> String, one of "CRITICAL", "HIGH", "MEDIUM", "LOW", "MINIMAL"
1936
+ # resp.tasks[0].status #=> String, one of "PENDING_TRIAGE", "LINKED", "PENDING_START", "IN_PROGRESS", "PENDING_CUSTOMER_APPROVAL", "COMPLETED", "FAILED", "TIMED_OUT", "CANCELED"
1937
+ # resp.tasks[0].created_at #=> Time
1938
+ # resp.tasks[0].updated_at #=> Time
1939
+ # resp.tasks[0].version #=> Integer
1940
+ # resp.tasks[0].primary_task_id #=> String
1941
+ # resp.tasks[0].status_reason #=> String
1942
+ # resp.tasks[0].has_linked_tasks #=> Boolean
1943
+ # resp.next_token #=> String
1944
+ #
1945
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListBacklogTasks AWS API Documentation
1946
+ #
1947
+ # @overload list_backlog_tasks(params = {})
1948
+ # @param [Hash] params ({})
1949
+ def list_backlog_tasks(params = {}, options = {})
1950
+ req = build_request(:list_backlog_tasks, params)
1951
+ req.send_request(options)
1952
+ end
1953
+
1954
+ # Retrieves a paginated list of the user's recent chat executions
1955
+ #
1956
+ # @option params [required, String] :agent_space_id
1957
+ # Unique identifier for an agent space (allows alphanumeric characters
1958
+ # and hyphens; 1-64 characters)
1959
+ #
1960
+ # @option params [required, String] :user_id
1961
+ # The user identifier to list chats for
1962
+ #
1963
+ # @option params [Integer] :max_results
1964
+ # Maximum number of results to return
1965
+ #
1966
+ # @option params [String] :next_token
1967
+ # Token for pagination
1968
+ #
1969
+ # @return [Types::ListChatsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1970
+ #
1971
+ # * {Types::ListChatsResponse#executions #executions} => Array&lt;Types::ChatExecution&gt;
1972
+ # * {Types::ListChatsResponse#next_token #next_token} => String
1973
+ #
1974
+ # @example Request syntax with placeholder values
1975
+ #
1976
+ # resp = client.list_chats({
1977
+ # agent_space_id: "AgentSpaceId", # required
1978
+ # user_id: "ResourceId", # required
1979
+ # max_results: 1,
1980
+ # next_token: "String",
1981
+ # })
1982
+ #
1983
+ # @example Response structure
1984
+ #
1985
+ # resp.executions #=> Array
1986
+ # resp.executions[0].execution_id #=> String
1987
+ # resp.executions[0].created_at #=> Time
1988
+ # resp.executions[0].updated_at #=> Time
1989
+ # resp.executions[0].summary #=> String
1990
+ # resp.next_token #=> String
1991
+ #
1992
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListChats AWS API Documentation
1993
+ #
1994
+ # @overload list_chats(params = {})
1995
+ # @param [Hash] params ({})
1996
+ def list_chats(params = {}, options = {})
1997
+ req = build_request(:list_chats, params)
1998
+ req.send_request(options)
1999
+ end
2000
+
2001
+ # List executions
2002
+ #
2003
+ # @option params [required, String] :agent_space_id
2004
+ # The unique identifier for the agent space
2005
+ #
2006
+ # @option params [required, String] :task_id
2007
+ # The unique identifier of the task whose executions to retrieve
2008
+ #
2009
+ # @option params [Integer] :limit
2010
+ # Maximum number of executions to return
2011
+ #
2012
+ # @option params [String] :next_token
2013
+ # Token for pagination to retrieve the next set of results
2014
+ #
2015
+ # @return [Types::ListExecutionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2016
+ #
2017
+ # * {Types::ListExecutionsResponse#executions #executions} => Array&lt;Types::Execution&gt;
2018
+ # * {Types::ListExecutionsResponse#next_token #next_token} => String
2019
+ #
2020
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2021
+ #
2022
+ # @example Request syntax with placeholder values
2023
+ #
2024
+ # resp = client.list_executions({
2025
+ # agent_space_id: "AgentSpaceId", # required
2026
+ # task_id: "ResourceId", # required
2027
+ # limit: 1,
2028
+ # next_token: "NextToken",
2029
+ # })
2030
+ #
2031
+ # @example Response structure
2032
+ #
2033
+ # resp.executions #=> Array
2034
+ # resp.executions[0].agent_space_id #=> String
2035
+ # resp.executions[0].execution_id #=> String
2036
+ # resp.executions[0].parent_execution_id #=> String
2037
+ # resp.executions[0].agent_sub_task #=> String
2038
+ # resp.executions[0].created_at #=> Time
2039
+ # resp.executions[0].updated_at #=> Time
2040
+ # resp.executions[0].execution_status #=> String, one of "FAILED", "RUNNING", "STOPPED", "CANCELED", "TIMED_OUT"
2041
+ # resp.executions[0].agent_type #=> String
2042
+ # resp.executions[0].uid #=> String
2043
+ # resp.next_token #=> String
2044
+ #
2045
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListExecutions AWS API Documentation
2046
+ #
2047
+ # @overload list_executions(params = {})
2048
+ # @param [Hash] params ({})
2049
+ def list_executions(params = {}, options = {})
2050
+ req = build_request(:list_executions, params)
2051
+ req.send_request(options)
2052
+ end
2053
+
2054
+ # Lists goals in the specified agent space with optional filtering
2055
+ #
2056
+ # @option params [required, String] :agent_space_id
2057
+ # The unique identifier for the agent space
2058
+ #
2059
+ # @option params [String] :status
2060
+ # Filter goals by goal status
2061
+ #
2062
+ # @option params [String] :goal_type
2063
+ # Filter goals by goal type
2064
+ #
2065
+ # @option params [Integer] :limit
2066
+ # Maximum number of goals to return
2067
+ #
2068
+ # @option params [String] :next_token
2069
+ # Pagination token for the next set of results
2070
+ #
2071
+ # @return [Types::ListGoalsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2072
+ #
2073
+ # * {Types::ListGoalsResponse#goals #goals} => Array&lt;Types::Goal&gt;
2074
+ # * {Types::ListGoalsResponse#next_token #next_token} => String
2075
+ #
2076
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2077
+ #
2078
+ # @example Request syntax with placeholder values
2079
+ #
2080
+ # resp = client.list_goals({
2081
+ # agent_space_id: "AgentSpaceId", # required
2082
+ # status: "ACTIVE", # accepts ACTIVE, PAUSED, COMPLETE
2083
+ # goal_type: "CUSTOMER_DEFINED", # accepts CUSTOMER_DEFINED, ONCALL_REPORT
2084
+ # limit: 1,
2085
+ # next_token: "NextToken",
2086
+ # })
2087
+ #
2088
+ # @example Response structure
2089
+ #
2090
+ # resp.goals #=> Array
2091
+ # resp.goals[0].agent_space_arn #=> String
2092
+ # resp.goals[0].goal_id #=> String
2093
+ # resp.goals[0].title #=> String
2094
+ # resp.goals[0].content.description #=> String
2095
+ # resp.goals[0].content.objectives #=> String
2096
+ # resp.goals[0].status #=> String, one of "ACTIVE", "PAUSED", "COMPLETE"
2097
+ # resp.goals[0].goal_type #=> String, one of "CUSTOMER_DEFINED", "ONCALL_REPORT"
2098
+ # resp.goals[0].created_at #=> Time
2099
+ # resp.goals[0].updated_at #=> Time
2100
+ # resp.goals[0].last_evaluated_at #=> Time
2101
+ # resp.goals[0].last_task_id #=> String
2102
+ # resp.goals[0].last_successful_task_id #=> String
2103
+ # resp.goals[0].version #=> Integer
2104
+ # resp.goals[0].evaluation_schedule.state #=> String, one of "ENABLED", "DISABLED"
2105
+ # resp.goals[0].evaluation_schedule.expression #=> String
2106
+ # resp.next_token #=> String
2107
+ #
2108
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListGoals AWS API Documentation
2109
+ #
2110
+ # @overload list_goals(params = {})
2111
+ # @param [Hash] params ({})
2112
+ def list_goals(params = {}, options = {})
2113
+ req = build_request(:list_goals, params)
2114
+ req.send_request(options)
2115
+ end
2116
+
2117
+ # List journal records for a specific execution
2118
+ #
2119
+ # @option params [required, String] :agent_space_id
2120
+ # The unique identifier for the agent space containing the execution
2121
+ #
2122
+ # @option params [required, String] :execution_id
2123
+ # The unique identifier of the execution whose journal records to
2124
+ # retrieve
2125
+ #
2126
+ # @option params [Integer] :limit
2127
+ # Maximum number of records to return in a single response (1-100,
2128
+ # default: 100)
2129
+ #
2130
+ # @option params [String] :next_token
2131
+ # Token for retrieving the next page of results
2132
+ #
2133
+ # @option params [String] :record_type
2134
+ # Filter records by type (empty string returns all types)
2135
+ #
2136
+ # @option params [String] :order
2137
+ # Sort order for the records based on timestamp (default: DESC)
2138
+ #
2139
+ # @return [Types::ListJournalRecordsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2140
+ #
2141
+ # * {Types::ListJournalRecordsResponse#records #records} => Array&lt;Types::JournalRecord&gt;
2142
+ # * {Types::ListJournalRecordsResponse#next_token #next_token} => String
2143
+ #
2144
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2145
+ #
2146
+ # @example Request syntax with placeholder values
2147
+ #
2148
+ # resp = client.list_journal_records({
2149
+ # agent_space_id: "AgentSpaceId", # required
2150
+ # execution_id: "ResourceId", # required
2151
+ # limit: 1,
2152
+ # next_token: "NextToken",
2153
+ # record_type: "String",
2154
+ # order: "ASC", # accepts ASC, DESC
2155
+ # })
2156
+ #
2157
+ # @example Response structure
2158
+ #
2159
+ # resp.records #=> Array
2160
+ # resp.records[0].agent_space_id #=> String
2161
+ # resp.records[0].execution_id #=> String
2162
+ # resp.records[0].record_id #=> String
2163
+ # resp.records[0].created_at #=> Time
2164
+ # resp.records[0].record_type #=> String
2165
+ # resp.records[0].user_reference.user_id #=> String
2166
+ # resp.records[0].user_reference.user_type #=> String, one of "IAM", "IDC", "IDP"
2167
+ # resp.next_token #=> String
2168
+ #
2169
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListJournalRecords AWS API Documentation
2170
+ #
2171
+ # @overload list_journal_records(params = {})
2172
+ # @param [Hash] params ({})
2173
+ def list_journal_records(params = {}, options = {})
2174
+ req = build_request(:list_journal_records, params)
2175
+ req.send_request(options)
2176
+ end
2177
+
2178
+ # List pending messages for a specific execution.
2179
+ #
2180
+ # @option params [required, String] :agent_space_id
2181
+ # Unique identifier for an agent space (allows alphanumeric characters
2182
+ # and hyphens; 1-64 characters)
2183
+ #
2184
+ # @option params [required, String] :execution_id
2185
+ # The unique identifier of the execution whose journal records to
2186
+ # retrieve
2187
+ #
2188
+ # @return [Types::ListPendingMessagesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2189
+ #
2190
+ # * {Types::ListPendingMessagesResponse#agent_space_id #agent_space_id} => String
2191
+ # * {Types::ListPendingMessagesResponse#execution_id #execution_id} => String
2192
+ # * {Types::ListPendingMessagesResponse#messages #messages} => Array&lt;Types::PendingMessage&gt;
2193
+ # * {Types::ListPendingMessagesResponse#created_at #created_at} => Time
2194
+ #
2195
+ # @example Request syntax with placeholder values
2196
+ #
2197
+ # resp = client.list_pending_messages({
2198
+ # agent_space_id: "AgentSpaceId", # required
2199
+ # execution_id: "ResourceId", # required
2200
+ # })
2201
+ #
2202
+ # @example Response structure
2203
+ #
2204
+ # resp.agent_space_id #=> String
2205
+ # resp.execution_id #=> String
2206
+ # resp.messages #=> Array
2207
+ # resp.messages[0].message_id #=> String
2208
+ # resp.messages[0].message.user_message #=> Array
2209
+ # resp.messages[0].message.user_message[0].text #=> String
2210
+ # resp.messages[0].message.assistant_message #=> Array
2211
+ # resp.messages[0].message.assistant_message[0].text #=> String
2212
+ # resp.created_at #=> Time
2213
+ #
2214
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListPendingMessages AWS API Documentation
2215
+ #
2216
+ # @overload list_pending_messages(params = {})
2217
+ # @param [Hash] params ({})
2218
+ def list_pending_messages(params = {}, options = {})
2219
+ req = build_request(:list_pending_messages, params)
2220
+ req.send_request(options)
2221
+ end
2222
+
2223
+ # Lists all Private Connections in the caller's account.
2224
+ #
2225
+ # @return [Types::ListPrivateConnectionsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2226
+ #
2227
+ # * {Types::ListPrivateConnectionsOutput#private_connections #private_connections} => Array&lt;Types::PrivateConnectionSummary&gt;
2228
+ #
2229
+ # @example Response structure
2230
+ #
2231
+ # resp.private_connections #=> Array
2232
+ # resp.private_connections[0].name #=> String
2233
+ # resp.private_connections[0].type #=> String, one of "SELF_MANAGED", "SERVICE_MANAGED"
2234
+ # resp.private_connections[0].resource_gateway_id #=> String
2235
+ # resp.private_connections[0].host_address #=> String
2236
+ # resp.private_connections[0].vpc_id #=> String
2237
+ # resp.private_connections[0].resource_configuration_id #=> String
2238
+ # resp.private_connections[0].status #=> String, one of "ACTIVE", "CREATE_IN_PROGRESS", "CREATE_FAILED", "DELETE_IN_PROGRESS", "DELETE_FAILED"
2239
+ # resp.private_connections[0].certificate_expiry_time #=> Time
2240
+ #
2241
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListPrivateConnections AWS API Documentation
2242
+ #
2243
+ # @overload list_private_connections(params = {})
2244
+ # @param [Hash] params ({})
2245
+ def list_private_connections(params = {}, options = {})
2246
+ req = build_request(:list_private_connections, params)
2247
+ req.send_request(options)
2248
+ end
2249
+
2250
+ # Lists recommendations for the specified agent space
2251
+ #
2252
+ # @option params [required, String] :agent_space_id
2253
+ # The unique identifier for the agent space containing the
2254
+ # recommendations
2255
+ #
2256
+ # @option params [String] :task_id
2257
+ # Optional task ID to filter recommendations by specific task
2258
+ #
2259
+ # @option params [String] :goal_id
2260
+ # Optional goal ID to filter recommendations by specific goal
2261
+ #
2262
+ # @option params [String] :status
2263
+ # Optional status to filter recommendations by their current status
2264
+ #
2265
+ # @option params [String] :priority
2266
+ # Optional priority to filter recommendations by priority level
2267
+ #
2268
+ # @option params [Integer] :limit
2269
+ # Maximum number of recommendations to return in a single response
2270
+ #
2271
+ # @option params [String] :next_token
2272
+ # Token for retrieving the next page of results
2273
+ #
2274
+ # @return [Types::ListRecommendationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2275
+ #
2276
+ # * {Types::ListRecommendationsResponse#recommendations #recommendations} => Array&lt;Types::Recommendation&gt;
2277
+ # * {Types::ListRecommendationsResponse#next_token #next_token} => String
2278
+ #
2279
+ # @example Request syntax with placeholder values
2280
+ #
2281
+ # resp = client.list_recommendations({
2282
+ # agent_space_id: "AgentSpaceId", # required
2283
+ # task_id: "ResourceId",
2284
+ # goal_id: "ResourceId",
2285
+ # status: "PROPOSED", # accepts PROPOSED, ACCEPTED, REJECTED, CLOSED, COMPLETED, UPDATE_IN_PROGRESS
2286
+ # priority: "HIGH", # accepts HIGH, MEDIUM, LOW
2287
+ # limit: 1,
2288
+ # next_token: "NextToken",
2289
+ # })
2290
+ #
2291
+ # @example Response structure
2292
+ #
2293
+ # resp.recommendations #=> Array
2294
+ # resp.recommendations[0].agent_space_arn #=> String
2295
+ # resp.recommendations[0].recommendation_id #=> String
2296
+ # resp.recommendations[0].task_id #=> String
2297
+ # resp.recommendations[0].goal_id #=> String
2298
+ # resp.recommendations[0].title #=> String
2299
+ # resp.recommendations[0].content.summary #=> String
2300
+ # resp.recommendations[0].content.spec #=> String
2301
+ # resp.recommendations[0].status #=> String, one of "PROPOSED", "ACCEPTED", "REJECTED", "CLOSED", "COMPLETED", "UPDATE_IN_PROGRESS"
2302
+ # resp.recommendations[0].priority #=> String, one of "HIGH", "MEDIUM", "LOW"
2303
+ # resp.recommendations[0].goal_version #=> Integer
2304
+ # resp.recommendations[0].additional_context #=> String
2305
+ # resp.recommendations[0].created_at #=> Time
2306
+ # resp.recommendations[0].updated_at #=> Time
2307
+ # resp.recommendations[0].version #=> Integer
2308
+ # resp.next_token #=> String
2309
+ #
2310
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListRecommendations AWS API Documentation
2311
+ #
2312
+ # @overload list_recommendations(params = {})
2313
+ # @param [Hash] params ({})
2314
+ def list_recommendations(params = {}, options = {})
2315
+ req = build_request(:list_recommendations, params)
2316
+ req.send_request(options)
2317
+ end
2318
+
2319
+ # List a list of registered service on the account level.
2320
+ #
2321
+ # @option params [Integer] :max_results
2322
+ # Maximum number of results to return in a single call.
2323
+ #
2324
+ # @option params [String] :next_token
2325
+ # Token for the next page of results.
2326
+ #
2327
+ # @option params [String] :filter_service_type
2328
+ # Optional filter to list only services of a specific type.
2329
+ #
2330
+ # @return [Types::ListServicesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2331
+ #
2332
+ # * {Types::ListServicesOutput#next_token #next_token} => String
2333
+ # * {Types::ListServicesOutput#services #services} => Array&lt;Types::RegisteredService&gt;
2334
+ #
2335
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2336
+ #
2337
+ # @example Request syntax with placeholder values
2338
+ #
2339
+ # resp = client.list_services({
2340
+ # max_results: 1,
2341
+ # next_token: "NextToken",
2342
+ # filter_service_type: "github", # accepts github, slack, azure, azuredevops, msteams, dynatrace, servicenow, pagerduty, gitlab, eventChannel, mcpservernewrelic, mcpservergrafana, mcpserverdatadog, mcpserver, mcpserversplunk, azureidentity, mcpserversigv4
2343
+ # })
2344
+ #
2345
+ # @example Response structure
2346
+ #
2347
+ # resp.next_token #=> String
2348
+ # resp.services #=> Array
2349
+ # resp.services[0].service_id #=> String
2350
+ # resp.services[0].service_type #=> String, one of "github", "slack", "azure", "azuredevops", "msteams", "dynatrace", "servicenow", "pagerduty", "gitlab", "eventChannel", "mcpservernewrelic", "mcpservergrafana", "mcpserverdatadog", "mcpserver", "mcpserversplunk", "azureidentity", "mcpserversigv4"
2351
+ # resp.services[0].name #=> String
2352
+ # resp.services[0].accessible_resources #=> Array
2353
+ # resp.services[0].additional_service_details.github.owner #=> String
2354
+ # resp.services[0].additional_service_details.github.owner_type #=> String, one of "organization", "user"
2355
+ # resp.services[0].additional_service_details.github.target_url #=> String
2356
+ # resp.services[0].additional_service_details.slack.team_id #=> String
2357
+ # resp.services[0].additional_service_details.slack.team_name #=> String
2358
+ # resp.services[0].additional_service_details.mcpserverdatadog.name #=> String
2359
+ # resp.services[0].additional_service_details.mcpserverdatadog.endpoint #=> String
2360
+ # resp.services[0].additional_service_details.mcpserverdatadog.authorization_method #=> String, one of "oauth-client-credentials", "oauth-3lo", "api-key", "bearer-token"
2361
+ # resp.services[0].additional_service_details.mcpserverdatadog.description #=> String
2362
+ # resp.services[0].additional_service_details.mcpserverdatadog.api_key_header #=> String
2363
+ # resp.services[0].additional_service_details.mcpserver.name #=> String
2364
+ # resp.services[0].additional_service_details.mcpserver.endpoint #=> String
2365
+ # resp.services[0].additional_service_details.mcpserver.authorization_method #=> String, one of "oauth-client-credentials", "oauth-3lo", "api-key", "bearer-token"
2366
+ # resp.services[0].additional_service_details.mcpserver.description #=> String
2367
+ # resp.services[0].additional_service_details.mcpserver.api_key_header #=> String
2368
+ # resp.services[0].additional_service_details.servicenow.instance_url #=> String
2369
+ # resp.services[0].additional_service_details.gitlab.target_url #=> String
2370
+ # resp.services[0].additional_service_details.gitlab.token_type #=> String, one of "personal", "group"
2371
+ # resp.services[0].additional_service_details.gitlab.group_id #=> String
2372
+ # resp.services[0].additional_service_details.mcpserversplunk.name #=> String
2373
+ # resp.services[0].additional_service_details.mcpserversplunk.endpoint #=> String
2374
+ # resp.services[0].additional_service_details.mcpserversplunk.authorization_method #=> String, one of "oauth-client-credentials", "oauth-3lo", "api-key", "bearer-token"
2375
+ # resp.services[0].additional_service_details.mcpserversplunk.description #=> String
2376
+ # resp.services[0].additional_service_details.mcpserversplunk.api_key_header #=> String
2377
+ # resp.services[0].additional_service_details.mcpservernewrelic.account_id #=> String
2378
+ # resp.services[0].additional_service_details.mcpservernewrelic.region #=> String, one of "US", "EU"
2379
+ # resp.services[0].additional_service_details.mcpservernewrelic.description #=> String
2380
+ # resp.services[0].additional_service_details.azuredevops.organization_name #=> String
2381
+ # resp.services[0].additional_service_details.azureidentity.tenant_id #=> String
2382
+ # resp.services[0].additional_service_details.azureidentity.client_id #=> String
2383
+ # resp.services[0].additional_service_details.azureidentity.web_identity_role_arn #=> String
2384
+ # resp.services[0].additional_service_details.azureidentity.web_identity_token_audiences #=> Array
2385
+ # resp.services[0].additional_service_details.azureidentity.web_identity_token_audiences[0] #=> String
2386
+ # resp.services[0].additional_service_details.mcpservergrafana.endpoint #=> String
2387
+ # resp.services[0].additional_service_details.mcpservergrafana.authorization_method #=> String, one of "oauth-client-credentials", "oauth-3lo", "api-key", "bearer-token"
2388
+ # resp.services[0].additional_service_details.pagerduty.scopes #=> Array
2389
+ # resp.services[0].additional_service_details.pagerduty.scopes[0] #=> String
2390
+ # resp.services[0].additional_service_details.mcpserversigv4.name #=> String
2391
+ # resp.services[0].additional_service_details.mcpserversigv4.endpoint #=> String
2392
+ # resp.services[0].additional_service_details.mcpserversigv4.description #=> String
2393
+ # resp.services[0].additional_service_details.mcpserversigv4.region #=> String
2394
+ # resp.services[0].additional_service_details.mcpserversigv4.service #=> String
2395
+ # resp.services[0].additional_service_details.mcpserversigv4.role_arn #=> String
2396
+ # resp.services[0].kms_key_arn #=> String
2397
+ # resp.services[0].private_connection_name #=> String
2398
+ #
2399
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListServices AWS API Documentation
2400
+ #
2401
+ # @overload list_services(params = {})
2402
+ # @param [Hash] params ({})
2403
+ def list_services(params = {}, options = {})
2404
+ req = build_request(:list_services, params)
2405
+ req.send_request(options)
2406
+ end
2407
+
2408
+ # Lists tags for the specified AWS DevOps Agent resource.
2409
+ #
2410
+ # @option params [required, String] :resource_arn
2411
+ # The ARN of the resource.
2412
+ #
2413
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2414
+ #
2415
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
2416
+ #
2417
+ # @example Request syntax with placeholder values
2418
+ #
2419
+ # resp = client.list_tags_for_resource({
2420
+ # resource_arn: "ListTagsForResourceRequestResourceArnString", # required
2421
+ # })
2422
+ #
2423
+ # @example Response structure
2424
+ #
2425
+ # resp.tags #=> Hash
2426
+ # resp.tags["TagKey"] #=> String
2427
+ #
2428
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListTagsForResource AWS API Documentation
2429
+ #
2430
+ # @overload list_tags_for_resource(params = {})
2431
+ # @param [Hash] params ({})
2432
+ def list_tags_for_resource(params = {}, options = {})
2433
+ req = build_request(:list_tags_for_resource, params)
2434
+ req.send_request(options)
2435
+ end
2436
+
2437
+ # List all webhooks for given Association
2438
+ #
2439
+ # @option params [required, String] :agent_space_id
2440
+ # The unique identifier of the AgentSpace
2441
+ #
2442
+ # @option params [required, String] :association_id
2443
+ # The unique identifier of the given association.
2444
+ #
2445
+ # @return [Types::ListWebhooksOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2446
+ #
2447
+ # * {Types::ListWebhooksOutput#webhooks #webhooks} => Array&lt;Types::Webhook&gt;
2448
+ #
2449
+ # @example Request syntax with placeholder values
2450
+ #
2451
+ # resp = client.list_webhooks({
2452
+ # agent_space_id: "AgentSpaceId", # required
2453
+ # association_id: "AssociationId", # required
2454
+ # })
2455
+ #
2456
+ # @example Response structure
2457
+ #
2458
+ # resp.webhooks #=> Array
2459
+ # resp.webhooks[0].webhook_url #=> String
2460
+ # resp.webhooks[0].webhook_type #=> String, one of "hmac", "apikey", "gitlab", "pagerduty"
2461
+ # resp.webhooks[0].webhook_id #=> String
2462
+ #
2463
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ListWebhooks AWS API Documentation
2464
+ #
2465
+ # @overload list_webhooks(params = {})
2466
+ # @param [Hash] params ({})
2467
+ def list_webhooks(params = {}, options = {})
2468
+ req = build_request(:list_webhooks, params)
2469
+ req.send_request(options)
2470
+ end
2471
+
2472
+ # This operation registers the specified service
2473
+ #
2474
+ # @option params [required, String] :service
2475
+ # Services that can be registered via the post-registration API
2476
+ # (excludes OAuth 3LO services).
2477
+ #
2478
+ # @option params [required, Types::ServiceDetails] :service_details
2479
+ # Service-specific authorization configuration parameters
2480
+ #
2481
+ # @option params [String] :kms_key_arn
2482
+ # The ARN of the AWS Key Management Service (AWS KMS) customer managed
2483
+ # key that's used to encrypt resources.
2484
+ #
2485
+ # @option params [String] :private_connection_name
2486
+ # The name of the private connection to use for VPC connectivity.
2487
+ #
2488
+ # @option params [String] :name
2489
+ # The display name for the service registration.
2490
+ #
2491
+ # @option params [Hash<String,String>] :tags
2492
+ # Tags to add to the Service at registration time.
2493
+ #
2494
+ # @return [Types::RegisterServiceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2495
+ #
2496
+ # * {Types::RegisterServiceOutput#service_id #service_id} => String
2497
+ # * {Types::RegisterServiceOutput#additional_step #additional_step} => Types::AdditionalServiceRegistrationStep
2498
+ # * {Types::RegisterServiceOutput#kms_key_arn #kms_key_arn} => String
2499
+ # * {Types::RegisterServiceOutput#tags #tags} => Hash&lt;String,String&gt;
2500
+ #
2501
+ # @example Request syntax with placeholder values
2502
+ #
2503
+ # resp = client.register_service({
2504
+ # service: "dynatrace", # required, accepts dynatrace, servicenow, pagerduty, gitlab, eventChannel, mcpservernewrelic, mcpservergrafana, mcpserverdatadog, mcpserver, mcpserversplunk, azureidentity, mcpserversigv4
2505
+ # service_details: { # required
2506
+ # dynatrace: {
2507
+ # account_urn: "DynatraceServiceDetailsAccountUrnString", # required
2508
+ # authorization_config: {
2509
+ # o_auth_client_credentials: {
2510
+ # client_name: "DynatraceOAuthClientCredentialsConfigClientNameString",
2511
+ # client_id: "ClientId", # required
2512
+ # exchange_parameters: {
2513
+ # "String" => "ExchangeParameterValue",
2514
+ # },
2515
+ # client_secret: "ClientSecret", # required
2516
+ # },
2517
+ # },
2518
+ # },
2519
+ # servicenow: {
2520
+ # instance_url: "ServiceNowInstanceUrl", # required
2521
+ # authorization_config: {
2522
+ # o_auth_client_credentials: {
2523
+ # client_name: "ServiceNowOAuthClientCredentialsConfigClientNameString",
2524
+ # client_id: "ClientId", # required
2525
+ # exchange_parameters: {
2526
+ # "String" => "ExchangeParameterValue",
2527
+ # },
2528
+ # client_secret: "ClientSecret", # required
2529
+ # },
2530
+ # },
2531
+ # },
2532
+ # mcpserverdatadog: {
2533
+ # name: "DatadogServiceDetailsNameString", # required
2534
+ # endpoint: "DatadogServiceDetailsEndpointString", # required
2535
+ # description: "DatadogServiceDetailsDescriptionString",
2536
+ # authorization_config: { # required
2537
+ # authorization_discovery: {
2538
+ # return_to_endpoint: "MCPServerAuthorizationDiscoveryConfigReturnToEndpointString", # required
2539
+ # },
2540
+ # },
2541
+ # },
2542
+ # mcpserver: {
2543
+ # name: "MCPServerDetailsNameString", # required
2544
+ # endpoint: "MCPServerDetailsEndpointString", # required
2545
+ # description: "MCPServerDetailsDescriptionString",
2546
+ # authorization_config: { # required
2547
+ # o_auth_client_credentials: {
2548
+ # client_name: "MCPServerOAuthClientCredentialsConfigClientNameString",
2549
+ # client_id: "ClientId", # required
2550
+ # exchange_parameters: {
2551
+ # "String" => "ExchangeParameterValue",
2552
+ # },
2553
+ # client_secret: "ClientSecret", # required
2554
+ # exchange_url: "MCPServerOAuthClientCredentialsConfigExchangeUrlString", # required
2555
+ # scopes: ["String"],
2556
+ # },
2557
+ # o_auth_3_lo: {
2558
+ # client_name: "MCPServerOAuth3LOConfigClientNameString",
2559
+ # client_id: "ClientId", # required
2560
+ # exchange_parameters: {
2561
+ # "String" => "ExchangeParameterValue",
2562
+ # },
2563
+ # return_to_endpoint: "MCPServerOAuth3LOConfigReturnToEndpointString", # required
2564
+ # authorization_url: "MCPServerOAuth3LOConfigAuthorizationUrlString", # required
2565
+ # exchange_url: "MCPServerOAuth3LOConfigExchangeUrlString", # required
2566
+ # client_secret: "ClientSecret",
2567
+ # support_code_challenge: false,
2568
+ # scopes: ["String"],
2569
+ # },
2570
+ # api_key: {
2571
+ # api_key_name: "MCPServerAPIKeyConfigApiKeyNameString", # required
2572
+ # api_key_value: "MCPServerAPIKeyConfigApiKeyValueString", # required
2573
+ # api_key_header: "MCPServerAPIKeyConfigApiKeyHeaderString", # required
2574
+ # },
2575
+ # bearer_token: {
2576
+ # token_name: "MCPServerBearerTokenConfigTokenNameString", # required
2577
+ # token_value: "MCPServerBearerTokenConfigTokenValueString", # required
2578
+ # authorization_header: "MCPServerBearerTokenConfigAuthorizationHeaderString",
2579
+ # },
2580
+ # authorization_discovery: {
2581
+ # return_to_endpoint: "MCPServerAuthorizationDiscoveryConfigReturnToEndpointString", # required
2582
+ # },
2583
+ # },
2584
+ # },
2585
+ # gitlab: {
2586
+ # target_url: "GitLabDetailsTargetUrlString", # required
2587
+ # token_type: "personal", # required, accepts personal, group
2588
+ # token_value: "GitLabDetailsTokenValueString", # required
2589
+ # group_id: "String",
2590
+ # },
2591
+ # mcpserversplunk: {
2592
+ # name: "MCPServerDetailsNameString", # required
2593
+ # endpoint: "MCPServerDetailsEndpointString", # required
2594
+ # description: "MCPServerDetailsDescriptionString",
2595
+ # authorization_config: { # required
2596
+ # o_auth_client_credentials: {
2597
+ # client_name: "MCPServerOAuthClientCredentialsConfigClientNameString",
2598
+ # client_id: "ClientId", # required
2599
+ # exchange_parameters: {
2600
+ # "String" => "ExchangeParameterValue",
2601
+ # },
2602
+ # client_secret: "ClientSecret", # required
2603
+ # exchange_url: "MCPServerOAuthClientCredentialsConfigExchangeUrlString", # required
2604
+ # scopes: ["String"],
2605
+ # },
2606
+ # o_auth_3_lo: {
2607
+ # client_name: "MCPServerOAuth3LOConfigClientNameString",
2608
+ # client_id: "ClientId", # required
2609
+ # exchange_parameters: {
2610
+ # "String" => "ExchangeParameterValue",
2611
+ # },
2612
+ # return_to_endpoint: "MCPServerOAuth3LOConfigReturnToEndpointString", # required
2613
+ # authorization_url: "MCPServerOAuth3LOConfigAuthorizationUrlString", # required
2614
+ # exchange_url: "MCPServerOAuth3LOConfigExchangeUrlString", # required
2615
+ # client_secret: "ClientSecret",
2616
+ # support_code_challenge: false,
2617
+ # scopes: ["String"],
2618
+ # },
2619
+ # api_key: {
2620
+ # api_key_name: "MCPServerAPIKeyConfigApiKeyNameString", # required
2621
+ # api_key_value: "MCPServerAPIKeyConfigApiKeyValueString", # required
2622
+ # api_key_header: "MCPServerAPIKeyConfigApiKeyHeaderString", # required
2623
+ # },
2624
+ # bearer_token: {
2625
+ # token_name: "MCPServerBearerTokenConfigTokenNameString", # required
2626
+ # token_value: "MCPServerBearerTokenConfigTokenValueString", # required
2627
+ # authorization_header: "MCPServerBearerTokenConfigAuthorizationHeaderString",
2628
+ # },
2629
+ # authorization_discovery: {
2630
+ # return_to_endpoint: "MCPServerAuthorizationDiscoveryConfigReturnToEndpointString", # required
2631
+ # },
2632
+ # },
2633
+ # },
2634
+ # mcpservernewrelic: {
2635
+ # authorization_config: { # required
2636
+ # api_key: {
2637
+ # api_key: "NewRelicApiKeyConfigApiKeyString", # required
2638
+ # account_id: "NewRelicApiKeyConfigAccountIdString", # required
2639
+ # region: "US", # required, accepts US, EU
2640
+ # application_ids: ["NewRelicApplicationIdsMemberString"],
2641
+ # entity_guids: ["NewRelicEntityGuidsMemberString"],
2642
+ # alert_policy_ids: ["NewRelicAlertPolicyIdsMemberString"],
2643
+ # },
2644
+ # },
2645
+ # },
2646
+ # event_channel: {
2647
+ # type: "webhook", # accepts webhook
2648
+ # },
2649
+ # mcpservergrafana: {
2650
+ # name: "GrafanaServiceDetailsNameString", # required
2651
+ # endpoint: "GrafanaServiceDetailsEndpointString", # required
2652
+ # description: "GrafanaServiceDetailsDescriptionString",
2653
+ # authorization_config: { # required
2654
+ # o_auth_client_credentials: {
2655
+ # client_name: "MCPServerOAuthClientCredentialsConfigClientNameString",
2656
+ # client_id: "ClientId", # required
2657
+ # exchange_parameters: {
2658
+ # "String" => "ExchangeParameterValue",
2659
+ # },
2660
+ # client_secret: "ClientSecret", # required
2661
+ # exchange_url: "MCPServerOAuthClientCredentialsConfigExchangeUrlString", # required
2662
+ # scopes: ["String"],
2663
+ # },
2664
+ # o_auth_3_lo: {
2665
+ # client_name: "MCPServerOAuth3LOConfigClientNameString",
2666
+ # client_id: "ClientId", # required
2667
+ # exchange_parameters: {
2668
+ # "String" => "ExchangeParameterValue",
2669
+ # },
2670
+ # return_to_endpoint: "MCPServerOAuth3LOConfigReturnToEndpointString", # required
2671
+ # authorization_url: "MCPServerOAuth3LOConfigAuthorizationUrlString", # required
2672
+ # exchange_url: "MCPServerOAuth3LOConfigExchangeUrlString", # required
2673
+ # client_secret: "ClientSecret",
2674
+ # support_code_challenge: false,
2675
+ # scopes: ["String"],
2676
+ # },
2677
+ # api_key: {
2678
+ # api_key_name: "MCPServerAPIKeyConfigApiKeyNameString", # required
2679
+ # api_key_value: "MCPServerAPIKeyConfigApiKeyValueString", # required
2680
+ # api_key_header: "MCPServerAPIKeyConfigApiKeyHeaderString", # required
2681
+ # },
2682
+ # bearer_token: {
2683
+ # token_name: "MCPServerBearerTokenConfigTokenNameString", # required
2684
+ # token_value: "MCPServerBearerTokenConfigTokenValueString", # required
2685
+ # authorization_header: "MCPServerBearerTokenConfigAuthorizationHeaderString",
2686
+ # },
2687
+ # authorization_discovery: {
2688
+ # return_to_endpoint: "MCPServerAuthorizationDiscoveryConfigReturnToEndpointString", # required
2689
+ # },
2690
+ # },
2691
+ # },
2692
+ # pagerduty: {
2693
+ # scopes: ["String"], # required
2694
+ # authorization_config: { # required
2695
+ # o_auth_client_credentials: {
2696
+ # client_name: "PagerDutyOAuthClientCredentialsConfigClientNameString",
2697
+ # client_id: "ClientId", # required
2698
+ # exchange_parameters: {
2699
+ # "String" => "ExchangeParameterValue",
2700
+ # },
2701
+ # client_secret: "ClientSecret", # required
2702
+ # },
2703
+ # },
2704
+ # },
2705
+ # azureidentity: {
2706
+ # tenant_id: "Guid", # required
2707
+ # client_id: "Guid", # required
2708
+ # web_identity_role_arn: "RoleArn", # required
2709
+ # web_identity_token_audiences: ["String"], # required
2710
+ # },
2711
+ # mcpserversigv4: {
2712
+ # name: "MCPServerSigV4ServiceDetailsNameString", # required
2713
+ # endpoint: "MCPServerSigV4ServiceDetailsEndpointString", # required
2714
+ # description: "MCPServerSigV4ServiceDetailsDescriptionString",
2715
+ # authorization_config: { # required
2716
+ # region: "AwsRegion", # required
2717
+ # service: "MCPServerSigV4AuthorizationConfigServiceString", # required
2718
+ # role_arn: "RoleArn", # required
2719
+ # },
2720
+ # },
2721
+ # },
2722
+ # kms_key_arn: "KmsKeyArn",
2723
+ # private_connection_name: "PrivateConnectionName",
2724
+ # name: "ServiceName",
2725
+ # tags: {
2726
+ # "TagKey" => "TagValue",
2727
+ # },
2728
+ # })
2729
+ #
2730
+ # @example Response structure
2731
+ #
2732
+ # resp.service_id #=> String
2733
+ # resp.additional_step.oauth.authorization_url #=> String
2734
+ # resp.kms_key_arn #=> String
2735
+ # resp.tags #=> Hash
2736
+ # resp.tags["TagKey"] #=> String
2737
+ #
2738
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/RegisterService AWS API Documentation
2739
+ #
2740
+ # @overload register_service(params = {})
2741
+ # @param [Hash] params ({})
2742
+ def register_service(params = {}, options = {})
2743
+ req = build_request(:register_service, params)
2744
+ req.send_request(options)
2745
+ end
2746
+
2747
+ # Sends a chat message and streams the response for the specified agent
2748
+ # space execution
2749
+ #
2750
+ # @option params [required, String] :agent_space_id
2751
+ # The agent space identifier
2752
+ #
2753
+ # @option params [required, String] :execution_id
2754
+ # The execution identifier for the chat session
2755
+ #
2756
+ # @option params [required, String] :content
2757
+ # The user message content
2758
+ #
2759
+ # @option params [Types::SendMessageContext] :context
2760
+ # Optional context for the message
2761
+ #
2762
+ # @option params [required, String] :user_id
2763
+ # Required user identifier
2764
+ #
2765
+ # @return [Types::SendMessageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2766
+ #
2767
+ # * {Types::SendMessageResponse#events #events} => Types::SendMessageEvents
2768
+ #
2769
+ # @example EventStream Operation Example
2770
+ #
2771
+ # # You can process the event once it arrives immediately, or wait until the
2772
+ # # full response is complete and iterate through the eventstream enumerator.
2773
+ #
2774
+ # # To interact with event immediately, you need to register send_message
2775
+ # # with callbacks. Callbacks can be registered for specific events or for all
2776
+ # # events, including error events.
2777
+ #
2778
+ # # Callbacks can be passed into the `:event_stream_handler` option or within a
2779
+ # # block statement attached to the #send_message call directly. Hybrid
2780
+ # # pattern of both is also supported.
2781
+ #
2782
+ # # `:event_stream_handler` option takes in either a Proc object or
2783
+ # # Aws::DevOpsAgent::EventStreams::SendMessageEvents object.
2784
+ #
2785
+ # # Usage pattern a): Callbacks with a block attached to #send_message
2786
+ # # Example for registering callbacks for all event types and an error event
2787
+ # client.send_message(
2788
+ # # params input
2789
+ # ) do |stream|
2790
+ # stream.on_error_event do |event|
2791
+ # # catch unmodeled error event in the stream
2792
+ # raise event
2793
+ # # => Aws::Errors::EventError
2794
+ # # event.event_type => :error
2795
+ # # event.error_code => String
2796
+ # # event.error_message => String
2797
+ # end
2798
+ #
2799
+ # stream.on_event do |event|
2800
+ # # process all events arrive
2801
+ # puts event.event_type
2802
+ # # ...
2803
+ # end
2804
+ # end
2805
+ #
2806
+ # # Usage pattern b): Pass in `:event_stream_handler` for #send_message
2807
+ # # 1) Create a Aws::DevOpsAgent::EventStreams::SendMessageEvents object
2808
+ # # Example for registering callbacks with specific events
2809
+ #
2810
+ # handler = Aws::DevOpsAgent::EventStreams::SendMessageEvents.new
2811
+ # handler.on_response_created_event do |event|
2812
+ # event # => Aws::DevOpsAgent::Types::responseCreated
2813
+ # end
2814
+ # handler.on_response_in_progress_event do |event|
2815
+ # event # => Aws::DevOpsAgent::Types::responseInProgress
2816
+ # end
2817
+ # handler.on_response_completed_event do |event|
2818
+ # event # => Aws::DevOpsAgent::Types::responseCompleted
2819
+ # end
2820
+ # handler.on_response_failed_event do |event|
2821
+ # event # => Aws::DevOpsAgent::Types::responseFailed
2822
+ # end
2823
+ # handler.on_summary_event do |event|
2824
+ # event # => Aws::DevOpsAgent::Types::summary
2825
+ # end
2826
+ # handler.on_heartbeat_event do |event|
2827
+ # event # => Aws::DevOpsAgent::Types::heartbeat
2828
+ # end
2829
+ # handler.on_content_block_start_event do |event|
2830
+ # event # => Aws::DevOpsAgent::Types::contentBlockStart
2831
+ # end
2832
+ # handler.on_content_block_delta_event do |event|
2833
+ # event # => Aws::DevOpsAgent::Types::contentBlockDelta
2834
+ # end
2835
+ # handler.on_content_block_stop_event do |event|
2836
+ # event # => Aws::DevOpsAgent::Types::contentBlockStop
2837
+ # end
2838
+ #
2839
+ # client.send_message(
2840
+ # # params inputs
2841
+ # event_stream_handler: handler
2842
+ # )
2843
+ #
2844
+ # # 2) Use a Ruby Proc object
2845
+ # # Example for registering callbacks with specific events
2846
+ # handler = Proc.new do |stream|
2847
+ # stream.on_response_created_event do |event|
2848
+ # event # => Aws::DevOpsAgent::Types::responseCreated
2849
+ # end
2850
+ # stream.on_response_in_progress_event do |event|
2851
+ # event # => Aws::DevOpsAgent::Types::responseInProgress
2852
+ # end
2853
+ # stream.on_response_completed_event do |event|
2854
+ # event # => Aws::DevOpsAgent::Types::responseCompleted
2855
+ # end
2856
+ # stream.on_response_failed_event do |event|
2857
+ # event # => Aws::DevOpsAgent::Types::responseFailed
2858
+ # end
2859
+ # stream.on_summary_event do |event|
2860
+ # event # => Aws::DevOpsAgent::Types::summary
2861
+ # end
2862
+ # stream.on_heartbeat_event do |event|
2863
+ # event # => Aws::DevOpsAgent::Types::heartbeat
2864
+ # end
2865
+ # stream.on_content_block_start_event do |event|
2866
+ # event # => Aws::DevOpsAgent::Types::contentBlockStart
2867
+ # end
2868
+ # stream.on_content_block_delta_event do |event|
2869
+ # event # => Aws::DevOpsAgent::Types::contentBlockDelta
2870
+ # end
2871
+ # stream.on_content_block_stop_event do |event|
2872
+ # event # => Aws::DevOpsAgent::Types::contentBlockStop
2873
+ # end
2874
+ # end
2875
+ #
2876
+ # client.send_message(
2877
+ # # params inputs
2878
+ # event_stream_handler: handler
2879
+ # )
2880
+ #
2881
+ # # Usage pattern c): Hybrid pattern of a) and b)
2882
+ # handler = Aws::DevOpsAgent::EventStreams::SendMessageEvents.new
2883
+ # handler.on_response_created_event do |event|
2884
+ # event # => Aws::DevOpsAgent::Types::responseCreated
2885
+ # end
2886
+ # handler.on_response_in_progress_event do |event|
2887
+ # event # => Aws::DevOpsAgent::Types::responseInProgress
2888
+ # end
2889
+ # handler.on_response_completed_event do |event|
2890
+ # event # => Aws::DevOpsAgent::Types::responseCompleted
2891
+ # end
2892
+ # handler.on_response_failed_event do |event|
2893
+ # event # => Aws::DevOpsAgent::Types::responseFailed
2894
+ # end
2895
+ # handler.on_summary_event do |event|
2896
+ # event # => Aws::DevOpsAgent::Types::summary
2897
+ # end
2898
+ # handler.on_heartbeat_event do |event|
2899
+ # event # => Aws::DevOpsAgent::Types::heartbeat
2900
+ # end
2901
+ # handler.on_content_block_start_event do |event|
2902
+ # event # => Aws::DevOpsAgent::Types::contentBlockStart
2903
+ # end
2904
+ # handler.on_content_block_delta_event do |event|
2905
+ # event # => Aws::DevOpsAgent::Types::contentBlockDelta
2906
+ # end
2907
+ # handler.on_content_block_stop_event do |event|
2908
+ # event # => Aws::DevOpsAgent::Types::contentBlockStop
2909
+ # end
2910
+ #
2911
+ # client.send_message(
2912
+ # # params input
2913
+ # event_stream_handler: handler
2914
+ # ) do |stream|
2915
+ # stream.on_error_event do |event|
2916
+ # # catch unmodeled error event in the stream
2917
+ # raise event
2918
+ # # => Aws::Errors::EventError
2919
+ # # event.event_type => :error
2920
+ # # event.error_code => String
2921
+ # # event.error_message => String
2922
+ # end
2923
+ # end
2924
+ #
2925
+ # # You can also iterate through events after the response complete.
2926
+ # # Events are available at
2927
+ # resp.events # => Enumerator
2928
+ # # For parameter input example, please refer to following request syntax.
2929
+ #
2930
+ # @example Request syntax with placeholder values
2931
+ #
2932
+ # resp = client.send_message({
2933
+ # agent_space_id: "AgentSpaceId", # required
2934
+ # execution_id: "ResourceId", # required
2935
+ # content: "MessageContent", # required
2936
+ # context: {
2937
+ # current_page: "String",
2938
+ # last_message: "String",
2939
+ # user_action_response: "String",
2940
+ # },
2941
+ # user_id: "ResourceId", # required
2942
+ # })
2943
+ #
2944
+ # @example Response structure
2945
+ #
2946
+ # # All events are available at resp.events:
2947
+ # resp.events #=> Enumerator
2948
+ # resp.events.event_types #=> [:response_created, :response_in_progress, :response_completed, :response_failed, :summary, :heartbeat, :content_block_start, :content_block_delta, :content_block_stop]
2949
+ #
2950
+ # # For :response_created event available at #on_response_created_event callback and response eventstream enumerator:
2951
+ # event.response_id #=> String
2952
+ # event.sequence_number #=> Integer
2953
+ #
2954
+ # # For :response_in_progress event available at #on_response_in_progress_event callback and response eventstream enumerator:
2955
+ # event.response_id #=> String
2956
+ # event.sequence_number #=> Integer
2957
+ #
2958
+ # # For :response_completed event available at #on_response_completed_event callback and response eventstream enumerator:
2959
+ # event.response_id #=> String
2960
+ # event.usage.input_tokens #=> Integer
2961
+ # event.usage.output_tokens #=> Integer
2962
+ # event.usage.total_tokens #=> Integer
2963
+ # event.sequence_number #=> Integer
2964
+ #
2965
+ # # For :response_failed event available at #on_response_failed_event callback and response eventstream enumerator:
2966
+ # event.response_id #=> String
2967
+ # event.error_code #=> String
2968
+ # event.error_message #=> String
2969
+ # event.sequence_number #=> Integer
2970
+ #
2971
+ # # For :summary event available at #on_summary_event callback and response eventstream enumerator:
2972
+ # event.content #=> String
2973
+ # event.sequence_number #=> Integer
2974
+ #
2975
+ # # For :heartbeat event available at #on_heartbeat_event callback and response eventstream enumerator:
2976
+ # #=> EmptyStruct
2977
+ # # For :content_block_start event available at #on_content_block_start_event callback and response eventstream enumerator:
2978
+ # event.index #=> Integer
2979
+ # event.type #=> String
2980
+ # event.id #=> String
2981
+ # event.parent_id #=> String
2982
+ # event.sequence_number #=> Integer
2983
+ #
2984
+ # # For :content_block_delta event available at #on_content_block_delta_event callback and response eventstream enumerator:
2985
+ # event.index #=> Integer
2986
+ # event.delta.text_delta.text #=> String
2987
+ # event.delta.json_delta.partial_json #=> String
2988
+ # event.sequence_number #=> Integer
2989
+ #
2990
+ # # For :content_block_stop event available at #on_content_block_stop_event callback and response eventstream enumerator:
2991
+ # event.index #=> Integer
2992
+ # event.type #=> String
2993
+ # event.text #=> String
2994
+ # event.last #=> Boolean
2995
+ # event.sequence_number #=> Integer
2996
+ #
2997
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/SendMessage AWS API Documentation
2998
+ #
2999
+ # @overload send_message(params = {})
3000
+ # @param [Hash] params ({})
3001
+ def send_message(params = {}, options = {}, &block)
3002
+ params = params.dup
3003
+ event_stream_handler = case handler = params.delete(:event_stream_handler)
3004
+ when EventStreams::SendMessageEvents then handler
3005
+ when Proc then EventStreams::SendMessageEvents.new.tap(&handler)
3006
+ when nil then EventStreams::SendMessageEvents.new
3007
+ else
3008
+ msg = "expected :event_stream_handler to be a block or "\
3009
+ "instance of Aws::DevOpsAgent::EventStreams::SendMessageEvents"\
3010
+ ", got `#{handler.inspect}` instead"
3011
+ raise ArgumentError, msg
3012
+ end
3013
+
3014
+ yield(event_stream_handler) if block_given?
3015
+
3016
+ req = build_request(:send_message, params)
3017
+
3018
+ req.context[:event_stream_handler] = event_stream_handler
3019
+ req.handlers.add(Aws::Binary::DecodeHandler, priority: 95)
3020
+
3021
+ req.send_request(options, &block)
3022
+ end
3023
+
3024
+ # Adds or overwrites tags for the specified AWS DevOps Agent resource.
3025
+ #
3026
+ # @option params [required, String] :resource_arn
3027
+ # The ARN of the resource to tag.
3028
+ #
3029
+ # @option params [required, Hash<String,String>] :tags
3030
+ # Tags to add to the resource.
3031
+ #
3032
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3033
+ #
3034
+ # @example Request syntax with placeholder values
3035
+ #
3036
+ # resp = client.tag_resource({
3037
+ # resource_arn: "TagResourceRequestResourceArnString", # required
3038
+ # tags: { # required
3039
+ # "TagKey" => "TagValue",
3040
+ # },
3041
+ # })
3042
+ #
3043
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/TagResource AWS API Documentation
3044
+ #
3045
+ # @overload tag_resource(params = {})
3046
+ # @param [Hash] params ({})
3047
+ def tag_resource(params = {}, options = {})
3048
+ req = build_request(:tag_resource, params)
3049
+ req.send_request(options)
3050
+ end
3051
+
3052
+ # Removes tags from the specified AWS DevOps Agent resource.
3053
+ #
3054
+ # @option params [required, String] :resource_arn
3055
+ # The ARN of the resource to untag.
3056
+ #
3057
+ # @option params [required, Array<String>] :tag_keys
3058
+ # Tag keys to remove.
3059
+ #
3060
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3061
+ #
3062
+ # @example Request syntax with placeholder values
3063
+ #
3064
+ # resp = client.untag_resource({
3065
+ # resource_arn: "UntagResourceRequestResourceArnString", # required
3066
+ # tag_keys: ["TagKey"], # required
3067
+ # })
3068
+ #
3069
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/UntagResource AWS API Documentation
3070
+ #
3071
+ # @overload untag_resource(params = {})
3072
+ # @param [Hash] params ({})
3073
+ def untag_resource(params = {}, options = {})
3074
+ req = build_request(:untag_resource, params)
3075
+ req.send_request(options)
3076
+ end
3077
+
3078
+ # Updates the information of an existing AgentSpace.
3079
+ #
3080
+ # @option params [required, String] :agent_space_id
3081
+ # The unique identifier of the AgentSpace
3082
+ #
3083
+ # @option params [String] :name
3084
+ # The updated name of the AgentSpace.
3085
+ #
3086
+ # @option params [String] :description
3087
+ # The updated description of the AgentSpace.
3088
+ #
3089
+ # @option params [String] :locale
3090
+ # The updated locale for the AgentSpace, which determines the language
3091
+ # used in agent responses.
3092
+ #
3093
+ # @return [Types::UpdateAgentSpaceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3094
+ #
3095
+ # * {Types::UpdateAgentSpaceOutput#agent_space #agent_space} => Types::AgentSpace
3096
+ #
3097
+ # @example Request syntax with placeholder values
3098
+ #
3099
+ # resp = client.update_agent_space({
3100
+ # agent_space_id: "AgentSpaceId", # required
3101
+ # name: "AgentSpaceName",
3102
+ # description: "Description",
3103
+ # locale: "Locale",
3104
+ # })
3105
+ #
3106
+ # @example Response structure
3107
+ #
3108
+ # resp.agent_space.name #=> String
3109
+ # resp.agent_space.description #=> String
3110
+ # resp.agent_space.locale #=> String
3111
+ # resp.agent_space.created_at #=> Time
3112
+ # resp.agent_space.updated_at #=> Time
3113
+ # resp.agent_space.kms_key_arn #=> String
3114
+ # resp.agent_space.agent_space_id #=> String
3115
+ #
3116
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/UpdateAgentSpace AWS API Documentation
3117
+ #
3118
+ # @overload update_agent_space(params = {})
3119
+ # @param [Hash] params ({})
3120
+ def update_agent_space(params = {}, options = {})
3121
+ req = build_request(:update_agent_space, params)
3122
+ req.send_request(options)
3123
+ end
3124
+
3125
+ # Partially updates the configuration of an existing service association
3126
+ # for an AgentSpace. Present fields are fully replaced; absent fields
3127
+ # are left unchanged. Returns 200 OK on success.
3128
+ #
3129
+ # @option params [required, String] :agent_space_id
3130
+ # The unique identifier of the AgentSpace
3131
+ #
3132
+ # @option params [required, String] :association_id
3133
+ # The unique identifier of the given association.
3134
+ #
3135
+ # @option params [required, Types::ServiceConfiguration] :configuration
3136
+ # The configuration that directs how AgentSpace interacts with the given
3137
+ # service. The entire configuration is replaced on update.
3138
+ #
3139
+ # @return [Types::UpdateAssociationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3140
+ #
3141
+ # * {Types::UpdateAssociationOutput#association #association} => Types::Association
3142
+ # * {Types::UpdateAssociationOutput#webhook #webhook} => Types::GenericWebhook
3143
+ #
3144
+ # @example Request syntax with placeholder values
3145
+ #
3146
+ # resp = client.update_association({
3147
+ # agent_space_id: "AgentSpaceId", # required
3148
+ # association_id: "AssociationId", # required
3149
+ # configuration: { # required
3150
+ # source_aws: {
3151
+ # account_id: "SourceAwsConfigurationAccountIdString", # required
3152
+ # account_type: "source", # required, accepts source
3153
+ # assumable_role_arn: "RoleArn", # required
3154
+ # external_id: "String",
3155
+ # },
3156
+ # aws: {
3157
+ # assumable_role_arn: "RoleArn", # required
3158
+ # account_id: "AWSConfigurationAccountIdString", # required
3159
+ # account_type: "monitor", # required, accepts monitor
3160
+ # },
3161
+ # github: {
3162
+ # repo_name: "String", # required
3163
+ # repo_id: "String", # required
3164
+ # owner: "String", # required
3165
+ # owner_type: "organization", # required, accepts organization, user
3166
+ # instance_identifier: "String",
3167
+ # },
3168
+ # slack: {
3169
+ # workspace_id: "SlackConfigurationWorkspaceIdString", # required
3170
+ # workspace_name: "String", # required
3171
+ # transmission_target: { # required
3172
+ # ops_oncall_target: { # required
3173
+ # channel_name: "String",
3174
+ # channel_id: "SlackChannelChannelIdString", # required
3175
+ # },
3176
+ # ops_sre_target: {
3177
+ # channel_name: "String",
3178
+ # channel_id: "SlackChannelChannelIdString", # required
3179
+ # },
3180
+ # },
3181
+ # },
3182
+ # dynatrace: {
3183
+ # env_id: "String", # required
3184
+ # resources: ["String"],
3185
+ # },
3186
+ # servicenow: {
3187
+ # instance_id: "String",
3188
+ # auth_scopes: ["String"],
3189
+ # },
3190
+ # mcpservernewrelic: {
3191
+ # account_id: "MCPServerNewRelicConfigurationAccountIdString", # required
3192
+ # endpoint: "MCPServerNewRelicConfigurationEndpointString", # required
3193
+ # },
3194
+ # gitlab: {
3195
+ # project_id: "String", # required
3196
+ # project_path: "String", # required
3197
+ # instance_identifier: "String",
3198
+ # },
3199
+ # event_channel: {
3200
+ # },
3201
+ # azure: {
3202
+ # subscription_id: "String", # required
3203
+ # },
3204
+ # azuredevops: {
3205
+ # organization_name: "String", # required
3206
+ # project_id: "String", # required
3207
+ # project_name: "String", # required
3208
+ # },
3209
+ # mcpservergrafana: {
3210
+ # endpoint: "MCPServerGrafanaConfigurationEndpointString", # required
3211
+ # organization_id: "MCPServerGrafanaConfigurationOrganizationIdString",
3212
+ # tools: ["MCPToolsListMemberString"],
3213
+ # },
3214
+ # pagerduty: {
3215
+ # services: ["String"], # required
3216
+ # customer_email: "EmailAddress", # required
3217
+ # },
3218
+ # msteams: {
3219
+ # team_id: "Guid", # required
3220
+ # team_name: "String", # required
3221
+ # transmission_target: { # required
3222
+ # ops_oncall_target: {
3223
+ # channel_name: "String", # required
3224
+ # channel_id: "Guid", # required
3225
+ # },
3226
+ # ops_sre_target: {
3227
+ # channel_name: "String", # required
3228
+ # channel_id: "Guid", # required
3229
+ # },
3230
+ # },
3231
+ # },
3232
+ # },
3233
+ # })
3234
+ #
3235
+ # @example Response structure
3236
+ #
3237
+ # resp.association.agent_space_id #=> String
3238
+ # resp.association.created_at #=> Time
3239
+ # resp.association.updated_at #=> Time
3240
+ # resp.association.status #=> String, one of "valid", "invalid", "pending-confirmation"
3241
+ # resp.association.association_id #=> String
3242
+ # resp.association.service_id #=> String
3243
+ # resp.association.configuration.source_aws.account_id #=> String
3244
+ # resp.association.configuration.source_aws.account_type #=> String, one of "source"
3245
+ # resp.association.configuration.source_aws.assumable_role_arn #=> String
3246
+ # resp.association.configuration.source_aws.external_id #=> String
3247
+ # resp.association.configuration.aws.assumable_role_arn #=> String
3248
+ # resp.association.configuration.aws.account_id #=> String
3249
+ # resp.association.configuration.aws.account_type #=> String, one of "monitor"
3250
+ # resp.association.configuration.github.repo_name #=> String
3251
+ # resp.association.configuration.github.repo_id #=> String
3252
+ # resp.association.configuration.github.owner #=> String
3253
+ # resp.association.configuration.github.owner_type #=> String, one of "organization", "user"
3254
+ # resp.association.configuration.github.instance_identifier #=> String
3255
+ # resp.association.configuration.slack.workspace_id #=> String
3256
+ # resp.association.configuration.slack.workspace_name #=> String
3257
+ # resp.association.configuration.slack.transmission_target.ops_oncall_target.channel_name #=> String
3258
+ # resp.association.configuration.slack.transmission_target.ops_oncall_target.channel_id #=> String
3259
+ # resp.association.configuration.slack.transmission_target.ops_sre_target.channel_name #=> String
3260
+ # resp.association.configuration.slack.transmission_target.ops_sre_target.channel_id #=> String
3261
+ # resp.association.configuration.dynatrace.env_id #=> String
3262
+ # resp.association.configuration.dynatrace.resources #=> Array
3263
+ # resp.association.configuration.dynatrace.resources[0] #=> String
3264
+ # resp.association.configuration.servicenow.instance_id #=> String
3265
+ # resp.association.configuration.servicenow.auth_scopes #=> Array
3266
+ # resp.association.configuration.servicenow.auth_scopes[0] #=> String
3267
+ # resp.association.configuration.mcpservernewrelic.account_id #=> String
3268
+ # resp.association.configuration.mcpservernewrelic.endpoint #=> String
3269
+ # resp.association.configuration.gitlab.project_id #=> String
3270
+ # resp.association.configuration.gitlab.project_path #=> String
3271
+ # resp.association.configuration.gitlab.instance_identifier #=> String
3272
+ # resp.association.configuration.azure.subscription_id #=> String
3273
+ # resp.association.configuration.azuredevops.organization_name #=> String
3274
+ # resp.association.configuration.azuredevops.project_id #=> String
3275
+ # resp.association.configuration.azuredevops.project_name #=> String
3276
+ # resp.association.configuration.mcpservergrafana.endpoint #=> String
3277
+ # resp.association.configuration.mcpservergrafana.organization_id #=> String
3278
+ # resp.association.configuration.mcpservergrafana.tools #=> Array
3279
+ # resp.association.configuration.mcpservergrafana.tools[0] #=> String
3280
+ # resp.association.configuration.pagerduty.services #=> Array
3281
+ # resp.association.configuration.pagerduty.services[0] #=> String
3282
+ # resp.association.configuration.pagerduty.customer_email #=> String
3283
+ # resp.association.configuration.msteams.team_id #=> String
3284
+ # resp.association.configuration.msteams.team_name #=> String
3285
+ # resp.association.configuration.msteams.transmission_target.ops_oncall_target.channel_name #=> String
3286
+ # resp.association.configuration.msteams.transmission_target.ops_oncall_target.channel_id #=> String
3287
+ # resp.association.configuration.msteams.transmission_target.ops_sre_target.channel_name #=> String
3288
+ # resp.association.configuration.msteams.transmission_target.ops_sre_target.channel_id #=> String
3289
+ # resp.webhook.webhook_url #=> String
3290
+ # resp.webhook.webhook_id #=> String
3291
+ # resp.webhook.webhook_type #=> String, one of "hmac", "apikey", "gitlab", "pagerduty"
3292
+ # resp.webhook.webhook_secret #=> String
3293
+ # resp.webhook.api_key #=> String
3294
+ #
3295
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/UpdateAssociation AWS API Documentation
3296
+ #
3297
+ # @overload update_association(params = {})
3298
+ # @param [Hash] params ({})
3299
+ def update_association(params = {}, options = {})
3300
+ req = build_request(:update_association, params)
3301
+ req.send_request(options)
3302
+ end
3303
+
3304
+ # Update an existing backlog task.
3305
+ #
3306
+ # @option params [required, String] :agent_space_id
3307
+ # The unique identifier for the agent space containing the task
3308
+ #
3309
+ # @option params [required, String] :task_id
3310
+ # The unique identifier of the task to update
3311
+ #
3312
+ # @option params [String] :task_status
3313
+ # Updated task status
3314
+ #
3315
+ # @option params [String] :client_token
3316
+ # Client-provided token for idempotent operations
3317
+ #
3318
+ # **A suitable default value is auto-generated.** You should normally
3319
+ # not need to pass this option.**
3320
+ #
3321
+ # @return [Types::UpdateBacklogTaskResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3322
+ #
3323
+ # * {Types::UpdateBacklogTaskResponse#task #task} => Types::Task
3324
+ #
3325
+ # @example Request syntax with placeholder values
3326
+ #
3327
+ # resp = client.update_backlog_task({
3328
+ # agent_space_id: "AgentSpaceId", # required
3329
+ # task_id: "ResourceId", # required
3330
+ # task_status: "PENDING_TRIAGE", # accepts PENDING_TRIAGE, LINKED, PENDING_START, IN_PROGRESS, PENDING_CUSTOMER_APPROVAL, COMPLETED, FAILED, TIMED_OUT, CANCELED
3331
+ # client_token: "String",
3332
+ # })
3333
+ #
3334
+ # @example Response structure
3335
+ #
3336
+ # resp.task.agent_space_id #=> String
3337
+ # resp.task.task_id #=> String
3338
+ # resp.task.execution_id #=> String
3339
+ # resp.task.title #=> String
3340
+ # resp.task.description #=> String
3341
+ # resp.task.reference.system #=> String
3342
+ # resp.task.reference.title #=> String
3343
+ # resp.task.reference.reference_id #=> String
3344
+ # resp.task.reference.reference_url #=> String
3345
+ # resp.task.reference.association_id #=> String
3346
+ # resp.task.task_type #=> String, one of "INVESTIGATION", "EVALUATION"
3347
+ # resp.task.priority #=> String, one of "CRITICAL", "HIGH", "MEDIUM", "LOW", "MINIMAL"
3348
+ # resp.task.status #=> String, one of "PENDING_TRIAGE", "LINKED", "PENDING_START", "IN_PROGRESS", "PENDING_CUSTOMER_APPROVAL", "COMPLETED", "FAILED", "TIMED_OUT", "CANCELED"
3349
+ # resp.task.created_at #=> Time
3350
+ # resp.task.updated_at #=> Time
3351
+ # resp.task.version #=> Integer
3352
+ # resp.task.primary_task_id #=> String
3353
+ # resp.task.status_reason #=> String
3354
+ # resp.task.has_linked_tasks #=> Boolean
3355
+ #
3356
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/UpdateBacklogTask AWS API Documentation
3357
+ #
3358
+ # @overload update_backlog_task(params = {})
3359
+ # @param [Hash] params ({})
3360
+ def update_backlog_task(params = {}, options = {})
3361
+ req = build_request(:update_backlog_task, params)
3362
+ req.send_request(options)
3363
+ end
3364
+
3365
+ # Update an existing goal
3366
+ #
3367
+ # @option params [required, String] :agent_space_id
3368
+ # The unique identifier for the agent space containing the goal
3369
+ #
3370
+ # @option params [required, String] :goal_id
3371
+ # The unique identifier of the goal to update
3372
+ #
3373
+ # @option params [Types::GoalScheduleInput] :evaluation_schedule
3374
+ # Update goal schedule state
3375
+ #
3376
+ # @option params [String] :client_token
3377
+ # Client-provided token for idempotent operations
3378
+ #
3379
+ # **A suitable default value is auto-generated.** You should normally
3380
+ # not need to pass this option.**
3381
+ #
3382
+ # @return [Types::UpdateGoalResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3383
+ #
3384
+ # * {Types::UpdateGoalResponse#goal #goal} => Types::Goal
3385
+ #
3386
+ # @example Request syntax with placeholder values
3387
+ #
3388
+ # resp = client.update_goal({
3389
+ # agent_space_id: "AgentSpaceId", # required
3390
+ # goal_id: "String", # required
3391
+ # evaluation_schedule: {
3392
+ # state: "ENABLED", # required, accepts ENABLED, DISABLED
3393
+ # },
3394
+ # client_token: "String",
3395
+ # })
3396
+ #
3397
+ # @example Response structure
3398
+ #
3399
+ # resp.goal.agent_space_arn #=> String
3400
+ # resp.goal.goal_id #=> String
3401
+ # resp.goal.title #=> String
3402
+ # resp.goal.content.description #=> String
3403
+ # resp.goal.content.objectives #=> String
3404
+ # resp.goal.status #=> String, one of "ACTIVE", "PAUSED", "COMPLETE"
3405
+ # resp.goal.goal_type #=> String, one of "CUSTOMER_DEFINED", "ONCALL_REPORT"
3406
+ # resp.goal.created_at #=> Time
3407
+ # resp.goal.updated_at #=> Time
3408
+ # resp.goal.last_evaluated_at #=> Time
3409
+ # resp.goal.last_task_id #=> String
3410
+ # resp.goal.last_successful_task_id #=> String
3411
+ # resp.goal.version #=> Integer
3412
+ # resp.goal.evaluation_schedule.state #=> String, one of "ENABLED", "DISABLED"
3413
+ # resp.goal.evaluation_schedule.expression #=> String
3414
+ #
3415
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/UpdateGoal AWS API Documentation
3416
+ #
3417
+ # @overload update_goal(params = {})
3418
+ # @param [Hash] params ({})
3419
+ def update_goal(params = {}, options = {})
3420
+ req = build_request(:update_goal, params)
3421
+ req.send_request(options)
3422
+ end
3423
+
3424
+ # Update the external Identity Provider configuration for the Operator
3425
+ # App
3426
+ #
3427
+ # @option params [required, String] :agent_space_id
3428
+ # The unique identifier of the AgentSpace
3429
+ #
3430
+ # @option params [String] :idp_client_secret
3431
+ # The OIDC client secret for the IdP application
3432
+ #
3433
+ # @return [Types::UpdateOperatorAppIdpConfigOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3434
+ #
3435
+ # * {Types::UpdateOperatorAppIdpConfigOutput#agent_space_id #agent_space_id} => String
3436
+ # * {Types::UpdateOperatorAppIdpConfigOutput#idp #idp} => Types::IdpAuthConfiguration
3437
+ #
3438
+ # @example Request syntax with placeholder values
3439
+ #
3440
+ # resp = client.update_operator_app_idp_config({
3441
+ # agent_space_id: "AgentSpaceId", # required
3442
+ # idp_client_secret: "IdpClientSecret",
3443
+ # })
3444
+ #
3445
+ # @example Response structure
3446
+ #
3447
+ # resp.agent_space_id #=> String
3448
+ # resp.idp.issuer_url #=> String
3449
+ # resp.idp.client_id #=> String
3450
+ # resp.idp.operator_app_role_arn #=> String
3451
+ # resp.idp.provider #=> String
3452
+ # resp.idp.created_at #=> Time
3453
+ # resp.idp.updated_at #=> Time
3454
+ #
3455
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/UpdateOperatorAppIdpConfig AWS API Documentation
3456
+ #
3457
+ # @overload update_operator_app_idp_config(params = {})
3458
+ # @param [Hash] params ({})
3459
+ def update_operator_app_idp_config(params = {}, options = {})
3460
+ req = build_request(:update_operator_app_idp_config, params)
3461
+ req.send_request(options)
3462
+ end
3463
+
3464
+ # Updates the certificate associated with a Private Connection.
3465
+ #
3466
+ # @option params [required, String] :name
3467
+ # The name of the Private Connection.
3468
+ #
3469
+ # @option params [required, String] :certificate
3470
+ # The new certificate for the Private Connection.
3471
+ #
3472
+ # @return [Types::UpdatePrivateConnectionCertificateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3473
+ #
3474
+ # * {Types::UpdatePrivateConnectionCertificateOutput#name #name} => String
3475
+ # * {Types::UpdatePrivateConnectionCertificateOutput#type #type} => String
3476
+ # * {Types::UpdatePrivateConnectionCertificateOutput#resource_gateway_id #resource_gateway_id} => String
3477
+ # * {Types::UpdatePrivateConnectionCertificateOutput#host_address #host_address} => String
3478
+ # * {Types::UpdatePrivateConnectionCertificateOutput#vpc_id #vpc_id} => String
3479
+ # * {Types::UpdatePrivateConnectionCertificateOutput#resource_configuration_id #resource_configuration_id} => String
3480
+ # * {Types::UpdatePrivateConnectionCertificateOutput#status #status} => String
3481
+ # * {Types::UpdatePrivateConnectionCertificateOutput#certificate_expiry_time #certificate_expiry_time} => Time
3482
+ #
3483
+ # @example Request syntax with placeholder values
3484
+ #
3485
+ # resp = client.update_private_connection_certificate({
3486
+ # name: "PrivateConnectionName", # required
3487
+ # certificate: "CertificateString", # required
3488
+ # })
3489
+ #
3490
+ # @example Response structure
3491
+ #
3492
+ # resp.name #=> String
3493
+ # resp.type #=> String, one of "SELF_MANAGED", "SERVICE_MANAGED"
3494
+ # resp.resource_gateway_id #=> String
3495
+ # resp.host_address #=> String
3496
+ # resp.vpc_id #=> String
3497
+ # resp.resource_configuration_id #=> String
3498
+ # resp.status #=> String, one of "ACTIVE", "CREATE_IN_PROGRESS", "CREATE_FAILED", "DELETE_IN_PROGRESS", "DELETE_FAILED"
3499
+ # resp.certificate_expiry_time #=> Time
3500
+ #
3501
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/UpdatePrivateConnectionCertificate AWS API Documentation
3502
+ #
3503
+ # @overload update_private_connection_certificate(params = {})
3504
+ # @param [Hash] params ({})
3505
+ def update_private_connection_certificate(params = {}, options = {})
3506
+ req = build_request(:update_private_connection_certificate, params)
3507
+ req.send_request(options)
3508
+ end
3509
+
3510
+ # Updates an existing recommendation with new content, status, or
3511
+ # metadata
3512
+ #
3513
+ # @option params [required, String] :agent_space_id
3514
+ # The unique identifier for the agent space containing the
3515
+ # recommendation
3516
+ #
3517
+ # @option params [required, String] :recommendation_id
3518
+ # The unique identifier for the recommendation to update
3519
+ #
3520
+ # @option params [String] :status
3521
+ # Current status of the recommendation
3522
+ #
3523
+ # @option params [String] :additional_context
3524
+ # Additional context for recommendation
3525
+ #
3526
+ # @option params [String] :client_token
3527
+ # A unique token that ensures idempotency of the request
3528
+ #
3529
+ # **A suitable default value is auto-generated.** You should normally
3530
+ # not need to pass this option.**
3531
+ #
3532
+ # @return [Types::UpdateRecommendationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3533
+ #
3534
+ # * {Types::UpdateRecommendationResponse#recommendation #recommendation} => Types::Recommendation
3535
+ #
3536
+ # @example Request syntax with placeholder values
3537
+ #
3538
+ # resp = client.update_recommendation({
3539
+ # agent_space_id: "AgentSpaceId", # required
3540
+ # recommendation_id: "ResourceId", # required
3541
+ # status: "PROPOSED", # accepts PROPOSED, ACCEPTED, REJECTED, CLOSED, COMPLETED, UPDATE_IN_PROGRESS
3542
+ # additional_context: "String",
3543
+ # client_token: "String",
3544
+ # })
3545
+ #
3546
+ # @example Response structure
3547
+ #
3548
+ # resp.recommendation.agent_space_arn #=> String
3549
+ # resp.recommendation.recommendation_id #=> String
3550
+ # resp.recommendation.task_id #=> String
3551
+ # resp.recommendation.goal_id #=> String
3552
+ # resp.recommendation.title #=> String
3553
+ # resp.recommendation.content.summary #=> String
3554
+ # resp.recommendation.content.spec #=> String
3555
+ # resp.recommendation.status #=> String, one of "PROPOSED", "ACCEPTED", "REJECTED", "CLOSED", "COMPLETED", "UPDATE_IN_PROGRESS"
3556
+ # resp.recommendation.priority #=> String, one of "HIGH", "MEDIUM", "LOW"
3557
+ # resp.recommendation.goal_version #=> Integer
3558
+ # resp.recommendation.additional_context #=> String
3559
+ # resp.recommendation.created_at #=> Time
3560
+ # resp.recommendation.updated_at #=> Time
3561
+ # resp.recommendation.version #=> Integer
3562
+ #
3563
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/UpdateRecommendation AWS API Documentation
3564
+ #
3565
+ # @overload update_recommendation(params = {})
3566
+ # @param [Hash] params ({})
3567
+ def update_recommendation(params = {}, options = {})
3568
+ req = build_request(:update_recommendation, params)
3569
+ req.send_request(options)
3570
+ end
3571
+
3572
+ # Validates an aws association and set status and returns a 204 No
3573
+ # Content response on success.
3574
+ #
3575
+ # @option params [required, String] :agent_space_id
3576
+ # The unique identifier of the AgentSpace
3577
+ #
3578
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3579
+ #
3580
+ # @example Request syntax with placeholder values
3581
+ #
3582
+ # resp = client.validate_aws_associations({
3583
+ # agent_space_id: "AgentSpaceId", # required
3584
+ # })
3585
+ #
3586
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devops-agent-2026-01-01/ValidateAwsAssociations AWS API Documentation
3587
+ #
3588
+ # @overload validate_aws_associations(params = {})
3589
+ # @param [Hash] params ({})
3590
+ def validate_aws_associations(params = {}, options = {})
3591
+ req = build_request(:validate_aws_associations, params)
3592
+ req.send_request(options)
3593
+ end
3594
+
3595
+ # @!endgroup
3596
+
3597
+ # @param params ({})
3598
+ # @api private
3599
+ def build_request(operation_name, params = {})
3600
+ handlers = @handlers.for(operation_name)
3601
+ tracer = config.telemetry_provider.tracer_provider.tracer(
3602
+ Aws::Telemetry.module_to_tracer_name('Aws::DevOpsAgent')
3603
+ )
3604
+ context = Seahorse::Client::RequestContext.new(
3605
+ operation_name: operation_name,
3606
+ operation: config.api.operation(operation_name),
3607
+ client: self,
3608
+ params: params,
3609
+ config: config,
3610
+ tracer: tracer
3611
+ )
3612
+ context[:gem_name] = 'aws-sdk-devopsagent'
3613
+ context[:gem_version] = '1.0.0'
3614
+ Seahorse::Client::Request.new(handlers, context)
3615
+ end
3616
+
3617
+ # @api private
3618
+ # @deprecated
3619
+ def waiter_names
3620
+ []
3621
+ end
3622
+
3623
+ class << self
3624
+
3625
+ # @api private
3626
+ attr_reader :identifier
3627
+
3628
+ # @api private
3629
+ def errors_module
3630
+ Errors
3631
+ end
3632
+
3633
+ end
3634
+ end
3635
+ end