aws-sdk-applicationsignals 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,1634 @@
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.rb'
11
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
+ require 'aws-sdk-core/plugins/logging.rb'
13
+ require 'aws-sdk-core/plugins/param_converter.rb'
14
+ require 'aws-sdk-core/plugins/param_validator.rb'
15
+ require 'aws-sdk-core/plugins/user_agent.rb'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
+ require 'aws-sdk-core/plugins/retry_errors.rb'
18
+ require 'aws-sdk-core/plugins/global_configuration.rb'
19
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
+ require 'aws-sdk-core/plugins/response_paging.rb'
23
+ require 'aws-sdk-core/plugins/stub_responses.rb'
24
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
25
+ require 'aws-sdk-core/plugins/invocation_id.rb'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
29
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
30
+ require 'aws-sdk-core/plugins/http_checksum.rb'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
32
+ require 'aws-sdk-core/plugins/request_compression.rb'
33
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
34
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
35
+ require 'aws-sdk-core/plugins/sign.rb'
36
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
37
+
38
+ Aws::Plugins::GlobalConfiguration.add_identifier(:applicationsignals)
39
+
40
+ module Aws::ApplicationSignals
41
+ # An API client for ApplicationSignals. To construct a client, you need to configure a `:region` and `:credentials`.
42
+ #
43
+ # client = Aws::ApplicationSignals::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 = :applicationsignals
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::Sign)
87
+ add_plugin(Aws::Plugins::Protocols::RestJson)
88
+ add_plugin(Aws::ApplicationSignals::Plugins::Endpoints)
89
+
90
+ # @overload initialize(options)
91
+ # @param [Hash] options
92
+ # @option options [required, Aws::CredentialProvider] :credentials
93
+ # Your AWS credentials. This can be an instance of any one of the
94
+ # following classes:
95
+ #
96
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
97
+ # credentials.
98
+ #
99
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
100
+ # shared file, such as `~/.aws/config`.
101
+ #
102
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
103
+ #
104
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
105
+ # assume a role after providing credentials via the web.
106
+ #
107
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
108
+ # access token generated from `aws login`.
109
+ #
110
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
111
+ # process that outputs to stdout.
112
+ #
113
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
114
+ # from an EC2 IMDS on an EC2 instance.
115
+ #
116
+ # * `Aws::ECSCredentials` - Used for loading credentials from
117
+ # instances running in ECS.
118
+ #
119
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
120
+ # from the Cognito Identity service.
121
+ #
122
+ # When `:credentials` are not configured directly, the following
123
+ # locations will be searched for credentials:
124
+ #
125
+ # * `Aws.config[:credentials]`
126
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
127
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
128
+ # * `~/.aws/credentials`
129
+ # * `~/.aws/config`
130
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
131
+ # are very aggressive. Construct and pass an instance of
132
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
133
+ # enable retries and extended timeouts. Instance profile credential
134
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
135
+ # to true.
136
+ #
137
+ # @option options [required, String] :region
138
+ # The AWS region to connect to. The configured `:region` is
139
+ # used to determine the service `:endpoint`. When not passed,
140
+ # a default `:region` is searched for in the following locations:
141
+ #
142
+ # * `Aws.config[:region]`
143
+ # * `ENV['AWS_REGION']`
144
+ # * `ENV['AMAZON_REGION']`
145
+ # * `ENV['AWS_DEFAULT_REGION']`
146
+ # * `~/.aws/credentials`
147
+ # * `~/.aws/config`
148
+ #
149
+ # @option options [String] :access_key_id
150
+ #
151
+ # @option options [Boolean] :active_endpoint_cache (false)
152
+ # When set to `true`, a thread polling for endpoints will be running in
153
+ # the background every 60 secs (default). Defaults to `false`.
154
+ #
155
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
156
+ # Used only in `adaptive` retry mode. When true, the request will sleep
157
+ # until there is sufficent client side capacity to retry the request.
158
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
159
+ # not retry instead of sleeping.
160
+ #
161
+ # @option options [Boolean] :client_side_monitoring (false)
162
+ # When `true`, client-side metrics will be collected for all API requests from
163
+ # this client.
164
+ #
165
+ # @option options [String] :client_side_monitoring_client_id ("")
166
+ # Allows you to provide an identifier for this client which will be attached to
167
+ # all generated client side metrics. Defaults to an empty string.
168
+ #
169
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
170
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
171
+ # side monitoring agent is running on, where client metrics will be published via UDP.
172
+ #
173
+ # @option options [Integer] :client_side_monitoring_port (31000)
174
+ # Required for publishing client metrics. The port that the client side monitoring
175
+ # agent is running on, where client metrics will be published via UDP.
176
+ #
177
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
178
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
179
+ # will use the Client Side Monitoring Agent Publisher.
180
+ #
181
+ # @option options [Boolean] :convert_params (true)
182
+ # When `true`, an attempt is made to coerce request parameters into
183
+ # the required types.
184
+ #
185
+ # @option options [Boolean] :correct_clock_skew (true)
186
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
187
+ # a clock skew correction and retry requests with skewed client clocks.
188
+ #
189
+ # @option options [String] :defaults_mode ("legacy")
190
+ # See {Aws::DefaultsModeConfiguration} for a list of the
191
+ # accepted modes and the configuration defaults that are included.
192
+ #
193
+ # @option options [Boolean] :disable_host_prefix_injection (false)
194
+ # Set to true to disable SDK automatically adding host prefix
195
+ # to default service endpoint when available.
196
+ #
197
+ # @option options [Boolean] :disable_request_compression (false)
198
+ # When set to 'true' the request body will not be compressed
199
+ # for supported operations.
200
+ #
201
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
202
+ # Normally you should not configure the `:endpoint` option
203
+ # directly. This is normally constructed from the `:region`
204
+ # option. Configuring `:endpoint` is normally reserved for
205
+ # connecting to test or custom endpoints. The endpoint should
206
+ # be a URI formatted like:
207
+ #
208
+ # 'http://example.com'
209
+ # 'https://example.com'
210
+ # 'http://example.com:123'
211
+ #
212
+ #
213
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
214
+ # Used for the maximum size limit of the LRU cache storing endpoints data
215
+ # for endpoint discovery enabled operations. Defaults to 1000.
216
+ #
217
+ # @option options [Integer] :endpoint_cache_max_threads (10)
218
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
219
+ #
220
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
221
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
222
+ # Use this option to config the time interval in seconds for making
223
+ # requests fetching endpoints information. Defaults to 60 sec.
224
+ #
225
+ # @option options [Boolean] :endpoint_discovery (false)
226
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
227
+ #
228
+ # @option options [Boolean] :ignore_configured_endpoint_urls
229
+ # Setting to true disables use of endpoint URLs provided via environment
230
+ # variables and the shared configuration file.
231
+ #
232
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
233
+ # The log formatter.
234
+ #
235
+ # @option options [Symbol] :log_level (:info)
236
+ # The log level to send messages to the `:logger` at.
237
+ #
238
+ # @option options [Logger] :logger
239
+ # The Logger instance to send log messages to. If this option
240
+ # is not set, logging will be disabled.
241
+ #
242
+ # @option options [Integer] :max_attempts (3)
243
+ # An integer representing the maximum number attempts that will be made for
244
+ # a single request, including the initial attempt. For example,
245
+ # setting this value to 5 will result in a request being retried up to
246
+ # 4 times. Used in `standard` and `adaptive` retry modes.
247
+ #
248
+ # @option options [String] :profile ("default")
249
+ # Used when loading credentials from the shared credentials file
250
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
251
+ #
252
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
253
+ # The minimum size in bytes that triggers compression for request
254
+ # bodies. The value must be non-negative integer value between 0
255
+ # and 10485780 bytes inclusive.
256
+ #
257
+ # @option options [Proc] :retry_backoff
258
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
259
+ # This option is only used in the `legacy` retry mode.
260
+ #
261
+ # @option options [Float] :retry_base_delay (0.3)
262
+ # The base delay in seconds used by the default backoff function. This option
263
+ # is only used in the `legacy` retry mode.
264
+ #
265
+ # @option options [Symbol] :retry_jitter (:none)
266
+ # A delay randomiser function used by the default backoff function.
267
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
268
+ # otherwise a Proc that takes and returns a number. This option is only used
269
+ # in the `legacy` retry mode.
270
+ #
271
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
272
+ #
273
+ # @option options [Integer] :retry_limit (3)
274
+ # The maximum number of times to retry failed requests. Only
275
+ # ~ 500 level server errors and certain ~ 400 level client errors
276
+ # are retried. Generally, these are throttling errors, data
277
+ # checksum errors, networking errors, timeout errors, auth errors,
278
+ # endpoint discovery, and errors from expired credentials.
279
+ # This option is only used in the `legacy` retry mode.
280
+ #
281
+ # @option options [Integer] :retry_max_delay (0)
282
+ # The maximum number of seconds to delay between retries (0 for no limit)
283
+ # used by the default backoff function. This option is only used in the
284
+ # `legacy` retry mode.
285
+ #
286
+ # @option options [String] :retry_mode ("legacy")
287
+ # Specifies which retry algorithm to use. Values are:
288
+ #
289
+ # * `legacy` - The pre-existing retry behavior. This is default value if
290
+ # no retry mode is provided.
291
+ #
292
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
293
+ # This includes support for retry quotas, which limit the number of
294
+ # unsuccessful retries a client can make.
295
+ #
296
+ # * `adaptive` - An experimental retry mode that includes all the
297
+ # functionality of `standard` mode along with automatic client side
298
+ # throttling. This is a provisional mode that may change behavior
299
+ # in the future.
300
+ #
301
+ #
302
+ # @option options [String] :sdk_ua_app_id
303
+ # A unique and opaque application ID that is appended to the
304
+ # User-Agent header as app/sdk_ua_app_id. It should have a
305
+ # maximum length of 50. This variable is sourced from environment
306
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
307
+ #
308
+ # @option options [String] :secret_access_key
309
+ #
310
+ # @option options [String] :session_token
311
+ #
312
+ # @option options [Boolean] :stub_responses (false)
313
+ # Causes the client to return stubbed responses. By default
314
+ # fake responses are generated and returned. You can specify
315
+ # the response data to return or errors to raise by calling
316
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
317
+ #
318
+ # ** Please note ** When response stubbing is enabled, no HTTP
319
+ # requests are made, and retries are disabled.
320
+ #
321
+ # @option options [Aws::TokenProvider] :token_provider
322
+ # A Bearer Token Provider. This can be an instance of any one of the
323
+ # following classes:
324
+ #
325
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
326
+ # tokens.
327
+ #
328
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
329
+ # access token generated from `aws login`.
330
+ #
331
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
332
+ # will be used to search for tokens configured for your profile in shared configuration files.
333
+ #
334
+ # @option options [Boolean] :use_dualstack_endpoint
335
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
336
+ # will be used if available.
337
+ #
338
+ # @option options [Boolean] :use_fips_endpoint
339
+ # When set to `true`, fips compatible endpoints will be used if available.
340
+ # When a `fips` region is used, the region is normalized and this config
341
+ # is set to `true`.
342
+ #
343
+ # @option options [Boolean] :validate_params (true)
344
+ # When `true`, request parameters are validated before
345
+ # sending the request.
346
+ #
347
+ # @option options [Aws::ApplicationSignals::EndpointProvider] :endpoint_provider
348
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::ApplicationSignals::EndpointParameters`
349
+ #
350
+ # @option options [Float] :http_continue_timeout (1)
351
+ # The number of seconds to wait for a 100-continue response before sending the
352
+ # request body. This option has no effect unless the request has "Expect"
353
+ # header set to "100-continue". Defaults to `nil` which disables this
354
+ # behaviour. This value can safely be set per request on the session.
355
+ #
356
+ # @option options [Float] :http_idle_timeout (5)
357
+ # The number of seconds a connection is allowed to sit idle before it
358
+ # is considered stale. Stale connections are closed and removed from the
359
+ # pool before making a request.
360
+ #
361
+ # @option options [Float] :http_open_timeout (15)
362
+ # The default number of seconds to wait for response data.
363
+ # This value can safely be set per-request on the session.
364
+ #
365
+ # @option options [URI::HTTP,String] :http_proxy
366
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
367
+ #
368
+ # @option options [Float] :http_read_timeout (60)
369
+ # The default number of seconds to wait for response data.
370
+ # This value can safely be set per-request on the session.
371
+ #
372
+ # @option options [Boolean] :http_wire_trace (false)
373
+ # When `true`, HTTP debug output will be sent to the `:logger`.
374
+ #
375
+ # @option options [Proc] :on_chunk_received
376
+ # When a Proc object is provided, it will be used as callback when each chunk
377
+ # of the response body is received. It provides three arguments: the chunk,
378
+ # the number of bytes received, and the total number of
379
+ # bytes in the response (or nil if the server did not send a `content-length`).
380
+ #
381
+ # @option options [Proc] :on_chunk_sent
382
+ # When a Proc object is provided, it will be used as callback when each chunk
383
+ # of the request body is sent. It provides three arguments: the chunk,
384
+ # the number of bytes read from the body, and the total number of
385
+ # bytes in the body.
386
+ #
387
+ # @option options [Boolean] :raise_response_errors (true)
388
+ # When `true`, response errors are raised.
389
+ #
390
+ # @option options [String] :ssl_ca_bundle
391
+ # Full path to the SSL certificate authority bundle file that should be used when
392
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
393
+ # `:ssl_ca_directory` the the system default will be used if available.
394
+ #
395
+ # @option options [String] :ssl_ca_directory
396
+ # Full path of the directory that contains the unbundled SSL certificate
397
+ # authority files for verifying peer certificates. If you do
398
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
399
+ # default will be used if available.
400
+ #
401
+ # @option options [String] :ssl_ca_store
402
+ # Sets the X509::Store to verify peer certificate.
403
+ #
404
+ # @option options [Float] :ssl_timeout
405
+ # Sets the SSL timeout in seconds
406
+ #
407
+ # @option options [Boolean] :ssl_verify_peer (true)
408
+ # When `true`, SSL peer certificates are verified when establishing a connection.
409
+ #
410
+ def initialize(*args)
411
+ super
412
+ end
413
+
414
+ # @!group API Operations
415
+
416
+ # Use this operation to retrieve one or more *service level objective
417
+ # (SLO) budget reports*.
418
+ #
419
+ # An *error budget* is the amount of time in unhealthy periods that your
420
+ # service can accumulate during an interval before your overall SLO
421
+ # budget health is breached and the SLO is considered to be unmet. For
422
+ # example, an SLO with a threshold of 99.95% and a monthly interval
423
+ # translates to an error budget of 21.9 minutes of downtime in a 30-day
424
+ # month.
425
+ #
426
+ # Budget reports include a health indicator, the attainment value, and
427
+ # remaining budget.
428
+ #
429
+ # For more information about SLO error budgets, see [ SLO concepts][1].
430
+ #
431
+ #
432
+ #
433
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-ServiceLevelObjectives.html#CloudWatch-ServiceLevelObjectives-concepts
434
+ #
435
+ # @option params [required, Time,DateTime,Date,Integer,String] :timestamp
436
+ # The date and time that you want the report to be for. It is expressed
437
+ # as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.
438
+ #
439
+ # @option params [required, Array<String>] :slo_ids
440
+ # An array containing the IDs of the service level objectives that you
441
+ # want to include in the report.
442
+ #
443
+ # @return [Types::BatchGetServiceLevelObjectiveBudgetReportOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
444
+ #
445
+ # * {Types::BatchGetServiceLevelObjectiveBudgetReportOutput#timestamp #timestamp} => Time
446
+ # * {Types::BatchGetServiceLevelObjectiveBudgetReportOutput#reports #reports} => Array&lt;Types::ServiceLevelObjectiveBudgetReport&gt;
447
+ # * {Types::BatchGetServiceLevelObjectiveBudgetReportOutput#errors #errors} => Array&lt;Types::ServiceLevelObjectiveBudgetReportError&gt;
448
+ #
449
+ # @example Request syntax with placeholder values
450
+ #
451
+ # resp = client.batch_get_service_level_objective_budget_report({
452
+ # timestamp: Time.now, # required
453
+ # slo_ids: ["String"], # required
454
+ # })
455
+ #
456
+ # @example Response structure
457
+ #
458
+ # resp.timestamp #=> Time
459
+ # resp.reports #=> Array
460
+ # resp.reports[0].arn #=> String
461
+ # resp.reports[0].name #=> String
462
+ # resp.reports[0].budget_status #=> String, one of "OK", "WARNING", "BREACHED", "INSUFFICIENT_DATA"
463
+ # resp.reports[0].attainment #=> Float
464
+ # resp.reports[0].total_budget_seconds #=> Integer
465
+ # resp.reports[0].budget_seconds_remaining #=> Integer
466
+ # resp.reports[0].sli.sli_metric.key_attributes #=> Hash
467
+ # resp.reports[0].sli.sli_metric.key_attributes["KeyAttributeName"] #=> String
468
+ # resp.reports[0].sli.sli_metric.operation_name #=> String
469
+ # resp.reports[0].sli.sli_metric.metric_type #=> String, one of "LATENCY", "AVAILABILITY"
470
+ # resp.reports[0].sli.sli_metric.metric_data_queries #=> Array
471
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].id #=> String
472
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].metric_stat.metric.namespace #=> String
473
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].metric_stat.metric.metric_name #=> String
474
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].metric_stat.metric.dimensions #=> Array
475
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].metric_stat.metric.dimensions[0].name #=> String
476
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].metric_stat.metric.dimensions[0].value #=> String
477
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].metric_stat.period #=> Integer
478
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].metric_stat.stat #=> String
479
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].metric_stat.unit #=> String, one of "Microseconds", "Milliseconds", "Seconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None"
480
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].expression #=> String
481
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].label #=> String
482
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].return_data #=> Boolean
483
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].period #=> Integer
484
+ # resp.reports[0].sli.sli_metric.metric_data_queries[0].account_id #=> String
485
+ # resp.reports[0].sli.metric_threshold #=> Float
486
+ # resp.reports[0].sli.comparison_operator #=> String, one of "GreaterThanOrEqualTo", "GreaterThan", "LessThan", "LessThanOrEqualTo"
487
+ # resp.reports[0].goal.interval.rolling_interval.duration_unit #=> String, one of "DAY", "MONTH"
488
+ # resp.reports[0].goal.interval.rolling_interval.duration #=> Integer
489
+ # resp.reports[0].goal.interval.calendar_interval.start_time #=> Time
490
+ # resp.reports[0].goal.interval.calendar_interval.duration_unit #=> String, one of "DAY", "MONTH"
491
+ # resp.reports[0].goal.interval.calendar_interval.duration #=> Integer
492
+ # resp.reports[0].goal.attainment_goal #=> Float
493
+ # resp.reports[0].goal.warning_threshold #=> Float
494
+ # resp.errors #=> Array
495
+ # resp.errors[0].name #=> String
496
+ # resp.errors[0].arn #=> String
497
+ # resp.errors[0].error_code #=> String
498
+ # resp.errors[0].error_message #=> String
499
+ #
500
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/BatchGetServiceLevelObjectiveBudgetReport AWS API Documentation
501
+ #
502
+ # @overload batch_get_service_level_objective_budget_report(params = {})
503
+ # @param [Hash] params ({})
504
+ def batch_get_service_level_objective_budget_report(params = {}, options = {})
505
+ req = build_request(:batch_get_service_level_objective_budget_report, params)
506
+ req.send_request(options)
507
+ end
508
+
509
+ # Creates a service level objective (SLO), which can help you ensure
510
+ # that your critical business operations are meeting customer
511
+ # expectations. Use SLOs to set and track specific target levels for the
512
+ # reliability and availability of your applications and services. SLOs
513
+ # use service level indicators (SLIs) to calculate whether the
514
+ # application is performing at the level that you want.
515
+ #
516
+ # Create an SLO to set a target for a service or operation’s
517
+ # availability or latency. CloudWatch measures this target frequently
518
+ # you can find whether it has been breached.
519
+ #
520
+ # When you create an SLO, you set an *attainment goal* for it. An
521
+ # *attainment goal* is the ratio of good periods that meet the threshold
522
+ # requirements to the total periods within the interval. For example, an
523
+ # attainment goal of 99.9% means that within your interval, you are
524
+ # targeting 99.9% of the periods to be in healthy state.
525
+ #
526
+ # After you have created an SLO, you can retrieve error budget reports
527
+ # for it. An *error budget* is the number of periods or amount of time
528
+ # that your service can accumulate during an interval before your
529
+ # overall SLO budget health is breached and the SLO is considered to be
530
+ # unmet. for example, an SLO with a threshold that 99.95% of requests
531
+ # must be completed under 2000ms every month translates to an error
532
+ # budget of 21.9 minutes of downtime per month.
533
+ #
534
+ # When you call this operation, Application Signals creates the
535
+ # *AWSServiceRoleForCloudWatchApplicationSignals* service-linked role,
536
+ # if it doesn't already exist in your account. This service- linked
537
+ # role has the following permissions:
538
+ #
539
+ # * `xray:GetServiceGraph`
540
+ #
541
+ # * `logs:StartQuery`
542
+ #
543
+ # * `logs:GetQueryResults`
544
+ #
545
+ # * `cloudwatch:GetMetricData`
546
+ #
547
+ # * `cloudwatch:ListMetrics`
548
+ #
549
+ # * `tag:GetResources`
550
+ #
551
+ # * `autoscaling:DescribeAutoScalingGroups`
552
+ #
553
+ # You can easily set SLO targets for your applications that are
554
+ # discovered by Application Signals, using critical metrics such as
555
+ # latency and availability. You can also set SLOs against any CloudWatch
556
+ # metric or math expression that produces a time series.
557
+ #
558
+ # For more information about SLOs, see [ Service level objectives
559
+ # (SLOs)][1].
560
+ #
561
+ #
562
+ #
563
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-ServiceLevelObjectives.html
564
+ #
565
+ # @option params [required, String] :name
566
+ # A name for this SLO.
567
+ #
568
+ # @option params [String] :description
569
+ # An optional description for this SLO.
570
+ #
571
+ # @option params [required, Types::ServiceLevelIndicatorConfig] :sli_config
572
+ # A structure that contains information about what service and what
573
+ # performance metric that this SLO will monitor.
574
+ #
575
+ # @option params [Types::Goal] :goal
576
+ # A structure that contains the attributes that determine the goal of
577
+ # the SLO. This includes the time period for evaluation and the
578
+ # attainment threshold.
579
+ #
580
+ # @option params [Array<Types::Tag>] :tags
581
+ # A list of key-value pairs to associate with the SLO. You can associate
582
+ # as many as 50 tags with an SLO. To be able to associate tags with the
583
+ # SLO when you create the SLO, you must have the
584
+ # `cloudwatch:TagResource` permission.
585
+ #
586
+ # Tags can help you organize and categorize your resources. You can also
587
+ # use them to scope user permissions by granting a user permission to
588
+ # access or change only resources with certain tag values.
589
+ #
590
+ # @return [Types::CreateServiceLevelObjectiveOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
591
+ #
592
+ # * {Types::CreateServiceLevelObjectiveOutput#slo #slo} => Types::ServiceLevelObjective
593
+ #
594
+ # @example Request syntax with placeholder values
595
+ #
596
+ # resp = client.create_service_level_objective({
597
+ # name: "ServiceLevelObjectiveName", # required
598
+ # description: "ServiceLevelObjectiveDescription",
599
+ # sli_config: { # required
600
+ # sli_metric_config: { # required
601
+ # key_attributes: {
602
+ # "KeyAttributeName" => "KeyAttributeValue",
603
+ # },
604
+ # operation_name: "OperationName",
605
+ # metric_type: "LATENCY", # accepts LATENCY, AVAILABILITY
606
+ # statistic: "ServiceLevelIndicatorStatistic",
607
+ # period_seconds: 1,
608
+ # metric_data_queries: [
609
+ # {
610
+ # id: "MetricId", # required
611
+ # metric_stat: {
612
+ # metric: { # required
613
+ # namespace: "Namespace",
614
+ # metric_name: "MetricName",
615
+ # dimensions: [
616
+ # {
617
+ # name: "DimensionName", # required
618
+ # value: "DimensionValue", # required
619
+ # },
620
+ # ],
621
+ # },
622
+ # period: 1, # required
623
+ # stat: "Stat", # required
624
+ # unit: "Microseconds", # accepts Microseconds, Milliseconds, Seconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, None
625
+ # },
626
+ # expression: "MetricExpression",
627
+ # label: "MetricLabel",
628
+ # return_data: false,
629
+ # period: 1,
630
+ # account_id: "AccountId",
631
+ # },
632
+ # ],
633
+ # },
634
+ # metric_threshold: 1.0, # required
635
+ # comparison_operator: "GreaterThanOrEqualTo", # required, accepts GreaterThanOrEqualTo, GreaterThan, LessThan, LessThanOrEqualTo
636
+ # },
637
+ # goal: {
638
+ # interval: {
639
+ # rolling_interval: {
640
+ # duration_unit: "DAY", # required, accepts DAY, MONTH
641
+ # duration: 1, # required
642
+ # },
643
+ # calendar_interval: {
644
+ # start_time: Time.now, # required
645
+ # duration_unit: "DAY", # required, accepts DAY, MONTH
646
+ # duration: 1, # required
647
+ # },
648
+ # },
649
+ # attainment_goal: 1.0,
650
+ # warning_threshold: 1.0,
651
+ # },
652
+ # tags: [
653
+ # {
654
+ # key: "TagKey", # required
655
+ # value: "TagValue", # required
656
+ # },
657
+ # ],
658
+ # })
659
+ #
660
+ # @example Response structure
661
+ #
662
+ # resp.slo.arn #=> String
663
+ # resp.slo.name #=> String
664
+ # resp.slo.description #=> String
665
+ # resp.slo.created_time #=> Time
666
+ # resp.slo.last_updated_time #=> Time
667
+ # resp.slo.sli.sli_metric.key_attributes #=> Hash
668
+ # resp.slo.sli.sli_metric.key_attributes["KeyAttributeName"] #=> String
669
+ # resp.slo.sli.sli_metric.operation_name #=> String
670
+ # resp.slo.sli.sli_metric.metric_type #=> String, one of "LATENCY", "AVAILABILITY"
671
+ # resp.slo.sli.sli_metric.metric_data_queries #=> Array
672
+ # resp.slo.sli.sli_metric.metric_data_queries[0].id #=> String
673
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.namespace #=> String
674
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.metric_name #=> String
675
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.dimensions #=> Array
676
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.dimensions[0].name #=> String
677
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.dimensions[0].value #=> String
678
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.period #=> Integer
679
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.stat #=> String
680
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.unit #=> String, one of "Microseconds", "Milliseconds", "Seconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None"
681
+ # resp.slo.sli.sli_metric.metric_data_queries[0].expression #=> String
682
+ # resp.slo.sli.sli_metric.metric_data_queries[0].label #=> String
683
+ # resp.slo.sli.sli_metric.metric_data_queries[0].return_data #=> Boolean
684
+ # resp.slo.sli.sli_metric.metric_data_queries[0].period #=> Integer
685
+ # resp.slo.sli.sli_metric.metric_data_queries[0].account_id #=> String
686
+ # resp.slo.sli.metric_threshold #=> Float
687
+ # resp.slo.sli.comparison_operator #=> String, one of "GreaterThanOrEqualTo", "GreaterThan", "LessThan", "LessThanOrEqualTo"
688
+ # resp.slo.goal.interval.rolling_interval.duration_unit #=> String, one of "DAY", "MONTH"
689
+ # resp.slo.goal.interval.rolling_interval.duration #=> Integer
690
+ # resp.slo.goal.interval.calendar_interval.start_time #=> Time
691
+ # resp.slo.goal.interval.calendar_interval.duration_unit #=> String, one of "DAY", "MONTH"
692
+ # resp.slo.goal.interval.calendar_interval.duration #=> Integer
693
+ # resp.slo.goal.attainment_goal #=> Float
694
+ # resp.slo.goal.warning_threshold #=> Float
695
+ #
696
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/CreateServiceLevelObjective AWS API Documentation
697
+ #
698
+ # @overload create_service_level_objective(params = {})
699
+ # @param [Hash] params ({})
700
+ def create_service_level_objective(params = {}, options = {})
701
+ req = build_request(:create_service_level_objective, params)
702
+ req.send_request(options)
703
+ end
704
+
705
+ # Deletes the specified service level objective.
706
+ #
707
+ # @option params [required, String] :id
708
+ # The ARN or name of the service level objective to delete.
709
+ #
710
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
711
+ #
712
+ # @example Request syntax with placeholder values
713
+ #
714
+ # resp = client.delete_service_level_objective({
715
+ # id: "ServiceLevelObjectiveId", # required
716
+ # })
717
+ #
718
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/DeleteServiceLevelObjective AWS API Documentation
719
+ #
720
+ # @overload delete_service_level_objective(params = {})
721
+ # @param [Hash] params ({})
722
+ def delete_service_level_objective(params = {}, options = {})
723
+ req = build_request(:delete_service_level_objective, params)
724
+ req.send_request(options)
725
+ end
726
+
727
+ # Returns information about a service discovered by Application Signals.
728
+ #
729
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
730
+ # The start of the time period to retrieve information about. When used
731
+ # in a raw HTTP Query API, it is formatted as be epoch time in seconds.
732
+ # For example: `1698778057`
733
+ #
734
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
735
+ # The end of the time period to retrieve information about. When used in
736
+ # a raw HTTP Query API, it is formatted as be epoch time in seconds. For
737
+ # example: `1698778057`
738
+ #
739
+ # @option params [required, Hash<String,String>] :key_attributes
740
+ # Use this field to specify which service you want to retrieve
741
+ # information for. You must specify at least the `Type`, `Name`, and
742
+ # `Environment` attributes.
743
+ #
744
+ # This is a string-to-string map. It can include the following fields.
745
+ #
746
+ # * `Type` designates the type of object this is.
747
+ #
748
+ # * `ResourceType` specifies the type of the resource. This field is
749
+ # used only when the value of the `Type` field is `Resource` or
750
+ # `AWS::Resource`.
751
+ #
752
+ # * `Name` specifies the name of the object. This is used only if the
753
+ # value of the `Type` field is `Service`, `RemoteService`, or
754
+ # `AWS::Service`.
755
+ #
756
+ # * `Identifier` identifies the resource objects of this resource. This
757
+ # is used only if the value of the `Type` field is `Resource` or
758
+ # `AWS::Resource`.
759
+ #
760
+ # * `Environment` specifies the location where this object is hosted, or
761
+ # what it belongs to.
762
+ #
763
+ # @return [Types::GetServiceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
764
+ #
765
+ # * {Types::GetServiceOutput#service #service} => Types::Service
766
+ # * {Types::GetServiceOutput#start_time #start_time} => Time
767
+ # * {Types::GetServiceOutput#end_time #end_time} => Time
768
+ #
769
+ # @example Request syntax with placeholder values
770
+ #
771
+ # resp = client.get_service({
772
+ # start_time: Time.now, # required
773
+ # end_time: Time.now, # required
774
+ # key_attributes: { # required
775
+ # "KeyAttributeName" => "KeyAttributeValue",
776
+ # },
777
+ # })
778
+ #
779
+ # @example Response structure
780
+ #
781
+ # resp.service.key_attributes #=> Hash
782
+ # resp.service.key_attributes["KeyAttributeName"] #=> String
783
+ # resp.service.attribute_maps #=> Array
784
+ # resp.service.attribute_maps[0] #=> Hash
785
+ # resp.service.attribute_maps[0]["String"] #=> String
786
+ # resp.service.metric_references #=> Array
787
+ # resp.service.metric_references[0].namespace #=> String
788
+ # resp.service.metric_references[0].metric_type #=> String
789
+ # resp.service.metric_references[0].dimensions #=> Array
790
+ # resp.service.metric_references[0].dimensions[0].name #=> String
791
+ # resp.service.metric_references[0].dimensions[0].value #=> String
792
+ # resp.service.metric_references[0].metric_name #=> String
793
+ # resp.start_time #=> Time
794
+ # resp.end_time #=> Time
795
+ #
796
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/GetService AWS API Documentation
797
+ #
798
+ # @overload get_service(params = {})
799
+ # @param [Hash] params ({})
800
+ def get_service(params = {}, options = {})
801
+ req = build_request(:get_service, params)
802
+ req.send_request(options)
803
+ end
804
+
805
+ # Returns information about one SLO created in the account.
806
+ #
807
+ # @option params [required, String] :id
808
+ # The ARN or name of the SLO that you want to retrieve information
809
+ # about. You can find the ARNs of SLOs by using the
810
+ # [ListServiceLevelObjectives][1] operation.
811
+ #
812
+ #
813
+ #
814
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListServiceLevelObjectives.html
815
+ #
816
+ # @return [Types::GetServiceLevelObjectiveOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
817
+ #
818
+ # * {Types::GetServiceLevelObjectiveOutput#slo #slo} => Types::ServiceLevelObjective
819
+ #
820
+ # @example Request syntax with placeholder values
821
+ #
822
+ # resp = client.get_service_level_objective({
823
+ # id: "ServiceLevelObjectiveId", # required
824
+ # })
825
+ #
826
+ # @example Response structure
827
+ #
828
+ # resp.slo.arn #=> String
829
+ # resp.slo.name #=> String
830
+ # resp.slo.description #=> String
831
+ # resp.slo.created_time #=> Time
832
+ # resp.slo.last_updated_time #=> Time
833
+ # resp.slo.sli.sli_metric.key_attributes #=> Hash
834
+ # resp.slo.sli.sli_metric.key_attributes["KeyAttributeName"] #=> String
835
+ # resp.slo.sli.sli_metric.operation_name #=> String
836
+ # resp.slo.sli.sli_metric.metric_type #=> String, one of "LATENCY", "AVAILABILITY"
837
+ # resp.slo.sli.sli_metric.metric_data_queries #=> Array
838
+ # resp.slo.sli.sli_metric.metric_data_queries[0].id #=> String
839
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.namespace #=> String
840
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.metric_name #=> String
841
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.dimensions #=> Array
842
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.dimensions[0].name #=> String
843
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.dimensions[0].value #=> String
844
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.period #=> Integer
845
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.stat #=> String
846
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.unit #=> String, one of "Microseconds", "Milliseconds", "Seconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None"
847
+ # resp.slo.sli.sli_metric.metric_data_queries[0].expression #=> String
848
+ # resp.slo.sli.sli_metric.metric_data_queries[0].label #=> String
849
+ # resp.slo.sli.sli_metric.metric_data_queries[0].return_data #=> Boolean
850
+ # resp.slo.sli.sli_metric.metric_data_queries[0].period #=> Integer
851
+ # resp.slo.sli.sli_metric.metric_data_queries[0].account_id #=> String
852
+ # resp.slo.sli.metric_threshold #=> Float
853
+ # resp.slo.sli.comparison_operator #=> String, one of "GreaterThanOrEqualTo", "GreaterThan", "LessThan", "LessThanOrEqualTo"
854
+ # resp.slo.goal.interval.rolling_interval.duration_unit #=> String, one of "DAY", "MONTH"
855
+ # resp.slo.goal.interval.rolling_interval.duration #=> Integer
856
+ # resp.slo.goal.interval.calendar_interval.start_time #=> Time
857
+ # resp.slo.goal.interval.calendar_interval.duration_unit #=> String, one of "DAY", "MONTH"
858
+ # resp.slo.goal.interval.calendar_interval.duration #=> Integer
859
+ # resp.slo.goal.attainment_goal #=> Float
860
+ # resp.slo.goal.warning_threshold #=> Float
861
+ #
862
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/GetServiceLevelObjective AWS API Documentation
863
+ #
864
+ # @overload get_service_level_objective(params = {})
865
+ # @param [Hash] params ({})
866
+ def get_service_level_objective(params = {}, options = {})
867
+ req = build_request(:get_service_level_objective, params)
868
+ req.send_request(options)
869
+ end
870
+
871
+ # Returns a list of service dependencies of the service that you
872
+ # specify. A dependency is an infrastructure component that an operation
873
+ # of this service connects with. Dependencies can include Amazon Web
874
+ # Services services, Amazon Web Services resources, and third-party
875
+ # services.
876
+ #
877
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
878
+ # The start of the time period to retrieve information about. When used
879
+ # in a raw HTTP Query API, it is formatted as be epoch time in seconds.
880
+ # For example: `1698778057`
881
+ #
882
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
883
+ # The end of the time period to retrieve information about. When used in
884
+ # a raw HTTP Query API, it is formatted as be epoch time in seconds. For
885
+ # example: `1698778057`
886
+ #
887
+ # @option params [required, Hash<String,String>] :key_attributes
888
+ # Use this field to specify which service you want to retrieve
889
+ # information for. You must specify at least the `Type`, `Name`, and
890
+ # `Environment` attributes.
891
+ #
892
+ # This is a string-to-string map. It can include the following fields.
893
+ #
894
+ # * `Type` designates the type of object this is.
895
+ #
896
+ # * `ResourceType` specifies the type of the resource. This field is
897
+ # used only when the value of the `Type` field is `Resource` or
898
+ # `AWS::Resource`.
899
+ #
900
+ # * `Name` specifies the name of the object. This is used only if the
901
+ # value of the `Type` field is `Service`, `RemoteService`, or
902
+ # `AWS::Service`.
903
+ #
904
+ # * `Identifier` identifies the resource objects of this resource. This
905
+ # is used only if the value of the `Type` field is `Resource` or
906
+ # `AWS::Resource`.
907
+ #
908
+ # * `Environment` specifies the location where this object is hosted, or
909
+ # what it belongs to.
910
+ #
911
+ # @option params [Integer] :max_results
912
+ # The maximum number of results to return in one operation. If you omit
913
+ # this parameter, the default of 50 is used.
914
+ #
915
+ # @option params [String] :next_token
916
+ # Include this value, if it was returned by the previous operation, to
917
+ # get the next set of service dependencies.
918
+ #
919
+ # @return [Types::ListServiceDependenciesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
920
+ #
921
+ # * {Types::ListServiceDependenciesOutput#start_time #start_time} => Time
922
+ # * {Types::ListServiceDependenciesOutput#end_time #end_time} => Time
923
+ # * {Types::ListServiceDependenciesOutput#service_dependencies #service_dependencies} => Array&lt;Types::ServiceDependency&gt;
924
+ # * {Types::ListServiceDependenciesOutput#next_token #next_token} => String
925
+ #
926
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
927
+ #
928
+ # @example Request syntax with placeholder values
929
+ #
930
+ # resp = client.list_service_dependencies({
931
+ # start_time: Time.now, # required
932
+ # end_time: Time.now, # required
933
+ # key_attributes: { # required
934
+ # "KeyAttributeName" => "KeyAttributeValue",
935
+ # },
936
+ # max_results: 1,
937
+ # next_token: "NextToken",
938
+ # })
939
+ #
940
+ # @example Response structure
941
+ #
942
+ # resp.start_time #=> Time
943
+ # resp.end_time #=> Time
944
+ # resp.service_dependencies #=> Array
945
+ # resp.service_dependencies[0].operation_name #=> String
946
+ # resp.service_dependencies[0].dependency_key_attributes #=> Hash
947
+ # resp.service_dependencies[0].dependency_key_attributes["KeyAttributeName"] #=> String
948
+ # resp.service_dependencies[0].dependency_operation_name #=> String
949
+ # resp.service_dependencies[0].metric_references #=> Array
950
+ # resp.service_dependencies[0].metric_references[0].namespace #=> String
951
+ # resp.service_dependencies[0].metric_references[0].metric_type #=> String
952
+ # resp.service_dependencies[0].metric_references[0].dimensions #=> Array
953
+ # resp.service_dependencies[0].metric_references[0].dimensions[0].name #=> String
954
+ # resp.service_dependencies[0].metric_references[0].dimensions[0].value #=> String
955
+ # resp.service_dependencies[0].metric_references[0].metric_name #=> String
956
+ # resp.next_token #=> String
957
+ #
958
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServiceDependencies AWS API Documentation
959
+ #
960
+ # @overload list_service_dependencies(params = {})
961
+ # @param [Hash] params ({})
962
+ def list_service_dependencies(params = {}, options = {})
963
+ req = build_request(:list_service_dependencies, params)
964
+ req.send_request(options)
965
+ end
966
+
967
+ # Returns the list of dependents that invoked the specified service
968
+ # during the provided time range. Dependents include other services,
969
+ # CloudWatch Synthetics canaries, and clients that are instrumented with
970
+ # CloudWatch RUM app monitors.
971
+ #
972
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
973
+ # The start of the time period to retrieve information about. When used
974
+ # in a raw HTTP Query API, it is formatted as be epoch time in seconds.
975
+ # For example: `1698778057`
976
+ #
977
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
978
+ # The end of the time period to retrieve information about. When used in
979
+ # a raw HTTP Query API, it is formatted as be epoch time in seconds. For
980
+ # example: `1698778057`
981
+ #
982
+ # @option params [required, Hash<String,String>] :key_attributes
983
+ # Use this field to specify which service you want to retrieve
984
+ # information for. You must specify at least the `Type`, `Name`, and
985
+ # `Environment` attributes.
986
+ #
987
+ # This is a string-to-string map. It can include the following fields.
988
+ #
989
+ # * `Type` designates the type of object this is.
990
+ #
991
+ # * `ResourceType` specifies the type of the resource. This field is
992
+ # used only when the value of the `Type` field is `Resource` or
993
+ # `AWS::Resource`.
994
+ #
995
+ # * `Name` specifies the name of the object. This is used only if the
996
+ # value of the `Type` field is `Service`, `RemoteService`, or
997
+ # `AWS::Service`.
998
+ #
999
+ # * `Identifier` identifies the resource objects of this resource. This
1000
+ # is used only if the value of the `Type` field is `Resource` or
1001
+ # `AWS::Resource`.
1002
+ #
1003
+ # * `Environment` specifies the location where this object is hosted, or
1004
+ # what it belongs to.
1005
+ #
1006
+ # @option params [Integer] :max_results
1007
+ # The maximum number of results to return in one operation. If you omit
1008
+ # this parameter, the default of 50 is used.
1009
+ #
1010
+ # @option params [String] :next_token
1011
+ # Include this value, if it was returned by the previous operation, to
1012
+ # get the next set of service dependents.
1013
+ #
1014
+ # @return [Types::ListServiceDependentsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1015
+ #
1016
+ # * {Types::ListServiceDependentsOutput#start_time #start_time} => Time
1017
+ # * {Types::ListServiceDependentsOutput#end_time #end_time} => Time
1018
+ # * {Types::ListServiceDependentsOutput#service_dependents #service_dependents} => Array&lt;Types::ServiceDependent&gt;
1019
+ # * {Types::ListServiceDependentsOutput#next_token #next_token} => String
1020
+ #
1021
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1022
+ #
1023
+ # @example Request syntax with placeholder values
1024
+ #
1025
+ # resp = client.list_service_dependents({
1026
+ # start_time: Time.now, # required
1027
+ # end_time: Time.now, # required
1028
+ # key_attributes: { # required
1029
+ # "KeyAttributeName" => "KeyAttributeValue",
1030
+ # },
1031
+ # max_results: 1,
1032
+ # next_token: "NextToken",
1033
+ # })
1034
+ #
1035
+ # @example Response structure
1036
+ #
1037
+ # resp.start_time #=> Time
1038
+ # resp.end_time #=> Time
1039
+ # resp.service_dependents #=> Array
1040
+ # resp.service_dependents[0].operation_name #=> String
1041
+ # resp.service_dependents[0].dependent_key_attributes #=> Hash
1042
+ # resp.service_dependents[0].dependent_key_attributes["KeyAttributeName"] #=> String
1043
+ # resp.service_dependents[0].dependent_operation_name #=> String
1044
+ # resp.service_dependents[0].metric_references #=> Array
1045
+ # resp.service_dependents[0].metric_references[0].namespace #=> String
1046
+ # resp.service_dependents[0].metric_references[0].metric_type #=> String
1047
+ # resp.service_dependents[0].metric_references[0].dimensions #=> Array
1048
+ # resp.service_dependents[0].metric_references[0].dimensions[0].name #=> String
1049
+ # resp.service_dependents[0].metric_references[0].dimensions[0].value #=> String
1050
+ # resp.service_dependents[0].metric_references[0].metric_name #=> String
1051
+ # resp.next_token #=> String
1052
+ #
1053
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServiceDependents AWS API Documentation
1054
+ #
1055
+ # @overload list_service_dependents(params = {})
1056
+ # @param [Hash] params ({})
1057
+ def list_service_dependents(params = {}, options = {})
1058
+ req = build_request(:list_service_dependents, params)
1059
+ req.send_request(options)
1060
+ end
1061
+
1062
+ # Returns a list of SLOs created in this account.
1063
+ #
1064
+ # @option params [Hash<String,String>] :key_attributes
1065
+ # You can use this optional field to specify which services you want to
1066
+ # retrieve SLO information for.
1067
+ #
1068
+ # This is a string-to-string map. It can include the following fields.
1069
+ #
1070
+ # * `Type` designates the type of object this is.
1071
+ #
1072
+ # * `ResourceType` specifies the type of the resource. This field is
1073
+ # used only when the value of the `Type` field is `Resource` or
1074
+ # `AWS::Resource`.
1075
+ #
1076
+ # * `Name` specifies the name of the object. This is used only if the
1077
+ # value of the `Type` field is `Service`, `RemoteService`, or
1078
+ # `AWS::Service`.
1079
+ #
1080
+ # * `Identifier` identifies the resource objects of this resource. This
1081
+ # is used only if the value of the `Type` field is `Resource` or
1082
+ # `AWS::Resource`.
1083
+ #
1084
+ # * `Environment` specifies the location where this object is hosted, or
1085
+ # what it belongs to.
1086
+ #
1087
+ # @option params [String] :operation_name
1088
+ # The name of the operation that this SLO is associated with.
1089
+ #
1090
+ # @option params [Integer] :max_results
1091
+ # The maximum number of results to return in one operation. If you omit
1092
+ # this parameter, the default of 50 is used.
1093
+ #
1094
+ # @option params [String] :next_token
1095
+ # Include this value, if it was returned by the previous operation, to
1096
+ # get the next set of service level objectives.
1097
+ #
1098
+ # @return [Types::ListServiceLevelObjectivesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1099
+ #
1100
+ # * {Types::ListServiceLevelObjectivesOutput#slo_summaries #slo_summaries} => Array&lt;Types::ServiceLevelObjectiveSummary&gt;
1101
+ # * {Types::ListServiceLevelObjectivesOutput#next_token #next_token} => String
1102
+ #
1103
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1104
+ #
1105
+ # @example Request syntax with placeholder values
1106
+ #
1107
+ # resp = client.list_service_level_objectives({
1108
+ # key_attributes: {
1109
+ # "KeyAttributeName" => "KeyAttributeValue",
1110
+ # },
1111
+ # operation_name: "OperationName",
1112
+ # max_results: 1,
1113
+ # next_token: "NextToken",
1114
+ # })
1115
+ #
1116
+ # @example Response structure
1117
+ #
1118
+ # resp.slo_summaries #=> Array
1119
+ # resp.slo_summaries[0].arn #=> String
1120
+ # resp.slo_summaries[0].name #=> String
1121
+ # resp.slo_summaries[0].key_attributes #=> Hash
1122
+ # resp.slo_summaries[0].key_attributes["KeyAttributeName"] #=> String
1123
+ # resp.slo_summaries[0].operation_name #=> String
1124
+ # resp.slo_summaries[0].created_time #=> Time
1125
+ # resp.next_token #=> String
1126
+ #
1127
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServiceLevelObjectives AWS API Documentation
1128
+ #
1129
+ # @overload list_service_level_objectives(params = {})
1130
+ # @param [Hash] params ({})
1131
+ def list_service_level_objectives(params = {}, options = {})
1132
+ req = build_request(:list_service_level_objectives, params)
1133
+ req.send_request(options)
1134
+ end
1135
+
1136
+ # Returns a list of the *operations* of this service that have been
1137
+ # discovered by Application Signals. Only the operations that were
1138
+ # invoked during the specified time range are returned.
1139
+ #
1140
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
1141
+ # The start of the time period to retrieve information about. When used
1142
+ # in a raw HTTP Query API, it is formatted as be epoch time in seconds.
1143
+ # For example: `1698778057`
1144
+ #
1145
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
1146
+ # The end of the time period to retrieve information about. When used in
1147
+ # a raw HTTP Query API, it is formatted as be epoch time in seconds. For
1148
+ # example: `1698778057`
1149
+ #
1150
+ # @option params [required, Hash<String,String>] :key_attributes
1151
+ # Use this field to specify which service you want to retrieve
1152
+ # information for. You must specify at least the `Type`, `Name`, and
1153
+ # `Environment` attributes.
1154
+ #
1155
+ # This is a string-to-string map. It can include the following fields.
1156
+ #
1157
+ # * `Type` designates the type of object this is.
1158
+ #
1159
+ # * `ResourceType` specifies the type of the resource. This field is
1160
+ # used only when the value of the `Type` field is `Resource` or
1161
+ # `AWS::Resource`.
1162
+ #
1163
+ # * `Name` specifies the name of the object. This is used only if the
1164
+ # value of the `Type` field is `Service`, `RemoteService`, or
1165
+ # `AWS::Service`.
1166
+ #
1167
+ # * `Identifier` identifies the resource objects of this resource. This
1168
+ # is used only if the value of the `Type` field is `Resource` or
1169
+ # `AWS::Resource`.
1170
+ #
1171
+ # * `Environment` specifies the location where this object is hosted, or
1172
+ # what it belongs to.
1173
+ #
1174
+ # @option params [Integer] :max_results
1175
+ # The maximum number of results to return in one operation. If you omit
1176
+ # this parameter, the default of 50 is used.
1177
+ #
1178
+ # @option params [String] :next_token
1179
+ # Include this value, if it was returned by the previous operation, to
1180
+ # get the next set of service operations.
1181
+ #
1182
+ # @return [Types::ListServiceOperationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1183
+ #
1184
+ # * {Types::ListServiceOperationsOutput#start_time #start_time} => Time
1185
+ # * {Types::ListServiceOperationsOutput#end_time #end_time} => Time
1186
+ # * {Types::ListServiceOperationsOutput#service_operations #service_operations} => Array&lt;Types::ServiceOperation&gt;
1187
+ # * {Types::ListServiceOperationsOutput#next_token #next_token} => String
1188
+ #
1189
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1190
+ #
1191
+ # @example Request syntax with placeholder values
1192
+ #
1193
+ # resp = client.list_service_operations({
1194
+ # start_time: Time.now, # required
1195
+ # end_time: Time.now, # required
1196
+ # key_attributes: { # required
1197
+ # "KeyAttributeName" => "KeyAttributeValue",
1198
+ # },
1199
+ # max_results: 1,
1200
+ # next_token: "NextToken",
1201
+ # })
1202
+ #
1203
+ # @example Response structure
1204
+ #
1205
+ # resp.start_time #=> Time
1206
+ # resp.end_time #=> Time
1207
+ # resp.service_operations #=> Array
1208
+ # resp.service_operations[0].name #=> String
1209
+ # resp.service_operations[0].metric_references #=> Array
1210
+ # resp.service_operations[0].metric_references[0].namespace #=> String
1211
+ # resp.service_operations[0].metric_references[0].metric_type #=> String
1212
+ # resp.service_operations[0].metric_references[0].dimensions #=> Array
1213
+ # resp.service_operations[0].metric_references[0].dimensions[0].name #=> String
1214
+ # resp.service_operations[0].metric_references[0].dimensions[0].value #=> String
1215
+ # resp.service_operations[0].metric_references[0].metric_name #=> String
1216
+ # resp.next_token #=> String
1217
+ #
1218
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServiceOperations AWS API Documentation
1219
+ #
1220
+ # @overload list_service_operations(params = {})
1221
+ # @param [Hash] params ({})
1222
+ def list_service_operations(params = {}, options = {})
1223
+ req = build_request(:list_service_operations, params)
1224
+ req.send_request(options)
1225
+ end
1226
+
1227
+ # Returns a list of services that have been discovered by Application
1228
+ # Signals. A service represents a minimum logical and transactional unit
1229
+ # that completes a business function. Services are discovered through
1230
+ # Application Signals instrumentation.
1231
+ #
1232
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
1233
+ # The start of the time period to retrieve information about. When used
1234
+ # in a raw HTTP Query API, it is formatted as be epoch time in seconds.
1235
+ # For example: `1698778057`
1236
+ #
1237
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
1238
+ # The end of the time period to retrieve information about. When used in
1239
+ # a raw HTTP Query API, it is formatted as be epoch time in seconds. For
1240
+ # example: `1698778057`
1241
+ #
1242
+ # @option params [Integer] :max_results
1243
+ # The maximum number of results to return in one operation. If you omit
1244
+ # this parameter, the default of 50 is used.
1245
+ #
1246
+ # @option params [String] :next_token
1247
+ # Include this value, if it was returned by the previous operation, to
1248
+ # get the next set of services.
1249
+ #
1250
+ # @return [Types::ListServicesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1251
+ #
1252
+ # * {Types::ListServicesOutput#start_time #start_time} => Time
1253
+ # * {Types::ListServicesOutput#end_time #end_time} => Time
1254
+ # * {Types::ListServicesOutput#service_summaries #service_summaries} => Array&lt;Types::ServiceSummary&gt;
1255
+ # * {Types::ListServicesOutput#next_token #next_token} => String
1256
+ #
1257
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1258
+ #
1259
+ # @example Request syntax with placeholder values
1260
+ #
1261
+ # resp = client.list_services({
1262
+ # start_time: Time.now, # required
1263
+ # end_time: Time.now, # required
1264
+ # max_results: 1,
1265
+ # next_token: "NextToken",
1266
+ # })
1267
+ #
1268
+ # @example Response structure
1269
+ #
1270
+ # resp.start_time #=> Time
1271
+ # resp.end_time #=> Time
1272
+ # resp.service_summaries #=> Array
1273
+ # resp.service_summaries[0].key_attributes #=> Hash
1274
+ # resp.service_summaries[0].key_attributes["KeyAttributeName"] #=> String
1275
+ # resp.service_summaries[0].attribute_maps #=> Array
1276
+ # resp.service_summaries[0].attribute_maps[0] #=> Hash
1277
+ # resp.service_summaries[0].attribute_maps[0]["String"] #=> String
1278
+ # resp.service_summaries[0].metric_references #=> Array
1279
+ # resp.service_summaries[0].metric_references[0].namespace #=> String
1280
+ # resp.service_summaries[0].metric_references[0].metric_type #=> String
1281
+ # resp.service_summaries[0].metric_references[0].dimensions #=> Array
1282
+ # resp.service_summaries[0].metric_references[0].dimensions[0].name #=> String
1283
+ # resp.service_summaries[0].metric_references[0].dimensions[0].value #=> String
1284
+ # resp.service_summaries[0].metric_references[0].metric_name #=> String
1285
+ # resp.next_token #=> String
1286
+ #
1287
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServices AWS API Documentation
1288
+ #
1289
+ # @overload list_services(params = {})
1290
+ # @param [Hash] params ({})
1291
+ def list_services(params = {}, options = {})
1292
+ req = build_request(:list_services, params)
1293
+ req.send_request(options)
1294
+ end
1295
+
1296
+ # Displays the tags associated with a CloudWatch resource. Tags can be
1297
+ # assigned to service level objectives.
1298
+ #
1299
+ # @option params [required, String] :resource_arn
1300
+ # The Amazon Resource Name (ARN) of the CloudWatch resource that you
1301
+ # want to view tags for.
1302
+ #
1303
+ # The ARN format of an Application Signals SLO is
1304
+ # `arn:aws:cloudwatch:Region:account-id:slo:slo-name `
1305
+ #
1306
+ # For more information about ARN format, see [ Resource Types Defined by
1307
+ # Amazon CloudWatch][1] in the *Amazon Web Services General Reference*.
1308
+ #
1309
+ #
1310
+ #
1311
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies
1312
+ #
1313
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1314
+ #
1315
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Array&lt;Types::Tag&gt;
1316
+ #
1317
+ # @example Request syntax with placeholder values
1318
+ #
1319
+ # resp = client.list_tags_for_resource({
1320
+ # resource_arn: "AmazonResourceName", # required
1321
+ # })
1322
+ #
1323
+ # @example Response structure
1324
+ #
1325
+ # resp.tags #=> Array
1326
+ # resp.tags[0].key #=> String
1327
+ # resp.tags[0].value #=> String
1328
+ #
1329
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListTagsForResource AWS API Documentation
1330
+ #
1331
+ # @overload list_tags_for_resource(params = {})
1332
+ # @param [Hash] params ({})
1333
+ def list_tags_for_resource(params = {}, options = {})
1334
+ req = build_request(:list_tags_for_resource, params)
1335
+ req.send_request(options)
1336
+ end
1337
+
1338
+ # Enables this Amazon Web Services account to be able to use CloudWatch
1339
+ # Application Signals by creating the
1340
+ # *AWSServiceRoleForCloudWatchApplicationSignals* service-linked role.
1341
+ # This service- linked role has the following permissions:
1342
+ #
1343
+ # * `xray:GetServiceGraph`
1344
+ #
1345
+ # * `logs:StartQuery`
1346
+ #
1347
+ # * `logs:GetQueryResults`
1348
+ #
1349
+ # * `cloudwatch:GetMetricData`
1350
+ #
1351
+ # * `cloudwatch:ListMetrics`
1352
+ #
1353
+ # * `tag:GetResources`
1354
+ #
1355
+ # * `autoscaling:DescribeAutoScalingGroups`
1356
+ #
1357
+ # After completing this step, you still need to instrument your Java and
1358
+ # Python applications to send data to Application Signals. For more
1359
+ # information, see [ Enabling Application Signals][1].
1360
+ #
1361
+ #
1362
+ #
1363
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Signals-Enable.html
1364
+ #
1365
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1366
+ #
1367
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/StartDiscovery AWS API Documentation
1368
+ #
1369
+ # @overload start_discovery(params = {})
1370
+ # @param [Hash] params ({})
1371
+ def start_discovery(params = {}, options = {})
1372
+ req = build_request(:start_discovery, params)
1373
+ req.send_request(options)
1374
+ end
1375
+
1376
+ # Assigns one or more tags (key-value pairs) to the specified CloudWatch
1377
+ # resource, such as a service level objective.
1378
+ #
1379
+ # Tags can help you organize and categorize your resources. You can also
1380
+ # use them to scope user permissions by granting a user permission to
1381
+ # access or change only resources with certain tag values.
1382
+ #
1383
+ # Tags don't have any semantic meaning to Amazon Web Services and are
1384
+ # interpreted strictly as strings of characters.
1385
+ #
1386
+ # You can use the `TagResource` action with an alarm that already has
1387
+ # tags. If you specify a new tag key for the alarm, this tag is appended
1388
+ # to the list of tags associated with the alarm. If you specify a tag
1389
+ # key that is already associated with the alarm, the new tag value that
1390
+ # you specify replaces the previous value for that tag.
1391
+ #
1392
+ # You can associate as many as 50 tags with a CloudWatch resource.
1393
+ #
1394
+ # @option params [required, String] :resource_arn
1395
+ # The Amazon Resource Name (ARN) of the CloudWatch resource that you
1396
+ # want to set tags for.
1397
+ #
1398
+ # The ARN format of an Application Signals SLO is
1399
+ # `arn:aws:cloudwatch:Region:account-id:slo:slo-name `
1400
+ #
1401
+ # For more information about ARN format, see [ Resource Types Defined by
1402
+ # Amazon CloudWatch][1] in the *Amazon Web Services General Reference*.
1403
+ #
1404
+ #
1405
+ #
1406
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies
1407
+ #
1408
+ # @option params [required, Array<Types::Tag>] :tags
1409
+ # The list of key-value pairs to associate with the alarm.
1410
+ #
1411
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1412
+ #
1413
+ # @example Request syntax with placeholder values
1414
+ #
1415
+ # resp = client.tag_resource({
1416
+ # resource_arn: "AmazonResourceName", # required
1417
+ # tags: [ # required
1418
+ # {
1419
+ # key: "TagKey", # required
1420
+ # value: "TagValue", # required
1421
+ # },
1422
+ # ],
1423
+ # })
1424
+ #
1425
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/TagResource AWS API Documentation
1426
+ #
1427
+ # @overload tag_resource(params = {})
1428
+ # @param [Hash] params ({})
1429
+ def tag_resource(params = {}, options = {})
1430
+ req = build_request(:tag_resource, params)
1431
+ req.send_request(options)
1432
+ end
1433
+
1434
+ # Removes one or more tags from the specified resource.
1435
+ #
1436
+ # @option params [required, String] :resource_arn
1437
+ # The Amazon Resource Name (ARN) of the CloudWatch resource that you
1438
+ # want to delete tags from.
1439
+ #
1440
+ # The ARN format of an Application Signals SLO is
1441
+ # `arn:aws:cloudwatch:Region:account-id:slo:slo-name `
1442
+ #
1443
+ # For more information about ARN format, see [ Resource Types Defined by
1444
+ # Amazon CloudWatch][1] in the *Amazon Web Services General Reference*.
1445
+ #
1446
+ #
1447
+ #
1448
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies
1449
+ #
1450
+ # @option params [required, Array<String>] :tag_keys
1451
+ # The list of tag keys to remove from the resource.
1452
+ #
1453
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1454
+ #
1455
+ # @example Request syntax with placeholder values
1456
+ #
1457
+ # resp = client.untag_resource({
1458
+ # resource_arn: "AmazonResourceName", # required
1459
+ # tag_keys: ["TagKey"], # required
1460
+ # })
1461
+ #
1462
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/UntagResource AWS API Documentation
1463
+ #
1464
+ # @overload untag_resource(params = {})
1465
+ # @param [Hash] params ({})
1466
+ def untag_resource(params = {}, options = {})
1467
+ req = build_request(:untag_resource, params)
1468
+ req.send_request(options)
1469
+ end
1470
+
1471
+ # Updates an existing service level objective (SLO). If you omit
1472
+ # parameters, the previous values of those parameters are retained.
1473
+ #
1474
+ # @option params [required, String] :id
1475
+ # The Amazon Resource Name (ARN) or name of the service level objective
1476
+ # that you want to update.
1477
+ #
1478
+ # @option params [String] :description
1479
+ # An optional description for the SLO.
1480
+ #
1481
+ # @option params [Types::ServiceLevelIndicatorConfig] :sli_config
1482
+ # A structure that contains information about what performance metric
1483
+ # this SLO will monitor.
1484
+ #
1485
+ # @option params [Types::Goal] :goal
1486
+ # A structure that contains the attributes that determine the goal of
1487
+ # the SLO. This includes the time period for evaluation and the
1488
+ # attainment threshold.
1489
+ #
1490
+ # @return [Types::UpdateServiceLevelObjectiveOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1491
+ #
1492
+ # * {Types::UpdateServiceLevelObjectiveOutput#slo #slo} => Types::ServiceLevelObjective
1493
+ #
1494
+ # @example Request syntax with placeholder values
1495
+ #
1496
+ # resp = client.update_service_level_objective({
1497
+ # id: "ServiceLevelObjectiveId", # required
1498
+ # description: "ServiceLevelObjectiveDescription",
1499
+ # sli_config: {
1500
+ # sli_metric_config: { # required
1501
+ # key_attributes: {
1502
+ # "KeyAttributeName" => "KeyAttributeValue",
1503
+ # },
1504
+ # operation_name: "OperationName",
1505
+ # metric_type: "LATENCY", # accepts LATENCY, AVAILABILITY
1506
+ # statistic: "ServiceLevelIndicatorStatistic",
1507
+ # period_seconds: 1,
1508
+ # metric_data_queries: [
1509
+ # {
1510
+ # id: "MetricId", # required
1511
+ # metric_stat: {
1512
+ # metric: { # required
1513
+ # namespace: "Namespace",
1514
+ # metric_name: "MetricName",
1515
+ # dimensions: [
1516
+ # {
1517
+ # name: "DimensionName", # required
1518
+ # value: "DimensionValue", # required
1519
+ # },
1520
+ # ],
1521
+ # },
1522
+ # period: 1, # required
1523
+ # stat: "Stat", # required
1524
+ # unit: "Microseconds", # accepts Microseconds, Milliseconds, Seconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, None
1525
+ # },
1526
+ # expression: "MetricExpression",
1527
+ # label: "MetricLabel",
1528
+ # return_data: false,
1529
+ # period: 1,
1530
+ # account_id: "AccountId",
1531
+ # },
1532
+ # ],
1533
+ # },
1534
+ # metric_threshold: 1.0, # required
1535
+ # comparison_operator: "GreaterThanOrEqualTo", # required, accepts GreaterThanOrEqualTo, GreaterThan, LessThan, LessThanOrEqualTo
1536
+ # },
1537
+ # goal: {
1538
+ # interval: {
1539
+ # rolling_interval: {
1540
+ # duration_unit: "DAY", # required, accepts DAY, MONTH
1541
+ # duration: 1, # required
1542
+ # },
1543
+ # calendar_interval: {
1544
+ # start_time: Time.now, # required
1545
+ # duration_unit: "DAY", # required, accepts DAY, MONTH
1546
+ # duration: 1, # required
1547
+ # },
1548
+ # },
1549
+ # attainment_goal: 1.0,
1550
+ # warning_threshold: 1.0,
1551
+ # },
1552
+ # })
1553
+ #
1554
+ # @example Response structure
1555
+ #
1556
+ # resp.slo.arn #=> String
1557
+ # resp.slo.name #=> String
1558
+ # resp.slo.description #=> String
1559
+ # resp.slo.created_time #=> Time
1560
+ # resp.slo.last_updated_time #=> Time
1561
+ # resp.slo.sli.sli_metric.key_attributes #=> Hash
1562
+ # resp.slo.sli.sli_metric.key_attributes["KeyAttributeName"] #=> String
1563
+ # resp.slo.sli.sli_metric.operation_name #=> String
1564
+ # resp.slo.sli.sli_metric.metric_type #=> String, one of "LATENCY", "AVAILABILITY"
1565
+ # resp.slo.sli.sli_metric.metric_data_queries #=> Array
1566
+ # resp.slo.sli.sli_metric.metric_data_queries[0].id #=> String
1567
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.namespace #=> String
1568
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.metric_name #=> String
1569
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.dimensions #=> Array
1570
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.dimensions[0].name #=> String
1571
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.metric.dimensions[0].value #=> String
1572
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.period #=> Integer
1573
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.stat #=> String
1574
+ # resp.slo.sli.sli_metric.metric_data_queries[0].metric_stat.unit #=> String, one of "Microseconds", "Milliseconds", "Seconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None"
1575
+ # resp.slo.sli.sli_metric.metric_data_queries[0].expression #=> String
1576
+ # resp.slo.sli.sli_metric.metric_data_queries[0].label #=> String
1577
+ # resp.slo.sli.sli_metric.metric_data_queries[0].return_data #=> Boolean
1578
+ # resp.slo.sli.sli_metric.metric_data_queries[0].period #=> Integer
1579
+ # resp.slo.sli.sli_metric.metric_data_queries[0].account_id #=> String
1580
+ # resp.slo.sli.metric_threshold #=> Float
1581
+ # resp.slo.sli.comparison_operator #=> String, one of "GreaterThanOrEqualTo", "GreaterThan", "LessThan", "LessThanOrEqualTo"
1582
+ # resp.slo.goal.interval.rolling_interval.duration_unit #=> String, one of "DAY", "MONTH"
1583
+ # resp.slo.goal.interval.rolling_interval.duration #=> Integer
1584
+ # resp.slo.goal.interval.calendar_interval.start_time #=> Time
1585
+ # resp.slo.goal.interval.calendar_interval.duration_unit #=> String, one of "DAY", "MONTH"
1586
+ # resp.slo.goal.interval.calendar_interval.duration #=> Integer
1587
+ # resp.slo.goal.attainment_goal #=> Float
1588
+ # resp.slo.goal.warning_threshold #=> Float
1589
+ #
1590
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/UpdateServiceLevelObjective AWS API Documentation
1591
+ #
1592
+ # @overload update_service_level_objective(params = {})
1593
+ # @param [Hash] params ({})
1594
+ def update_service_level_objective(params = {}, options = {})
1595
+ req = build_request(:update_service_level_objective, params)
1596
+ req.send_request(options)
1597
+ end
1598
+
1599
+ # @!endgroup
1600
+
1601
+ # @param params ({})
1602
+ # @api private
1603
+ def build_request(operation_name, params = {})
1604
+ handlers = @handlers.for(operation_name)
1605
+ context = Seahorse::Client::RequestContext.new(
1606
+ operation_name: operation_name,
1607
+ operation: config.api.operation(operation_name),
1608
+ client: self,
1609
+ params: params,
1610
+ config: config)
1611
+ context[:gem_name] = 'aws-sdk-applicationsignals'
1612
+ context[:gem_version] = '1.0.0'
1613
+ Seahorse::Client::Request.new(handlers, context)
1614
+ end
1615
+
1616
+ # @api private
1617
+ # @deprecated
1618
+ def waiter_names
1619
+ []
1620
+ end
1621
+
1622
+ class << self
1623
+
1624
+ # @api private
1625
+ attr_reader :identifier
1626
+
1627
+ # @api private
1628
+ def errors_module
1629
+ Errors
1630
+ end
1631
+
1632
+ end
1633
+ end
1634
+ end