aws-sdk-bcmpricingcalculator 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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