aws-sdk-bcmdashboards 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,1788 @@
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/json_rpc'
38
+
39
+ module Aws::BCMDashboards
40
+ # An API client for BCMDashboards. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::BCMDashboards::Client.new(
43
+ # region: region_name,
44
+ # credentials: credentials,
45
+ # # ...
46
+ # )
47
+ #
48
+ # For details on configuring region and credentials see
49
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
50
+ #
51
+ # See {#initialize} for a full list of supported configuration options.
52
+ class Client < Seahorse::Client::Base
53
+
54
+ include Aws::ClientStubs
55
+
56
+ @identifier = :bcmdashboards
57
+
58
+ set_api(ClientApi::API)
59
+
60
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
61
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
62
+ add_plugin(Aws::Plugins::Logging)
63
+ add_plugin(Aws::Plugins::ParamConverter)
64
+ add_plugin(Aws::Plugins::ParamValidator)
65
+ add_plugin(Aws::Plugins::UserAgent)
66
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
67
+ add_plugin(Aws::Plugins::RetryErrors)
68
+ add_plugin(Aws::Plugins::GlobalConfiguration)
69
+ add_plugin(Aws::Plugins::RegionalEndpoint)
70
+ add_plugin(Aws::Plugins::EndpointDiscovery)
71
+ add_plugin(Aws::Plugins::EndpointPattern)
72
+ add_plugin(Aws::Plugins::ResponsePaging)
73
+ add_plugin(Aws::Plugins::StubResponses)
74
+ add_plugin(Aws::Plugins::IdempotencyToken)
75
+ add_plugin(Aws::Plugins::InvocationId)
76
+ add_plugin(Aws::Plugins::JsonvalueConverter)
77
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
78
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
79
+ add_plugin(Aws::Plugins::TransferEncoding)
80
+ add_plugin(Aws::Plugins::HttpChecksum)
81
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
82
+ add_plugin(Aws::Plugins::RequestCompression)
83
+ add_plugin(Aws::Plugins::DefaultsMode)
84
+ add_plugin(Aws::Plugins::RecursionDetection)
85
+ add_plugin(Aws::Plugins::Telemetry)
86
+ add_plugin(Aws::Plugins::Sign)
87
+ add_plugin(Aws::Plugins::Protocols::JsonRpc)
88
+ add_plugin(Aws::BCMDashboards::Plugins::Endpoints)
89
+
90
+ # @overload initialize(options)
91
+ # @param [Hash] options
92
+ #
93
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
94
+ # A list of plugins to apply to the client. Each plugin is either a
95
+ # class name or an instance of a plugin class.
96
+ #
97
+ # @option options [required, Aws::CredentialProvider] :credentials
98
+ # Your AWS credentials used for authentication. This can be any class that includes and implements
99
+ # `Aws::CredentialProvider`, or instance of any one of the following classes:
100
+ #
101
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
102
+ # credentials.
103
+ #
104
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
105
+ # shared file, such as `~/.aws/config`.
106
+ #
107
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ #
109
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
110
+ # assume a role after providing credentials via the web.
111
+ #
112
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
113
+ # access token generated from `aws login`.
114
+ #
115
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
116
+ # process that outputs to stdout.
117
+ #
118
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
119
+ # from an EC2 IMDS on an EC2 instance.
120
+ #
121
+ # * `Aws::ECSCredentials` - Used for loading credentials from
122
+ # instances running in ECS.
123
+ #
124
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
125
+ # from the Cognito Identity service.
126
+ #
127
+ # When `:credentials` are not configured directly, the following locations will be searched for credentials:
128
+ #
129
+ # * `Aws.config[:credentials]`
130
+ #
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ #
134
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
135
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
136
+ #
137
+ # * `~/.aws/credentials`
138
+ #
139
+ # * `~/.aws/config`
140
+ #
141
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
142
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
143
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
144
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
145
+ #
146
+ # @option options [required, String] :region
147
+ # The AWS region to connect to. The configured `:region` is
148
+ # used to determine the service `:endpoint`. When not passed,
149
+ # a default `:region` is searched for in the following locations:
150
+ #
151
+ # * `Aws.config[:region]`
152
+ # * `ENV['AWS_REGION']`
153
+ # * `ENV['AMAZON_REGION']`
154
+ # * `ENV['AWS_DEFAULT_REGION']`
155
+ # * `~/.aws/credentials`
156
+ # * `~/.aws/config`
157
+ #
158
+ # @option options [String] :access_key_id
159
+ #
160
+ # @option options [String] :account_id
161
+ #
162
+ # @option options [Boolean] :active_endpoint_cache (false)
163
+ # When set to `true`, a thread polling for endpoints will be running in
164
+ # the background every 60 secs (default). Defaults to `false`.
165
+ #
166
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
167
+ # Used only in `adaptive` retry mode. When true, the request will sleep
168
+ # until there is sufficent client side capacity to retry the request.
169
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
170
+ # not retry instead of sleeping.
171
+ #
172
+ # @option options [Array<String>] :auth_scheme_preference
173
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
174
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
175
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
176
+ #
177
+ # @option options [Boolean] :client_side_monitoring (false)
178
+ # When `true`, client-side metrics will be collected for all API requests from
179
+ # this client.
180
+ #
181
+ # @option options [String] :client_side_monitoring_client_id ("")
182
+ # Allows you to provide an identifier for this client which will be attached to
183
+ # all generated client side metrics. Defaults to an empty string.
184
+ #
185
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
186
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
187
+ # side monitoring agent is running on, where client metrics will be published via UDP.
188
+ #
189
+ # @option options [Integer] :client_side_monitoring_port (31000)
190
+ # Required for publishing client metrics. The port that the client side monitoring
191
+ # agent is running on, where client metrics will be published via UDP.
192
+ #
193
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
194
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
195
+ # will use the Client Side Monitoring Agent Publisher.
196
+ #
197
+ # @option options [Boolean] :convert_params (true)
198
+ # When `true`, an attempt is made to coerce request parameters into
199
+ # the required types.
200
+ #
201
+ # @option options [Boolean] :correct_clock_skew (true)
202
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
203
+ # a clock skew correction and retry requests with skewed client clocks.
204
+ #
205
+ # @option options [String] :defaults_mode ("legacy")
206
+ # See {Aws::DefaultsModeConfiguration} for a list of the
207
+ # accepted modes and the configuration defaults that are included.
208
+ #
209
+ # @option options [Boolean] :disable_host_prefix_injection (false)
210
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
211
+ #
212
+ # @option options [Boolean] :disable_request_compression (false)
213
+ # When set to 'true' the request body will not be compressed
214
+ # for supported operations.
215
+ #
216
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
217
+ # Normally you should not configure the `:endpoint` option
218
+ # directly. This is normally constructed from the `:region`
219
+ # option. Configuring `:endpoint` is normally reserved for
220
+ # connecting to test or custom endpoints. The endpoint should
221
+ # be a URI formatted like:
222
+ #
223
+ # 'http://example.com'
224
+ # 'https://example.com'
225
+ # 'http://example.com:123'
226
+ #
227
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
228
+ # Used for the maximum size limit of the LRU cache storing endpoints data
229
+ # for endpoint discovery enabled operations. Defaults to 1000.
230
+ #
231
+ # @option options [Integer] :endpoint_cache_max_threads (10)
232
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
233
+ #
234
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
235
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
236
+ # Use this option to config the time interval in seconds for making
237
+ # requests fetching endpoints information. Defaults to 60 sec.
238
+ #
239
+ # @option options [Boolean] :endpoint_discovery (false)
240
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
241
+ #
242
+ # @option options [Boolean] :ignore_configured_endpoint_urls
243
+ # Setting to true disables use of endpoint URLs provided via environment
244
+ # variables and the shared configuration file.
245
+ #
246
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
247
+ # The log formatter.
248
+ #
249
+ # @option options [Symbol] :log_level (:info)
250
+ # The log level to send messages to the `:logger` at.
251
+ #
252
+ # @option options [Logger] :logger
253
+ # The Logger instance to send log messages to. If this option
254
+ # is not set, logging will be disabled.
255
+ #
256
+ # @option options [Integer] :max_attempts (3)
257
+ # An integer representing the maximum number attempts that will be made for
258
+ # a single request, including the initial attempt. For example,
259
+ # setting this value to 5 will result in a request being retried up to
260
+ # 4 times. Used in `standard` and `adaptive` retry modes.
261
+ #
262
+ # @option options [String] :profile ("default")
263
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
264
+ # When not specified, 'default' is used.
265
+ #
266
+ # @option options [String] :request_checksum_calculation ("when_supported")
267
+ # Determines when a checksum will be calculated for request payloads. Values are:
268
+ #
269
+ # * `when_supported` - (default) When set, a checksum will be
270
+ # calculated for all request payloads of operations modeled with the
271
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
272
+ # `requestAlgorithmMember` is modeled.
273
+ # * `when_required` - When set, a checksum will only be calculated for
274
+ # request payloads of operations modeled with the `httpChecksum` trait where
275
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
276
+ # is modeled and supplied.
277
+ #
278
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
279
+ # The minimum size in bytes that triggers compression for request
280
+ # bodies. The value must be non-negative integer value between 0
281
+ # and 10485780 bytes inclusive.
282
+ #
283
+ # @option options [String] :response_checksum_validation ("when_supported")
284
+ # Determines when checksum validation will be performed on response payloads. Values are:
285
+ #
286
+ # * `when_supported` - (default) When set, checksum validation is performed on all
287
+ # response payloads of operations modeled with the `httpChecksum` trait where
288
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
289
+ # are supported.
290
+ # * `when_required` - When set, checksum validation is not performed on
291
+ # response payloads of operations unless the checksum algorithm is supported and
292
+ # the `requestValidationModeMember` member is set to `ENABLED`.
293
+ #
294
+ # @option options [Proc] :retry_backoff
295
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
296
+ # This option is only used in the `legacy` retry mode.
297
+ #
298
+ # @option options [Float] :retry_base_delay (0.3)
299
+ # The base delay in seconds used by the default backoff function. This option
300
+ # is only used in the `legacy` retry mode.
301
+ #
302
+ # @option options [Symbol] :retry_jitter (:none)
303
+ # A delay randomiser function used by the default backoff function.
304
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
305
+ # otherwise a Proc that takes and returns a number. This option is only used
306
+ # in the `legacy` retry mode.
307
+ #
308
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
309
+ #
310
+ # @option options [Integer] :retry_limit (3)
311
+ # The maximum number of times to retry failed requests. Only
312
+ # ~ 500 level server errors and certain ~ 400 level client errors
313
+ # are retried. Generally, these are throttling errors, data
314
+ # checksum errors, networking errors, timeout errors, auth errors,
315
+ # endpoint discovery, and errors from expired credentials.
316
+ # This option is only used in the `legacy` retry mode.
317
+ #
318
+ # @option options [Integer] :retry_max_delay (0)
319
+ # The maximum number of seconds to delay between retries (0 for no limit)
320
+ # used by the default backoff function. This option is only used in the
321
+ # `legacy` retry mode.
322
+ #
323
+ # @option options [String] :retry_mode ("legacy")
324
+ # Specifies which retry algorithm to use. Values are:
325
+ #
326
+ # * `legacy` - The pre-existing retry behavior. This is default value if
327
+ # no retry mode is provided.
328
+ #
329
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
330
+ # This includes support for retry quotas, which limit the number of
331
+ # unsuccessful retries a client can make.
332
+ #
333
+ # * `adaptive` - An experimental retry mode that includes all the
334
+ # functionality of `standard` mode along with automatic client side
335
+ # throttling. This is a provisional mode that may change behavior
336
+ # in the future.
337
+ #
338
+ # @option options [String] :sdk_ua_app_id
339
+ # A unique and opaque application ID that is appended to the
340
+ # User-Agent header as app/sdk_ua_app_id. It should have a
341
+ # maximum length of 50. This variable is sourced from environment
342
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
343
+ #
344
+ # @option options [String] :secret_access_key
345
+ #
346
+ # @option options [String] :session_token
347
+ #
348
+ # @option options [Array] :sigv4a_signing_region_set
349
+ # A list of regions that should be signed with SigV4a signing. When
350
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
351
+ # in the following locations:
352
+ #
353
+ # * `Aws.config[:sigv4a_signing_region_set]`
354
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
355
+ # * `~/.aws/config`
356
+ #
357
+ # @option options [Boolean] :simple_json (false)
358
+ # Disables request parameter conversion, validation, and formatting.
359
+ # Also disables response data type conversions. The request parameters
360
+ # hash must be formatted exactly as the API expects.This option is useful
361
+ # when you want to ensure the highest level of performance by avoiding
362
+ # overhead of walking request parameters and response data structures.
363
+ #
364
+ # @option options [Boolean] :stub_responses (false)
365
+ # Causes the client to return stubbed responses. By default
366
+ # fake responses are generated and returned. You can specify
367
+ # the response data to return or errors to raise by calling
368
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
369
+ #
370
+ # ** Please note ** When response stubbing is enabled, no HTTP
371
+ # requests are made, and retries are disabled.
372
+ #
373
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
374
+ # Allows you to provide a telemetry provider, which is used to
375
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
376
+ # will not record or emit any telemetry data. The SDK supports the
377
+ # following telemetry providers:
378
+ #
379
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
380
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
381
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
382
+ #
383
+ # @option options [Aws::TokenProvider] :token_provider
384
+ # Your Bearer token used for authentication. This can be any class that includes and implements
385
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
386
+ #
387
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
388
+ # tokens.
389
+ #
390
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
391
+ # access token generated from `aws login`.
392
+ #
393
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
394
+ # will be used to search for tokens configured for your profile in shared configuration files.
395
+ #
396
+ # @option options [Boolean] :use_dualstack_endpoint
397
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
398
+ # will be used if available.
399
+ #
400
+ # @option options [Boolean] :use_fips_endpoint
401
+ # When set to `true`, fips compatible endpoints will be used if available.
402
+ # When a `fips` region is used, the region is normalized and this config
403
+ # is set to `true`.
404
+ #
405
+ # @option options [Boolean] :validate_params (true)
406
+ # When `true`, request parameters are validated before
407
+ # sending the request.
408
+ #
409
+ # @option options [Aws::BCMDashboards::EndpointProvider] :endpoint_provider
410
+ # The endpoint provider used to resolve endpoints. Any object that responds to
411
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
412
+ # `Aws::BCMDashboards::EndpointParameters`.
413
+ #
414
+ # @option options [Float] :http_continue_timeout (1)
415
+ # The number of seconds to wait for a 100-continue response before sending the
416
+ # request body. This option has no effect unless the request has "Expect"
417
+ # header set to "100-continue". Defaults to `nil` which disables this
418
+ # behaviour. This value can safely be set per request on the session.
419
+ #
420
+ # @option options [Float] :http_idle_timeout (5)
421
+ # The number of seconds a connection is allowed to sit idle before it
422
+ # is considered stale. Stale connections are closed and removed from the
423
+ # pool before making a request.
424
+ #
425
+ # @option options [Float] :http_open_timeout (15)
426
+ # The default number of seconds to wait for response data.
427
+ # This value can safely be set per-request on the session.
428
+ #
429
+ # @option options [URI::HTTP,String] :http_proxy
430
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
431
+ #
432
+ # @option options [Float] :http_read_timeout (60)
433
+ # The default number of seconds to wait for response data.
434
+ # This value can safely be set per-request on the session.
435
+ #
436
+ # @option options [Boolean] :http_wire_trace (false)
437
+ # When `true`, HTTP debug output will be sent to the `:logger`.
438
+ #
439
+ # @option options [Proc] :on_chunk_received
440
+ # When a Proc object is provided, it will be used as callback when each chunk
441
+ # of the response body is received. It provides three arguments: the chunk,
442
+ # the number of bytes received, and the total number of
443
+ # bytes in the response (or nil if the server did not send a `content-length`).
444
+ #
445
+ # @option options [Proc] :on_chunk_sent
446
+ # When a Proc object is provided, it will be used as callback when each chunk
447
+ # of the request body is sent. It provides three arguments: the chunk,
448
+ # the number of bytes read from the body, and the total number of
449
+ # bytes in the body.
450
+ #
451
+ # @option options [Boolean] :raise_response_errors (true)
452
+ # When `true`, response errors are raised.
453
+ #
454
+ # @option options [String] :ssl_ca_bundle
455
+ # Full path to the SSL certificate authority bundle file that should be used when
456
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
457
+ # `:ssl_ca_directory` the the system default will be used if available.
458
+ #
459
+ # @option options [String] :ssl_ca_directory
460
+ # Full path of the directory that contains the unbundled SSL certificate
461
+ # authority files for verifying peer certificates. If you do
462
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
463
+ # default will be used if available.
464
+ #
465
+ # @option options [String] :ssl_ca_store
466
+ # Sets the X509::Store to verify peer certificate.
467
+ #
468
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
469
+ # Sets a client certificate when creating http connections.
470
+ #
471
+ # @option options [OpenSSL::PKey] :ssl_key
472
+ # Sets a client key when creating http connections.
473
+ #
474
+ # @option options [Float] :ssl_timeout
475
+ # Sets the SSL timeout in seconds
476
+ #
477
+ # @option options [Boolean] :ssl_verify_peer (true)
478
+ # When `true`, SSL peer certificates are verified when establishing a connection.
479
+ #
480
+ def initialize(*args)
481
+ super
482
+ end
483
+
484
+ # @!group API Operations
485
+
486
+ # Creates a new dashboard that can contain multiple widgets displaying
487
+ # cost and usage data. You can add custom widgets or use predefined
488
+ # widgets, arranging them in your preferred layout.
489
+ #
490
+ # @option params [required, String] :name
491
+ # The name of the dashboard. The name must be unique within your
492
+ # account.
493
+ #
494
+ # @option params [String] :description
495
+ # A description of the dashboard's purpose or contents.
496
+ #
497
+ # @option params [required, Array<Types::Widget>] :widgets
498
+ # An array of widget configurations that define the visualizations to be
499
+ # displayed in the dashboard. Each dashboard can contain up to 20
500
+ # widgets.
501
+ #
502
+ # @option params [Array<Types::ResourceTag>] :resource_tags
503
+ # The tags to apply to the dashboard resource for organization and
504
+ # management.
505
+ #
506
+ # @return [Types::CreateDashboardResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
507
+ #
508
+ # * {Types::CreateDashboardResponse#arn #arn} => String
509
+ #
510
+ #
511
+ # @example Example: Creating a dashboard
512
+ #
513
+ # resp = client.create_dashboard({
514
+ # name: "cost-dashboards",
515
+ # description: "Dashboard for tracking costs",
516
+ # widgets: [
517
+ # {
518
+ # configs: [
519
+ # {
520
+ # display_config: {
521
+ # graph: {
522
+ # "costTrend" => {
523
+ # visual_type: "LINE",
524
+ # },
525
+ # },
526
+ # },
527
+ # query_parameters: {
528
+ # cost_and_usage: {
529
+ # granularity: "MONTHLY",
530
+ # group_by: [
531
+ # {
532
+ # type: "DIMENSION",
533
+ # key: "SERVICE",
534
+ # },
535
+ # ],
536
+ # metrics: [
537
+ # "UnblendedCost",
538
+ # ],
539
+ # time_range: {
540
+ # end_time: {
541
+ # type: "RELATIVE",
542
+ # value: "now",
543
+ # },
544
+ # start_time: {
545
+ # type: "RELATIVE",
546
+ # value: "-9M",
547
+ # },
548
+ # },
549
+ # },
550
+ # },
551
+ # },
552
+ # ],
553
+ # height: 7,
554
+ # horizontal_offset: 0,
555
+ # title: "Monthly Cost Trend",
556
+ # width: 4,
557
+ # },
558
+ # ],
559
+ # })
560
+ #
561
+ # @example Request syntax with placeholder values
562
+ #
563
+ # resp = client.create_dashboard({
564
+ # name: "DashboardName", # required
565
+ # description: "Description",
566
+ # widgets: [ # required
567
+ # {
568
+ # title: "WidgetTitle", # required
569
+ # description: "Description",
570
+ # width: 1,
571
+ # height: 1,
572
+ # horizontal_offset: 1,
573
+ # configs: [ # required
574
+ # {
575
+ # query_parameters: { # required
576
+ # cost_and_usage: {
577
+ # metrics: ["AmortizedCost"], # required, accepts AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, NormalizedUsageAmount, UnblendedCost, UsageQuantity, SpendCoveredBySavingsPlans, Hour, Unit, Cost
578
+ # time_range: { # required
579
+ # start_time: { # required
580
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
581
+ # value: "GenericString", # required
582
+ # },
583
+ # end_time: { # required
584
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
585
+ # value: "GenericString", # required
586
+ # },
587
+ # },
588
+ # granularity: "HOURLY", # required, accepts HOURLY, DAILY, MONTHLY
589
+ # group_by: [
590
+ # {
591
+ # key: "GroupDefinitionKeyString", # required
592
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
593
+ # },
594
+ # ],
595
+ # filter: {
596
+ # or: [
597
+ # {
598
+ # # recursive Expression
599
+ # },
600
+ # ],
601
+ # and: [
602
+ # {
603
+ # # recursive Expression
604
+ # },
605
+ # ],
606
+ # not: {
607
+ # # recursive Expression
608
+ # },
609
+ # dimensions: {
610
+ # key: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, RESOURCE_ID, SUBSCRIPTION_ID, TAG_KEY, OPERATING_SYSTEM, TENANCY, BILLING_ENTITY, RESERVATION_ID, COST_CATEGORY_NAME, DATABASE_ENGINE, LEGAL_ENTITY_NAME, SAVINGS_PLANS_TYPE, INSTANCE_TYPE_FAMILY, CACHE_ENGINE, DEPLOYMENT_OPTION, SCOPE, PLATFORM
611
+ # values: ["String"], # required
612
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
613
+ # },
614
+ # tags: {
615
+ # key: "String",
616
+ # values: ["String"],
617
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
618
+ # },
619
+ # cost_categories: {
620
+ # key: "String",
621
+ # values: ["String"],
622
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
623
+ # },
624
+ # },
625
+ # },
626
+ # savings_plans_coverage: {
627
+ # time_range: { # required
628
+ # start_time: { # required
629
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
630
+ # value: "GenericString", # required
631
+ # },
632
+ # end_time: { # required
633
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
634
+ # value: "GenericString", # required
635
+ # },
636
+ # },
637
+ # metrics: ["AmortizedCost"], # accepts AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, NormalizedUsageAmount, UnblendedCost, UsageQuantity, SpendCoveredBySavingsPlans, Hour, Unit, Cost
638
+ # granularity: "HOURLY", # accepts HOURLY, DAILY, MONTHLY
639
+ # group_by: [
640
+ # {
641
+ # key: "GroupDefinitionKeyString", # required
642
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
643
+ # },
644
+ # ],
645
+ # filter: {
646
+ # or: [
647
+ # {
648
+ # # recursive Expression
649
+ # },
650
+ # ],
651
+ # and: [
652
+ # {
653
+ # # recursive Expression
654
+ # },
655
+ # ],
656
+ # not: {
657
+ # # recursive Expression
658
+ # },
659
+ # dimensions: {
660
+ # key: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, RESOURCE_ID, SUBSCRIPTION_ID, TAG_KEY, OPERATING_SYSTEM, TENANCY, BILLING_ENTITY, RESERVATION_ID, COST_CATEGORY_NAME, DATABASE_ENGINE, LEGAL_ENTITY_NAME, SAVINGS_PLANS_TYPE, INSTANCE_TYPE_FAMILY, CACHE_ENGINE, DEPLOYMENT_OPTION, SCOPE, PLATFORM
661
+ # values: ["String"], # required
662
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
663
+ # },
664
+ # tags: {
665
+ # key: "String",
666
+ # values: ["String"],
667
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
668
+ # },
669
+ # cost_categories: {
670
+ # key: "String",
671
+ # values: ["String"],
672
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
673
+ # },
674
+ # },
675
+ # },
676
+ # savings_plans_utilization: {
677
+ # time_range: { # required
678
+ # start_time: { # required
679
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
680
+ # value: "GenericString", # required
681
+ # },
682
+ # end_time: { # required
683
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
684
+ # value: "GenericString", # required
685
+ # },
686
+ # },
687
+ # granularity: "HOURLY", # accepts HOURLY, DAILY, MONTHLY
688
+ # filter: {
689
+ # or: [
690
+ # {
691
+ # # recursive Expression
692
+ # },
693
+ # ],
694
+ # and: [
695
+ # {
696
+ # # recursive Expression
697
+ # },
698
+ # ],
699
+ # not: {
700
+ # # recursive Expression
701
+ # },
702
+ # dimensions: {
703
+ # key: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, RESOURCE_ID, SUBSCRIPTION_ID, TAG_KEY, OPERATING_SYSTEM, TENANCY, BILLING_ENTITY, RESERVATION_ID, COST_CATEGORY_NAME, DATABASE_ENGINE, LEGAL_ENTITY_NAME, SAVINGS_PLANS_TYPE, INSTANCE_TYPE_FAMILY, CACHE_ENGINE, DEPLOYMENT_OPTION, SCOPE, PLATFORM
704
+ # values: ["String"], # required
705
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
706
+ # },
707
+ # tags: {
708
+ # key: "String",
709
+ # values: ["String"],
710
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
711
+ # },
712
+ # cost_categories: {
713
+ # key: "String",
714
+ # values: ["String"],
715
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
716
+ # },
717
+ # },
718
+ # },
719
+ # reservation_coverage: {
720
+ # time_range: { # required
721
+ # start_time: { # required
722
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
723
+ # value: "GenericString", # required
724
+ # },
725
+ # end_time: { # required
726
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
727
+ # value: "GenericString", # required
728
+ # },
729
+ # },
730
+ # group_by: [
731
+ # {
732
+ # key: "GroupDefinitionKeyString", # required
733
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
734
+ # },
735
+ # ],
736
+ # granularity: "HOURLY", # accepts HOURLY, DAILY, MONTHLY
737
+ # filter: {
738
+ # or: [
739
+ # {
740
+ # # recursive Expression
741
+ # },
742
+ # ],
743
+ # and: [
744
+ # {
745
+ # # recursive Expression
746
+ # },
747
+ # ],
748
+ # not: {
749
+ # # recursive Expression
750
+ # },
751
+ # dimensions: {
752
+ # key: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, RESOURCE_ID, SUBSCRIPTION_ID, TAG_KEY, OPERATING_SYSTEM, TENANCY, BILLING_ENTITY, RESERVATION_ID, COST_CATEGORY_NAME, DATABASE_ENGINE, LEGAL_ENTITY_NAME, SAVINGS_PLANS_TYPE, INSTANCE_TYPE_FAMILY, CACHE_ENGINE, DEPLOYMENT_OPTION, SCOPE, PLATFORM
753
+ # values: ["String"], # required
754
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
755
+ # },
756
+ # tags: {
757
+ # key: "String",
758
+ # values: ["String"],
759
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
760
+ # },
761
+ # cost_categories: {
762
+ # key: "String",
763
+ # values: ["String"],
764
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
765
+ # },
766
+ # },
767
+ # metrics: ["AmortizedCost"], # accepts AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, NormalizedUsageAmount, UnblendedCost, UsageQuantity, SpendCoveredBySavingsPlans, Hour, Unit, Cost
768
+ # },
769
+ # reservation_utilization: {
770
+ # time_range: { # required
771
+ # start_time: { # required
772
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
773
+ # value: "GenericString", # required
774
+ # },
775
+ # end_time: { # required
776
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
777
+ # value: "GenericString", # required
778
+ # },
779
+ # },
780
+ # group_by: [
781
+ # {
782
+ # key: "GroupDefinitionKeyString", # required
783
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
784
+ # },
785
+ # ],
786
+ # granularity: "HOURLY", # accepts HOURLY, DAILY, MONTHLY
787
+ # filter: {
788
+ # or: [
789
+ # {
790
+ # # recursive Expression
791
+ # },
792
+ # ],
793
+ # and: [
794
+ # {
795
+ # # recursive Expression
796
+ # },
797
+ # ],
798
+ # not: {
799
+ # # recursive Expression
800
+ # },
801
+ # dimensions: {
802
+ # key: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, RESOURCE_ID, SUBSCRIPTION_ID, TAG_KEY, OPERATING_SYSTEM, TENANCY, BILLING_ENTITY, RESERVATION_ID, COST_CATEGORY_NAME, DATABASE_ENGINE, LEGAL_ENTITY_NAME, SAVINGS_PLANS_TYPE, INSTANCE_TYPE_FAMILY, CACHE_ENGINE, DEPLOYMENT_OPTION, SCOPE, PLATFORM
803
+ # values: ["String"], # required
804
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
805
+ # },
806
+ # tags: {
807
+ # key: "String",
808
+ # values: ["String"],
809
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
810
+ # },
811
+ # cost_categories: {
812
+ # key: "String",
813
+ # values: ["String"],
814
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
815
+ # },
816
+ # },
817
+ # },
818
+ # },
819
+ # display_config: { # required
820
+ # graph: {
821
+ # "GenericString" => {
822
+ # visual_type: "LINE", # required, accepts LINE, BAR, STACK
823
+ # },
824
+ # },
825
+ # table: {
826
+ # },
827
+ # },
828
+ # },
829
+ # ],
830
+ # },
831
+ # ],
832
+ # resource_tags: [
833
+ # {
834
+ # key: "ResourceTagKey", # required
835
+ # value: "ResourceTagValue", # required
836
+ # },
837
+ # ],
838
+ # })
839
+ #
840
+ # @example Response structure
841
+ #
842
+ # resp.arn #=> String
843
+ #
844
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-dashboards-2025-08-18/CreateDashboard AWS API Documentation
845
+ #
846
+ # @overload create_dashboard(params = {})
847
+ # @param [Hash] params ({})
848
+ def create_dashboard(params = {}, options = {})
849
+ req = build_request(:create_dashboard, params)
850
+ req.send_request(options)
851
+ end
852
+
853
+ # Deletes a specified dashboard. This action cannot be undone.
854
+ #
855
+ # @option params [required, String] :arn
856
+ # The ARN of the dashboard to be deleted.
857
+ #
858
+ # @return [Types::DeleteDashboardResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
859
+ #
860
+ # * {Types::DeleteDashboardResponse#arn #arn} => String
861
+ #
862
+ #
863
+ # @example Example: Deleting a dashboard
864
+ #
865
+ # resp = client.delete_dashboard({
866
+ # arn: "arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh",
867
+ # })
868
+ #
869
+ # resp.to_h outputs the following:
870
+ # {
871
+ # arn: "arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh",
872
+ # }
873
+ #
874
+ # @example Request syntax with placeholder values
875
+ #
876
+ # resp = client.delete_dashboard({
877
+ # arn: "DashboardArn", # required
878
+ # })
879
+ #
880
+ # @example Response structure
881
+ #
882
+ # resp.arn #=> String
883
+ #
884
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-dashboards-2025-08-18/DeleteDashboard AWS API Documentation
885
+ #
886
+ # @overload delete_dashboard(params = {})
887
+ # @param [Hash] params ({})
888
+ def delete_dashboard(params = {}, options = {})
889
+ req = build_request(:delete_dashboard, params)
890
+ req.send_request(options)
891
+ end
892
+
893
+ # Retrieves the configuration and metadata of a specified dashboard,
894
+ # including its widgets and layout settings.
895
+ #
896
+ # @option params [required, String] :arn
897
+ # The ARN of the dashboard to retrieve. This is required to uniquely
898
+ # identify the dashboard.
899
+ #
900
+ # @return [Types::GetDashboardResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
901
+ #
902
+ # * {Types::GetDashboardResponse#arn #arn} => String
903
+ # * {Types::GetDashboardResponse#name #name} => String
904
+ # * {Types::GetDashboardResponse#description #description} => String
905
+ # * {Types::GetDashboardResponse#type #type} => String
906
+ # * {Types::GetDashboardResponse#widgets #widgets} => Array&lt;Types::Widget&gt;
907
+ # * {Types::GetDashboardResponse#created_at #created_at} => Time
908
+ # * {Types::GetDashboardResponse#updated_at #updated_at} => Time
909
+ #
910
+ #
911
+ # @example Example: Getting information about a dashboard
912
+ #
913
+ # resp = client.get_dashboard({
914
+ # arn: "arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh",
915
+ # })
916
+ #
917
+ # resp.to_h outputs the following:
918
+ # {
919
+ # name: "cost-dashboards",
920
+ # type: "CUSTOM",
921
+ # arn: "arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh",
922
+ # created_at: Time.parse(1753741462.721),
923
+ # description: "Dashboard for tracking costs",
924
+ # updated_at: Time.parse(1753741462.721),
925
+ # widgets: [
926
+ # {
927
+ # configs: [
928
+ # {
929
+ # display_config: {
930
+ # graph: {
931
+ # "costTrend" => {
932
+ # visual_type: "LINE",
933
+ # },
934
+ # },
935
+ # },
936
+ # query_parameters: {
937
+ # cost_and_usage: {
938
+ # granularity: "MONTHLY",
939
+ # group_by: [
940
+ # {
941
+ # type: "DIMENSION",
942
+ # key: "SERVICE",
943
+ # },
944
+ # ],
945
+ # metrics: [
946
+ # "UnblendedCost",
947
+ # ],
948
+ # time_range: {
949
+ # end_time: {
950
+ # type: "RELATIVE",
951
+ # value: "now",
952
+ # },
953
+ # start_time: {
954
+ # type: "RELATIVE",
955
+ # value: "-6M",
956
+ # },
957
+ # },
958
+ # },
959
+ # },
960
+ # },
961
+ # ],
962
+ # height: 7,
963
+ # horizontal_offset: 0,
964
+ # title: "Monthly Cost Trend",
965
+ # width: 4,
966
+ # },
967
+ # ],
968
+ # }
969
+ #
970
+ # @example Request syntax with placeholder values
971
+ #
972
+ # resp = client.get_dashboard({
973
+ # arn: "DashboardArn", # required
974
+ # })
975
+ #
976
+ # @example Response structure
977
+ #
978
+ # resp.arn #=> String
979
+ # resp.name #=> String
980
+ # resp.description #=> String
981
+ # resp.type #=> String, one of "CUSTOM"
982
+ # resp.widgets #=> Array
983
+ # resp.widgets[0].title #=> String
984
+ # resp.widgets[0].description #=> String
985
+ # resp.widgets[0].width #=> Integer
986
+ # resp.widgets[0].height #=> Integer
987
+ # resp.widgets[0].horizontal_offset #=> Integer
988
+ # resp.widgets[0].configs #=> Array
989
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.metrics #=> Array
990
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.metrics[0] #=> String, one of "AmortizedCost", "BlendedCost", "NetAmortizedCost", "NetUnblendedCost", "NormalizedUsageAmount", "UnblendedCost", "UsageQuantity", "SpendCoveredBySavingsPlans", "Hour", "Unit", "Cost"
991
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.time_range.start_time.type #=> String, one of "ABSOLUTE", "RELATIVE"
992
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.time_range.start_time.value #=> String
993
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.time_range.end_time.type #=> String, one of "ABSOLUTE", "RELATIVE"
994
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.time_range.end_time.value #=> String
995
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.granularity #=> String, one of "HOURLY", "DAILY", "MONTHLY"
996
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.group_by #=> Array
997
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.group_by[0].key #=> String
998
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.group_by[0].type #=> String, one of "DIMENSION", "TAG", "COST_CATEGORY"
999
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.or #=> Array
1000
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.or[0] #=> Types::Expression
1001
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.and #=> Array
1002
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.and[0] #=> Types::Expression
1003
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.not #=> Types::Expression
1004
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.dimensions.key #=> String, one of "AZ", "INSTANCE_TYPE", "LINKED_ACCOUNT", "OPERATION", "PURCHASE_TYPE", "REGION", "SERVICE", "USAGE_TYPE", "USAGE_TYPE_GROUP", "RECORD_TYPE", "RESOURCE_ID", "SUBSCRIPTION_ID", "TAG_KEY", "OPERATING_SYSTEM", "TENANCY", "BILLING_ENTITY", "RESERVATION_ID", "COST_CATEGORY_NAME", "DATABASE_ENGINE", "LEGAL_ENTITY_NAME", "SAVINGS_PLANS_TYPE", "INSTANCE_TYPE_FAMILY", "CACHE_ENGINE", "DEPLOYMENT_OPTION", "SCOPE", "PLATFORM"
1005
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.dimensions.values #=> Array
1006
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.dimensions.values[0] #=> String
1007
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.dimensions.match_options #=> Array
1008
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.dimensions.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1009
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.tags.key #=> String
1010
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.tags.values #=> Array
1011
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.tags.values[0] #=> String
1012
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.tags.match_options #=> Array
1013
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.tags.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1014
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.cost_categories.key #=> String
1015
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.cost_categories.values #=> Array
1016
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.cost_categories.values[0] #=> String
1017
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.cost_categories.match_options #=> Array
1018
+ # resp.widgets[0].configs[0].query_parameters.cost_and_usage.filter.cost_categories.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1019
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.time_range.start_time.type #=> String, one of "ABSOLUTE", "RELATIVE"
1020
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.time_range.start_time.value #=> String
1021
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.time_range.end_time.type #=> String, one of "ABSOLUTE", "RELATIVE"
1022
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.time_range.end_time.value #=> String
1023
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.metrics #=> Array
1024
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.metrics[0] #=> String, one of "AmortizedCost", "BlendedCost", "NetAmortizedCost", "NetUnblendedCost", "NormalizedUsageAmount", "UnblendedCost", "UsageQuantity", "SpendCoveredBySavingsPlans", "Hour", "Unit", "Cost"
1025
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.granularity #=> String, one of "HOURLY", "DAILY", "MONTHLY"
1026
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.group_by #=> Array
1027
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.group_by[0].key #=> String
1028
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.group_by[0].type #=> String, one of "DIMENSION", "TAG", "COST_CATEGORY"
1029
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.or #=> Array
1030
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.or[0] #=> Types::Expression
1031
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.and #=> Array
1032
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.and[0] #=> Types::Expression
1033
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.not #=> Types::Expression
1034
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.dimensions.key #=> String, one of "AZ", "INSTANCE_TYPE", "LINKED_ACCOUNT", "OPERATION", "PURCHASE_TYPE", "REGION", "SERVICE", "USAGE_TYPE", "USAGE_TYPE_GROUP", "RECORD_TYPE", "RESOURCE_ID", "SUBSCRIPTION_ID", "TAG_KEY", "OPERATING_SYSTEM", "TENANCY", "BILLING_ENTITY", "RESERVATION_ID", "COST_CATEGORY_NAME", "DATABASE_ENGINE", "LEGAL_ENTITY_NAME", "SAVINGS_PLANS_TYPE", "INSTANCE_TYPE_FAMILY", "CACHE_ENGINE", "DEPLOYMENT_OPTION", "SCOPE", "PLATFORM"
1035
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.dimensions.values #=> Array
1036
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.dimensions.values[0] #=> String
1037
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.dimensions.match_options #=> Array
1038
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.dimensions.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1039
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.tags.key #=> String
1040
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.tags.values #=> Array
1041
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.tags.values[0] #=> String
1042
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.tags.match_options #=> Array
1043
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.tags.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1044
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.cost_categories.key #=> String
1045
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.cost_categories.values #=> Array
1046
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.cost_categories.values[0] #=> String
1047
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.cost_categories.match_options #=> Array
1048
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_coverage.filter.cost_categories.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1049
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.time_range.start_time.type #=> String, one of "ABSOLUTE", "RELATIVE"
1050
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.time_range.start_time.value #=> String
1051
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.time_range.end_time.type #=> String, one of "ABSOLUTE", "RELATIVE"
1052
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.time_range.end_time.value #=> String
1053
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.granularity #=> String, one of "HOURLY", "DAILY", "MONTHLY"
1054
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.or #=> Array
1055
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.or[0] #=> Types::Expression
1056
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.and #=> Array
1057
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.and[0] #=> Types::Expression
1058
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.not #=> Types::Expression
1059
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.dimensions.key #=> String, one of "AZ", "INSTANCE_TYPE", "LINKED_ACCOUNT", "OPERATION", "PURCHASE_TYPE", "REGION", "SERVICE", "USAGE_TYPE", "USAGE_TYPE_GROUP", "RECORD_TYPE", "RESOURCE_ID", "SUBSCRIPTION_ID", "TAG_KEY", "OPERATING_SYSTEM", "TENANCY", "BILLING_ENTITY", "RESERVATION_ID", "COST_CATEGORY_NAME", "DATABASE_ENGINE", "LEGAL_ENTITY_NAME", "SAVINGS_PLANS_TYPE", "INSTANCE_TYPE_FAMILY", "CACHE_ENGINE", "DEPLOYMENT_OPTION", "SCOPE", "PLATFORM"
1060
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.dimensions.values #=> Array
1061
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.dimensions.values[0] #=> String
1062
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.dimensions.match_options #=> Array
1063
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.dimensions.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1064
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.tags.key #=> String
1065
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.tags.values #=> Array
1066
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.tags.values[0] #=> String
1067
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.tags.match_options #=> Array
1068
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.tags.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1069
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.cost_categories.key #=> String
1070
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.cost_categories.values #=> Array
1071
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.cost_categories.values[0] #=> String
1072
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.cost_categories.match_options #=> Array
1073
+ # resp.widgets[0].configs[0].query_parameters.savings_plans_utilization.filter.cost_categories.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1074
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.time_range.start_time.type #=> String, one of "ABSOLUTE", "RELATIVE"
1075
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.time_range.start_time.value #=> String
1076
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.time_range.end_time.type #=> String, one of "ABSOLUTE", "RELATIVE"
1077
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.time_range.end_time.value #=> String
1078
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.group_by #=> Array
1079
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.group_by[0].key #=> String
1080
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.group_by[0].type #=> String, one of "DIMENSION", "TAG", "COST_CATEGORY"
1081
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.granularity #=> String, one of "HOURLY", "DAILY", "MONTHLY"
1082
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.or #=> Array
1083
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.or[0] #=> Types::Expression
1084
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.and #=> Array
1085
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.and[0] #=> Types::Expression
1086
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.not #=> Types::Expression
1087
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.dimensions.key #=> String, one of "AZ", "INSTANCE_TYPE", "LINKED_ACCOUNT", "OPERATION", "PURCHASE_TYPE", "REGION", "SERVICE", "USAGE_TYPE", "USAGE_TYPE_GROUP", "RECORD_TYPE", "RESOURCE_ID", "SUBSCRIPTION_ID", "TAG_KEY", "OPERATING_SYSTEM", "TENANCY", "BILLING_ENTITY", "RESERVATION_ID", "COST_CATEGORY_NAME", "DATABASE_ENGINE", "LEGAL_ENTITY_NAME", "SAVINGS_PLANS_TYPE", "INSTANCE_TYPE_FAMILY", "CACHE_ENGINE", "DEPLOYMENT_OPTION", "SCOPE", "PLATFORM"
1088
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.dimensions.values #=> Array
1089
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.dimensions.values[0] #=> String
1090
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.dimensions.match_options #=> Array
1091
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.dimensions.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1092
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.tags.key #=> String
1093
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.tags.values #=> Array
1094
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.tags.values[0] #=> String
1095
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.tags.match_options #=> Array
1096
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.tags.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1097
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.cost_categories.key #=> String
1098
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.cost_categories.values #=> Array
1099
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.cost_categories.values[0] #=> String
1100
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.cost_categories.match_options #=> Array
1101
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.filter.cost_categories.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1102
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.metrics #=> Array
1103
+ # resp.widgets[0].configs[0].query_parameters.reservation_coverage.metrics[0] #=> String, one of "AmortizedCost", "BlendedCost", "NetAmortizedCost", "NetUnblendedCost", "NormalizedUsageAmount", "UnblendedCost", "UsageQuantity", "SpendCoveredBySavingsPlans", "Hour", "Unit", "Cost"
1104
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.time_range.start_time.type #=> String, one of "ABSOLUTE", "RELATIVE"
1105
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.time_range.start_time.value #=> String
1106
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.time_range.end_time.type #=> String, one of "ABSOLUTE", "RELATIVE"
1107
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.time_range.end_time.value #=> String
1108
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.group_by #=> Array
1109
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.group_by[0].key #=> String
1110
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.group_by[0].type #=> String, one of "DIMENSION", "TAG", "COST_CATEGORY"
1111
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.granularity #=> String, one of "HOURLY", "DAILY", "MONTHLY"
1112
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.or #=> Array
1113
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.or[0] #=> Types::Expression
1114
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.and #=> Array
1115
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.and[0] #=> Types::Expression
1116
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.not #=> Types::Expression
1117
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.dimensions.key #=> String, one of "AZ", "INSTANCE_TYPE", "LINKED_ACCOUNT", "OPERATION", "PURCHASE_TYPE", "REGION", "SERVICE", "USAGE_TYPE", "USAGE_TYPE_GROUP", "RECORD_TYPE", "RESOURCE_ID", "SUBSCRIPTION_ID", "TAG_KEY", "OPERATING_SYSTEM", "TENANCY", "BILLING_ENTITY", "RESERVATION_ID", "COST_CATEGORY_NAME", "DATABASE_ENGINE", "LEGAL_ENTITY_NAME", "SAVINGS_PLANS_TYPE", "INSTANCE_TYPE_FAMILY", "CACHE_ENGINE", "DEPLOYMENT_OPTION", "SCOPE", "PLATFORM"
1118
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.dimensions.values #=> Array
1119
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.dimensions.values[0] #=> String
1120
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.dimensions.match_options #=> Array
1121
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.dimensions.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1122
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.tags.key #=> String
1123
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.tags.values #=> Array
1124
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.tags.values[0] #=> String
1125
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.tags.match_options #=> Array
1126
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.tags.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1127
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.cost_categories.key #=> String
1128
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.cost_categories.values #=> Array
1129
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.cost_categories.values[0] #=> String
1130
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.cost_categories.match_options #=> Array
1131
+ # resp.widgets[0].configs[0].query_parameters.reservation_utilization.filter.cost_categories.match_options[0] #=> String, one of "EQUALS", "ABSENT", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL", "CASE_SENSITIVE", "CASE_INSENSITIVE"
1132
+ # resp.widgets[0].configs[0].display_config.graph #=> Hash
1133
+ # resp.widgets[0].configs[0].display_config.graph["GenericString"].visual_type #=> String, one of "LINE", "BAR", "STACK"
1134
+ # resp.created_at #=> Time
1135
+ # resp.updated_at #=> Time
1136
+ #
1137
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-dashboards-2025-08-18/GetDashboard AWS API Documentation
1138
+ #
1139
+ # @overload get_dashboard(params = {})
1140
+ # @param [Hash] params ({})
1141
+ def get_dashboard(params = {}, options = {})
1142
+ req = build_request(:get_dashboard, params)
1143
+ req.send_request(options)
1144
+ end
1145
+
1146
+ # Retrieves the resource-based policy attached to a dashboard, showing
1147
+ # sharing configurations and permissions.
1148
+ #
1149
+ # @option params [required, String] :resource_arn
1150
+ # The ARN of the dashboard whose resource-based policy you want to
1151
+ # retrieve.
1152
+ #
1153
+ # @return [Types::GetResourcePolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1154
+ #
1155
+ # * {Types::GetResourcePolicyResponse#resource_arn #resource_arn} => String
1156
+ # * {Types::GetResourcePolicyResponse#policy_document #policy_document} => String
1157
+ #
1158
+ #
1159
+ # @example Example: Getting resource policy for a resource
1160
+ #
1161
+ # resp = client.get_resource_policy({
1162
+ # resource_arn: "arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh",
1163
+ # })
1164
+ #
1165
+ # resp.to_h outputs the following:
1166
+ # {
1167
+ # policy_document: "{}",
1168
+ # resource_arn: "arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh",
1169
+ # }
1170
+ #
1171
+ # @example Request syntax with placeholder values
1172
+ #
1173
+ # resp = client.get_resource_policy({
1174
+ # resource_arn: "DashboardArn", # required
1175
+ # })
1176
+ #
1177
+ # @example Response structure
1178
+ #
1179
+ # resp.resource_arn #=> String
1180
+ # resp.policy_document #=> String
1181
+ #
1182
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-dashboards-2025-08-18/GetResourcePolicy AWS API Documentation
1183
+ #
1184
+ # @overload get_resource_policy(params = {})
1185
+ # @param [Hash] params ({})
1186
+ def get_resource_policy(params = {}, options = {})
1187
+ req = build_request(:get_resource_policy, params)
1188
+ req.send_request(options)
1189
+ end
1190
+
1191
+ # Returns a list of all dashboards in your account.
1192
+ #
1193
+ # @option params [Integer] :max_results
1194
+ # The maximum number of results to return in a single call. The default
1195
+ # value is 20.
1196
+ #
1197
+ # @option params [String] :next_token
1198
+ # The token for the next page of results. Use the value returned in the
1199
+ # previous response.
1200
+ #
1201
+ # @return [Types::ListDashboardsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1202
+ #
1203
+ # * {Types::ListDashboardsResponse#dashboards #dashboards} => Array&lt;Types::DashboardReference&gt;
1204
+ # * {Types::ListDashboardsResponse#next_token #next_token} => String
1205
+ #
1206
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1207
+ #
1208
+ #
1209
+ # @example Example: Listing dashboards for a user
1210
+ #
1211
+ # resp = client.list_dashboards({
1212
+ # })
1213
+ #
1214
+ # resp.to_h outputs the following:
1215
+ # {
1216
+ # dashboards: [
1217
+ # {
1218
+ # name: "monthly-cost-dashboard",
1219
+ # type: "CUSTOM",
1220
+ # arn: "arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh",
1221
+ # created_at: Time.parse(1753741462.721),
1222
+ # description: "Dashboard for tracking monthly cost",
1223
+ # updated_at: Time.parse(1753741462.721),
1224
+ # },
1225
+ # ],
1226
+ # }
1227
+ #
1228
+ # @example Request syntax with placeholder values
1229
+ #
1230
+ # resp = client.list_dashboards({
1231
+ # max_results: 1,
1232
+ # next_token: "NextPageToken",
1233
+ # })
1234
+ #
1235
+ # @example Response structure
1236
+ #
1237
+ # resp.dashboards #=> Array
1238
+ # resp.dashboards[0].arn #=> String
1239
+ # resp.dashboards[0].name #=> String
1240
+ # resp.dashboards[0].description #=> String
1241
+ # resp.dashboards[0].type #=> String, one of "CUSTOM"
1242
+ # resp.dashboards[0].created_at #=> Time
1243
+ # resp.dashboards[0].updated_at #=> Time
1244
+ # resp.next_token #=> String
1245
+ #
1246
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-dashboards-2025-08-18/ListDashboards AWS API Documentation
1247
+ #
1248
+ # @overload list_dashboards(params = {})
1249
+ # @param [Hash] params ({})
1250
+ def list_dashboards(params = {}, options = {})
1251
+ req = build_request(:list_dashboards, params)
1252
+ req.send_request(options)
1253
+ end
1254
+
1255
+ # Returns a list of all tags associated with a specified dashboard
1256
+ # resource.
1257
+ #
1258
+ # @option params [required, String] :resource_arn
1259
+ # The unique identifier for the resource.
1260
+ #
1261
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1262
+ #
1263
+ # * {Types::ListTagsForResourceResponse#resource_tags #resource_tags} => Array&lt;Types::ResourceTag&gt;
1264
+ #
1265
+ #
1266
+ # @example Example: Listing tags for a resource
1267
+ #
1268
+ # resp = client.list_tags_for_resource({
1269
+ # resource_arn: "arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh",
1270
+ # })
1271
+ #
1272
+ # resp.to_h outputs the following:
1273
+ # {
1274
+ # resource_tags: [
1275
+ # {
1276
+ # key: "keyOne",
1277
+ # value: "valueOne",
1278
+ # },
1279
+ # {
1280
+ # key: "keyTwo",
1281
+ # value: "valueTwo",
1282
+ # },
1283
+ # ],
1284
+ # }
1285
+ #
1286
+ # @example Request syntax with placeholder values
1287
+ #
1288
+ # resp = client.list_tags_for_resource({
1289
+ # resource_arn: "DashboardArn", # required
1290
+ # })
1291
+ #
1292
+ # @example Response structure
1293
+ #
1294
+ # resp.resource_tags #=> Array
1295
+ # resp.resource_tags[0].key #=> String
1296
+ # resp.resource_tags[0].value #=> String
1297
+ #
1298
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-dashboards-2025-08-18/ListTagsForResource AWS API Documentation
1299
+ #
1300
+ # @overload list_tags_for_resource(params = {})
1301
+ # @param [Hash] params ({})
1302
+ def list_tags_for_resource(params = {}, options = {})
1303
+ req = build_request(:list_tags_for_resource, params)
1304
+ req.send_request(options)
1305
+ end
1306
+
1307
+ # Adds or updates tags for a specified dashboard resource.
1308
+ #
1309
+ # @option params [required, String] :resource_arn
1310
+ # The unique identifier for the resource.
1311
+ #
1312
+ # @option params [required, Array<Types::ResourceTag>] :resource_tags
1313
+ # The tags to add to the dashboard resource.
1314
+ #
1315
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1316
+ #
1317
+ #
1318
+ # @example Example: Adding tag(s) to a resource
1319
+ #
1320
+ # resp = client.tag_resource({
1321
+ # resource_arn: "arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh",
1322
+ # resource_tags: [
1323
+ # {
1324
+ # key: "keyOne",
1325
+ # value: "valueOne",
1326
+ # },
1327
+ # ],
1328
+ # })
1329
+ #
1330
+ # @example Request syntax with placeholder values
1331
+ #
1332
+ # resp = client.tag_resource({
1333
+ # resource_arn: "DashboardArn", # required
1334
+ # resource_tags: [ # required
1335
+ # {
1336
+ # key: "ResourceTagKey", # required
1337
+ # value: "ResourceTagValue", # required
1338
+ # },
1339
+ # ],
1340
+ # })
1341
+ #
1342
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-dashboards-2025-08-18/TagResource AWS API Documentation
1343
+ #
1344
+ # @overload tag_resource(params = {})
1345
+ # @param [Hash] params ({})
1346
+ def tag_resource(params = {}, options = {})
1347
+ req = build_request(:tag_resource, params)
1348
+ req.send_request(options)
1349
+ end
1350
+
1351
+ # Removes specified tags from a dashboard resource.
1352
+ #
1353
+ # @option params [required, String] :resource_arn
1354
+ # The unique identifier for the resource.
1355
+ #
1356
+ # @option params [required, Array<String>] :resource_tag_keys
1357
+ # The keys of the tags to remove from the dashboard resource.
1358
+ #
1359
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1360
+ #
1361
+ #
1362
+ # @example Example: Removing tag(s) from a resource
1363
+ #
1364
+ # resp = client.untag_resource({
1365
+ # resource_arn: "arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh",
1366
+ # resource_tag_keys: [
1367
+ # "keyOne",
1368
+ # ],
1369
+ # })
1370
+ #
1371
+ # @example Request syntax with placeholder values
1372
+ #
1373
+ # resp = client.untag_resource({
1374
+ # resource_arn: "DashboardArn", # required
1375
+ # resource_tag_keys: ["ResourceTagKey"], # required
1376
+ # })
1377
+ #
1378
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-dashboards-2025-08-18/UntagResource AWS API Documentation
1379
+ #
1380
+ # @overload untag_resource(params = {})
1381
+ # @param [Hash] params ({})
1382
+ def untag_resource(params = {}, options = {})
1383
+ req = build_request(:untag_resource, params)
1384
+ req.send_request(options)
1385
+ end
1386
+
1387
+ # Updates an existing dashboard's properties, including its name,
1388
+ # description, and widget configurations.
1389
+ #
1390
+ # @option params [required, String] :arn
1391
+ # The ARN of the dashboard to update.
1392
+ #
1393
+ # @option params [String] :name
1394
+ # The new name for the dashboard. If not specified, the existing name is
1395
+ # retained.
1396
+ #
1397
+ # @option params [String] :description
1398
+ # The new description for the dashboard. If not specified, the existing
1399
+ # description is retained.
1400
+ #
1401
+ # @option params [Array<Types::Widget>] :widgets
1402
+ # The updated array of widget configurations for the dashboard. Replaces
1403
+ # all existing widgets.
1404
+ #
1405
+ # @return [Types::UpdateDashboardResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1406
+ #
1407
+ # * {Types::UpdateDashboardResponse#arn #arn} => String
1408
+ #
1409
+ #
1410
+ # @example Example: Updating a dashboard
1411
+ #
1412
+ # resp = client.update_dashboard({
1413
+ # name: "cost-dashboards-updated",
1414
+ # arn: "arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh",
1415
+ # description: "Dashboard for tracking costs version 2",
1416
+ # widgets: [
1417
+ # {
1418
+ # configs: [
1419
+ # {
1420
+ # display_config: {
1421
+ # graph: {
1422
+ # "costTrend" => {
1423
+ # visual_type: "LINE",
1424
+ # },
1425
+ # },
1426
+ # },
1427
+ # query_parameters: {
1428
+ # cost_and_usage: {
1429
+ # granularity: "MONTHLY",
1430
+ # group_by: [
1431
+ # {
1432
+ # type: "DIMENSION",
1433
+ # key: "SERVICE",
1434
+ # },
1435
+ # ],
1436
+ # metrics: [
1437
+ # "UnblendedCost",
1438
+ # ],
1439
+ # time_range: {
1440
+ # end_time: {
1441
+ # type: "RELATIVE",
1442
+ # value: "now",
1443
+ # },
1444
+ # start_time: {
1445
+ # type: "RELATIVE",
1446
+ # value: "-3M",
1447
+ # },
1448
+ # },
1449
+ # },
1450
+ # },
1451
+ # },
1452
+ # ],
1453
+ # height: 7,
1454
+ # horizontal_offset: 2,
1455
+ # title: "Monthly Cost Trend",
1456
+ # width: 4,
1457
+ # },
1458
+ # ],
1459
+ # })
1460
+ #
1461
+ # @example Request syntax with placeholder values
1462
+ #
1463
+ # resp = client.update_dashboard({
1464
+ # arn: "DashboardArn", # required
1465
+ # name: "DashboardName",
1466
+ # description: "Description",
1467
+ # widgets: [
1468
+ # {
1469
+ # title: "WidgetTitle", # required
1470
+ # description: "Description",
1471
+ # width: 1,
1472
+ # height: 1,
1473
+ # horizontal_offset: 1,
1474
+ # configs: [ # required
1475
+ # {
1476
+ # query_parameters: { # required
1477
+ # cost_and_usage: {
1478
+ # metrics: ["AmortizedCost"], # required, accepts AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, NormalizedUsageAmount, UnblendedCost, UsageQuantity, SpendCoveredBySavingsPlans, Hour, Unit, Cost
1479
+ # time_range: { # required
1480
+ # start_time: { # required
1481
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
1482
+ # value: "GenericString", # required
1483
+ # },
1484
+ # end_time: { # required
1485
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
1486
+ # value: "GenericString", # required
1487
+ # },
1488
+ # },
1489
+ # granularity: "HOURLY", # required, accepts HOURLY, DAILY, MONTHLY
1490
+ # group_by: [
1491
+ # {
1492
+ # key: "GroupDefinitionKeyString", # required
1493
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
1494
+ # },
1495
+ # ],
1496
+ # filter: {
1497
+ # or: [
1498
+ # {
1499
+ # # recursive Expression
1500
+ # },
1501
+ # ],
1502
+ # and: [
1503
+ # {
1504
+ # # recursive Expression
1505
+ # },
1506
+ # ],
1507
+ # not: {
1508
+ # # recursive Expression
1509
+ # },
1510
+ # dimensions: {
1511
+ # key: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, RESOURCE_ID, SUBSCRIPTION_ID, TAG_KEY, OPERATING_SYSTEM, TENANCY, BILLING_ENTITY, RESERVATION_ID, COST_CATEGORY_NAME, DATABASE_ENGINE, LEGAL_ENTITY_NAME, SAVINGS_PLANS_TYPE, INSTANCE_TYPE_FAMILY, CACHE_ENGINE, DEPLOYMENT_OPTION, SCOPE, PLATFORM
1512
+ # values: ["String"], # required
1513
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1514
+ # },
1515
+ # tags: {
1516
+ # key: "String",
1517
+ # values: ["String"],
1518
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1519
+ # },
1520
+ # cost_categories: {
1521
+ # key: "String",
1522
+ # values: ["String"],
1523
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1524
+ # },
1525
+ # },
1526
+ # },
1527
+ # savings_plans_coverage: {
1528
+ # time_range: { # required
1529
+ # start_time: { # required
1530
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
1531
+ # value: "GenericString", # required
1532
+ # },
1533
+ # end_time: { # required
1534
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
1535
+ # value: "GenericString", # required
1536
+ # },
1537
+ # },
1538
+ # metrics: ["AmortizedCost"], # accepts AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, NormalizedUsageAmount, UnblendedCost, UsageQuantity, SpendCoveredBySavingsPlans, Hour, Unit, Cost
1539
+ # granularity: "HOURLY", # accepts HOURLY, DAILY, MONTHLY
1540
+ # group_by: [
1541
+ # {
1542
+ # key: "GroupDefinitionKeyString", # required
1543
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
1544
+ # },
1545
+ # ],
1546
+ # filter: {
1547
+ # or: [
1548
+ # {
1549
+ # # recursive Expression
1550
+ # },
1551
+ # ],
1552
+ # and: [
1553
+ # {
1554
+ # # recursive Expression
1555
+ # },
1556
+ # ],
1557
+ # not: {
1558
+ # # recursive Expression
1559
+ # },
1560
+ # dimensions: {
1561
+ # key: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, RESOURCE_ID, SUBSCRIPTION_ID, TAG_KEY, OPERATING_SYSTEM, TENANCY, BILLING_ENTITY, RESERVATION_ID, COST_CATEGORY_NAME, DATABASE_ENGINE, LEGAL_ENTITY_NAME, SAVINGS_PLANS_TYPE, INSTANCE_TYPE_FAMILY, CACHE_ENGINE, DEPLOYMENT_OPTION, SCOPE, PLATFORM
1562
+ # values: ["String"], # required
1563
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1564
+ # },
1565
+ # tags: {
1566
+ # key: "String",
1567
+ # values: ["String"],
1568
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1569
+ # },
1570
+ # cost_categories: {
1571
+ # key: "String",
1572
+ # values: ["String"],
1573
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1574
+ # },
1575
+ # },
1576
+ # },
1577
+ # savings_plans_utilization: {
1578
+ # time_range: { # required
1579
+ # start_time: { # required
1580
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
1581
+ # value: "GenericString", # required
1582
+ # },
1583
+ # end_time: { # required
1584
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
1585
+ # value: "GenericString", # required
1586
+ # },
1587
+ # },
1588
+ # granularity: "HOURLY", # accepts HOURLY, DAILY, MONTHLY
1589
+ # filter: {
1590
+ # or: [
1591
+ # {
1592
+ # # recursive Expression
1593
+ # },
1594
+ # ],
1595
+ # and: [
1596
+ # {
1597
+ # # recursive Expression
1598
+ # },
1599
+ # ],
1600
+ # not: {
1601
+ # # recursive Expression
1602
+ # },
1603
+ # dimensions: {
1604
+ # key: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, RESOURCE_ID, SUBSCRIPTION_ID, TAG_KEY, OPERATING_SYSTEM, TENANCY, BILLING_ENTITY, RESERVATION_ID, COST_CATEGORY_NAME, DATABASE_ENGINE, LEGAL_ENTITY_NAME, SAVINGS_PLANS_TYPE, INSTANCE_TYPE_FAMILY, CACHE_ENGINE, DEPLOYMENT_OPTION, SCOPE, PLATFORM
1605
+ # values: ["String"], # required
1606
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1607
+ # },
1608
+ # tags: {
1609
+ # key: "String",
1610
+ # values: ["String"],
1611
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1612
+ # },
1613
+ # cost_categories: {
1614
+ # key: "String",
1615
+ # values: ["String"],
1616
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1617
+ # },
1618
+ # },
1619
+ # },
1620
+ # reservation_coverage: {
1621
+ # time_range: { # required
1622
+ # start_time: { # required
1623
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
1624
+ # value: "GenericString", # required
1625
+ # },
1626
+ # end_time: { # required
1627
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
1628
+ # value: "GenericString", # required
1629
+ # },
1630
+ # },
1631
+ # group_by: [
1632
+ # {
1633
+ # key: "GroupDefinitionKeyString", # required
1634
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
1635
+ # },
1636
+ # ],
1637
+ # granularity: "HOURLY", # accepts HOURLY, DAILY, MONTHLY
1638
+ # filter: {
1639
+ # or: [
1640
+ # {
1641
+ # # recursive Expression
1642
+ # },
1643
+ # ],
1644
+ # and: [
1645
+ # {
1646
+ # # recursive Expression
1647
+ # },
1648
+ # ],
1649
+ # not: {
1650
+ # # recursive Expression
1651
+ # },
1652
+ # dimensions: {
1653
+ # key: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, RESOURCE_ID, SUBSCRIPTION_ID, TAG_KEY, OPERATING_SYSTEM, TENANCY, BILLING_ENTITY, RESERVATION_ID, COST_CATEGORY_NAME, DATABASE_ENGINE, LEGAL_ENTITY_NAME, SAVINGS_PLANS_TYPE, INSTANCE_TYPE_FAMILY, CACHE_ENGINE, DEPLOYMENT_OPTION, SCOPE, PLATFORM
1654
+ # values: ["String"], # required
1655
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1656
+ # },
1657
+ # tags: {
1658
+ # key: "String",
1659
+ # values: ["String"],
1660
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1661
+ # },
1662
+ # cost_categories: {
1663
+ # key: "String",
1664
+ # values: ["String"],
1665
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1666
+ # },
1667
+ # },
1668
+ # metrics: ["AmortizedCost"], # accepts AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, NormalizedUsageAmount, UnblendedCost, UsageQuantity, SpendCoveredBySavingsPlans, Hour, Unit, Cost
1669
+ # },
1670
+ # reservation_utilization: {
1671
+ # time_range: { # required
1672
+ # start_time: { # required
1673
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
1674
+ # value: "GenericString", # required
1675
+ # },
1676
+ # end_time: { # required
1677
+ # type: "ABSOLUTE", # required, accepts ABSOLUTE, RELATIVE
1678
+ # value: "GenericString", # required
1679
+ # },
1680
+ # },
1681
+ # group_by: [
1682
+ # {
1683
+ # key: "GroupDefinitionKeyString", # required
1684
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
1685
+ # },
1686
+ # ],
1687
+ # granularity: "HOURLY", # accepts HOURLY, DAILY, MONTHLY
1688
+ # filter: {
1689
+ # or: [
1690
+ # {
1691
+ # # recursive Expression
1692
+ # },
1693
+ # ],
1694
+ # and: [
1695
+ # {
1696
+ # # recursive Expression
1697
+ # },
1698
+ # ],
1699
+ # not: {
1700
+ # # recursive Expression
1701
+ # },
1702
+ # dimensions: {
1703
+ # key: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, RESOURCE_ID, SUBSCRIPTION_ID, TAG_KEY, OPERATING_SYSTEM, TENANCY, BILLING_ENTITY, RESERVATION_ID, COST_CATEGORY_NAME, DATABASE_ENGINE, LEGAL_ENTITY_NAME, SAVINGS_PLANS_TYPE, INSTANCE_TYPE_FAMILY, CACHE_ENGINE, DEPLOYMENT_OPTION, SCOPE, PLATFORM
1704
+ # values: ["String"], # required
1705
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1706
+ # },
1707
+ # tags: {
1708
+ # key: "String",
1709
+ # values: ["String"],
1710
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1711
+ # },
1712
+ # cost_categories: {
1713
+ # key: "String",
1714
+ # values: ["String"],
1715
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, GREATER_THAN_OR_EQUAL, CASE_SENSITIVE, CASE_INSENSITIVE
1716
+ # },
1717
+ # },
1718
+ # },
1719
+ # },
1720
+ # display_config: { # required
1721
+ # graph: {
1722
+ # "GenericString" => {
1723
+ # visual_type: "LINE", # required, accepts LINE, BAR, STACK
1724
+ # },
1725
+ # },
1726
+ # table: {
1727
+ # },
1728
+ # },
1729
+ # },
1730
+ # ],
1731
+ # },
1732
+ # ],
1733
+ # })
1734
+ #
1735
+ # @example Response structure
1736
+ #
1737
+ # resp.arn #=> String
1738
+ #
1739
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-dashboards-2025-08-18/UpdateDashboard AWS API Documentation
1740
+ #
1741
+ # @overload update_dashboard(params = {})
1742
+ # @param [Hash] params ({})
1743
+ def update_dashboard(params = {}, options = {})
1744
+ req = build_request(:update_dashboard, params)
1745
+ req.send_request(options)
1746
+ end
1747
+
1748
+ # @!endgroup
1749
+
1750
+ # @param params ({})
1751
+ # @api private
1752
+ def build_request(operation_name, params = {})
1753
+ handlers = @handlers.for(operation_name)
1754
+ tracer = config.telemetry_provider.tracer_provider.tracer(
1755
+ Aws::Telemetry.module_to_tracer_name('Aws::BCMDashboards')
1756
+ )
1757
+ context = Seahorse::Client::RequestContext.new(
1758
+ operation_name: operation_name,
1759
+ operation: config.api.operation(operation_name),
1760
+ client: self,
1761
+ params: params,
1762
+ config: config,
1763
+ tracer: tracer
1764
+ )
1765
+ context[:gem_name] = 'aws-sdk-bcmdashboards'
1766
+ context[:gem_version] = '1.0.0'
1767
+ Seahorse::Client::Request.new(handlers, context)
1768
+ end
1769
+
1770
+ # @api private
1771
+ # @deprecated
1772
+ def waiter_names
1773
+ []
1774
+ end
1775
+
1776
+ class << self
1777
+
1778
+ # @api private
1779
+ attr_reader :identifier
1780
+
1781
+ # @api private
1782
+ def errors_module
1783
+ Errors
1784
+ end
1785
+
1786
+ end
1787
+ end
1788
+ end