aws-sdk-bcmpricingcalculator 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,2649 @@
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/telemetry.rb'
36
+ require 'aws-sdk-core/plugins/sign.rb'
37
+ require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
38
+
39
+ module Aws::BCMPricingCalculator
40
+ # An API client for BCMPricingCalculator. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::BCMPricingCalculator::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 = :bcmpricingcalculator
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::BCMPricingCalculator::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. This can be an instance of any one of the
99
+ # 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
128
+ # locations will be searched for credentials:
129
+ #
130
+ # * `Aws.config[:credentials]`
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
134
+ # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
135
+ # * `~/.aws/credentials`
136
+ # * `~/.aws/config`
137
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
138
+ # are very aggressive. Construct and pass an instance of
139
+ # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
140
+ # enable retries and extended timeouts. Instance profile credential
141
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
142
+ # to true.
143
+ #
144
+ # @option options [required, String] :region
145
+ # The AWS region to connect to. The configured `:region` is
146
+ # used to determine the service `:endpoint`. When not passed,
147
+ # a default `:region` is searched for in the following locations:
148
+ #
149
+ # * `Aws.config[:region]`
150
+ # * `ENV['AWS_REGION']`
151
+ # * `ENV['AMAZON_REGION']`
152
+ # * `ENV['AWS_DEFAULT_REGION']`
153
+ # * `~/.aws/credentials`
154
+ # * `~/.aws/config`
155
+ #
156
+ # @option options [String] :access_key_id
157
+ #
158
+ # @option options [String] :account_id
159
+ #
160
+ # @option options [Boolean] :active_endpoint_cache (false)
161
+ # When set to `true`, a thread polling for endpoints will be running in
162
+ # the background every 60 secs (default). Defaults to `false`.
163
+ #
164
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
165
+ # Used only in `adaptive` retry mode. When true, the request will sleep
166
+ # until there is sufficent client side capacity to retry the request.
167
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
168
+ # not retry instead of sleeping.
169
+ #
170
+ # @option options [Boolean] :client_side_monitoring (false)
171
+ # When `true`, client-side metrics will be collected for all API requests from
172
+ # this client.
173
+ #
174
+ # @option options [String] :client_side_monitoring_client_id ("")
175
+ # Allows you to provide an identifier for this client which will be attached to
176
+ # all generated client side metrics. Defaults to an empty string.
177
+ #
178
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
179
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
180
+ # side monitoring agent is running on, where client metrics will be published via UDP.
181
+ #
182
+ # @option options [Integer] :client_side_monitoring_port (31000)
183
+ # Required for publishing client metrics. The port that the client side monitoring
184
+ # agent is running on, where client metrics will be published via UDP.
185
+ #
186
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
187
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
188
+ # will use the Client Side Monitoring Agent Publisher.
189
+ #
190
+ # @option options [Boolean] :convert_params (true)
191
+ # When `true`, an attempt is made to coerce request parameters into
192
+ # the required types.
193
+ #
194
+ # @option options [Boolean] :correct_clock_skew (true)
195
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
196
+ # a clock skew correction and retry requests with skewed client clocks.
197
+ #
198
+ # @option options [String] :defaults_mode ("legacy")
199
+ # See {Aws::DefaultsModeConfiguration} for a list of the
200
+ # accepted modes and the configuration defaults that are included.
201
+ #
202
+ # @option options [Boolean] :disable_host_prefix_injection (false)
203
+ # Set to true to disable SDK automatically adding host prefix
204
+ # to default service endpoint when available.
205
+ #
206
+ # @option options [Boolean] :disable_request_compression (false)
207
+ # When set to 'true' the request body will not be compressed
208
+ # for supported operations.
209
+ #
210
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
211
+ # Normally you should not configure the `:endpoint` option
212
+ # directly. This is normally constructed from the `:region`
213
+ # option. Configuring `:endpoint` is normally reserved for
214
+ # connecting to test or custom endpoints. The endpoint should
215
+ # be a URI formatted like:
216
+ #
217
+ # 'http://example.com'
218
+ # 'https://example.com'
219
+ # 'http://example.com:123'
220
+ #
221
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
222
+ # Used for the maximum size limit of the LRU cache storing endpoints data
223
+ # for endpoint discovery enabled operations. Defaults to 1000.
224
+ #
225
+ # @option options [Integer] :endpoint_cache_max_threads (10)
226
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
227
+ #
228
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
229
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
230
+ # Use this option to config the time interval in seconds for making
231
+ # requests fetching endpoints information. Defaults to 60 sec.
232
+ #
233
+ # @option options [Boolean] :endpoint_discovery (false)
234
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
235
+ #
236
+ # @option options [Boolean] :ignore_configured_endpoint_urls
237
+ # Setting to true disables use of endpoint URLs provided via environment
238
+ # variables and the shared configuration file.
239
+ #
240
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
241
+ # The log formatter.
242
+ #
243
+ # @option options [Symbol] :log_level (:info)
244
+ # The log level to send messages to the `:logger` at.
245
+ #
246
+ # @option options [Logger] :logger
247
+ # The Logger instance to send log messages to. If this option
248
+ # is not set, logging will be disabled.
249
+ #
250
+ # @option options [Integer] :max_attempts (3)
251
+ # An integer representing the maximum number attempts that will be made for
252
+ # a single request, including the initial attempt. For example,
253
+ # setting this value to 5 will result in a request being retried up to
254
+ # 4 times. Used in `standard` and `adaptive` retry modes.
255
+ #
256
+ # @option options [String] :profile ("default")
257
+ # Used when loading credentials from the shared credentials file
258
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
259
+ #
260
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
261
+ # The minimum size in bytes that triggers compression for request
262
+ # bodies. The value must be non-negative integer value between 0
263
+ # and 10485780 bytes inclusive.
264
+ #
265
+ # @option options [Proc] :retry_backoff
266
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
267
+ # This option is only used in the `legacy` retry mode.
268
+ #
269
+ # @option options [Float] :retry_base_delay (0.3)
270
+ # The base delay in seconds used by the default backoff function. This option
271
+ # is only used in the `legacy` retry mode.
272
+ #
273
+ # @option options [Symbol] :retry_jitter (:none)
274
+ # A delay randomiser function used by the default backoff function.
275
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
276
+ # otherwise a Proc that takes and returns a number. This option is only used
277
+ # in the `legacy` retry mode.
278
+ #
279
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
280
+ #
281
+ # @option options [Integer] :retry_limit (3)
282
+ # The maximum number of times to retry failed requests. Only
283
+ # ~ 500 level server errors and certain ~ 400 level client errors
284
+ # are retried. Generally, these are throttling errors, data
285
+ # checksum errors, networking errors, timeout errors, auth errors,
286
+ # endpoint discovery, and errors from expired credentials.
287
+ # This option is only used in the `legacy` retry mode.
288
+ #
289
+ # @option options [Integer] :retry_max_delay (0)
290
+ # The maximum number of seconds to delay between retries (0 for no limit)
291
+ # used by the default backoff function. This option is only used in the
292
+ # `legacy` retry mode.
293
+ #
294
+ # @option options [String] :retry_mode ("legacy")
295
+ # Specifies which retry algorithm to use. Values are:
296
+ #
297
+ # * `legacy` - The pre-existing retry behavior. This is default value if
298
+ # no retry mode is provided.
299
+ #
300
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
301
+ # This includes support for retry quotas, which limit the number of
302
+ # unsuccessful retries a client can make.
303
+ #
304
+ # * `adaptive` - An experimental retry mode that includes all the
305
+ # functionality of `standard` mode along with automatic client side
306
+ # throttling. This is a provisional mode that may change behavior
307
+ # in the future.
308
+ #
309
+ # @option options [String] :sdk_ua_app_id
310
+ # A unique and opaque application ID that is appended to the
311
+ # User-Agent header as app/sdk_ua_app_id. It should have a
312
+ # maximum length of 50. This variable is sourced from environment
313
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
314
+ #
315
+ # @option options [String] :secret_access_key
316
+ #
317
+ # @option options [String] :session_token
318
+ #
319
+ # @option options [Array] :sigv4a_signing_region_set
320
+ # A list of regions that should be signed with SigV4a signing. When
321
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
322
+ # in the following locations:
323
+ #
324
+ # * `Aws.config[:sigv4a_signing_region_set]`
325
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
326
+ # * `~/.aws/config`
327
+ #
328
+ # @option options [Boolean] :simple_json (false)
329
+ # Disables request parameter conversion, validation, and formatting.
330
+ # Also disables response data type conversions. The request parameters
331
+ # hash must be formatted exactly as the API expects.This option is useful
332
+ # when you want to ensure the highest level of performance by avoiding
333
+ # overhead of walking request parameters and response data structures.
334
+ #
335
+ # @option options [Boolean] :stub_responses (false)
336
+ # Causes the client to return stubbed responses. By default
337
+ # fake responses are generated and returned. You can specify
338
+ # the response data to return or errors to raise by calling
339
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
340
+ #
341
+ # ** Please note ** When response stubbing is enabled, no HTTP
342
+ # requests are made, and retries are disabled.
343
+ #
344
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
345
+ # Allows you to provide a telemetry provider, which is used to
346
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
347
+ # will not record or emit any telemetry data. The SDK supports the
348
+ # following telemetry providers:
349
+ #
350
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
351
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
352
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
353
+ #
354
+ # @option options [Aws::TokenProvider] :token_provider
355
+ # A Bearer Token Provider. This can be an instance of any one of the
356
+ # following classes:
357
+ #
358
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
359
+ # tokens.
360
+ #
361
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
362
+ # access token generated from `aws login`.
363
+ #
364
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
365
+ # will be used to search for tokens configured for your profile in shared configuration files.
366
+ #
367
+ # @option options [Boolean] :use_dualstack_endpoint
368
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
369
+ # will be used if available.
370
+ #
371
+ # @option options [Boolean] :use_fips_endpoint
372
+ # When set to `true`, fips compatible endpoints will be used if available.
373
+ # When a `fips` region is used, the region is normalized and this config
374
+ # is set to `true`.
375
+ #
376
+ # @option options [Boolean] :validate_params (true)
377
+ # When `true`, request parameters are validated before
378
+ # sending the request.
379
+ #
380
+ # @option options [Aws::BCMPricingCalculator::EndpointProvider] :endpoint_provider
381
+ # The endpoint provider used to resolve endpoints. Any object that responds to
382
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
383
+ # `Aws::BCMPricingCalculator::EndpointParameters`.
384
+ #
385
+ # @option options [Float] :http_continue_timeout (1)
386
+ # The number of seconds to wait for a 100-continue response before sending the
387
+ # request body. This option has no effect unless the request has "Expect"
388
+ # header set to "100-continue". Defaults to `nil` which disables this
389
+ # behaviour. This value can safely be set per request on the session.
390
+ #
391
+ # @option options [Float] :http_idle_timeout (5)
392
+ # The number of seconds a connection is allowed to sit idle before it
393
+ # is considered stale. Stale connections are closed and removed from the
394
+ # pool before making a request.
395
+ #
396
+ # @option options [Float] :http_open_timeout (15)
397
+ # The default number of seconds to wait for response data.
398
+ # This value can safely be set per-request on the session.
399
+ #
400
+ # @option options [URI::HTTP,String] :http_proxy
401
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
402
+ #
403
+ # @option options [Float] :http_read_timeout (60)
404
+ # The default number of seconds to wait for response data.
405
+ # This value can safely be set per-request on the session.
406
+ #
407
+ # @option options [Boolean] :http_wire_trace (false)
408
+ # When `true`, HTTP debug output will be sent to the `:logger`.
409
+ #
410
+ # @option options [Proc] :on_chunk_received
411
+ # When a Proc object is provided, it will be used as callback when each chunk
412
+ # of the response body is received. It provides three arguments: the chunk,
413
+ # the number of bytes received, and the total number of
414
+ # bytes in the response (or nil if the server did not send a `content-length`).
415
+ #
416
+ # @option options [Proc] :on_chunk_sent
417
+ # When a Proc object is provided, it will be used as callback when each chunk
418
+ # of the request body is sent. It provides three arguments: the chunk,
419
+ # the number of bytes read from the body, and the total number of
420
+ # bytes in the body.
421
+ #
422
+ # @option options [Boolean] :raise_response_errors (true)
423
+ # When `true`, response errors are raised.
424
+ #
425
+ # @option options [String] :ssl_ca_bundle
426
+ # Full path to the SSL certificate authority bundle file that should be used when
427
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
428
+ # `:ssl_ca_directory` the the system default will be used if available.
429
+ #
430
+ # @option options [String] :ssl_ca_directory
431
+ # Full path of the directory that contains the unbundled SSL certificate
432
+ # authority files for verifying peer certificates. If you do
433
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
434
+ # default will be used if available.
435
+ #
436
+ # @option options [String] :ssl_ca_store
437
+ # Sets the X509::Store to verify peer certificate.
438
+ #
439
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
440
+ # Sets a client certificate when creating http connections.
441
+ #
442
+ # @option options [OpenSSL::PKey] :ssl_key
443
+ # Sets a client key when creating http connections.
444
+ #
445
+ # @option options [Float] :ssl_timeout
446
+ # Sets the SSL timeout in seconds
447
+ #
448
+ # @option options [Boolean] :ssl_verify_peer (true)
449
+ # When `true`, SSL peer certificates are verified when establishing a connection.
450
+ #
451
+ def initialize(*args)
452
+ super
453
+ end
454
+
455
+ # @!group API Operations
456
+
457
+ # Create Compute Savings Plans, EC2 Instance Savings Plans, or EC2
458
+ # Reserved Instances commitments that you want to model in a Bill
459
+ # Scenario.
460
+ #
461
+ # @option params [required, String] :bill_scenario_id
462
+ # The ID of the Bill Scenario for which you want to create the modeled
463
+ # commitment.
464
+ #
465
+ # @option params [required, Array<Types::BatchCreateBillScenarioCommitmentModificationEntry>] :commitment_modifications
466
+ # List of commitments that you want to model in the Bill Scenario.
467
+ #
468
+ # @option params [String] :client_token
469
+ # A unique, case-sensitive identifier that you provide to ensure the
470
+ # idempotency of the request.
471
+ #
472
+ # **A suitable default value is auto-generated.** You should normally
473
+ # not need to pass this option.**
474
+ #
475
+ # @return [Types::BatchCreateBillScenarioCommitmentModificationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
476
+ #
477
+ # * {Types::BatchCreateBillScenarioCommitmentModificationResponse#items #items} => Array&lt;Types::BatchCreateBillScenarioCommitmentModificationItem&gt;
478
+ # * {Types::BatchCreateBillScenarioCommitmentModificationResponse#errors #errors} => Array&lt;Types::BatchCreateBillScenarioCommitmentModificationError&gt;
479
+ #
480
+ # @example Request syntax with placeholder values
481
+ #
482
+ # resp = client.batch_create_bill_scenario_commitment_modification({
483
+ # bill_scenario_id: "ResourceId", # required
484
+ # commitment_modifications: [ # required
485
+ # {
486
+ # key: "Key", # required
487
+ # group: "UsageGroup",
488
+ # usage_account_id: "AccountId", # required
489
+ # commitment_action: { # required
490
+ # add_reserved_instance_action: {
491
+ # reserved_instances_offering_id: "Uuid",
492
+ # instance_count: 1,
493
+ # },
494
+ # add_savings_plan_action: {
495
+ # savings_plan_offering_id: "Uuid",
496
+ # commitment: 1.0,
497
+ # },
498
+ # negate_reserved_instance_action: {
499
+ # reserved_instances_id: "Uuid",
500
+ # },
501
+ # negate_savings_plan_action: {
502
+ # savings_plan_id: "Uuid",
503
+ # },
504
+ # },
505
+ # },
506
+ # ],
507
+ # client_token: "ClientToken",
508
+ # })
509
+ #
510
+ # @example Response structure
511
+ #
512
+ # resp.items #=> Array
513
+ # resp.items[0].key #=> String
514
+ # resp.items[0].id #=> String
515
+ # resp.items[0].group #=> String
516
+ # resp.items[0].usage_account_id #=> String
517
+ # resp.items[0].commitment_action.add_reserved_instance_action.reserved_instances_offering_id #=> String
518
+ # resp.items[0].commitment_action.add_reserved_instance_action.instance_count #=> Integer
519
+ # resp.items[0].commitment_action.add_savings_plan_action.savings_plan_offering_id #=> String
520
+ # resp.items[0].commitment_action.add_savings_plan_action.commitment #=> Float
521
+ # resp.items[0].commitment_action.negate_reserved_instance_action.reserved_instances_id #=> String
522
+ # resp.items[0].commitment_action.negate_savings_plan_action.savings_plan_id #=> String
523
+ # resp.errors #=> Array
524
+ # resp.errors[0].key #=> String
525
+ # resp.errors[0].error_message #=> String
526
+ # resp.errors[0].error_code #=> String, one of "CONFLICT", "INTERNAL_SERVER_ERROR", "INVALID_ACCOUNT"
527
+ #
528
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/BatchCreateBillScenarioCommitmentModification AWS API Documentation
529
+ #
530
+ # @overload batch_create_bill_scenario_commitment_modification(params = {})
531
+ # @param [Hash] params ({})
532
+ def batch_create_bill_scenario_commitment_modification(params = {}, options = {})
533
+ req = build_request(:batch_create_bill_scenario_commitment_modification, params)
534
+ req.send_request(options)
535
+ end
536
+
537
+ # Create Amazon Web Services service usage that you want to model in a
538
+ # Bill Scenario.
539
+ #
540
+ # @option params [required, String] :bill_scenario_id
541
+ # The ID of the Bill Scenario for which you want to create the modeled
542
+ # usage.
543
+ #
544
+ # @option params [required, Array<Types::BatchCreateBillScenarioUsageModificationEntry>] :usage_modifications
545
+ # List of usage that you want to model in the Bill Scenario.
546
+ #
547
+ # @option params [String] :client_token
548
+ # A unique, case-sensitive identifier that you provide to ensure the
549
+ # idempotency of the request.
550
+ #
551
+ # **A suitable default value is auto-generated.** You should normally
552
+ # not need to pass this option.**
553
+ #
554
+ # @return [Types::BatchCreateBillScenarioUsageModificationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
555
+ #
556
+ # * {Types::BatchCreateBillScenarioUsageModificationResponse#items #items} => Array&lt;Types::BatchCreateBillScenarioUsageModificationItem&gt;
557
+ # * {Types::BatchCreateBillScenarioUsageModificationResponse#errors #errors} => Array&lt;Types::BatchCreateBillScenarioUsageModificationError&gt;
558
+ #
559
+ # @example Request syntax with placeholder values
560
+ #
561
+ # resp = client.batch_create_bill_scenario_usage_modification({
562
+ # bill_scenario_id: "ResourceId", # required
563
+ # usage_modifications: [ # required
564
+ # {
565
+ # service_code: "ServiceCode", # required
566
+ # usage_type: "UsageType", # required
567
+ # operation: "Operation", # required
568
+ # availability_zone: "AvailabilityZone",
569
+ # key: "Key", # required
570
+ # group: "UsageGroup",
571
+ # usage_account_id: "AccountId", # required
572
+ # amounts: [
573
+ # {
574
+ # start_hour: Time.now, # required
575
+ # amount: 1.0, # required
576
+ # },
577
+ # ],
578
+ # historical_usage: {
579
+ # service_code: "ServiceCode", # required
580
+ # usage_type: "UsageType", # required
581
+ # operation: "Operation", # required
582
+ # location: "String",
583
+ # usage_account_id: "AccountId", # required
584
+ # bill_interval: { # required
585
+ # start: Time.now,
586
+ # end: Time.now,
587
+ # },
588
+ # filter_expression: { # required
589
+ # and: [
590
+ # {
591
+ # # recursive Expression
592
+ # },
593
+ # ],
594
+ # or: [
595
+ # {
596
+ # # recursive Expression
597
+ # },
598
+ # ],
599
+ # not: {
600
+ # # recursive Expression
601
+ # },
602
+ # cost_categories: {
603
+ # key: "String",
604
+ # match_options: ["String"],
605
+ # values: ["String"],
606
+ # },
607
+ # dimensions: {
608
+ # key: "String",
609
+ # match_options: ["String"],
610
+ # values: ["String"],
611
+ # },
612
+ # tags: {
613
+ # key: "String",
614
+ # match_options: ["String"],
615
+ # values: ["String"],
616
+ # },
617
+ # },
618
+ # },
619
+ # },
620
+ # ],
621
+ # client_token: "ClientToken",
622
+ # })
623
+ #
624
+ # @example Response structure
625
+ #
626
+ # resp.items #=> Array
627
+ # resp.items[0].service_code #=> String
628
+ # resp.items[0].usage_type #=> String
629
+ # resp.items[0].operation #=> String
630
+ # resp.items[0].location #=> String
631
+ # resp.items[0].availability_zone #=> String
632
+ # resp.items[0].id #=> String
633
+ # resp.items[0].group #=> String
634
+ # resp.items[0].usage_account_id #=> String
635
+ # resp.items[0].quantities #=> Array
636
+ # resp.items[0].quantities[0].start_hour #=> Time
637
+ # resp.items[0].quantities[0].unit #=> String
638
+ # resp.items[0].quantities[0].amount #=> Float
639
+ # resp.items[0].historical_usage.service_code #=> String
640
+ # resp.items[0].historical_usage.usage_type #=> String
641
+ # resp.items[0].historical_usage.operation #=> String
642
+ # resp.items[0].historical_usage.location #=> String
643
+ # resp.items[0].historical_usage.usage_account_id #=> String
644
+ # resp.items[0].historical_usage.bill_interval.start #=> Time
645
+ # resp.items[0].historical_usage.bill_interval.end #=> Time
646
+ # resp.items[0].historical_usage.filter_expression.and #=> Array
647
+ # resp.items[0].historical_usage.filter_expression.and[0] #=> Types::Expression
648
+ # resp.items[0].historical_usage.filter_expression.or #=> Array
649
+ # resp.items[0].historical_usage.filter_expression.or[0] #=> Types::Expression
650
+ # resp.items[0].historical_usage.filter_expression.not #=> Types::Expression
651
+ # resp.items[0].historical_usage.filter_expression.cost_categories.key #=> String
652
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options #=> Array
653
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options[0] #=> String
654
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values #=> Array
655
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values[0] #=> String
656
+ # resp.items[0].historical_usage.filter_expression.dimensions.key #=> String
657
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options #=> Array
658
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options[0] #=> String
659
+ # resp.items[0].historical_usage.filter_expression.dimensions.values #=> Array
660
+ # resp.items[0].historical_usage.filter_expression.dimensions.values[0] #=> String
661
+ # resp.items[0].historical_usage.filter_expression.tags.key #=> String
662
+ # resp.items[0].historical_usage.filter_expression.tags.match_options #=> Array
663
+ # resp.items[0].historical_usage.filter_expression.tags.match_options[0] #=> String
664
+ # resp.items[0].historical_usage.filter_expression.tags.values #=> Array
665
+ # resp.items[0].historical_usage.filter_expression.tags.values[0] #=> String
666
+ # resp.items[0].key #=> String
667
+ # resp.errors #=> Array
668
+ # resp.errors[0].key #=> String
669
+ # resp.errors[0].error_message #=> String
670
+ # resp.errors[0].error_code #=> String, one of "BAD_REQUEST", "NOT_FOUND", "CONFLICT", "INTERNAL_SERVER_ERROR"
671
+ #
672
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/BatchCreateBillScenarioUsageModification AWS API Documentation
673
+ #
674
+ # @overload batch_create_bill_scenario_usage_modification(params = {})
675
+ # @param [Hash] params ({})
676
+ def batch_create_bill_scenario_usage_modification(params = {}, options = {})
677
+ req = build_request(:batch_create_bill_scenario_usage_modification, params)
678
+ req.send_request(options)
679
+ end
680
+
681
+ # Create Amazon Web Services service usage that you want to model in a
682
+ # Workload Estimate.
683
+ #
684
+ # @option params [required, String] :workload_estimate_id
685
+ # The ID of the Workload estimate for which you want to create the
686
+ # modeled usage.
687
+ #
688
+ # @option params [required, Array<Types::BatchCreateWorkloadEstimateUsageEntry>] :usage
689
+ # List of usage that you want to model in the Workload estimate.
690
+ #
691
+ # @option params [String] :client_token
692
+ # A unique, case-sensitive identifier that you provide to ensure the
693
+ # idempotency of the request.
694
+ #
695
+ # **A suitable default value is auto-generated.** You should normally
696
+ # not need to pass this option.**
697
+ #
698
+ # @return [Types::BatchCreateWorkloadEstimateUsageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
699
+ #
700
+ # * {Types::BatchCreateWorkloadEstimateUsageResponse#items #items} => Array&lt;Types::BatchCreateWorkloadEstimateUsageItem&gt;
701
+ # * {Types::BatchCreateWorkloadEstimateUsageResponse#errors #errors} => Array&lt;Types::BatchCreateWorkloadEstimateUsageError&gt;
702
+ #
703
+ # @example Request syntax with placeholder values
704
+ #
705
+ # resp = client.batch_create_workload_estimate_usage({
706
+ # workload_estimate_id: "ResourceId", # required
707
+ # usage: [ # required
708
+ # {
709
+ # service_code: "ServiceCode", # required
710
+ # usage_type: "UsageType", # required
711
+ # operation: "Operation", # required
712
+ # key: "Key", # required
713
+ # group: "UsageGroup",
714
+ # usage_account_id: "AccountId", # required
715
+ # amount: 1.0, # required
716
+ # historical_usage: {
717
+ # service_code: "ServiceCode", # required
718
+ # usage_type: "UsageType", # required
719
+ # operation: "Operation", # required
720
+ # location: "String",
721
+ # usage_account_id: "AccountId", # required
722
+ # bill_interval: { # required
723
+ # start: Time.now,
724
+ # end: Time.now,
725
+ # },
726
+ # filter_expression: { # required
727
+ # and: [
728
+ # {
729
+ # # recursive Expression
730
+ # },
731
+ # ],
732
+ # or: [
733
+ # {
734
+ # # recursive Expression
735
+ # },
736
+ # ],
737
+ # not: {
738
+ # # recursive Expression
739
+ # },
740
+ # cost_categories: {
741
+ # key: "String",
742
+ # match_options: ["String"],
743
+ # values: ["String"],
744
+ # },
745
+ # dimensions: {
746
+ # key: "String",
747
+ # match_options: ["String"],
748
+ # values: ["String"],
749
+ # },
750
+ # tags: {
751
+ # key: "String",
752
+ # match_options: ["String"],
753
+ # values: ["String"],
754
+ # },
755
+ # },
756
+ # },
757
+ # },
758
+ # ],
759
+ # client_token: "ClientToken",
760
+ # })
761
+ #
762
+ # @example Response structure
763
+ #
764
+ # resp.items #=> Array
765
+ # resp.items[0].service_code #=> String
766
+ # resp.items[0].usage_type #=> String
767
+ # resp.items[0].operation #=> String
768
+ # resp.items[0].location #=> String
769
+ # resp.items[0].id #=> String
770
+ # resp.items[0].usage_account_id #=> String
771
+ # resp.items[0].group #=> String
772
+ # resp.items[0].quantity.unit #=> String
773
+ # resp.items[0].quantity.amount #=> Float
774
+ # resp.items[0].cost #=> Float
775
+ # resp.items[0].currency #=> String, one of "USD"
776
+ # resp.items[0].status #=> String, one of "VALID", "INVALID", "STALE"
777
+ # resp.items[0].historical_usage.service_code #=> String
778
+ # resp.items[0].historical_usage.usage_type #=> String
779
+ # resp.items[0].historical_usage.operation #=> String
780
+ # resp.items[0].historical_usage.location #=> String
781
+ # resp.items[0].historical_usage.usage_account_id #=> String
782
+ # resp.items[0].historical_usage.bill_interval.start #=> Time
783
+ # resp.items[0].historical_usage.bill_interval.end #=> Time
784
+ # resp.items[0].historical_usage.filter_expression.and #=> Array
785
+ # resp.items[0].historical_usage.filter_expression.and[0] #=> Types::Expression
786
+ # resp.items[0].historical_usage.filter_expression.or #=> Array
787
+ # resp.items[0].historical_usage.filter_expression.or[0] #=> Types::Expression
788
+ # resp.items[0].historical_usage.filter_expression.not #=> Types::Expression
789
+ # resp.items[0].historical_usage.filter_expression.cost_categories.key #=> String
790
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options #=> Array
791
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options[0] #=> String
792
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values #=> Array
793
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values[0] #=> String
794
+ # resp.items[0].historical_usage.filter_expression.dimensions.key #=> String
795
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options #=> Array
796
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options[0] #=> String
797
+ # resp.items[0].historical_usage.filter_expression.dimensions.values #=> Array
798
+ # resp.items[0].historical_usage.filter_expression.dimensions.values[0] #=> String
799
+ # resp.items[0].historical_usage.filter_expression.tags.key #=> String
800
+ # resp.items[0].historical_usage.filter_expression.tags.match_options #=> Array
801
+ # resp.items[0].historical_usage.filter_expression.tags.match_options[0] #=> String
802
+ # resp.items[0].historical_usage.filter_expression.tags.values #=> Array
803
+ # resp.items[0].historical_usage.filter_expression.tags.values[0] #=> String
804
+ # resp.items[0].key #=> String
805
+ # resp.errors #=> Array
806
+ # resp.errors[0].key #=> String
807
+ # resp.errors[0].error_code #=> String, one of "BAD_REQUEST", "NOT_FOUND", "CONFLICT", "INTERNAL_SERVER_ERROR"
808
+ # resp.errors[0].error_message #=> String
809
+ #
810
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/BatchCreateWorkloadEstimateUsage AWS API Documentation
811
+ #
812
+ # @overload batch_create_workload_estimate_usage(params = {})
813
+ # @param [Hash] params ({})
814
+ def batch_create_workload_estimate_usage(params = {}, options = {})
815
+ req = build_request(:batch_create_workload_estimate_usage, params)
816
+ req.send_request(options)
817
+ end
818
+
819
+ # Delete commitment that you have created in a Bill Scenario. You can
820
+ # only delete a commitment that you had added and cannot model deletion
821
+ # (or removal) of a existing commitment. If you want model deletion of
822
+ # an existing commitment, see the negate [
823
+ # BillScenarioCommitmentModificationAction][1] of [
824
+ # BatchCreateBillScenarioCommitmentModification][2] operation.
825
+ #
826
+ #
827
+ #
828
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AWSBCMPricingCalculator_BillScenarioCommitmentModificationAction.html
829
+ # [2]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AWSBCMPricingCalculator_BatchCreateBillScenarioUsageModification.html
830
+ #
831
+ # @option params [required, String] :bill_scenario_id
832
+ # The ID of the Bill Scenario for which you want to delete the modeled
833
+ # commitment.
834
+ #
835
+ # @option params [required, Array<String>] :ids
836
+ # List of commitments that you want to delete from the Bill Scenario.
837
+ #
838
+ # @return [Types::BatchDeleteBillScenarioCommitmentModificationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
839
+ #
840
+ # * {Types::BatchDeleteBillScenarioCommitmentModificationResponse#errors #errors} => Array&lt;Types::BatchDeleteBillScenarioCommitmentModificationError&gt;
841
+ #
842
+ # @example Request syntax with placeholder values
843
+ #
844
+ # resp = client.batch_delete_bill_scenario_commitment_modification({
845
+ # bill_scenario_id: "ResourceId", # required
846
+ # ids: ["ResourceId"], # required
847
+ # })
848
+ #
849
+ # @example Response structure
850
+ #
851
+ # resp.errors #=> Array
852
+ # resp.errors[0].id #=> String
853
+ # resp.errors[0].error_code #=> String, one of "BAD_REQUEST", "CONFLICT", "INTERNAL_SERVER_ERROR"
854
+ # resp.errors[0].error_message #=> String
855
+ #
856
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/BatchDeleteBillScenarioCommitmentModification AWS API Documentation
857
+ #
858
+ # @overload batch_delete_bill_scenario_commitment_modification(params = {})
859
+ # @param [Hash] params ({})
860
+ def batch_delete_bill_scenario_commitment_modification(params = {}, options = {})
861
+ req = build_request(:batch_delete_bill_scenario_commitment_modification, params)
862
+ req.send_request(options)
863
+ end
864
+
865
+ # Delete usage that you have created in a Bill Scenario. You can only
866
+ # delete usage that you had added and cannot model deletion (or removal)
867
+ # of a existing usage. If you want model removal of an existing usage,
868
+ # see [ BatchUpdateBillScenarioUsageModification][1].
869
+ #
870
+ #
871
+ #
872
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AWSBCMPricingCalculator_BatchUpdateBillScenarioUsageModification.html
873
+ #
874
+ # @option params [required, String] :bill_scenario_id
875
+ # The ID of the Bill Scenario for which you want to delete the modeled
876
+ # usage.
877
+ #
878
+ # @option params [required, Array<String>] :ids
879
+ # List of usage that you want to delete from the Bill Scenario.
880
+ #
881
+ # @return [Types::BatchDeleteBillScenarioUsageModificationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
882
+ #
883
+ # * {Types::BatchDeleteBillScenarioUsageModificationResponse#errors #errors} => Array&lt;Types::BatchDeleteBillScenarioUsageModificationError&gt;
884
+ #
885
+ # @example Request syntax with placeholder values
886
+ #
887
+ # resp = client.batch_delete_bill_scenario_usage_modification({
888
+ # bill_scenario_id: "ResourceId", # required
889
+ # ids: ["ResourceId"], # required
890
+ # })
891
+ #
892
+ # @example Response structure
893
+ #
894
+ # resp.errors #=> Array
895
+ # resp.errors[0].id #=> String
896
+ # resp.errors[0].error_message #=> String
897
+ # resp.errors[0].error_code #=> String, one of "BAD_REQUEST", "CONFLICT", "INTERNAL_SERVER_ERROR"
898
+ #
899
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/BatchDeleteBillScenarioUsageModification AWS API Documentation
900
+ #
901
+ # @overload batch_delete_bill_scenario_usage_modification(params = {})
902
+ # @param [Hash] params ({})
903
+ def batch_delete_bill_scenario_usage_modification(params = {}, options = {})
904
+ req = build_request(:batch_delete_bill_scenario_usage_modification, params)
905
+ req.send_request(options)
906
+ end
907
+
908
+ # Delete usage that you have created in a Workload estimate. You can
909
+ # only delete usage that you had added and cannot model deletion (or
910
+ # removal) of a existing usage. If you want model removal of an existing
911
+ # usage, see [ BatchUpdateWorkloadEstimateUsage][1].
912
+ #
913
+ #
914
+ #
915
+ # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AWSBCMPricingCalculator_BatchUpdateWorkloadEstimateUsage.html
916
+ #
917
+ # @option params [required, String] :workload_estimate_id
918
+ # The ID of the Workload estimate for which you want to delete the
919
+ # modeled usage.
920
+ #
921
+ # @option params [required, Array<String>] :ids
922
+ # List of usage that you want to delete from the Workload estimate.
923
+ #
924
+ # @return [Types::BatchDeleteWorkloadEstimateUsageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
925
+ #
926
+ # * {Types::BatchDeleteWorkloadEstimateUsageResponse#errors #errors} => Array&lt;Types::BatchDeleteWorkloadEstimateUsageError&gt;
927
+ #
928
+ # @example Request syntax with placeholder values
929
+ #
930
+ # resp = client.batch_delete_workload_estimate_usage({
931
+ # workload_estimate_id: "ResourceId", # required
932
+ # ids: ["ResourceId"], # required
933
+ # })
934
+ #
935
+ # @example Response structure
936
+ #
937
+ # resp.errors #=> Array
938
+ # resp.errors[0].id #=> String
939
+ # resp.errors[0].error_message #=> String
940
+ # resp.errors[0].error_code #=> String, one of "BAD_REQUEST", "NOT_FOUND", "CONFLICT", "INTERNAL_SERVER_ERROR"
941
+ #
942
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/BatchDeleteWorkloadEstimateUsage AWS API Documentation
943
+ #
944
+ # @overload batch_delete_workload_estimate_usage(params = {})
945
+ # @param [Hash] params ({})
946
+ def batch_delete_workload_estimate_usage(params = {}, options = {})
947
+ req = build_request(:batch_delete_workload_estimate_usage, params)
948
+ req.send_request(options)
949
+ end
950
+
951
+ # Update a newly added or existing commitment. You can update the
952
+ # commitment group based on a commitment ID and a Bill scenario ID.
953
+ #
954
+ # @option params [required, String] :bill_scenario_id
955
+ # The ID of the Bill Scenario for which you want to modify the
956
+ # commitment group of a modeled commitment.
957
+ #
958
+ # @option params [required, Array<Types::BatchUpdateBillScenarioCommitmentModificationEntry>] :commitment_modifications
959
+ # List of commitments that you want to update in a Bill Scenario.
960
+ #
961
+ # @return [Types::BatchUpdateBillScenarioCommitmentModificationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
962
+ #
963
+ # * {Types::BatchUpdateBillScenarioCommitmentModificationResponse#items #items} => Array&lt;Types::BillScenarioCommitmentModificationItem&gt;
964
+ # * {Types::BatchUpdateBillScenarioCommitmentModificationResponse#errors #errors} => Array&lt;Types::BatchUpdateBillScenarioCommitmentModificationError&gt;
965
+ #
966
+ # @example Request syntax with placeholder values
967
+ #
968
+ # resp = client.batch_update_bill_scenario_commitment_modification({
969
+ # bill_scenario_id: "ResourceId", # required
970
+ # commitment_modifications: [ # required
971
+ # {
972
+ # id: "ResourceId", # required
973
+ # group: "UsageGroup",
974
+ # },
975
+ # ],
976
+ # })
977
+ #
978
+ # @example Response structure
979
+ #
980
+ # resp.items #=> Array
981
+ # resp.items[0].id #=> String
982
+ # resp.items[0].usage_account_id #=> String
983
+ # resp.items[0].group #=> String
984
+ # resp.items[0].commitment_action.add_reserved_instance_action.reserved_instances_offering_id #=> String
985
+ # resp.items[0].commitment_action.add_reserved_instance_action.instance_count #=> Integer
986
+ # resp.items[0].commitment_action.add_savings_plan_action.savings_plan_offering_id #=> String
987
+ # resp.items[0].commitment_action.add_savings_plan_action.commitment #=> Float
988
+ # resp.items[0].commitment_action.negate_reserved_instance_action.reserved_instances_id #=> String
989
+ # resp.items[0].commitment_action.negate_savings_plan_action.savings_plan_id #=> String
990
+ # resp.errors #=> Array
991
+ # resp.errors[0].id #=> String
992
+ # resp.errors[0].error_code #=> String, one of "BAD_REQUEST", "NOT_FOUND", "CONFLICT", "INTERNAL_SERVER_ERROR"
993
+ # resp.errors[0].error_message #=> String
994
+ #
995
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/BatchUpdateBillScenarioCommitmentModification AWS API Documentation
996
+ #
997
+ # @overload batch_update_bill_scenario_commitment_modification(params = {})
998
+ # @param [Hash] params ({})
999
+ def batch_update_bill_scenario_commitment_modification(params = {}, options = {})
1000
+ req = build_request(:batch_update_bill_scenario_commitment_modification, params)
1001
+ req.send_request(options)
1002
+ end
1003
+
1004
+ # Update a newly added or existing usage lines. You can update the usage
1005
+ # amounts, usage hour, and usage group based on a usage ID and a Bill
1006
+ # scenario ID.
1007
+ #
1008
+ # @option params [required, String] :bill_scenario_id
1009
+ # The ID of the Bill Scenario for which you want to modify the usage
1010
+ # lines.
1011
+ #
1012
+ # @option params [required, Array<Types::BatchUpdateBillScenarioUsageModificationEntry>] :usage_modifications
1013
+ # List of usage lines that you want to update in a Bill Scenario
1014
+ # identified by the usage ID.
1015
+ #
1016
+ # @return [Types::BatchUpdateBillScenarioUsageModificationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1017
+ #
1018
+ # * {Types::BatchUpdateBillScenarioUsageModificationResponse#items #items} => Array&lt;Types::BillScenarioUsageModificationItem&gt;
1019
+ # * {Types::BatchUpdateBillScenarioUsageModificationResponse#errors #errors} => Array&lt;Types::BatchUpdateBillScenarioUsageModificationError&gt;
1020
+ #
1021
+ # @example Request syntax with placeholder values
1022
+ #
1023
+ # resp = client.batch_update_bill_scenario_usage_modification({
1024
+ # bill_scenario_id: "ResourceId", # required
1025
+ # usage_modifications: [ # required
1026
+ # {
1027
+ # id: "ResourceId", # required
1028
+ # group: "UsageGroup",
1029
+ # amounts: [
1030
+ # {
1031
+ # start_hour: Time.now, # required
1032
+ # amount: 1.0, # required
1033
+ # },
1034
+ # ],
1035
+ # },
1036
+ # ],
1037
+ # })
1038
+ #
1039
+ # @example Response structure
1040
+ #
1041
+ # resp.items #=> Array
1042
+ # resp.items[0].service_code #=> String
1043
+ # resp.items[0].usage_type #=> String
1044
+ # resp.items[0].operation #=> String
1045
+ # resp.items[0].location #=> String
1046
+ # resp.items[0].availability_zone #=> String
1047
+ # resp.items[0].id #=> String
1048
+ # resp.items[0].group #=> String
1049
+ # resp.items[0].usage_account_id #=> String
1050
+ # resp.items[0].quantities #=> Array
1051
+ # resp.items[0].quantities[0].start_hour #=> Time
1052
+ # resp.items[0].quantities[0].unit #=> String
1053
+ # resp.items[0].quantities[0].amount #=> Float
1054
+ # resp.items[0].historical_usage.service_code #=> String
1055
+ # resp.items[0].historical_usage.usage_type #=> String
1056
+ # resp.items[0].historical_usage.operation #=> String
1057
+ # resp.items[0].historical_usage.location #=> String
1058
+ # resp.items[0].historical_usage.usage_account_id #=> String
1059
+ # resp.items[0].historical_usage.bill_interval.start #=> Time
1060
+ # resp.items[0].historical_usage.bill_interval.end #=> Time
1061
+ # resp.items[0].historical_usage.filter_expression.and #=> Array
1062
+ # resp.items[0].historical_usage.filter_expression.and[0] #=> Types::Expression
1063
+ # resp.items[0].historical_usage.filter_expression.or #=> Array
1064
+ # resp.items[0].historical_usage.filter_expression.or[0] #=> Types::Expression
1065
+ # resp.items[0].historical_usage.filter_expression.not #=> Types::Expression
1066
+ # resp.items[0].historical_usage.filter_expression.cost_categories.key #=> String
1067
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options #=> Array
1068
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options[0] #=> String
1069
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values #=> Array
1070
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values[0] #=> String
1071
+ # resp.items[0].historical_usage.filter_expression.dimensions.key #=> String
1072
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options #=> Array
1073
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options[0] #=> String
1074
+ # resp.items[0].historical_usage.filter_expression.dimensions.values #=> Array
1075
+ # resp.items[0].historical_usage.filter_expression.dimensions.values[0] #=> String
1076
+ # resp.items[0].historical_usage.filter_expression.tags.key #=> String
1077
+ # resp.items[0].historical_usage.filter_expression.tags.match_options #=> Array
1078
+ # resp.items[0].historical_usage.filter_expression.tags.match_options[0] #=> String
1079
+ # resp.items[0].historical_usage.filter_expression.tags.values #=> Array
1080
+ # resp.items[0].historical_usage.filter_expression.tags.values[0] #=> String
1081
+ # resp.errors #=> Array
1082
+ # resp.errors[0].id #=> String
1083
+ # resp.errors[0].error_message #=> String
1084
+ # resp.errors[0].error_code #=> String, one of "BAD_REQUEST", "NOT_FOUND", "CONFLICT", "INTERNAL_SERVER_ERROR"
1085
+ #
1086
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/BatchUpdateBillScenarioUsageModification AWS API Documentation
1087
+ #
1088
+ # @overload batch_update_bill_scenario_usage_modification(params = {})
1089
+ # @param [Hash] params ({})
1090
+ def batch_update_bill_scenario_usage_modification(params = {}, options = {})
1091
+ req = build_request(:batch_update_bill_scenario_usage_modification, params)
1092
+ req.send_request(options)
1093
+ end
1094
+
1095
+ # Update a newly added or existing usage lines. You can update the usage
1096
+ # amounts and usage group based on a usage ID and a Workload estimate
1097
+ # ID.
1098
+ #
1099
+ # @option params [required, String] :workload_estimate_id
1100
+ # The ID of the Workload estimate for which you want to modify the usage
1101
+ # lines.
1102
+ #
1103
+ # @option params [required, Array<Types::BatchUpdateWorkloadEstimateUsageEntry>] :usage
1104
+ # List of usage line amounts and usage group that you want to update in
1105
+ # a Workload estimate identified by the usage ID.
1106
+ #
1107
+ # @return [Types::BatchUpdateWorkloadEstimateUsageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1108
+ #
1109
+ # * {Types::BatchUpdateWorkloadEstimateUsageResponse#items #items} => Array&lt;Types::WorkloadEstimateUsageItem&gt;
1110
+ # * {Types::BatchUpdateWorkloadEstimateUsageResponse#errors #errors} => Array&lt;Types::BatchUpdateWorkloadEstimateUsageError&gt;
1111
+ #
1112
+ # @example Request syntax with placeholder values
1113
+ #
1114
+ # resp = client.batch_update_workload_estimate_usage({
1115
+ # workload_estimate_id: "ResourceId", # required
1116
+ # usage: [ # required
1117
+ # {
1118
+ # id: "ResourceId", # required
1119
+ # group: "UsageGroup",
1120
+ # amount: 1.0,
1121
+ # },
1122
+ # ],
1123
+ # })
1124
+ #
1125
+ # @example Response structure
1126
+ #
1127
+ # resp.items #=> Array
1128
+ # resp.items[0].service_code #=> String
1129
+ # resp.items[0].usage_type #=> String
1130
+ # resp.items[0].operation #=> String
1131
+ # resp.items[0].location #=> String
1132
+ # resp.items[0].id #=> String
1133
+ # resp.items[0].usage_account_id #=> String
1134
+ # resp.items[0].group #=> String
1135
+ # resp.items[0].quantity.unit #=> String
1136
+ # resp.items[0].quantity.amount #=> Float
1137
+ # resp.items[0].cost #=> Float
1138
+ # resp.items[0].currency #=> String, one of "USD"
1139
+ # resp.items[0].status #=> String, one of "VALID", "INVALID", "STALE"
1140
+ # resp.items[0].historical_usage.service_code #=> String
1141
+ # resp.items[0].historical_usage.usage_type #=> String
1142
+ # resp.items[0].historical_usage.operation #=> String
1143
+ # resp.items[0].historical_usage.location #=> String
1144
+ # resp.items[0].historical_usage.usage_account_id #=> String
1145
+ # resp.items[0].historical_usage.bill_interval.start #=> Time
1146
+ # resp.items[0].historical_usage.bill_interval.end #=> Time
1147
+ # resp.items[0].historical_usage.filter_expression.and #=> Array
1148
+ # resp.items[0].historical_usage.filter_expression.and[0] #=> Types::Expression
1149
+ # resp.items[0].historical_usage.filter_expression.or #=> Array
1150
+ # resp.items[0].historical_usage.filter_expression.or[0] #=> Types::Expression
1151
+ # resp.items[0].historical_usage.filter_expression.not #=> Types::Expression
1152
+ # resp.items[0].historical_usage.filter_expression.cost_categories.key #=> String
1153
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options #=> Array
1154
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options[0] #=> String
1155
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values #=> Array
1156
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values[0] #=> String
1157
+ # resp.items[0].historical_usage.filter_expression.dimensions.key #=> String
1158
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options #=> Array
1159
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options[0] #=> String
1160
+ # resp.items[0].historical_usage.filter_expression.dimensions.values #=> Array
1161
+ # resp.items[0].historical_usage.filter_expression.dimensions.values[0] #=> String
1162
+ # resp.items[0].historical_usage.filter_expression.tags.key #=> String
1163
+ # resp.items[0].historical_usage.filter_expression.tags.match_options #=> Array
1164
+ # resp.items[0].historical_usage.filter_expression.tags.match_options[0] #=> String
1165
+ # resp.items[0].historical_usage.filter_expression.tags.values #=> Array
1166
+ # resp.items[0].historical_usage.filter_expression.tags.values[0] #=> String
1167
+ # resp.errors #=> Array
1168
+ # resp.errors[0].id #=> String
1169
+ # resp.errors[0].error_message #=> String
1170
+ # resp.errors[0].error_code #=> String, one of "BAD_REQUEST", "NOT_FOUND", "CONFLICT", "INTERNAL_SERVER_ERROR"
1171
+ #
1172
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/BatchUpdateWorkloadEstimateUsage AWS API Documentation
1173
+ #
1174
+ # @overload batch_update_workload_estimate_usage(params = {})
1175
+ # @param [Hash] params ({})
1176
+ def batch_update_workload_estimate_usage(params = {}, options = {})
1177
+ req = build_request(:batch_update_workload_estimate_usage, params)
1178
+ req.send_request(options)
1179
+ end
1180
+
1181
+ # Create a Bill estimate from a Bill scenario. In the Bill scenario you
1182
+ # can model usage addition, usage changes, and usage removal. You can
1183
+ # also model commitment addition and commitment removal. After all
1184
+ # changes in a Bill scenario is made satisfactorily, you can call this
1185
+ # API with a Bill scenario ID to generate the Bill estimate. Bill
1186
+ # estimate calculates the pre-tax cost for your consolidated billing
1187
+ # family, incorporating all modeled usage and commitments alongside
1188
+ # existing usage and commitments from your most recent completed
1189
+ # anniversary bill, with any applicable discounts applied.
1190
+ #
1191
+ # @option params [required, String] :bill_scenario_id
1192
+ # The ID of the Bill Scenario for which you want to create a Bill
1193
+ # estimate.
1194
+ #
1195
+ # @option params [required, String] :name
1196
+ # The name of the Bill estimate that will be created. Names must be
1197
+ # unique for an account.
1198
+ #
1199
+ # @option params [String] :client_token
1200
+ # A unique, case-sensitive identifier that you provide to ensure the
1201
+ # idempotency of the request.
1202
+ #
1203
+ # **A suitable default value is auto-generated.** You should normally
1204
+ # not need to pass this option.**
1205
+ #
1206
+ # @option params [Hash<String,String>] :tags
1207
+ # An optional list of tags to associate with the specified BillEstimate.
1208
+ # You can use resource tags to control access to your BillEstimate using
1209
+ # IAM policies. Each tag consists of a key and a value, and each key
1210
+ # must be unique for the resource. The following restrictions apply to
1211
+ # resource tags:
1212
+ #
1213
+ # * Although the maximum number of array members is 200, you can assign
1214
+ # a maximum of 50 user-tags to one resource. The remaining are
1215
+ # reserved for Amazon Web Services.
1216
+ #
1217
+ # * The maximum length of a key is 128 characters.
1218
+ #
1219
+ # * The maximum length of a value is 256 characters.
1220
+ #
1221
+ # * Keys and values can only contain alphanumeric characters, spaces,
1222
+ # and any of the following: `_.:/=+@-`.
1223
+ #
1224
+ # * Keys and values are case sensitive.
1225
+ #
1226
+ # * Keys and values are trimmed for any leading or trailing whitespaces.
1227
+ #
1228
+ # * Don't use `aws:` as a prefix for your keys. This prefix is reserved
1229
+ # for Amazon Web Services.
1230
+ #
1231
+ # @return [Types::CreateBillEstimateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1232
+ #
1233
+ # * {Types::CreateBillEstimateResponse#id #id} => String
1234
+ # * {Types::CreateBillEstimateResponse#name #name} => String
1235
+ # * {Types::CreateBillEstimateResponse#status #status} => String
1236
+ # * {Types::CreateBillEstimateResponse#failure_message #failure_message} => String
1237
+ # * {Types::CreateBillEstimateResponse#bill_interval #bill_interval} => Types::BillInterval
1238
+ # * {Types::CreateBillEstimateResponse#cost_summary #cost_summary} => Types::BillEstimateCostSummary
1239
+ # * {Types::CreateBillEstimateResponse#created_at #created_at} => Time
1240
+ # * {Types::CreateBillEstimateResponse#expires_at #expires_at} => Time
1241
+ #
1242
+ # @example Request syntax with placeholder values
1243
+ #
1244
+ # resp = client.create_bill_estimate({
1245
+ # bill_scenario_id: "ResourceId", # required
1246
+ # name: "BillEstimateName", # required
1247
+ # client_token: "ClientToken",
1248
+ # tags: {
1249
+ # "ResourceTagKey" => "ResourceTagValue",
1250
+ # },
1251
+ # })
1252
+ #
1253
+ # @example Response structure
1254
+ #
1255
+ # resp.id #=> String
1256
+ # resp.name #=> String
1257
+ # resp.status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED"
1258
+ # resp.failure_message #=> String
1259
+ # resp.bill_interval.start #=> Time
1260
+ # resp.bill_interval.end #=> Time
1261
+ # resp.cost_summary.total_cost_difference.historical_cost.amount #=> Float
1262
+ # resp.cost_summary.total_cost_difference.historical_cost.currency #=> String, one of "USD"
1263
+ # resp.cost_summary.total_cost_difference.estimated_cost.amount #=> Float
1264
+ # resp.cost_summary.total_cost_difference.estimated_cost.currency #=> String, one of "USD"
1265
+ # resp.cost_summary.service_cost_differences #=> Hash
1266
+ # resp.cost_summary.service_cost_differences["String"].historical_cost.amount #=> Float
1267
+ # resp.cost_summary.service_cost_differences["String"].historical_cost.currency #=> String, one of "USD"
1268
+ # resp.cost_summary.service_cost_differences["String"].estimated_cost.amount #=> Float
1269
+ # resp.cost_summary.service_cost_differences["String"].estimated_cost.currency #=> String, one of "USD"
1270
+ # resp.created_at #=> Time
1271
+ # resp.expires_at #=> Time
1272
+ #
1273
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/CreateBillEstimate AWS API Documentation
1274
+ #
1275
+ # @overload create_bill_estimate(params = {})
1276
+ # @param [Hash] params ({})
1277
+ def create_bill_estimate(params = {}, options = {})
1278
+ req = build_request(:create_bill_estimate, params)
1279
+ req.send_request(options)
1280
+ end
1281
+
1282
+ # Creates a new bill scenario to model potential changes to Amazon Web
1283
+ # Services usage and costs.
1284
+ #
1285
+ # @option params [required, String] :name
1286
+ # A descriptive name for the bill scenario.
1287
+ #
1288
+ # @option params [String] :client_token
1289
+ # A unique, case-sensitive identifier to ensure idempotency of the
1290
+ # request.
1291
+ #
1292
+ # **A suitable default value is auto-generated.** You should normally
1293
+ # not need to pass this option.**
1294
+ #
1295
+ # @option params [Hash<String,String>] :tags
1296
+ # The tags to apply to the bill scenario.
1297
+ #
1298
+ # @return [Types::CreateBillScenarioResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1299
+ #
1300
+ # * {Types::CreateBillScenarioResponse#id #id} => String
1301
+ # * {Types::CreateBillScenarioResponse#name #name} => String
1302
+ # * {Types::CreateBillScenarioResponse#bill_interval #bill_interval} => Types::BillInterval
1303
+ # * {Types::CreateBillScenarioResponse#status #status} => String
1304
+ # * {Types::CreateBillScenarioResponse#created_at #created_at} => Time
1305
+ # * {Types::CreateBillScenarioResponse#expires_at #expires_at} => Time
1306
+ # * {Types::CreateBillScenarioResponse#failure_message #failure_message} => String
1307
+ #
1308
+ # @example Request syntax with placeholder values
1309
+ #
1310
+ # resp = client.create_bill_scenario({
1311
+ # name: "BillScenarioName", # required
1312
+ # client_token: "ClientToken",
1313
+ # tags: {
1314
+ # "ResourceTagKey" => "ResourceTagValue",
1315
+ # },
1316
+ # })
1317
+ #
1318
+ # @example Response structure
1319
+ #
1320
+ # resp.id #=> String
1321
+ # resp.name #=> String
1322
+ # resp.bill_interval.start #=> Time
1323
+ # resp.bill_interval.end #=> Time
1324
+ # resp.status #=> String, one of "READY", "LOCKED", "FAILED"
1325
+ # resp.created_at #=> Time
1326
+ # resp.expires_at #=> Time
1327
+ # resp.failure_message #=> String
1328
+ #
1329
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/CreateBillScenario AWS API Documentation
1330
+ #
1331
+ # @overload create_bill_scenario(params = {})
1332
+ # @param [Hash] params ({})
1333
+ def create_bill_scenario(params = {}, options = {})
1334
+ req = build_request(:create_bill_scenario, params)
1335
+ req.send_request(options)
1336
+ end
1337
+
1338
+ # Creates a new workload estimate to model costs for a specific
1339
+ # workload.
1340
+ #
1341
+ # @option params [required, String] :name
1342
+ # A descriptive name for the workload estimate.
1343
+ #
1344
+ # @option params [String] :client_token
1345
+ # A unique, case-sensitive identifier to ensure idempotency of the
1346
+ # request.
1347
+ #
1348
+ # **A suitable default value is auto-generated.** You should normally
1349
+ # not need to pass this option.**
1350
+ #
1351
+ # @option params [String] :rate_type
1352
+ # The type of pricing rates to use for the estimate.
1353
+ #
1354
+ # @option params [Hash<String,String>] :tags
1355
+ # The tags to apply to the workload estimate.
1356
+ #
1357
+ # @return [Types::CreateWorkloadEstimateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1358
+ #
1359
+ # * {Types::CreateWorkloadEstimateResponse#id #id} => String
1360
+ # * {Types::CreateWorkloadEstimateResponse#name #name} => String
1361
+ # * {Types::CreateWorkloadEstimateResponse#created_at #created_at} => Time
1362
+ # * {Types::CreateWorkloadEstimateResponse#expires_at #expires_at} => Time
1363
+ # * {Types::CreateWorkloadEstimateResponse#rate_type #rate_type} => String
1364
+ # * {Types::CreateWorkloadEstimateResponse#rate_timestamp #rate_timestamp} => Time
1365
+ # * {Types::CreateWorkloadEstimateResponse#status #status} => String
1366
+ # * {Types::CreateWorkloadEstimateResponse#total_cost #total_cost} => Float
1367
+ # * {Types::CreateWorkloadEstimateResponse#cost_currency #cost_currency} => String
1368
+ # * {Types::CreateWorkloadEstimateResponse#failure_message #failure_message} => String
1369
+ #
1370
+ # @example Request syntax with placeholder values
1371
+ #
1372
+ # resp = client.create_workload_estimate({
1373
+ # name: "WorkloadEstimateName", # required
1374
+ # client_token: "ClientToken",
1375
+ # rate_type: "BEFORE_DISCOUNTS", # accepts BEFORE_DISCOUNTS, AFTER_DISCOUNTS
1376
+ # tags: {
1377
+ # "ResourceTagKey" => "ResourceTagValue",
1378
+ # },
1379
+ # })
1380
+ #
1381
+ # @example Response structure
1382
+ #
1383
+ # resp.id #=> String
1384
+ # resp.name #=> String
1385
+ # resp.created_at #=> Time
1386
+ # resp.expires_at #=> Time
1387
+ # resp.rate_type #=> String, one of "BEFORE_DISCOUNTS", "AFTER_DISCOUNTS"
1388
+ # resp.rate_timestamp #=> Time
1389
+ # resp.status #=> String, one of "UPDATING", "VALID", "INVALID", "ACTION_NEEDED"
1390
+ # resp.total_cost #=> Float
1391
+ # resp.cost_currency #=> String, one of "USD"
1392
+ # resp.failure_message #=> String
1393
+ #
1394
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/CreateWorkloadEstimate AWS API Documentation
1395
+ #
1396
+ # @overload create_workload_estimate(params = {})
1397
+ # @param [Hash] params ({})
1398
+ def create_workload_estimate(params = {}, options = {})
1399
+ req = build_request(:create_workload_estimate, params)
1400
+ req.send_request(options)
1401
+ end
1402
+
1403
+ # Deletes an existing bill estimate.
1404
+ #
1405
+ # @option params [required, String] :identifier
1406
+ # The unique identifier of the bill estimate to delete.
1407
+ #
1408
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1409
+ #
1410
+ # @example Request syntax with placeholder values
1411
+ #
1412
+ # resp = client.delete_bill_estimate({
1413
+ # identifier: "ResourceId", # required
1414
+ # })
1415
+ #
1416
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/DeleteBillEstimate AWS API Documentation
1417
+ #
1418
+ # @overload delete_bill_estimate(params = {})
1419
+ # @param [Hash] params ({})
1420
+ def delete_bill_estimate(params = {}, options = {})
1421
+ req = build_request(:delete_bill_estimate, params)
1422
+ req.send_request(options)
1423
+ end
1424
+
1425
+ # Deletes an existing bill scenario.
1426
+ #
1427
+ # @option params [required, String] :identifier
1428
+ # The unique identifier of the bill scenario to delete.
1429
+ #
1430
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1431
+ #
1432
+ # @example Request syntax with placeholder values
1433
+ #
1434
+ # resp = client.delete_bill_scenario({
1435
+ # identifier: "ResourceId", # required
1436
+ # })
1437
+ #
1438
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/DeleteBillScenario AWS API Documentation
1439
+ #
1440
+ # @overload delete_bill_scenario(params = {})
1441
+ # @param [Hash] params ({})
1442
+ def delete_bill_scenario(params = {}, options = {})
1443
+ req = build_request(:delete_bill_scenario, params)
1444
+ req.send_request(options)
1445
+ end
1446
+
1447
+ # Deletes an existing workload estimate.
1448
+ #
1449
+ # @option params [required, String] :identifier
1450
+ # The unique identifier of the workload estimate to delete.
1451
+ #
1452
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1453
+ #
1454
+ # @example Request syntax with placeholder values
1455
+ #
1456
+ # resp = client.delete_workload_estimate({
1457
+ # identifier: "ResourceId", # required
1458
+ # })
1459
+ #
1460
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/DeleteWorkloadEstimate AWS API Documentation
1461
+ #
1462
+ # @overload delete_workload_estimate(params = {})
1463
+ # @param [Hash] params ({})
1464
+ def delete_workload_estimate(params = {}, options = {})
1465
+ req = build_request(:delete_workload_estimate, params)
1466
+ req.send_request(options)
1467
+ end
1468
+
1469
+ # Retrieves details of a specific bill estimate.
1470
+ #
1471
+ # @option params [required, String] :identifier
1472
+ # The unique identifier of the bill estimate to retrieve.
1473
+ #
1474
+ # @return [Types::GetBillEstimateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1475
+ #
1476
+ # * {Types::GetBillEstimateResponse#id #id} => String
1477
+ # * {Types::GetBillEstimateResponse#name #name} => String
1478
+ # * {Types::GetBillEstimateResponse#status #status} => String
1479
+ # * {Types::GetBillEstimateResponse#failure_message #failure_message} => String
1480
+ # * {Types::GetBillEstimateResponse#bill_interval #bill_interval} => Types::BillInterval
1481
+ # * {Types::GetBillEstimateResponse#cost_summary #cost_summary} => Types::BillEstimateCostSummary
1482
+ # * {Types::GetBillEstimateResponse#created_at #created_at} => Time
1483
+ # * {Types::GetBillEstimateResponse#expires_at #expires_at} => Time
1484
+ #
1485
+ # @example Request syntax with placeholder values
1486
+ #
1487
+ # resp = client.get_bill_estimate({
1488
+ # identifier: "ResourceId", # required
1489
+ # })
1490
+ #
1491
+ # @example Response structure
1492
+ #
1493
+ # resp.id #=> String
1494
+ # resp.name #=> String
1495
+ # resp.status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED"
1496
+ # resp.failure_message #=> String
1497
+ # resp.bill_interval.start #=> Time
1498
+ # resp.bill_interval.end #=> Time
1499
+ # resp.cost_summary.total_cost_difference.historical_cost.amount #=> Float
1500
+ # resp.cost_summary.total_cost_difference.historical_cost.currency #=> String, one of "USD"
1501
+ # resp.cost_summary.total_cost_difference.estimated_cost.amount #=> Float
1502
+ # resp.cost_summary.total_cost_difference.estimated_cost.currency #=> String, one of "USD"
1503
+ # resp.cost_summary.service_cost_differences #=> Hash
1504
+ # resp.cost_summary.service_cost_differences["String"].historical_cost.amount #=> Float
1505
+ # resp.cost_summary.service_cost_differences["String"].historical_cost.currency #=> String, one of "USD"
1506
+ # resp.cost_summary.service_cost_differences["String"].estimated_cost.amount #=> Float
1507
+ # resp.cost_summary.service_cost_differences["String"].estimated_cost.currency #=> String, one of "USD"
1508
+ # resp.created_at #=> Time
1509
+ # resp.expires_at #=> Time
1510
+ #
1511
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/GetBillEstimate AWS API Documentation
1512
+ #
1513
+ # @overload get_bill_estimate(params = {})
1514
+ # @param [Hash] params ({})
1515
+ def get_bill_estimate(params = {}, options = {})
1516
+ req = build_request(:get_bill_estimate, params)
1517
+ req.send_request(options)
1518
+ end
1519
+
1520
+ # Retrieves details of a specific bill scenario.
1521
+ #
1522
+ # @option params [required, String] :identifier
1523
+ # The unique identifier of the bill scenario to retrieve.
1524
+ #
1525
+ # @return [Types::GetBillScenarioResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1526
+ #
1527
+ # * {Types::GetBillScenarioResponse#id #id} => String
1528
+ # * {Types::GetBillScenarioResponse#name #name} => String
1529
+ # * {Types::GetBillScenarioResponse#bill_interval #bill_interval} => Types::BillInterval
1530
+ # * {Types::GetBillScenarioResponse#status #status} => String
1531
+ # * {Types::GetBillScenarioResponse#created_at #created_at} => Time
1532
+ # * {Types::GetBillScenarioResponse#expires_at #expires_at} => Time
1533
+ # * {Types::GetBillScenarioResponse#failure_message #failure_message} => String
1534
+ #
1535
+ # @example Request syntax with placeholder values
1536
+ #
1537
+ # resp = client.get_bill_scenario({
1538
+ # identifier: "ResourceId", # required
1539
+ # })
1540
+ #
1541
+ # @example Response structure
1542
+ #
1543
+ # resp.id #=> String
1544
+ # resp.name #=> String
1545
+ # resp.bill_interval.start #=> Time
1546
+ # resp.bill_interval.end #=> Time
1547
+ # resp.status #=> String, one of "READY", "LOCKED", "FAILED"
1548
+ # resp.created_at #=> Time
1549
+ # resp.expires_at #=> Time
1550
+ # resp.failure_message #=> String
1551
+ #
1552
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/GetBillScenario AWS API Documentation
1553
+ #
1554
+ # @overload get_bill_scenario(params = {})
1555
+ # @param [Hash] params ({})
1556
+ def get_bill_scenario(params = {}, options = {})
1557
+ req = build_request(:get_bill_scenario, params)
1558
+ req.send_request(options)
1559
+ end
1560
+
1561
+ # Retrieves the current preferences for the Amazon Web Services Cost
1562
+ # Explorer service.
1563
+ #
1564
+ # @return [Types::GetPreferencesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1565
+ #
1566
+ # * {Types::GetPreferencesResponse#management_account_rate_type_selections #management_account_rate_type_selections} => Array&lt;String&gt;
1567
+ # * {Types::GetPreferencesResponse#member_account_rate_type_selections #member_account_rate_type_selections} => Array&lt;String&gt;
1568
+ #
1569
+ # @example Response structure
1570
+ #
1571
+ # resp.management_account_rate_type_selections #=> Array
1572
+ # resp.management_account_rate_type_selections[0] #=> String, one of "BEFORE_DISCOUNTS", "AFTER_DISCOUNTS"
1573
+ # resp.member_account_rate_type_selections #=> Array
1574
+ # resp.member_account_rate_type_selections[0] #=> String, one of "BEFORE_DISCOUNTS", "AFTER_DISCOUNTS"
1575
+ #
1576
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/GetPreferences AWS API Documentation
1577
+ #
1578
+ # @overload get_preferences(params = {})
1579
+ # @param [Hash] params ({})
1580
+ def get_preferences(params = {}, options = {})
1581
+ req = build_request(:get_preferences, params)
1582
+ req.send_request(options)
1583
+ end
1584
+
1585
+ # Retrieves details of a specific workload estimate.
1586
+ #
1587
+ # @option params [required, String] :identifier
1588
+ # The unique identifier of the workload estimate to retrieve.
1589
+ #
1590
+ # @return [Types::GetWorkloadEstimateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1591
+ #
1592
+ # * {Types::GetWorkloadEstimateResponse#id #id} => String
1593
+ # * {Types::GetWorkloadEstimateResponse#name #name} => String
1594
+ # * {Types::GetWorkloadEstimateResponse#created_at #created_at} => Time
1595
+ # * {Types::GetWorkloadEstimateResponse#expires_at #expires_at} => Time
1596
+ # * {Types::GetWorkloadEstimateResponse#rate_type #rate_type} => String
1597
+ # * {Types::GetWorkloadEstimateResponse#rate_timestamp #rate_timestamp} => Time
1598
+ # * {Types::GetWorkloadEstimateResponse#status #status} => String
1599
+ # * {Types::GetWorkloadEstimateResponse#total_cost #total_cost} => Float
1600
+ # * {Types::GetWorkloadEstimateResponse#cost_currency #cost_currency} => String
1601
+ # * {Types::GetWorkloadEstimateResponse#failure_message #failure_message} => String
1602
+ #
1603
+ # @example Request syntax with placeholder values
1604
+ #
1605
+ # resp = client.get_workload_estimate({
1606
+ # identifier: "ResourceId", # required
1607
+ # })
1608
+ #
1609
+ # @example Response structure
1610
+ #
1611
+ # resp.id #=> String
1612
+ # resp.name #=> String
1613
+ # resp.created_at #=> Time
1614
+ # resp.expires_at #=> Time
1615
+ # resp.rate_type #=> String, one of "BEFORE_DISCOUNTS", "AFTER_DISCOUNTS"
1616
+ # resp.rate_timestamp #=> Time
1617
+ # resp.status #=> String, one of "UPDATING", "VALID", "INVALID", "ACTION_NEEDED"
1618
+ # resp.total_cost #=> Float
1619
+ # resp.cost_currency #=> String, one of "USD"
1620
+ # resp.failure_message #=> String
1621
+ #
1622
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/GetWorkloadEstimate AWS API Documentation
1623
+ #
1624
+ # @overload get_workload_estimate(params = {})
1625
+ # @param [Hash] params ({})
1626
+ def get_workload_estimate(params = {}, options = {})
1627
+ req = build_request(:get_workload_estimate, params)
1628
+ req.send_request(options)
1629
+ end
1630
+
1631
+ # Lists the commitments associated with a bill estimate.
1632
+ #
1633
+ # @option params [required, String] :bill_estimate_id
1634
+ # The unique identifier of the bill estimate to list commitments for.
1635
+ #
1636
+ # @option params [String] :next_token
1637
+ # A token to retrieve the next page of results.
1638
+ #
1639
+ # @option params [Integer] :max_results
1640
+ # The maximum number of results to return per page.
1641
+ #
1642
+ # @return [Types::ListBillEstimateCommitmentsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1643
+ #
1644
+ # * {Types::ListBillEstimateCommitmentsResponse#items #items} => Array&lt;Types::BillEstimateCommitmentSummary&gt;
1645
+ # * {Types::ListBillEstimateCommitmentsResponse#next_token #next_token} => String
1646
+ #
1647
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1648
+ #
1649
+ # @example Request syntax with placeholder values
1650
+ #
1651
+ # resp = client.list_bill_estimate_commitments({
1652
+ # bill_estimate_id: "ResourceId", # required
1653
+ # next_token: "NextPageToken",
1654
+ # max_results: 1,
1655
+ # })
1656
+ #
1657
+ # @example Response structure
1658
+ #
1659
+ # resp.items #=> Array
1660
+ # resp.items[0].id #=> String
1661
+ # resp.items[0].purchase_agreement_type #=> String, one of "SAVINGS_PLANS", "RESERVED_INSTANCE"
1662
+ # resp.items[0].offering_id #=> String
1663
+ # resp.items[0].usage_account_id #=> String
1664
+ # resp.items[0].region #=> String
1665
+ # resp.items[0].term_length #=> String
1666
+ # resp.items[0].payment_option #=> String
1667
+ # resp.items[0].upfront_payment.amount #=> Float
1668
+ # resp.items[0].upfront_payment.currency #=> String, one of "USD"
1669
+ # resp.items[0].monthly_payment.amount #=> Float
1670
+ # resp.items[0].monthly_payment.currency #=> String, one of "USD"
1671
+ # resp.next_token #=> String
1672
+ #
1673
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/ListBillEstimateCommitments AWS API Documentation
1674
+ #
1675
+ # @overload list_bill_estimate_commitments(params = {})
1676
+ # @param [Hash] params ({})
1677
+ def list_bill_estimate_commitments(params = {}, options = {})
1678
+ req = build_request(:list_bill_estimate_commitments, params)
1679
+ req.send_request(options)
1680
+ end
1681
+
1682
+ # Lists the input commitment modifications associated with a bill
1683
+ # estimate.
1684
+ #
1685
+ # @option params [required, String] :bill_estimate_id
1686
+ # The unique identifier of the bill estimate to list input commitment
1687
+ # modifications for.
1688
+ #
1689
+ # @option params [String] :next_token
1690
+ # A token to retrieve the next page of results.
1691
+ #
1692
+ # @option params [Integer] :max_results
1693
+ # The maximum number of results to return per page.
1694
+ #
1695
+ # @return [Types::ListBillEstimateInputCommitmentModificationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1696
+ #
1697
+ # * {Types::ListBillEstimateInputCommitmentModificationsResponse#items #items} => Array&lt;Types::BillEstimateInputCommitmentModificationSummary&gt;
1698
+ # * {Types::ListBillEstimateInputCommitmentModificationsResponse#next_token #next_token} => String
1699
+ #
1700
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1701
+ #
1702
+ # @example Request syntax with placeholder values
1703
+ #
1704
+ # resp = client.list_bill_estimate_input_commitment_modifications({
1705
+ # bill_estimate_id: "ResourceId", # required
1706
+ # next_token: "NextPageToken",
1707
+ # max_results: 1,
1708
+ # })
1709
+ #
1710
+ # @example Response structure
1711
+ #
1712
+ # resp.items #=> Array
1713
+ # resp.items[0].id #=> String
1714
+ # resp.items[0].group #=> String
1715
+ # resp.items[0].usage_account_id #=> String
1716
+ # resp.items[0].commitment_action.add_reserved_instance_action.reserved_instances_offering_id #=> String
1717
+ # resp.items[0].commitment_action.add_reserved_instance_action.instance_count #=> Integer
1718
+ # resp.items[0].commitment_action.add_savings_plan_action.savings_plan_offering_id #=> String
1719
+ # resp.items[0].commitment_action.add_savings_plan_action.commitment #=> Float
1720
+ # resp.items[0].commitment_action.negate_reserved_instance_action.reserved_instances_id #=> String
1721
+ # resp.items[0].commitment_action.negate_savings_plan_action.savings_plan_id #=> String
1722
+ # resp.next_token #=> String
1723
+ #
1724
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/ListBillEstimateInputCommitmentModifications AWS API Documentation
1725
+ #
1726
+ # @overload list_bill_estimate_input_commitment_modifications(params = {})
1727
+ # @param [Hash] params ({})
1728
+ def list_bill_estimate_input_commitment_modifications(params = {}, options = {})
1729
+ req = build_request(:list_bill_estimate_input_commitment_modifications, params)
1730
+ req.send_request(options)
1731
+ end
1732
+
1733
+ # Lists the input usage modifications associated with a bill estimate.
1734
+ #
1735
+ # @option params [required, String] :bill_estimate_id
1736
+ # The unique identifier of the bill estimate to list input usage
1737
+ # modifications for.
1738
+ #
1739
+ # @option params [Array<Types::ListUsageFilter>] :filters
1740
+ # Filters to apply to the list of input usage modifications.
1741
+ #
1742
+ # @option params [String] :next_token
1743
+ # A token to retrieve the next page of results.
1744
+ #
1745
+ # @option params [Integer] :max_results
1746
+ # The maximum number of results to return per page.
1747
+ #
1748
+ # @return [Types::ListBillEstimateInputUsageModificationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1749
+ #
1750
+ # * {Types::ListBillEstimateInputUsageModificationsResponse#items #items} => Array&lt;Types::BillEstimateInputUsageModificationSummary&gt;
1751
+ # * {Types::ListBillEstimateInputUsageModificationsResponse#next_token #next_token} => String
1752
+ #
1753
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1754
+ #
1755
+ # @example Request syntax with placeholder values
1756
+ #
1757
+ # resp = client.list_bill_estimate_input_usage_modifications({
1758
+ # bill_estimate_id: "ResourceId", # required
1759
+ # filters: [
1760
+ # {
1761
+ # name: "USAGE_ACCOUNT_ID", # required, accepts USAGE_ACCOUNT_ID, SERVICE_CODE, USAGE_TYPE, OPERATION, LOCATION, USAGE_GROUP, HISTORICAL_USAGE_ACCOUNT_ID, HISTORICAL_SERVICE_CODE, HISTORICAL_USAGE_TYPE, HISTORICAL_OPERATION, HISTORICAL_LOCATION
1762
+ # values: ["String"], # required
1763
+ # match_option: "EQUALS", # accepts EQUALS, STARTS_WITH, CONTAINS
1764
+ # },
1765
+ # ],
1766
+ # next_token: "NextPageToken",
1767
+ # max_results: 1,
1768
+ # })
1769
+ #
1770
+ # @example Response structure
1771
+ #
1772
+ # resp.items #=> Array
1773
+ # resp.items[0].service_code #=> String
1774
+ # resp.items[0].usage_type #=> String
1775
+ # resp.items[0].operation #=> String
1776
+ # resp.items[0].location #=> String
1777
+ # resp.items[0].availability_zone #=> String
1778
+ # resp.items[0].id #=> String
1779
+ # resp.items[0].group #=> String
1780
+ # resp.items[0].usage_account_id #=> String
1781
+ # resp.items[0].quantities #=> Array
1782
+ # resp.items[0].quantities[0].start_hour #=> Time
1783
+ # resp.items[0].quantities[0].unit #=> String
1784
+ # resp.items[0].quantities[0].amount #=> Float
1785
+ # resp.items[0].historical_usage.service_code #=> String
1786
+ # resp.items[0].historical_usage.usage_type #=> String
1787
+ # resp.items[0].historical_usage.operation #=> String
1788
+ # resp.items[0].historical_usage.location #=> String
1789
+ # resp.items[0].historical_usage.usage_account_id #=> String
1790
+ # resp.items[0].historical_usage.bill_interval.start #=> Time
1791
+ # resp.items[0].historical_usage.bill_interval.end #=> Time
1792
+ # resp.items[0].historical_usage.filter_expression.and #=> Array
1793
+ # resp.items[0].historical_usage.filter_expression.and[0] #=> Types::Expression
1794
+ # resp.items[0].historical_usage.filter_expression.or #=> Array
1795
+ # resp.items[0].historical_usage.filter_expression.or[0] #=> Types::Expression
1796
+ # resp.items[0].historical_usage.filter_expression.not #=> Types::Expression
1797
+ # resp.items[0].historical_usage.filter_expression.cost_categories.key #=> String
1798
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options #=> Array
1799
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options[0] #=> String
1800
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values #=> Array
1801
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values[0] #=> String
1802
+ # resp.items[0].historical_usage.filter_expression.dimensions.key #=> String
1803
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options #=> Array
1804
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options[0] #=> String
1805
+ # resp.items[0].historical_usage.filter_expression.dimensions.values #=> Array
1806
+ # resp.items[0].historical_usage.filter_expression.dimensions.values[0] #=> String
1807
+ # resp.items[0].historical_usage.filter_expression.tags.key #=> String
1808
+ # resp.items[0].historical_usage.filter_expression.tags.match_options #=> Array
1809
+ # resp.items[0].historical_usage.filter_expression.tags.match_options[0] #=> String
1810
+ # resp.items[0].historical_usage.filter_expression.tags.values #=> Array
1811
+ # resp.items[0].historical_usage.filter_expression.tags.values[0] #=> String
1812
+ # resp.next_token #=> String
1813
+ #
1814
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/ListBillEstimateInputUsageModifications AWS API Documentation
1815
+ #
1816
+ # @overload list_bill_estimate_input_usage_modifications(params = {})
1817
+ # @param [Hash] params ({})
1818
+ def list_bill_estimate_input_usage_modifications(params = {}, options = {})
1819
+ req = build_request(:list_bill_estimate_input_usage_modifications, params)
1820
+ req.send_request(options)
1821
+ end
1822
+
1823
+ # Lists the line items associated with a bill estimate.
1824
+ #
1825
+ # @option params [required, String] :bill_estimate_id
1826
+ # The unique identifier of the bill estimate to list line items for.
1827
+ #
1828
+ # @option params [Array<Types::ListBillEstimateLineItemsFilter>] :filters
1829
+ # Filters to apply to the list of line items.
1830
+ #
1831
+ # @option params [String] :next_token
1832
+ # A token to retrieve the next page of results.
1833
+ #
1834
+ # @option params [Integer] :max_results
1835
+ # The maximum number of results to return per page.
1836
+ #
1837
+ # @return [Types::ListBillEstimateLineItemsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1838
+ #
1839
+ # * {Types::ListBillEstimateLineItemsResponse#items #items} => Array&lt;Types::BillEstimateLineItemSummary&gt;
1840
+ # * {Types::ListBillEstimateLineItemsResponse#next_token #next_token} => String
1841
+ #
1842
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1843
+ #
1844
+ # @example Request syntax with placeholder values
1845
+ #
1846
+ # resp = client.list_bill_estimate_line_items({
1847
+ # bill_estimate_id: "ResourceId", # required
1848
+ # filters: [
1849
+ # {
1850
+ # name: "USAGE_ACCOUNT_ID", # required, accepts USAGE_ACCOUNT_ID, SERVICE_CODE, USAGE_TYPE, OPERATION, LOCATION, LINE_ITEM_TYPE
1851
+ # values: ["String"], # required
1852
+ # match_option: "EQUALS", # accepts EQUALS, STARTS_WITH, CONTAINS
1853
+ # },
1854
+ # ],
1855
+ # next_token: "NextPageToken",
1856
+ # max_results: 1,
1857
+ # })
1858
+ #
1859
+ # @example Response structure
1860
+ #
1861
+ # resp.items #=> Array
1862
+ # resp.items[0].service_code #=> String
1863
+ # resp.items[0].usage_type #=> String
1864
+ # resp.items[0].operation #=> String
1865
+ # resp.items[0].location #=> String
1866
+ # resp.items[0].availability_zone #=> String
1867
+ # resp.items[0].id #=> String
1868
+ # resp.items[0].line_item_id #=> String
1869
+ # resp.items[0].line_item_type #=> String
1870
+ # resp.items[0].payer_account_id #=> String
1871
+ # resp.items[0].usage_account_id #=> String
1872
+ # resp.items[0].estimated_usage_quantity.amount #=> Float
1873
+ # resp.items[0].estimated_usage_quantity.unit #=> String
1874
+ # resp.items[0].estimated_cost.amount #=> Float
1875
+ # resp.items[0].estimated_cost.currency #=> String, one of "USD"
1876
+ # resp.items[0].historical_usage_quantity.amount #=> Float
1877
+ # resp.items[0].historical_usage_quantity.unit #=> String
1878
+ # resp.items[0].historical_cost.amount #=> Float
1879
+ # resp.items[0].historical_cost.currency #=> String, one of "USD"
1880
+ # resp.items[0].savings_plan_arns #=> Array
1881
+ # resp.items[0].savings_plan_arns[0] #=> String
1882
+ # resp.next_token #=> String
1883
+ #
1884
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/ListBillEstimateLineItems AWS API Documentation
1885
+ #
1886
+ # @overload list_bill_estimate_line_items(params = {})
1887
+ # @param [Hash] params ({})
1888
+ def list_bill_estimate_line_items(params = {}, options = {})
1889
+ req = build_request(:list_bill_estimate_line_items, params)
1890
+ req.send_request(options)
1891
+ end
1892
+
1893
+ # Lists all bill estimates for the account.
1894
+ #
1895
+ # @option params [Array<Types::ListBillEstimatesFilter>] :filters
1896
+ # Filters to apply to the list of bill estimates.
1897
+ #
1898
+ # @option params [Types::FilterTimestamp] :created_at_filter
1899
+ # Filter bill estimates based on their creation date.
1900
+ #
1901
+ # @option params [Types::FilterTimestamp] :expires_at_filter
1902
+ # Filter bill estimates based on their expiration date.
1903
+ #
1904
+ # @option params [String] :next_token
1905
+ # A token to retrieve the next page of results.
1906
+ #
1907
+ # @option params [Integer] :max_results
1908
+ # The maximum number of results to return per page.
1909
+ #
1910
+ # @return [Types::ListBillEstimatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1911
+ #
1912
+ # * {Types::ListBillEstimatesResponse#items #items} => Array&lt;Types::BillEstimateSummary&gt;
1913
+ # * {Types::ListBillEstimatesResponse#next_token #next_token} => String
1914
+ #
1915
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1916
+ #
1917
+ # @example Request syntax with placeholder values
1918
+ #
1919
+ # resp = client.list_bill_estimates({
1920
+ # filters: [
1921
+ # {
1922
+ # name: "STATUS", # required, accepts STATUS, NAME
1923
+ # values: ["String"], # required
1924
+ # match_option: "EQUALS", # accepts EQUALS, STARTS_WITH, CONTAINS
1925
+ # },
1926
+ # ],
1927
+ # created_at_filter: {
1928
+ # after_timestamp: Time.now,
1929
+ # before_timestamp: Time.now,
1930
+ # },
1931
+ # expires_at_filter: {
1932
+ # after_timestamp: Time.now,
1933
+ # before_timestamp: Time.now,
1934
+ # },
1935
+ # next_token: "NextPageToken",
1936
+ # max_results: 1,
1937
+ # })
1938
+ #
1939
+ # @example Response structure
1940
+ #
1941
+ # resp.items #=> Array
1942
+ # resp.items[0].id #=> String
1943
+ # resp.items[0].name #=> String
1944
+ # resp.items[0].status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED"
1945
+ # resp.items[0].bill_interval.start #=> Time
1946
+ # resp.items[0].bill_interval.end #=> Time
1947
+ # resp.items[0].created_at #=> Time
1948
+ # resp.items[0].expires_at #=> Time
1949
+ # resp.next_token #=> String
1950
+ #
1951
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/ListBillEstimates AWS API Documentation
1952
+ #
1953
+ # @overload list_bill_estimates(params = {})
1954
+ # @param [Hash] params ({})
1955
+ def list_bill_estimates(params = {}, options = {})
1956
+ req = build_request(:list_bill_estimates, params)
1957
+ req.send_request(options)
1958
+ end
1959
+
1960
+ # Lists the commitment modifications associated with a bill scenario.
1961
+ #
1962
+ # @option params [required, String] :bill_scenario_id
1963
+ # The unique identifier of the bill scenario to list commitment
1964
+ # modifications for.
1965
+ #
1966
+ # @option params [String] :next_token
1967
+ # A token to retrieve the next page of results.
1968
+ #
1969
+ # @option params [Integer] :max_results
1970
+ # The maximum number of results to return per page.
1971
+ #
1972
+ # @return [Types::ListBillScenarioCommitmentModificationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1973
+ #
1974
+ # * {Types::ListBillScenarioCommitmentModificationsResponse#items #items} => Array&lt;Types::BillScenarioCommitmentModificationItem&gt;
1975
+ # * {Types::ListBillScenarioCommitmentModificationsResponse#next_token #next_token} => String
1976
+ #
1977
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1978
+ #
1979
+ # @example Request syntax with placeholder values
1980
+ #
1981
+ # resp = client.list_bill_scenario_commitment_modifications({
1982
+ # bill_scenario_id: "ResourceId", # required
1983
+ # next_token: "NextPageToken",
1984
+ # max_results: 1,
1985
+ # })
1986
+ #
1987
+ # @example Response structure
1988
+ #
1989
+ # resp.items #=> Array
1990
+ # resp.items[0].id #=> String
1991
+ # resp.items[0].usage_account_id #=> String
1992
+ # resp.items[0].group #=> String
1993
+ # resp.items[0].commitment_action.add_reserved_instance_action.reserved_instances_offering_id #=> String
1994
+ # resp.items[0].commitment_action.add_reserved_instance_action.instance_count #=> Integer
1995
+ # resp.items[0].commitment_action.add_savings_plan_action.savings_plan_offering_id #=> String
1996
+ # resp.items[0].commitment_action.add_savings_plan_action.commitment #=> Float
1997
+ # resp.items[0].commitment_action.negate_reserved_instance_action.reserved_instances_id #=> String
1998
+ # resp.items[0].commitment_action.negate_savings_plan_action.savings_plan_id #=> String
1999
+ # resp.next_token #=> String
2000
+ #
2001
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/ListBillScenarioCommitmentModifications AWS API Documentation
2002
+ #
2003
+ # @overload list_bill_scenario_commitment_modifications(params = {})
2004
+ # @param [Hash] params ({})
2005
+ def list_bill_scenario_commitment_modifications(params = {}, options = {})
2006
+ req = build_request(:list_bill_scenario_commitment_modifications, params)
2007
+ req.send_request(options)
2008
+ end
2009
+
2010
+ # Lists the usage modifications associated with a bill scenario.
2011
+ #
2012
+ # @option params [required, String] :bill_scenario_id
2013
+ # The unique identifier of the bill scenario to list usage modifications
2014
+ # for.
2015
+ #
2016
+ # @option params [Array<Types::ListUsageFilter>] :filters
2017
+ # Filters to apply to the list of usage modifications.
2018
+ #
2019
+ # @option params [String] :next_token
2020
+ # A token to retrieve the next page of results.
2021
+ #
2022
+ # @option params [Integer] :max_results
2023
+ # The maximum number of results to return per page.
2024
+ #
2025
+ # @return [Types::ListBillScenarioUsageModificationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2026
+ #
2027
+ # * {Types::ListBillScenarioUsageModificationsResponse#items #items} => Array&lt;Types::BillScenarioUsageModificationItem&gt;
2028
+ # * {Types::ListBillScenarioUsageModificationsResponse#next_token #next_token} => String
2029
+ #
2030
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2031
+ #
2032
+ # @example Request syntax with placeholder values
2033
+ #
2034
+ # resp = client.list_bill_scenario_usage_modifications({
2035
+ # bill_scenario_id: "ResourceId", # required
2036
+ # filters: [
2037
+ # {
2038
+ # name: "USAGE_ACCOUNT_ID", # required, accepts USAGE_ACCOUNT_ID, SERVICE_CODE, USAGE_TYPE, OPERATION, LOCATION, USAGE_GROUP, HISTORICAL_USAGE_ACCOUNT_ID, HISTORICAL_SERVICE_CODE, HISTORICAL_USAGE_TYPE, HISTORICAL_OPERATION, HISTORICAL_LOCATION
2039
+ # values: ["String"], # required
2040
+ # match_option: "EQUALS", # accepts EQUALS, STARTS_WITH, CONTAINS
2041
+ # },
2042
+ # ],
2043
+ # next_token: "NextPageToken",
2044
+ # max_results: 1,
2045
+ # })
2046
+ #
2047
+ # @example Response structure
2048
+ #
2049
+ # resp.items #=> Array
2050
+ # resp.items[0].service_code #=> String
2051
+ # resp.items[0].usage_type #=> String
2052
+ # resp.items[0].operation #=> String
2053
+ # resp.items[0].location #=> String
2054
+ # resp.items[0].availability_zone #=> String
2055
+ # resp.items[0].id #=> String
2056
+ # resp.items[0].group #=> String
2057
+ # resp.items[0].usage_account_id #=> String
2058
+ # resp.items[0].quantities #=> Array
2059
+ # resp.items[0].quantities[0].start_hour #=> Time
2060
+ # resp.items[0].quantities[0].unit #=> String
2061
+ # resp.items[0].quantities[0].amount #=> Float
2062
+ # resp.items[0].historical_usage.service_code #=> String
2063
+ # resp.items[0].historical_usage.usage_type #=> String
2064
+ # resp.items[0].historical_usage.operation #=> String
2065
+ # resp.items[0].historical_usage.location #=> String
2066
+ # resp.items[0].historical_usage.usage_account_id #=> String
2067
+ # resp.items[0].historical_usage.bill_interval.start #=> Time
2068
+ # resp.items[0].historical_usage.bill_interval.end #=> Time
2069
+ # resp.items[0].historical_usage.filter_expression.and #=> Array
2070
+ # resp.items[0].historical_usage.filter_expression.and[0] #=> Types::Expression
2071
+ # resp.items[0].historical_usage.filter_expression.or #=> Array
2072
+ # resp.items[0].historical_usage.filter_expression.or[0] #=> Types::Expression
2073
+ # resp.items[0].historical_usage.filter_expression.not #=> Types::Expression
2074
+ # resp.items[0].historical_usage.filter_expression.cost_categories.key #=> String
2075
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options #=> Array
2076
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options[0] #=> String
2077
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values #=> Array
2078
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values[0] #=> String
2079
+ # resp.items[0].historical_usage.filter_expression.dimensions.key #=> String
2080
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options #=> Array
2081
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options[0] #=> String
2082
+ # resp.items[0].historical_usage.filter_expression.dimensions.values #=> Array
2083
+ # resp.items[0].historical_usage.filter_expression.dimensions.values[0] #=> String
2084
+ # resp.items[0].historical_usage.filter_expression.tags.key #=> String
2085
+ # resp.items[0].historical_usage.filter_expression.tags.match_options #=> Array
2086
+ # resp.items[0].historical_usage.filter_expression.tags.match_options[0] #=> String
2087
+ # resp.items[0].historical_usage.filter_expression.tags.values #=> Array
2088
+ # resp.items[0].historical_usage.filter_expression.tags.values[0] #=> String
2089
+ # resp.next_token #=> String
2090
+ #
2091
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/ListBillScenarioUsageModifications AWS API Documentation
2092
+ #
2093
+ # @overload list_bill_scenario_usage_modifications(params = {})
2094
+ # @param [Hash] params ({})
2095
+ def list_bill_scenario_usage_modifications(params = {}, options = {})
2096
+ req = build_request(:list_bill_scenario_usage_modifications, params)
2097
+ req.send_request(options)
2098
+ end
2099
+
2100
+ # Lists all bill scenarios for the account.
2101
+ #
2102
+ # @option params [Array<Types::ListBillScenariosFilter>] :filters
2103
+ # Filters to apply to the list of bill scenarios.
2104
+ #
2105
+ # @option params [Types::FilterTimestamp] :created_at_filter
2106
+ # Filter bill scenarios based on their creation date.
2107
+ #
2108
+ # @option params [Types::FilterTimestamp] :expires_at_filter
2109
+ # Filter bill scenarios based on their expiration date.
2110
+ #
2111
+ # @option params [String] :next_token
2112
+ # A token to retrieve the next page of results.
2113
+ #
2114
+ # @option params [Integer] :max_results
2115
+ # The maximum number of results to return per page.
2116
+ #
2117
+ # @return [Types::ListBillScenariosResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2118
+ #
2119
+ # * {Types::ListBillScenariosResponse#items #items} => Array&lt;Types::BillScenarioSummary&gt;
2120
+ # * {Types::ListBillScenariosResponse#next_token #next_token} => String
2121
+ #
2122
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2123
+ #
2124
+ # @example Request syntax with placeholder values
2125
+ #
2126
+ # resp = client.list_bill_scenarios({
2127
+ # filters: [
2128
+ # {
2129
+ # name: "STATUS", # required, accepts STATUS, NAME
2130
+ # values: ["String"], # required
2131
+ # match_option: "EQUALS", # accepts EQUALS, STARTS_WITH, CONTAINS
2132
+ # },
2133
+ # ],
2134
+ # created_at_filter: {
2135
+ # after_timestamp: Time.now,
2136
+ # before_timestamp: Time.now,
2137
+ # },
2138
+ # expires_at_filter: {
2139
+ # after_timestamp: Time.now,
2140
+ # before_timestamp: Time.now,
2141
+ # },
2142
+ # next_token: "NextPageToken",
2143
+ # max_results: 1,
2144
+ # })
2145
+ #
2146
+ # @example Response structure
2147
+ #
2148
+ # resp.items #=> Array
2149
+ # resp.items[0].id #=> String
2150
+ # resp.items[0].name #=> String
2151
+ # resp.items[0].bill_interval.start #=> Time
2152
+ # resp.items[0].bill_interval.end #=> Time
2153
+ # resp.items[0].status #=> String, one of "READY", "LOCKED", "FAILED"
2154
+ # resp.items[0].created_at #=> Time
2155
+ # resp.items[0].expires_at #=> Time
2156
+ # resp.items[0].failure_message #=> String
2157
+ # resp.next_token #=> String
2158
+ #
2159
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/ListBillScenarios AWS API Documentation
2160
+ #
2161
+ # @overload list_bill_scenarios(params = {})
2162
+ # @param [Hash] params ({})
2163
+ def list_bill_scenarios(params = {}, options = {})
2164
+ req = build_request(:list_bill_scenarios, params)
2165
+ req.send_request(options)
2166
+ end
2167
+
2168
+ # Lists all tags associated with a specified resource.
2169
+ #
2170
+ # @option params [required, String] :arn
2171
+ # The Amazon Resource Name (ARN) of the resource to list tags for.
2172
+ #
2173
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2174
+ #
2175
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
2176
+ #
2177
+ # @example Request syntax with placeholder values
2178
+ #
2179
+ # resp = client.list_tags_for_resource({
2180
+ # arn: "Arn", # required
2181
+ # })
2182
+ #
2183
+ # @example Response structure
2184
+ #
2185
+ # resp.tags #=> Hash
2186
+ # resp.tags["ResourceTagKey"] #=> String
2187
+ #
2188
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/ListTagsForResource AWS API Documentation
2189
+ #
2190
+ # @overload list_tags_for_resource(params = {})
2191
+ # @param [Hash] params ({})
2192
+ def list_tags_for_resource(params = {}, options = {})
2193
+ req = build_request(:list_tags_for_resource, params)
2194
+ req.send_request(options)
2195
+ end
2196
+
2197
+ # Lists the usage associated with a workload estimate.
2198
+ #
2199
+ # @option params [required, String] :workload_estimate_id
2200
+ # The unique identifier of the workload estimate to list usage for.
2201
+ #
2202
+ # @option params [Array<Types::ListUsageFilter>] :filters
2203
+ # Filters to apply to the list of usage items.
2204
+ #
2205
+ # @option params [String] :next_token
2206
+ # A token to retrieve the next page of results.
2207
+ #
2208
+ # @option params [Integer] :max_results
2209
+ # The maximum number of results to return per page.
2210
+ #
2211
+ # @return [Types::ListWorkloadEstimateUsageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2212
+ #
2213
+ # * {Types::ListWorkloadEstimateUsageResponse#items #items} => Array&lt;Types::WorkloadEstimateUsageItem&gt;
2214
+ # * {Types::ListWorkloadEstimateUsageResponse#next_token #next_token} => String
2215
+ #
2216
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2217
+ #
2218
+ # @example Request syntax with placeholder values
2219
+ #
2220
+ # resp = client.list_workload_estimate_usage({
2221
+ # workload_estimate_id: "ResourceId", # required
2222
+ # filters: [
2223
+ # {
2224
+ # name: "USAGE_ACCOUNT_ID", # required, accepts USAGE_ACCOUNT_ID, SERVICE_CODE, USAGE_TYPE, OPERATION, LOCATION, USAGE_GROUP, HISTORICAL_USAGE_ACCOUNT_ID, HISTORICAL_SERVICE_CODE, HISTORICAL_USAGE_TYPE, HISTORICAL_OPERATION, HISTORICAL_LOCATION
2225
+ # values: ["String"], # required
2226
+ # match_option: "EQUALS", # accepts EQUALS, STARTS_WITH, CONTAINS
2227
+ # },
2228
+ # ],
2229
+ # next_token: "NextPageToken",
2230
+ # max_results: 1,
2231
+ # })
2232
+ #
2233
+ # @example Response structure
2234
+ #
2235
+ # resp.items #=> Array
2236
+ # resp.items[0].service_code #=> String
2237
+ # resp.items[0].usage_type #=> String
2238
+ # resp.items[0].operation #=> String
2239
+ # resp.items[0].location #=> String
2240
+ # resp.items[0].id #=> String
2241
+ # resp.items[0].usage_account_id #=> String
2242
+ # resp.items[0].group #=> String
2243
+ # resp.items[0].quantity.unit #=> String
2244
+ # resp.items[0].quantity.amount #=> Float
2245
+ # resp.items[0].cost #=> Float
2246
+ # resp.items[0].currency #=> String, one of "USD"
2247
+ # resp.items[0].status #=> String, one of "VALID", "INVALID", "STALE"
2248
+ # resp.items[0].historical_usage.service_code #=> String
2249
+ # resp.items[0].historical_usage.usage_type #=> String
2250
+ # resp.items[0].historical_usage.operation #=> String
2251
+ # resp.items[0].historical_usage.location #=> String
2252
+ # resp.items[0].historical_usage.usage_account_id #=> String
2253
+ # resp.items[0].historical_usage.bill_interval.start #=> Time
2254
+ # resp.items[0].historical_usage.bill_interval.end #=> Time
2255
+ # resp.items[0].historical_usage.filter_expression.and #=> Array
2256
+ # resp.items[0].historical_usage.filter_expression.and[0] #=> Types::Expression
2257
+ # resp.items[0].historical_usage.filter_expression.or #=> Array
2258
+ # resp.items[0].historical_usage.filter_expression.or[0] #=> Types::Expression
2259
+ # resp.items[0].historical_usage.filter_expression.not #=> Types::Expression
2260
+ # resp.items[0].historical_usage.filter_expression.cost_categories.key #=> String
2261
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options #=> Array
2262
+ # resp.items[0].historical_usage.filter_expression.cost_categories.match_options[0] #=> String
2263
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values #=> Array
2264
+ # resp.items[0].historical_usage.filter_expression.cost_categories.values[0] #=> String
2265
+ # resp.items[0].historical_usage.filter_expression.dimensions.key #=> String
2266
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options #=> Array
2267
+ # resp.items[0].historical_usage.filter_expression.dimensions.match_options[0] #=> String
2268
+ # resp.items[0].historical_usage.filter_expression.dimensions.values #=> Array
2269
+ # resp.items[0].historical_usage.filter_expression.dimensions.values[0] #=> String
2270
+ # resp.items[0].historical_usage.filter_expression.tags.key #=> String
2271
+ # resp.items[0].historical_usage.filter_expression.tags.match_options #=> Array
2272
+ # resp.items[0].historical_usage.filter_expression.tags.match_options[0] #=> String
2273
+ # resp.items[0].historical_usage.filter_expression.tags.values #=> Array
2274
+ # resp.items[0].historical_usage.filter_expression.tags.values[0] #=> String
2275
+ # resp.next_token #=> String
2276
+ #
2277
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/ListWorkloadEstimateUsage AWS API Documentation
2278
+ #
2279
+ # @overload list_workload_estimate_usage(params = {})
2280
+ # @param [Hash] params ({})
2281
+ def list_workload_estimate_usage(params = {}, options = {})
2282
+ req = build_request(:list_workload_estimate_usage, params)
2283
+ req.send_request(options)
2284
+ end
2285
+
2286
+ # Lists all workload estimates for the account.
2287
+ #
2288
+ # @option params [Types::FilterTimestamp] :created_at_filter
2289
+ # Filter workload estimates based on their creation date.
2290
+ #
2291
+ # @option params [Types::FilterTimestamp] :expires_at_filter
2292
+ # Filter workload estimates based on their expiration date.
2293
+ #
2294
+ # @option params [Array<Types::ListWorkloadEstimatesFilter>] :filters
2295
+ # Filters to apply to the list of workload estimates.
2296
+ #
2297
+ # @option params [String] :next_token
2298
+ # A token to retrieve the next page of results.
2299
+ #
2300
+ # @option params [Integer] :max_results
2301
+ # The maximum number of results to return per page.
2302
+ #
2303
+ # @return [Types::ListWorkloadEstimatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2304
+ #
2305
+ # * {Types::ListWorkloadEstimatesResponse#items #items} => Array&lt;Types::WorkloadEstimateSummary&gt;
2306
+ # * {Types::ListWorkloadEstimatesResponse#next_token #next_token} => String
2307
+ #
2308
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2309
+ #
2310
+ # @example Request syntax with placeholder values
2311
+ #
2312
+ # resp = client.list_workload_estimates({
2313
+ # created_at_filter: {
2314
+ # after_timestamp: Time.now,
2315
+ # before_timestamp: Time.now,
2316
+ # },
2317
+ # expires_at_filter: {
2318
+ # after_timestamp: Time.now,
2319
+ # before_timestamp: Time.now,
2320
+ # },
2321
+ # filters: [
2322
+ # {
2323
+ # name: "STATUS", # required, accepts STATUS, NAME
2324
+ # values: ["String"], # required
2325
+ # match_option: "EQUALS", # accepts EQUALS, STARTS_WITH, CONTAINS
2326
+ # },
2327
+ # ],
2328
+ # next_token: "NextPageToken",
2329
+ # max_results: 1,
2330
+ # })
2331
+ #
2332
+ # @example Response structure
2333
+ #
2334
+ # resp.items #=> Array
2335
+ # resp.items[0].id #=> String
2336
+ # resp.items[0].name #=> String
2337
+ # resp.items[0].created_at #=> Time
2338
+ # resp.items[0].expires_at #=> Time
2339
+ # resp.items[0].rate_type #=> String, one of "BEFORE_DISCOUNTS", "AFTER_DISCOUNTS"
2340
+ # resp.items[0].rate_timestamp #=> Time
2341
+ # resp.items[0].status #=> String, one of "UPDATING", "VALID", "INVALID", "ACTION_NEEDED"
2342
+ # resp.items[0].total_cost #=> Float
2343
+ # resp.items[0].cost_currency #=> String, one of "USD"
2344
+ # resp.items[0].failure_message #=> String
2345
+ # resp.next_token #=> String
2346
+ #
2347
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/ListWorkloadEstimates AWS API Documentation
2348
+ #
2349
+ # @overload list_workload_estimates(params = {})
2350
+ # @param [Hash] params ({})
2351
+ def list_workload_estimates(params = {}, options = {})
2352
+ req = build_request(:list_workload_estimates, params)
2353
+ req.send_request(options)
2354
+ end
2355
+
2356
+ # Adds one or more tags to a specified resource.
2357
+ #
2358
+ # @option params [required, String] :arn
2359
+ # The Amazon Resource Name (ARN) of the resource to add tags to.
2360
+ #
2361
+ # @option params [required, Hash<String,String>] :tags
2362
+ # The tags to add to the resource.
2363
+ #
2364
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2365
+ #
2366
+ # @example Request syntax with placeholder values
2367
+ #
2368
+ # resp = client.tag_resource({
2369
+ # arn: "Arn", # required
2370
+ # tags: { # required
2371
+ # "ResourceTagKey" => "ResourceTagValue",
2372
+ # },
2373
+ # })
2374
+ #
2375
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/TagResource AWS API Documentation
2376
+ #
2377
+ # @overload tag_resource(params = {})
2378
+ # @param [Hash] params ({})
2379
+ def tag_resource(params = {}, options = {})
2380
+ req = build_request(:tag_resource, params)
2381
+ req.send_request(options)
2382
+ end
2383
+
2384
+ # Removes one or more tags from a specified resource.
2385
+ #
2386
+ # @option params [required, String] :arn
2387
+ # The Amazon Resource Name (ARN) of the resource to remove tags from.
2388
+ #
2389
+ # @option params [required, Array<String>] :tag_keys
2390
+ # The keys of the tags to remove from the resource.
2391
+ #
2392
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2393
+ #
2394
+ # @example Request syntax with placeholder values
2395
+ #
2396
+ # resp = client.untag_resource({
2397
+ # arn: "Arn", # required
2398
+ # tag_keys: ["ResourceTagKey"], # required
2399
+ # })
2400
+ #
2401
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/UntagResource AWS API Documentation
2402
+ #
2403
+ # @overload untag_resource(params = {})
2404
+ # @param [Hash] params ({})
2405
+ def untag_resource(params = {}, options = {})
2406
+ req = build_request(:untag_resource, params)
2407
+ req.send_request(options)
2408
+ end
2409
+
2410
+ # Updates an existing bill estimate.
2411
+ #
2412
+ # @option params [required, String] :identifier
2413
+ # The unique identifier of the bill estimate to update.
2414
+ #
2415
+ # @option params [String] :name
2416
+ # The new name for the bill estimate.
2417
+ #
2418
+ # @option params [Time,DateTime,Date,Integer,String] :expires_at
2419
+ # The new expiration date for the bill estimate.
2420
+ #
2421
+ # @return [Types::UpdateBillEstimateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2422
+ #
2423
+ # * {Types::UpdateBillEstimateResponse#id #id} => String
2424
+ # * {Types::UpdateBillEstimateResponse#name #name} => String
2425
+ # * {Types::UpdateBillEstimateResponse#status #status} => String
2426
+ # * {Types::UpdateBillEstimateResponse#failure_message #failure_message} => String
2427
+ # * {Types::UpdateBillEstimateResponse#bill_interval #bill_interval} => Types::BillInterval
2428
+ # * {Types::UpdateBillEstimateResponse#cost_summary #cost_summary} => Types::BillEstimateCostSummary
2429
+ # * {Types::UpdateBillEstimateResponse#created_at #created_at} => Time
2430
+ # * {Types::UpdateBillEstimateResponse#expires_at #expires_at} => Time
2431
+ #
2432
+ # @example Request syntax with placeholder values
2433
+ #
2434
+ # resp = client.update_bill_estimate({
2435
+ # identifier: "ResourceId", # required
2436
+ # name: "BillEstimateName",
2437
+ # expires_at: Time.now,
2438
+ # })
2439
+ #
2440
+ # @example Response structure
2441
+ #
2442
+ # resp.id #=> String
2443
+ # resp.name #=> String
2444
+ # resp.status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED"
2445
+ # resp.failure_message #=> String
2446
+ # resp.bill_interval.start #=> Time
2447
+ # resp.bill_interval.end #=> Time
2448
+ # resp.cost_summary.total_cost_difference.historical_cost.amount #=> Float
2449
+ # resp.cost_summary.total_cost_difference.historical_cost.currency #=> String, one of "USD"
2450
+ # resp.cost_summary.total_cost_difference.estimated_cost.amount #=> Float
2451
+ # resp.cost_summary.total_cost_difference.estimated_cost.currency #=> String, one of "USD"
2452
+ # resp.cost_summary.service_cost_differences #=> Hash
2453
+ # resp.cost_summary.service_cost_differences["String"].historical_cost.amount #=> Float
2454
+ # resp.cost_summary.service_cost_differences["String"].historical_cost.currency #=> String, one of "USD"
2455
+ # resp.cost_summary.service_cost_differences["String"].estimated_cost.amount #=> Float
2456
+ # resp.cost_summary.service_cost_differences["String"].estimated_cost.currency #=> String, one of "USD"
2457
+ # resp.created_at #=> Time
2458
+ # resp.expires_at #=> Time
2459
+ #
2460
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/UpdateBillEstimate AWS API Documentation
2461
+ #
2462
+ # @overload update_bill_estimate(params = {})
2463
+ # @param [Hash] params ({})
2464
+ def update_bill_estimate(params = {}, options = {})
2465
+ req = build_request(:update_bill_estimate, params)
2466
+ req.send_request(options)
2467
+ end
2468
+
2469
+ # Updates an existing bill scenario.
2470
+ #
2471
+ # @option params [required, String] :identifier
2472
+ # The unique identifier of the bill scenario to update.
2473
+ #
2474
+ # @option params [String] :name
2475
+ # The new name for the bill scenario.
2476
+ #
2477
+ # @option params [Time,DateTime,Date,Integer,String] :expires_at
2478
+ # The new expiration date for the bill scenario.
2479
+ #
2480
+ # @return [Types::UpdateBillScenarioResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2481
+ #
2482
+ # * {Types::UpdateBillScenarioResponse#id #id} => String
2483
+ # * {Types::UpdateBillScenarioResponse#name #name} => String
2484
+ # * {Types::UpdateBillScenarioResponse#bill_interval #bill_interval} => Types::BillInterval
2485
+ # * {Types::UpdateBillScenarioResponse#status #status} => String
2486
+ # * {Types::UpdateBillScenarioResponse#created_at #created_at} => Time
2487
+ # * {Types::UpdateBillScenarioResponse#expires_at #expires_at} => Time
2488
+ # * {Types::UpdateBillScenarioResponse#failure_message #failure_message} => String
2489
+ #
2490
+ # @example Request syntax with placeholder values
2491
+ #
2492
+ # resp = client.update_bill_scenario({
2493
+ # identifier: "ResourceId", # required
2494
+ # name: "BillScenarioName",
2495
+ # expires_at: Time.now,
2496
+ # })
2497
+ #
2498
+ # @example Response structure
2499
+ #
2500
+ # resp.id #=> String
2501
+ # resp.name #=> String
2502
+ # resp.bill_interval.start #=> Time
2503
+ # resp.bill_interval.end #=> Time
2504
+ # resp.status #=> String, one of "READY", "LOCKED", "FAILED"
2505
+ # resp.created_at #=> Time
2506
+ # resp.expires_at #=> Time
2507
+ # resp.failure_message #=> String
2508
+ #
2509
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/UpdateBillScenario AWS API Documentation
2510
+ #
2511
+ # @overload update_bill_scenario(params = {})
2512
+ # @param [Hash] params ({})
2513
+ def update_bill_scenario(params = {}, options = {})
2514
+ req = build_request(:update_bill_scenario, params)
2515
+ req.send_request(options)
2516
+ end
2517
+
2518
+ # Updates the preferences for the Amazon Web Services Cost Explorer
2519
+ # service.
2520
+ #
2521
+ # @option params [Array<String>] :management_account_rate_type_selections
2522
+ # The updated preferred rate types for the management account.
2523
+ #
2524
+ # @option params [Array<String>] :member_account_rate_type_selections
2525
+ # The updated preferred rate types for member accounts.
2526
+ #
2527
+ # @return [Types::UpdatePreferencesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2528
+ #
2529
+ # * {Types::UpdatePreferencesResponse#management_account_rate_type_selections #management_account_rate_type_selections} => Array&lt;String&gt;
2530
+ # * {Types::UpdatePreferencesResponse#member_account_rate_type_selections #member_account_rate_type_selections} => Array&lt;String&gt;
2531
+ #
2532
+ # @example Request syntax with placeholder values
2533
+ #
2534
+ # resp = client.update_preferences({
2535
+ # management_account_rate_type_selections: ["BEFORE_DISCOUNTS"], # accepts BEFORE_DISCOUNTS, AFTER_DISCOUNTS
2536
+ # member_account_rate_type_selections: ["BEFORE_DISCOUNTS"], # accepts BEFORE_DISCOUNTS, AFTER_DISCOUNTS
2537
+ # })
2538
+ #
2539
+ # @example Response structure
2540
+ #
2541
+ # resp.management_account_rate_type_selections #=> Array
2542
+ # resp.management_account_rate_type_selections[0] #=> String, one of "BEFORE_DISCOUNTS", "AFTER_DISCOUNTS"
2543
+ # resp.member_account_rate_type_selections #=> Array
2544
+ # resp.member_account_rate_type_selections[0] #=> String, one of "BEFORE_DISCOUNTS", "AFTER_DISCOUNTS"
2545
+ #
2546
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/UpdatePreferences AWS API Documentation
2547
+ #
2548
+ # @overload update_preferences(params = {})
2549
+ # @param [Hash] params ({})
2550
+ def update_preferences(params = {}, options = {})
2551
+ req = build_request(:update_preferences, params)
2552
+ req.send_request(options)
2553
+ end
2554
+
2555
+ # Updates an existing workload estimate.
2556
+ #
2557
+ # @option params [required, String] :identifier
2558
+ # The unique identifier of the workload estimate to update.
2559
+ #
2560
+ # @option params [String] :name
2561
+ # The new name for the workload estimate.
2562
+ #
2563
+ # @option params [Time,DateTime,Date,Integer,String] :expires_at
2564
+ # The new expiration date for the workload estimate.
2565
+ #
2566
+ # @return [Types::UpdateWorkloadEstimateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2567
+ #
2568
+ # * {Types::UpdateWorkloadEstimateResponse#id #id} => String
2569
+ # * {Types::UpdateWorkloadEstimateResponse#name #name} => String
2570
+ # * {Types::UpdateWorkloadEstimateResponse#created_at #created_at} => Time
2571
+ # * {Types::UpdateWorkloadEstimateResponse#expires_at #expires_at} => Time
2572
+ # * {Types::UpdateWorkloadEstimateResponse#rate_type #rate_type} => String
2573
+ # * {Types::UpdateWorkloadEstimateResponse#rate_timestamp #rate_timestamp} => Time
2574
+ # * {Types::UpdateWorkloadEstimateResponse#status #status} => String
2575
+ # * {Types::UpdateWorkloadEstimateResponse#total_cost #total_cost} => Float
2576
+ # * {Types::UpdateWorkloadEstimateResponse#cost_currency #cost_currency} => String
2577
+ # * {Types::UpdateWorkloadEstimateResponse#failure_message #failure_message} => String
2578
+ #
2579
+ # @example Request syntax with placeholder values
2580
+ #
2581
+ # resp = client.update_workload_estimate({
2582
+ # identifier: "ResourceId", # required
2583
+ # name: "WorkloadEstimateName",
2584
+ # expires_at: Time.now,
2585
+ # })
2586
+ #
2587
+ # @example Response structure
2588
+ #
2589
+ # resp.id #=> String
2590
+ # resp.name #=> String
2591
+ # resp.created_at #=> Time
2592
+ # resp.expires_at #=> Time
2593
+ # resp.rate_type #=> String, one of "BEFORE_DISCOUNTS", "AFTER_DISCOUNTS"
2594
+ # resp.rate_timestamp #=> Time
2595
+ # resp.status #=> String, one of "UPDATING", "VALID", "INVALID", "ACTION_NEEDED"
2596
+ # resp.total_cost #=> Float
2597
+ # resp.cost_currency #=> String, one of "USD"
2598
+ # resp.failure_message #=> String
2599
+ #
2600
+ # @see http://docs.aws.amazon.com/goto/WebAPI/bcm-pricing-calculator-2024-06-19/UpdateWorkloadEstimate AWS API Documentation
2601
+ #
2602
+ # @overload update_workload_estimate(params = {})
2603
+ # @param [Hash] params ({})
2604
+ def update_workload_estimate(params = {}, options = {})
2605
+ req = build_request(:update_workload_estimate, params)
2606
+ req.send_request(options)
2607
+ end
2608
+
2609
+ # @!endgroup
2610
+
2611
+ # @param params ({})
2612
+ # @api private
2613
+ def build_request(operation_name, params = {})
2614
+ handlers = @handlers.for(operation_name)
2615
+ tracer = config.telemetry_provider.tracer_provider.tracer(
2616
+ Aws::Telemetry.module_to_tracer_name('Aws::BCMPricingCalculator')
2617
+ )
2618
+ context = Seahorse::Client::RequestContext.new(
2619
+ operation_name: operation_name,
2620
+ operation: config.api.operation(operation_name),
2621
+ client: self,
2622
+ params: params,
2623
+ config: config,
2624
+ tracer: tracer
2625
+ )
2626
+ context[:gem_name] = 'aws-sdk-bcmpricingcalculator'
2627
+ context[:gem_version] = '1.0.0'
2628
+ Seahorse::Client::Request.new(handlers, context)
2629
+ end
2630
+
2631
+ # @api private
2632
+ # @deprecated
2633
+ def waiter_names
2634
+ []
2635
+ end
2636
+
2637
+ class << self
2638
+
2639
+ # @api private
2640
+ attr_reader :identifier
2641
+
2642
+ # @api private
2643
+ def errors_module
2644
+ Errors
2645
+ end
2646
+
2647
+ end
2648
+ end
2649
+ end