aws-sdk-billingconductor 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1860 @@
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/jsonvalue_converter.rb'
26
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
+ require 'aws-sdk-core/plugins/http_checksum.rb'
30
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
32
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
33
+ require 'aws-sdk-core/plugins/signature_v4.rb'
34
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
35
+
36
+ Aws::Plugins::GlobalConfiguration.add_identifier(:billingconductor)
37
+
38
+ module Aws::BillingConductor
39
+ # An API client for BillingConductor. To construct a client, you need to configure a `:region` and `:credentials`.
40
+ #
41
+ # client = Aws::BillingConductor::Client.new(
42
+ # region: region_name,
43
+ # credentials: credentials,
44
+ # # ...
45
+ # )
46
+ #
47
+ # For details on configuring region and credentials see
48
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
49
+ #
50
+ # See {#initialize} for a full list of supported configuration options.
51
+ class Client < Seahorse::Client::Base
52
+
53
+ include Aws::ClientStubs
54
+
55
+ @identifier = :billingconductor
56
+
57
+ set_api(ClientApi::API)
58
+
59
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
60
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
61
+ add_plugin(Aws::Plugins::Logging)
62
+ add_plugin(Aws::Plugins::ParamConverter)
63
+ add_plugin(Aws::Plugins::ParamValidator)
64
+ add_plugin(Aws::Plugins::UserAgent)
65
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
66
+ add_plugin(Aws::Plugins::RetryErrors)
67
+ add_plugin(Aws::Plugins::GlobalConfiguration)
68
+ add_plugin(Aws::Plugins::RegionalEndpoint)
69
+ add_plugin(Aws::Plugins::EndpointDiscovery)
70
+ add_plugin(Aws::Plugins::EndpointPattern)
71
+ add_plugin(Aws::Plugins::ResponsePaging)
72
+ add_plugin(Aws::Plugins::StubResponses)
73
+ add_plugin(Aws::Plugins::IdempotencyToken)
74
+ add_plugin(Aws::Plugins::JsonvalueConverter)
75
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
76
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
77
+ add_plugin(Aws::Plugins::TransferEncoding)
78
+ add_plugin(Aws::Plugins::HttpChecksum)
79
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
80
+ add_plugin(Aws::Plugins::DefaultsMode)
81
+ add_plugin(Aws::Plugins::RecursionDetection)
82
+ add_plugin(Aws::Plugins::SignatureV4)
83
+ add_plugin(Aws::Plugins::Protocols::RestJson)
84
+
85
+ # @overload initialize(options)
86
+ # @param [Hash] options
87
+ # @option options [required, Aws::CredentialProvider] :credentials
88
+ # Your AWS credentials. This can be an instance of any one of the
89
+ # following classes:
90
+ #
91
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
92
+ # credentials.
93
+ #
94
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
95
+ # shared file, such as `~/.aws/config`.
96
+ #
97
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
98
+ #
99
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
100
+ # assume a role after providing credentials via the web.
101
+ #
102
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
103
+ # access token generated from `aws login`.
104
+ #
105
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
106
+ # process that outputs to stdout.
107
+ #
108
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
109
+ # from an EC2 IMDS on an EC2 instance.
110
+ #
111
+ # * `Aws::ECSCredentials` - Used for loading credentials from
112
+ # instances running in ECS.
113
+ #
114
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
115
+ # from the Cognito Identity service.
116
+ #
117
+ # When `:credentials` are not configured directly, the following
118
+ # locations will be searched for credentials:
119
+ #
120
+ # * `Aws.config[:credentials]`
121
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
122
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
123
+ # * `~/.aws/credentials`
124
+ # * `~/.aws/config`
125
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
126
+ # are very aggressive. Construct and pass an instance of
127
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
128
+ # enable retries and extended timeouts. Instance profile credential
129
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
130
+ # to true.
131
+ #
132
+ # @option options [required, String] :region
133
+ # The AWS region to connect to. The configured `:region` is
134
+ # used to determine the service `:endpoint`. When not passed,
135
+ # a default `:region` is searched for in the following locations:
136
+ #
137
+ # * `Aws.config[:region]`
138
+ # * `ENV['AWS_REGION']`
139
+ # * `ENV['AMAZON_REGION']`
140
+ # * `ENV['AWS_DEFAULT_REGION']`
141
+ # * `~/.aws/credentials`
142
+ # * `~/.aws/config`
143
+ #
144
+ # @option options [String] :access_key_id
145
+ #
146
+ # @option options [Boolean] :active_endpoint_cache (false)
147
+ # When set to `true`, a thread polling for endpoints will be running in
148
+ # the background every 60 secs (default). Defaults to `false`.
149
+ #
150
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
151
+ # Used only in `adaptive` retry mode. When true, the request will sleep
152
+ # until there is sufficent client side capacity to retry the request.
153
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
154
+ # not retry instead of sleeping.
155
+ #
156
+ # @option options [Boolean] :client_side_monitoring (false)
157
+ # When `true`, client-side metrics will be collected for all API requests from
158
+ # this client.
159
+ #
160
+ # @option options [String] :client_side_monitoring_client_id ("")
161
+ # Allows you to provide an identifier for this client which will be attached to
162
+ # all generated client side metrics. Defaults to an empty string.
163
+ #
164
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
165
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
166
+ # side monitoring agent is running on, where client metrics will be published via UDP.
167
+ #
168
+ # @option options [Integer] :client_side_monitoring_port (31000)
169
+ # Required for publishing client metrics. The port that the client side monitoring
170
+ # agent is running on, where client metrics will be published via UDP.
171
+ #
172
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
173
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
174
+ # will use the Client Side Monitoring Agent Publisher.
175
+ #
176
+ # @option options [Boolean] :convert_params (true)
177
+ # When `true`, an attempt is made to coerce request parameters into
178
+ # the required types.
179
+ #
180
+ # @option options [Boolean] :correct_clock_skew (true)
181
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
182
+ # a clock skew correction and retry requests with skewed client clocks.
183
+ #
184
+ # @option options [String] :defaults_mode ("legacy")
185
+ # See {Aws::DefaultsModeConfiguration} for a list of the
186
+ # accepted modes and the configuration defaults that are included.
187
+ #
188
+ # @option options [Boolean] :disable_host_prefix_injection (false)
189
+ # Set to true to disable SDK automatically adding host prefix
190
+ # to default service endpoint when available.
191
+ #
192
+ # @option options [String] :endpoint
193
+ # The client endpoint is normally constructed from the `:region`
194
+ # option. You should only configure an `:endpoint` when connecting
195
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
196
+ #
197
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
198
+ # Used for the maximum size limit of the LRU cache storing endpoints data
199
+ # for endpoint discovery enabled operations. Defaults to 1000.
200
+ #
201
+ # @option options [Integer] :endpoint_cache_max_threads (10)
202
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
203
+ #
204
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
205
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
206
+ # Use this option to config the time interval in seconds for making
207
+ # requests fetching endpoints information. Defaults to 60 sec.
208
+ #
209
+ # @option options [Boolean] :endpoint_discovery (false)
210
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
211
+ #
212
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
213
+ # The log formatter.
214
+ #
215
+ # @option options [Symbol] :log_level (:info)
216
+ # The log level to send messages to the `:logger` at.
217
+ #
218
+ # @option options [Logger] :logger
219
+ # The Logger instance to send log messages to. If this option
220
+ # is not set, logging will be disabled.
221
+ #
222
+ # @option options [Integer] :max_attempts (3)
223
+ # An integer representing the maximum number attempts that will be made for
224
+ # a single request, including the initial attempt. For example,
225
+ # setting this value to 5 will result in a request being retried up to
226
+ # 4 times. Used in `standard` and `adaptive` retry modes.
227
+ #
228
+ # @option options [String] :profile ("default")
229
+ # Used when loading credentials from the shared credentials file
230
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
231
+ #
232
+ # @option options [Proc] :retry_backoff
233
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
234
+ # This option is only used in the `legacy` retry mode.
235
+ #
236
+ # @option options [Float] :retry_base_delay (0.3)
237
+ # The base delay in seconds used by the default backoff function. This option
238
+ # is only used in the `legacy` retry mode.
239
+ #
240
+ # @option options [Symbol] :retry_jitter (:none)
241
+ # A delay randomiser function used by the default backoff function.
242
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
243
+ # otherwise a Proc that takes and returns a number. This option is only used
244
+ # in the `legacy` retry mode.
245
+ #
246
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
247
+ #
248
+ # @option options [Integer] :retry_limit (3)
249
+ # The maximum number of times to retry failed requests. Only
250
+ # ~ 500 level server errors and certain ~ 400 level client errors
251
+ # are retried. Generally, these are throttling errors, data
252
+ # checksum errors, networking errors, timeout errors, auth errors,
253
+ # endpoint discovery, and errors from expired credentials.
254
+ # This option is only used in the `legacy` retry mode.
255
+ #
256
+ # @option options [Integer] :retry_max_delay (0)
257
+ # The maximum number of seconds to delay between retries (0 for no limit)
258
+ # used by the default backoff function. This option is only used in the
259
+ # `legacy` retry mode.
260
+ #
261
+ # @option options [String] :retry_mode ("legacy")
262
+ # Specifies which retry algorithm to use. Values are:
263
+ #
264
+ # * `legacy` - The pre-existing retry behavior. This is default value if
265
+ # no retry mode is provided.
266
+ #
267
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
268
+ # This includes support for retry quotas, which limit the number of
269
+ # unsuccessful retries a client can make.
270
+ #
271
+ # * `adaptive` - An experimental retry mode that includes all the
272
+ # functionality of `standard` mode along with automatic client side
273
+ # throttling. This is a provisional mode that may change behavior
274
+ # in the future.
275
+ #
276
+ #
277
+ # @option options [String] :secret_access_key
278
+ #
279
+ # @option options [String] :session_token
280
+ #
281
+ # @option options [Boolean] :stub_responses (false)
282
+ # Causes the client to return stubbed responses. By default
283
+ # fake responses are generated and returned. You can specify
284
+ # the response data to return or errors to raise by calling
285
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
286
+ #
287
+ # ** Please note ** When response stubbing is enabled, no HTTP
288
+ # requests are made, and retries are disabled.
289
+ #
290
+ # @option options [Boolean] :use_dualstack_endpoint
291
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
292
+ # will be used if available.
293
+ #
294
+ # @option options [Boolean] :use_fips_endpoint
295
+ # When set to `true`, fips compatible endpoints will be used if available.
296
+ # When a `fips` region is used, the region is normalized and this config
297
+ # is set to `true`.
298
+ #
299
+ # @option options [Boolean] :validate_params (true)
300
+ # When `true`, request parameters are validated before
301
+ # sending the request.
302
+ #
303
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
304
+ # requests through. Formatted like 'http://proxy.com:123'.
305
+ #
306
+ # @option options [Float] :http_open_timeout (15) The number of
307
+ # seconds to wait when opening a HTTP session before raising a
308
+ # `Timeout::Error`.
309
+ #
310
+ # @option options [Float] :http_read_timeout (60) The default
311
+ # number of seconds to wait for response data. This value can
312
+ # safely be set per-request on the session.
313
+ #
314
+ # @option options [Float] :http_idle_timeout (5) The number of
315
+ # seconds a connection is allowed to sit idle before it is
316
+ # considered stale. Stale connections are closed and removed
317
+ # from the pool before making a request.
318
+ #
319
+ # @option options [Float] :http_continue_timeout (1) The number of
320
+ # seconds to wait for a 100-continue response before sending the
321
+ # request body. This option has no effect unless the request has
322
+ # "Expect" header set to "100-continue". Defaults to `nil` which
323
+ # disables this behaviour. This value can safely be set per
324
+ # request on the session.
325
+ #
326
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
327
+ # in seconds.
328
+ #
329
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
330
+ # HTTP debug output will be sent to the `:logger`.
331
+ #
332
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
333
+ # SSL peer certificates are verified when establishing a
334
+ # connection.
335
+ #
336
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
337
+ # certificate authority bundle file that should be used when
338
+ # verifying peer certificates. If you do not pass
339
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
340
+ # will be used if available.
341
+ #
342
+ # @option options [String] :ssl_ca_directory Full path of the
343
+ # directory that contains the unbundled SSL certificate
344
+ # authority files for verifying peer certificates. If you do
345
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
346
+ # system default will be used if available.
347
+ #
348
+ def initialize(*args)
349
+ super
350
+ end
351
+
352
+ # @!group API Operations
353
+
354
+ # Connects an array of account IDs in a consolidated billing family to a
355
+ # predefined billing group. The account IDs must be a part of the
356
+ # consolidated billing family during the current month, and not already
357
+ # associated with another billing group. The maximum number of accounts
358
+ # that can be associated in one call is 30.
359
+ #
360
+ # @option params [required, String] :arn
361
+ # The Amazon Resource Name (ARN) of the billing group that associates
362
+ # the array of account IDs.
363
+ #
364
+ # @option params [required, Array<String>] :account_ids
365
+ # The associating array of account IDs.
366
+ #
367
+ # @return [Types::AssociateAccountsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
368
+ #
369
+ # * {Types::AssociateAccountsOutput#arn #arn} => String
370
+ #
371
+ # @example Request syntax with placeholder values
372
+ #
373
+ # resp = client.associate_accounts({
374
+ # arn: "BillingGroupArn", # required
375
+ # account_ids: ["AccountId"], # required
376
+ # })
377
+ #
378
+ # @example Response structure
379
+ #
380
+ # resp.arn #=> String
381
+ #
382
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/AssociateAccounts AWS API Documentation
383
+ #
384
+ # @overload associate_accounts(params = {})
385
+ # @param [Hash] params ({})
386
+ def associate_accounts(params = {}, options = {})
387
+ req = build_request(:associate_accounts, params)
388
+ req.send_request(options)
389
+ end
390
+
391
+ # Connects an array of `PricingRuleArns` to a defined `PricingPlan`. The
392
+ # maximum number `PricingRuleArn` that can be associated in one call is
393
+ # 30.
394
+ #
395
+ # @option params [required, String] :arn
396
+ # The `PricingPlanArn` that the `PricingRuleArns` are associated with.
397
+ #
398
+ # @option params [required, Array<String>] :pricing_rule_arns
399
+ # The `PricingRuleArns` that are associated with the Pricing Plan.
400
+ #
401
+ # @return [Types::AssociatePricingRulesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
402
+ #
403
+ # * {Types::AssociatePricingRulesOutput#arn #arn} => String
404
+ #
405
+ # @example Request syntax with placeholder values
406
+ #
407
+ # resp = client.associate_pricing_rules({
408
+ # arn: "PricingPlanArn", # required
409
+ # pricing_rule_arns: ["PricingRuleArn"], # required
410
+ # })
411
+ #
412
+ # @example Response structure
413
+ #
414
+ # resp.arn #=> String
415
+ #
416
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/AssociatePricingRules AWS API Documentation
417
+ #
418
+ # @overload associate_pricing_rules(params = {})
419
+ # @param [Hash] params ({})
420
+ def associate_pricing_rules(params = {}, options = {})
421
+ req = build_request(:associate_pricing_rules, params)
422
+ req.send_request(options)
423
+ end
424
+
425
+ # Associates a batch of resources to a percentage custom line item.
426
+ #
427
+ # @option params [required, String] :target_arn
428
+ # A percentage custom line item ARN to associate the resources to.
429
+ #
430
+ # @option params [required, Array<String>] :resource_arns
431
+ # A list containing the ARNs of the resources to be associated.
432
+ #
433
+ # @option params [Types::CustomLineItemBillingPeriodRange] :billing_period_range
434
+ # The billing period range in which the custom line item request will be
435
+ # applied.
436
+ #
437
+ # @return [Types::BatchAssociateResourcesToCustomLineItemOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
438
+ #
439
+ # * {Types::BatchAssociateResourcesToCustomLineItemOutput#successfully_associated_resources #successfully_associated_resources} => Array&lt;Types::AssociateResourceResponseElement&gt;
440
+ # * {Types::BatchAssociateResourcesToCustomLineItemOutput#failed_associated_resources #failed_associated_resources} => Array&lt;Types::AssociateResourceResponseElement&gt;
441
+ #
442
+ # @example Request syntax with placeholder values
443
+ #
444
+ # resp = client.batch_associate_resources_to_custom_line_item({
445
+ # target_arn: "CustomLineItemArn", # required
446
+ # resource_arns: ["CustomLineItemAssociationElement"], # required
447
+ # billing_period_range: {
448
+ # inclusive_start_billing_period: "BillingPeriod", # required
449
+ # exclusive_end_billing_period: "BillingPeriod", # required
450
+ # },
451
+ # })
452
+ #
453
+ # @example Response structure
454
+ #
455
+ # resp.successfully_associated_resources #=> Array
456
+ # resp.successfully_associated_resources[0].arn #=> String
457
+ # resp.successfully_associated_resources[0].error.message #=> String
458
+ # resp.successfully_associated_resources[0].error.reason #=> String, one of "INVALID_ARN", "SERVICE_LIMIT_EXCEEDED", "ILLEGAL_CUSTOMLINEITEM", "INTERNAL_SERVER_EXCEPTION"
459
+ # resp.failed_associated_resources #=> Array
460
+ # resp.failed_associated_resources[0].arn #=> String
461
+ # resp.failed_associated_resources[0].error.message #=> String
462
+ # resp.failed_associated_resources[0].error.reason #=> String, one of "INVALID_ARN", "SERVICE_LIMIT_EXCEEDED", "ILLEGAL_CUSTOMLINEITEM", "INTERNAL_SERVER_EXCEPTION"
463
+ #
464
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/BatchAssociateResourcesToCustomLineItem AWS API Documentation
465
+ #
466
+ # @overload batch_associate_resources_to_custom_line_item(params = {})
467
+ # @param [Hash] params ({})
468
+ def batch_associate_resources_to_custom_line_item(params = {}, options = {})
469
+ req = build_request(:batch_associate_resources_to_custom_line_item, params)
470
+ req.send_request(options)
471
+ end
472
+
473
+ # Disassociates a batch of resources from a percentage custom line item.
474
+ #
475
+ # @option params [required, String] :target_arn
476
+ # A percentage custom line item ARN to disassociate the resources from.
477
+ #
478
+ # @option params [required, Array<String>] :resource_arns
479
+ # A list containing the ARNs of resources to be disassociated.
480
+ #
481
+ # @option params [Types::CustomLineItemBillingPeriodRange] :billing_period_range
482
+ # The billing period range in which the custom line item request will be
483
+ # applied.
484
+ #
485
+ # @return [Types::BatchDisassociateResourcesFromCustomLineItemOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
486
+ #
487
+ # * {Types::BatchDisassociateResourcesFromCustomLineItemOutput#successfully_disassociated_resources #successfully_disassociated_resources} => Array&lt;Types::DisassociateResourceResponseElement&gt;
488
+ # * {Types::BatchDisassociateResourcesFromCustomLineItemOutput#failed_disassociated_resources #failed_disassociated_resources} => Array&lt;Types::DisassociateResourceResponseElement&gt;
489
+ #
490
+ # @example Request syntax with placeholder values
491
+ #
492
+ # resp = client.batch_disassociate_resources_from_custom_line_item({
493
+ # target_arn: "CustomLineItemArn", # required
494
+ # resource_arns: ["CustomLineItemAssociationElement"], # required
495
+ # billing_period_range: {
496
+ # inclusive_start_billing_period: "BillingPeriod", # required
497
+ # exclusive_end_billing_period: "BillingPeriod", # required
498
+ # },
499
+ # })
500
+ #
501
+ # @example Response structure
502
+ #
503
+ # resp.successfully_disassociated_resources #=> Array
504
+ # resp.successfully_disassociated_resources[0].arn #=> String
505
+ # resp.successfully_disassociated_resources[0].error.message #=> String
506
+ # resp.successfully_disassociated_resources[0].error.reason #=> String, one of "INVALID_ARN", "SERVICE_LIMIT_EXCEEDED", "ILLEGAL_CUSTOMLINEITEM", "INTERNAL_SERVER_EXCEPTION"
507
+ # resp.failed_disassociated_resources #=> Array
508
+ # resp.failed_disassociated_resources[0].arn #=> String
509
+ # resp.failed_disassociated_resources[0].error.message #=> String
510
+ # resp.failed_disassociated_resources[0].error.reason #=> String, one of "INVALID_ARN", "SERVICE_LIMIT_EXCEEDED", "ILLEGAL_CUSTOMLINEITEM", "INTERNAL_SERVER_EXCEPTION"
511
+ #
512
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/BatchDisassociateResourcesFromCustomLineItem AWS API Documentation
513
+ #
514
+ # @overload batch_disassociate_resources_from_custom_line_item(params = {})
515
+ # @param [Hash] params ({})
516
+ def batch_disassociate_resources_from_custom_line_item(params = {}, options = {})
517
+ req = build_request(:batch_disassociate_resources_from_custom_line_item, params)
518
+ req.send_request(options)
519
+ end
520
+
521
+ # Creates a billing group that resembles a consolidated billing family
522
+ # that Amazon Web Services charges, based off of the predefined pricing
523
+ # plan computation.
524
+ #
525
+ # @option params [String] :client_token
526
+ # The token that is needed to support idempotency. Idempotency isn't
527
+ # currently supported, but will be implemented in a future update.
528
+ #
529
+ # **A suitable default value is auto-generated.** You should normally
530
+ # not need to pass this option.**
531
+ #
532
+ # @option params [required, String] :name
533
+ # The billing group name. The names must be unique.
534
+ #
535
+ # @option params [required, Types::AccountGrouping] :account_grouping
536
+ # The set of accounts that will be under the billing group. The set of
537
+ # accounts resemble the linked accounts in a consolidated family.
538
+ #
539
+ # @option params [required, Types::ComputationPreference] :computation_preference
540
+ # The preferences and settings that will be used to compute the Amazon
541
+ # Web Services charges for a billing group.
542
+ #
543
+ # @option params [String] :primary_account_id
544
+ # The account ID that serves as the main account in a billing group.
545
+ #
546
+ # @option params [String] :description
547
+ # The billing group description.
548
+ #
549
+ # @option params [Hash<String,String>] :tags
550
+ # A map that contains tag keys and tag values that are attached to a
551
+ # billing group. This feature isn't available during the beta.
552
+ #
553
+ # @return [Types::CreateBillingGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
554
+ #
555
+ # * {Types::CreateBillingGroupOutput#arn #arn} => String
556
+ #
557
+ # @example Request syntax with placeholder values
558
+ #
559
+ # resp = client.create_billing_group({
560
+ # client_token: "ClientToken",
561
+ # name: "BillingGroupName", # required
562
+ # account_grouping: { # required
563
+ # linked_account_ids: ["AccountId"], # required
564
+ # },
565
+ # computation_preference: { # required
566
+ # pricing_plan_arn: "PricingPlanFullArn", # required
567
+ # },
568
+ # primary_account_id: "AccountId",
569
+ # description: "BillingGroupDescription",
570
+ # tags: {
571
+ # "TagKey" => "TagValue",
572
+ # },
573
+ # })
574
+ #
575
+ # @example Response structure
576
+ #
577
+ # resp.arn #=> String
578
+ #
579
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/CreateBillingGroup AWS API Documentation
580
+ #
581
+ # @overload create_billing_group(params = {})
582
+ # @param [Hash] params ({})
583
+ def create_billing_group(params = {}, options = {})
584
+ req = build_request(:create_billing_group, params)
585
+ req.send_request(options)
586
+ end
587
+
588
+ # Creates a custom line item that can be used to create a one-time fixed
589
+ # charge that can be applied to a single billing group for the current
590
+ # or previous billing period. The one-time fixed charge is either a fee
591
+ # or discount.
592
+ #
593
+ # @option params [String] :client_token
594
+ # The token that is needed to support idempotency. Idempotency isn't
595
+ # currently supported, but will be implemented in a future update.
596
+ #
597
+ # **A suitable default value is auto-generated.** You should normally
598
+ # not need to pass this option.**
599
+ #
600
+ # @option params [required, String] :name
601
+ # The name of the custom line item.
602
+ #
603
+ # @option params [required, String] :description
604
+ # The description of the custom line item. This is shown on the Bills
605
+ # page in association with the charge value.
606
+ #
607
+ # @option params [required, String] :billing_group_arn
608
+ # The Amazon Resource Name (ARN) that references the billing group where
609
+ # the custom line item applies to.
610
+ #
611
+ # @option params [Types::CustomLineItemBillingPeriodRange] :billing_period_range
612
+ # A time range for which the custom line item is effective.
613
+ #
614
+ # @option params [Hash<String,String>] :tags
615
+ # A map that contains tag keys and tag values that are attached to a
616
+ # custom line item.
617
+ #
618
+ # @option params [required, Types::CustomLineItemChargeDetails] :charge_details
619
+ # A `CustomLineItemChargeDetails` that describes the charge details for
620
+ # a custom line item.
621
+ #
622
+ # @return [Types::CreateCustomLineItemOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
623
+ #
624
+ # * {Types::CreateCustomLineItemOutput#arn #arn} => String
625
+ #
626
+ # @example Request syntax with placeholder values
627
+ #
628
+ # resp = client.create_custom_line_item({
629
+ # client_token: "ClientToken",
630
+ # name: "CustomLineItemName", # required
631
+ # description: "CustomLineItemDescription", # required
632
+ # billing_group_arn: "BillingGroupArn", # required
633
+ # billing_period_range: {
634
+ # inclusive_start_billing_period: "BillingPeriod", # required
635
+ # exclusive_end_billing_period: "BillingPeriod", # required
636
+ # },
637
+ # tags: {
638
+ # "TagKey" => "TagValue",
639
+ # },
640
+ # charge_details: { # required
641
+ # flat: {
642
+ # charge_value: 1.0, # required
643
+ # },
644
+ # percentage: {
645
+ # percentage_value: 1.0, # required
646
+ # associated_values: ["CustomLineItemAssociationElement"],
647
+ # },
648
+ # type: "CREDIT", # required, accepts CREDIT, FEE
649
+ # },
650
+ # })
651
+ #
652
+ # @example Response structure
653
+ #
654
+ # resp.arn #=> String
655
+ #
656
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/CreateCustomLineItem AWS API Documentation
657
+ #
658
+ # @overload create_custom_line_item(params = {})
659
+ # @param [Hash] params ({})
660
+ def create_custom_line_item(params = {}, options = {})
661
+ req = build_request(:create_custom_line_item, params)
662
+ req.send_request(options)
663
+ end
664
+
665
+ # Creates a pricing plan that is used for computing Amazon Web Services
666
+ # charges for billing groups.
667
+ #
668
+ # @option params [String] :client_token
669
+ # The token that is needed to support idempotency. Idempotency isn't
670
+ # currently supported, but will be implemented in a future update.
671
+ #
672
+ # **A suitable default value is auto-generated.** You should normally
673
+ # not need to pass this option.**
674
+ #
675
+ # @option params [required, String] :name
676
+ # The pricing plan name. The names must be unique to each pricing plan.
677
+ #
678
+ # @option params [String] :description
679
+ # The pricing plan description.
680
+ #
681
+ # @option params [Array<String>] :pricing_rule_arns
682
+ # A list of Amazon Resource Names (ARNs) that define the pricing plan
683
+ # parameters.
684
+ #
685
+ # @option params [Hash<String,String>] :tags
686
+ # A map that contains tag keys and tag values that are attached to a
687
+ # pricing plan.
688
+ #
689
+ # @return [Types::CreatePricingPlanOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
690
+ #
691
+ # * {Types::CreatePricingPlanOutput#arn #arn} => String
692
+ #
693
+ # @example Request syntax with placeholder values
694
+ #
695
+ # resp = client.create_pricing_plan({
696
+ # client_token: "ClientToken",
697
+ # name: "PricingPlanName", # required
698
+ # description: "PricingPlanDescription",
699
+ # pricing_rule_arns: ["PricingRuleArn"],
700
+ # tags: {
701
+ # "TagKey" => "TagValue",
702
+ # },
703
+ # })
704
+ #
705
+ # @example Response structure
706
+ #
707
+ # resp.arn #=> String
708
+ #
709
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/CreatePricingPlan AWS API Documentation
710
+ #
711
+ # @overload create_pricing_plan(params = {})
712
+ # @param [Hash] params ({})
713
+ def create_pricing_plan(params = {}, options = {})
714
+ req = build_request(:create_pricing_plan, params)
715
+ req.send_request(options)
716
+ end
717
+
718
+ # Creates a pricing rule can be associated to a pricing plan, or a set
719
+ # of pricing plans.
720
+ #
721
+ # @option params [String] :client_token
722
+ # The token that is needed to support idempotency. Idempotency isn't
723
+ # currently supported, but will be implemented in a future update.
724
+ #
725
+ # **A suitable default value is auto-generated.** You should normally
726
+ # not need to pass this option.**
727
+ #
728
+ # @option params [required, String] :name
729
+ # The pricing rule name. The names must be unique to each pricing rule.
730
+ #
731
+ # @option params [String] :description
732
+ # The pricing rule description.
733
+ #
734
+ # @option params [required, String] :scope
735
+ # The scope of pricing rule that indicates if it is globally applicable,
736
+ # or is service-specific.
737
+ #
738
+ # @option params [required, String] :type
739
+ # The type of pricing rule.
740
+ #
741
+ # @option params [required, Float] :modifier_percentage
742
+ # A percentage modifier applied on the public pricing rates.
743
+ #
744
+ # @option params [String] :service
745
+ # If the `Scope` attribute is set to `SERVICE`, the attribute indicates
746
+ # which service the `PricingRule` is applicable for.
747
+ #
748
+ # @option params [Hash<String,String>] :tags
749
+ # A map that contains tag keys and tag values that are attached to a
750
+ # pricing rule.
751
+ #
752
+ # @return [Types::CreatePricingRuleOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
753
+ #
754
+ # * {Types::CreatePricingRuleOutput#arn #arn} => String
755
+ #
756
+ # @example Request syntax with placeholder values
757
+ #
758
+ # resp = client.create_pricing_rule({
759
+ # client_token: "ClientToken",
760
+ # name: "PricingRuleName", # required
761
+ # description: "PricingRuleDescription",
762
+ # scope: "GLOBAL", # required, accepts GLOBAL, SERVICE
763
+ # type: "MARKUP", # required, accepts MARKUP, DISCOUNT
764
+ # modifier_percentage: 1.0, # required
765
+ # service: "Service",
766
+ # tags: {
767
+ # "TagKey" => "TagValue",
768
+ # },
769
+ # })
770
+ #
771
+ # @example Response structure
772
+ #
773
+ # resp.arn #=> String
774
+ #
775
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/CreatePricingRule AWS API Documentation
776
+ #
777
+ # @overload create_pricing_rule(params = {})
778
+ # @param [Hash] params ({})
779
+ def create_pricing_rule(params = {}, options = {})
780
+ req = build_request(:create_pricing_rule, params)
781
+ req.send_request(options)
782
+ end
783
+
784
+ # Deletes a billing group.
785
+ #
786
+ # @option params [required, String] :arn
787
+ # The Amazon Resource Name (ARN) of the billing group you're deleting.
788
+ #
789
+ # @return [Types::DeleteBillingGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
790
+ #
791
+ # * {Types::DeleteBillingGroupOutput#arn #arn} => String
792
+ #
793
+ # @example Request syntax with placeholder values
794
+ #
795
+ # resp = client.delete_billing_group({
796
+ # arn: "BillingGroupArn", # required
797
+ # })
798
+ #
799
+ # @example Response structure
800
+ #
801
+ # resp.arn #=> String
802
+ #
803
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/DeleteBillingGroup AWS API Documentation
804
+ #
805
+ # @overload delete_billing_group(params = {})
806
+ # @param [Hash] params ({})
807
+ def delete_billing_group(params = {}, options = {})
808
+ req = build_request(:delete_billing_group, params)
809
+ req.send_request(options)
810
+ end
811
+
812
+ # Deletes the custom line item identified by the given ARN in the
813
+ # current, or previous billing period.
814
+ #
815
+ # @option params [required, String] :arn
816
+ # The ARN of the custom line item to be deleted.
817
+ #
818
+ # @option params [Types::CustomLineItemBillingPeriodRange] :billing_period_range
819
+ # The billing period range in which the custom line item request will be
820
+ # applied.
821
+ #
822
+ # @return [Types::DeleteCustomLineItemOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
823
+ #
824
+ # * {Types::DeleteCustomLineItemOutput#arn #arn} => String
825
+ #
826
+ # @example Request syntax with placeholder values
827
+ #
828
+ # resp = client.delete_custom_line_item({
829
+ # arn: "CustomLineItemArn", # required
830
+ # billing_period_range: {
831
+ # inclusive_start_billing_period: "BillingPeriod", # required
832
+ # exclusive_end_billing_period: "BillingPeriod", # required
833
+ # },
834
+ # })
835
+ #
836
+ # @example Response structure
837
+ #
838
+ # resp.arn #=> String
839
+ #
840
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/DeleteCustomLineItem AWS API Documentation
841
+ #
842
+ # @overload delete_custom_line_item(params = {})
843
+ # @param [Hash] params ({})
844
+ def delete_custom_line_item(params = {}, options = {})
845
+ req = build_request(:delete_custom_line_item, params)
846
+ req.send_request(options)
847
+ end
848
+
849
+ # Deletes a pricing plan. The pricing plan must not be associated with
850
+ # any billing groups to delete successfully.
851
+ #
852
+ # @option params [required, String] :arn
853
+ # The Amazon Resource Name (ARN) of the pricing plan you're deleting.
854
+ #
855
+ # @return [Types::DeletePricingPlanOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
856
+ #
857
+ # * {Types::DeletePricingPlanOutput#arn #arn} => String
858
+ #
859
+ # @example Request syntax with placeholder values
860
+ #
861
+ # resp = client.delete_pricing_plan({
862
+ # arn: "PricingPlanArn", # required
863
+ # })
864
+ #
865
+ # @example Response structure
866
+ #
867
+ # resp.arn #=> String
868
+ #
869
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/DeletePricingPlan AWS API Documentation
870
+ #
871
+ # @overload delete_pricing_plan(params = {})
872
+ # @param [Hash] params ({})
873
+ def delete_pricing_plan(params = {}, options = {})
874
+ req = build_request(:delete_pricing_plan, params)
875
+ req.send_request(options)
876
+ end
877
+
878
+ # Deletes the pricing rule identified by the input Amazon Resource Name
879
+ # (ARN).
880
+ #
881
+ # @option params [required, String] :arn
882
+ # The Amazon Resource Name (ARN) of the pricing rule you are deleting.
883
+ #
884
+ # @return [Types::DeletePricingRuleOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
885
+ #
886
+ # * {Types::DeletePricingRuleOutput#arn #arn} => String
887
+ #
888
+ # @example Request syntax with placeholder values
889
+ #
890
+ # resp = client.delete_pricing_rule({
891
+ # arn: "PricingRuleArn", # required
892
+ # })
893
+ #
894
+ # @example Response structure
895
+ #
896
+ # resp.arn #=> String
897
+ #
898
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/DeletePricingRule AWS API Documentation
899
+ #
900
+ # @overload delete_pricing_rule(params = {})
901
+ # @param [Hash] params ({})
902
+ def delete_pricing_rule(params = {}, options = {})
903
+ req = build_request(:delete_pricing_rule, params)
904
+ req.send_request(options)
905
+ end
906
+
907
+ # Removes the specified list of account IDs from the given billing
908
+ # group.
909
+ #
910
+ # @option params [required, String] :arn
911
+ # The Amazon Resource Name (ARN) of the billing group that the array of
912
+ # account IDs will disassociate from.
913
+ #
914
+ # @option params [required, Array<String>] :account_ids
915
+ # The array of account IDs to disassociate.
916
+ #
917
+ # @return [Types::DisassociateAccountsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
918
+ #
919
+ # * {Types::DisassociateAccountsOutput#arn #arn} => String
920
+ #
921
+ # @example Request syntax with placeholder values
922
+ #
923
+ # resp = client.disassociate_accounts({
924
+ # arn: "BillingGroupArn", # required
925
+ # account_ids: ["AccountId"], # required
926
+ # })
927
+ #
928
+ # @example Response structure
929
+ #
930
+ # resp.arn #=> String
931
+ #
932
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/DisassociateAccounts AWS API Documentation
933
+ #
934
+ # @overload disassociate_accounts(params = {})
935
+ # @param [Hash] params ({})
936
+ def disassociate_accounts(params = {}, options = {})
937
+ req = build_request(:disassociate_accounts, params)
938
+ req.send_request(options)
939
+ end
940
+
941
+ # Disassociates a list of pricing rules from a pricing plan.
942
+ #
943
+ # @option params [required, String] :arn
944
+ # The pricing plan Amazon Resource Name (ARN) to disassociate pricing
945
+ # rules from.
946
+ #
947
+ # @option params [required, Array<String>] :pricing_rule_arns
948
+ # A list containing the Amazon Resource Name (ARN) of the pricing rules
949
+ # that will be disassociated.
950
+ #
951
+ # @return [Types::DisassociatePricingRulesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
952
+ #
953
+ # * {Types::DisassociatePricingRulesOutput#arn #arn} => String
954
+ #
955
+ # @example Request syntax with placeholder values
956
+ #
957
+ # resp = client.disassociate_pricing_rules({
958
+ # arn: "PricingPlanArn", # required
959
+ # pricing_rule_arns: ["PricingRuleArn"], # required
960
+ # })
961
+ #
962
+ # @example Response structure
963
+ #
964
+ # resp.arn #=> String
965
+ #
966
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/DisassociatePricingRules AWS API Documentation
967
+ #
968
+ # @overload disassociate_pricing_rules(params = {})
969
+ # @param [Hash] params ({})
970
+ def disassociate_pricing_rules(params = {}, options = {})
971
+ req = build_request(:disassociate_pricing_rules, params)
972
+ req.send_request(options)
973
+ end
974
+
975
+ # <i> <b>Amazon Web Services Billing Conductor is in beta release and is
976
+ # subject to change. Your use of Amazon Web Services Billing Conductor
977
+ # is subject to the Beta Service Participation terms of the <a
978
+ # href="https://aws.amazon.com/service-terms/">Amazon Web Services
979
+ # Service Terms</a> (Section 1.10).</b> </i>
980
+ #
981
+ # This is a paginated call to list linked accounts that are linked to
982
+ # the payer account for the specified time period. If no information is
983
+ # provided, the current billing period is used. The response will
984
+ # optionally include the billing group associated with the linked
985
+ # account.
986
+ #
987
+ # @option params [String] :billing_period
988
+ # The preferred billing period to get account associations.
989
+ #
990
+ # @option params [Types::ListAccountAssociationsFilter] :filters
991
+ # The filter on the account ID of the linked account, or any of the
992
+ # following:
993
+ #
994
+ # `MONITORED`\: linked accounts that are associated to billing groups.
995
+ #
996
+ # `UNMONITORED`\: linked accounts that are not associated to billing
997
+ # groups.
998
+ #
999
+ # `Billing Group Arn`\: linked accounts that are associated to the
1000
+ # provided billing group Arn.
1001
+ #
1002
+ # @option params [String] :next_token
1003
+ # The pagination token used on subsequent calls to retrieve accounts.
1004
+ #
1005
+ # @return [Types::ListAccountAssociationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1006
+ #
1007
+ # * {Types::ListAccountAssociationsOutput#linked_accounts #linked_accounts} => Array&lt;Types::AccountAssociationsListElement&gt;
1008
+ # * {Types::ListAccountAssociationsOutput#next_token #next_token} => String
1009
+ #
1010
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1011
+ #
1012
+ # @example Request syntax with placeholder values
1013
+ #
1014
+ # resp = client.list_account_associations({
1015
+ # billing_period: "BillingPeriod",
1016
+ # filters: {
1017
+ # association: "Association",
1018
+ # account_id: "AccountId",
1019
+ # },
1020
+ # next_token: "Token",
1021
+ # })
1022
+ #
1023
+ # @example Response structure
1024
+ #
1025
+ # resp.linked_accounts #=> Array
1026
+ # resp.linked_accounts[0].account_id #=> String
1027
+ # resp.linked_accounts[0].billing_group_arn #=> String
1028
+ # resp.linked_accounts[0].account_name #=> String
1029
+ # resp.linked_accounts[0].account_email #=> String
1030
+ # resp.next_token #=> String
1031
+ #
1032
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/ListAccountAssociations AWS API Documentation
1033
+ #
1034
+ # @overload list_account_associations(params = {})
1035
+ # @param [Hash] params ({})
1036
+ def list_account_associations(params = {}, options = {})
1037
+ req = build_request(:list_account_associations, params)
1038
+ req.send_request(options)
1039
+ end
1040
+
1041
+ # A paginated call to retrieve a summary report of actual Amazon Web
1042
+ # Services charges and the calculated Amazon Web Services charges based
1043
+ # on the associated pricing plan of a billing group.
1044
+ #
1045
+ # @option params [String] :billing_period
1046
+ # The preferred billing period for your report.
1047
+ #
1048
+ # @option params [Integer] :max_results
1049
+ # The maximum number of reports to retrieve.
1050
+ #
1051
+ # @option params [String] :next_token
1052
+ # The pagination token used on subsequent calls to get reports.
1053
+ #
1054
+ # @option params [Types::ListBillingGroupCostReportsFilter] :filters
1055
+ # A `ListBillingGroupCostReportsFilter` to specify billing groups to
1056
+ # retrieve reports from.
1057
+ #
1058
+ # @return [Types::ListBillingGroupCostReportsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1059
+ #
1060
+ # * {Types::ListBillingGroupCostReportsOutput#billing_group_cost_reports #billing_group_cost_reports} => Array&lt;Types::BillingGroupCostReportElement&gt;
1061
+ # * {Types::ListBillingGroupCostReportsOutput#next_token #next_token} => String
1062
+ #
1063
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1064
+ #
1065
+ # @example Request syntax with placeholder values
1066
+ #
1067
+ # resp = client.list_billing_group_cost_reports({
1068
+ # billing_period: "BillingPeriod",
1069
+ # max_results: 1,
1070
+ # next_token: "Token",
1071
+ # filters: {
1072
+ # billing_group_arns: ["BillingGroupArn"],
1073
+ # },
1074
+ # })
1075
+ #
1076
+ # @example Response structure
1077
+ #
1078
+ # resp.billing_group_cost_reports #=> Array
1079
+ # resp.billing_group_cost_reports[0].arn #=> String
1080
+ # resp.billing_group_cost_reports[0].aws_cost #=> String
1081
+ # resp.billing_group_cost_reports[0].proforma_cost #=> String
1082
+ # resp.billing_group_cost_reports[0].margin #=> String
1083
+ # resp.billing_group_cost_reports[0].margin_percentage #=> String
1084
+ # resp.billing_group_cost_reports[0].currency #=> String
1085
+ # resp.next_token #=> String
1086
+ #
1087
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/ListBillingGroupCostReports AWS API Documentation
1088
+ #
1089
+ # @overload list_billing_group_cost_reports(params = {})
1090
+ # @param [Hash] params ({})
1091
+ def list_billing_group_cost_reports(params = {}, options = {})
1092
+ req = build_request(:list_billing_group_cost_reports, params)
1093
+ req.send_request(options)
1094
+ end
1095
+
1096
+ # A paginated call to retrieve a list of billing groups for the given
1097
+ # billing period. If you don't provide a billing group, the current
1098
+ # billing period is used.
1099
+ #
1100
+ # @option params [String] :billing_period
1101
+ # The preferred billing period to get billing groups.
1102
+ #
1103
+ # @option params [Integer] :max_results
1104
+ # The maximum number of billing groups to retrieve.
1105
+ #
1106
+ # @option params [String] :next_token
1107
+ # The pagination token used on subsequent calls to get billing groups.
1108
+ #
1109
+ # @option params [Types::ListBillingGroupsFilter] :filters
1110
+ # A `ListBillingGroupsFilter` that specifies the billing group and
1111
+ # pricing plan to retrieve billing group information.
1112
+ #
1113
+ # @return [Types::ListBillingGroupsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1114
+ #
1115
+ # * {Types::ListBillingGroupsOutput#billing_groups #billing_groups} => Array&lt;Types::BillingGroupListElement&gt;
1116
+ # * {Types::ListBillingGroupsOutput#next_token #next_token} => String
1117
+ #
1118
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1119
+ #
1120
+ # @example Request syntax with placeholder values
1121
+ #
1122
+ # resp = client.list_billing_groups({
1123
+ # billing_period: "BillingPeriod",
1124
+ # max_results: 1,
1125
+ # next_token: "Token",
1126
+ # filters: {
1127
+ # arns: ["BillingGroupArn"],
1128
+ # pricing_plan: "PricingPlanFullArn",
1129
+ # },
1130
+ # })
1131
+ #
1132
+ # @example Response structure
1133
+ #
1134
+ # resp.billing_groups #=> Array
1135
+ # resp.billing_groups[0].name #=> String
1136
+ # resp.billing_groups[0].arn #=> String
1137
+ # resp.billing_groups[0].description #=> String
1138
+ # resp.billing_groups[0].primary_account_id #=> String
1139
+ # resp.billing_groups[0].computation_preference.pricing_plan_arn #=> String
1140
+ # resp.billing_groups[0].size #=> Integer
1141
+ # resp.billing_groups[0].creation_time #=> Integer
1142
+ # resp.billing_groups[0].last_modified_time #=> Integer
1143
+ # resp.billing_groups[0].status #=> String, one of "ACTIVE", "PRIMARY_ACCOUNT_MISSING"
1144
+ # resp.billing_groups[0].status_reason #=> String
1145
+ # resp.next_token #=> String
1146
+ #
1147
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/ListBillingGroups AWS API Documentation
1148
+ #
1149
+ # @overload list_billing_groups(params = {})
1150
+ # @param [Hash] params ({})
1151
+ def list_billing_groups(params = {}, options = {})
1152
+ req = build_request(:list_billing_groups, params)
1153
+ req.send_request(options)
1154
+ end
1155
+
1156
+ # A paginated call to get a list of all custom line items (FFLIs) for
1157
+ # the given billing period. If you don't provide a billing period, the
1158
+ # current billing period is used.
1159
+ #
1160
+ # @option params [String] :billing_period
1161
+ # The preferred billing period to get custom line items (FFLIs).
1162
+ #
1163
+ # @option params [Integer] :max_results
1164
+ # The maximum number of billing groups to retrieve.
1165
+ #
1166
+ # @option params [String] :next_token
1167
+ # The pagination token used on subsequent calls to get custom line items
1168
+ # (FFLIs).
1169
+ #
1170
+ # @option params [Types::ListCustomLineItemsFilter] :filters
1171
+ # A `ListCustomLineItemsFilter` that specifies the custom line item
1172
+ # names and/or billing group Amazon Resource Names (ARNs) to retrieve
1173
+ # FFLI information.
1174
+ #
1175
+ # @return [Types::ListCustomLineItemsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1176
+ #
1177
+ # * {Types::ListCustomLineItemsOutput#custom_line_items #custom_line_items} => Array&lt;Types::CustomLineItemListElement&gt;
1178
+ # * {Types::ListCustomLineItemsOutput#next_token #next_token} => String
1179
+ #
1180
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1181
+ #
1182
+ # @example Request syntax with placeholder values
1183
+ #
1184
+ # resp = client.list_custom_line_items({
1185
+ # billing_period: "BillingPeriod",
1186
+ # max_results: 1,
1187
+ # next_token: "Token",
1188
+ # filters: {
1189
+ # names: ["CustomLineItemName"],
1190
+ # billing_groups: ["BillingGroupArn"],
1191
+ # arns: ["CustomLineItemArn"],
1192
+ # },
1193
+ # })
1194
+ #
1195
+ # @example Response structure
1196
+ #
1197
+ # resp.custom_line_items #=> Array
1198
+ # resp.custom_line_items[0].arn #=> String
1199
+ # resp.custom_line_items[0].name #=> String
1200
+ # resp.custom_line_items[0].charge_details.flat.charge_value #=> Float
1201
+ # resp.custom_line_items[0].charge_details.percentage.percentage_value #=> Float
1202
+ # resp.custom_line_items[0].charge_details.type #=> String, one of "CREDIT", "FEE"
1203
+ # resp.custom_line_items[0].currency_code #=> String, one of "USD", "CNY"
1204
+ # resp.custom_line_items[0].description #=> String
1205
+ # resp.custom_line_items[0].product_code #=> String
1206
+ # resp.custom_line_items[0].billing_group_arn #=> String
1207
+ # resp.custom_line_items[0].creation_time #=> Integer
1208
+ # resp.custom_line_items[0].last_modified_time #=> Integer
1209
+ # resp.custom_line_items[0].association_size #=> Integer
1210
+ # resp.next_token #=> String
1211
+ #
1212
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/ListCustomLineItems AWS API Documentation
1213
+ #
1214
+ # @overload list_custom_line_items(params = {})
1215
+ # @param [Hash] params ({})
1216
+ def list_custom_line_items(params = {}, options = {})
1217
+ req = build_request(:list_custom_line_items, params)
1218
+ req.send_request(options)
1219
+ end
1220
+
1221
+ # A paginated call to get pricing plans for the given billing period. If
1222
+ # you don't provide a billing period, the current billing period is
1223
+ # used.
1224
+ #
1225
+ # @option params [String] :billing_period
1226
+ # The preferred billing period to get pricing plan.
1227
+ #
1228
+ # @option params [Types::ListPricingPlansFilter] :filters
1229
+ # A `ListPricingPlansFilter` that specifies the Amazon Resource Name
1230
+ # (ARNs) of pricing plans to retrieve pricing plans information.
1231
+ #
1232
+ # @option params [Integer] :max_results
1233
+ # The maximum number of pricing plans to retrieve.
1234
+ #
1235
+ # @option params [String] :next_token
1236
+ # The pagination token used on subsequent call to get pricing plans.
1237
+ #
1238
+ # @return [Types::ListPricingPlansOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1239
+ #
1240
+ # * {Types::ListPricingPlansOutput#billing_period #billing_period} => String
1241
+ # * {Types::ListPricingPlansOutput#pricing_plans #pricing_plans} => Array&lt;Types::PricingPlanListElement&gt;
1242
+ # * {Types::ListPricingPlansOutput#next_token #next_token} => String
1243
+ #
1244
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1245
+ #
1246
+ # @example Request syntax with placeholder values
1247
+ #
1248
+ # resp = client.list_pricing_plans({
1249
+ # billing_period: "BillingPeriod",
1250
+ # filters: {
1251
+ # arns: ["PricingPlanArn"],
1252
+ # },
1253
+ # max_results: 1,
1254
+ # next_token: "Token",
1255
+ # })
1256
+ #
1257
+ # @example Response structure
1258
+ #
1259
+ # resp.billing_period #=> String
1260
+ # resp.pricing_plans #=> Array
1261
+ # resp.pricing_plans[0].name #=> String
1262
+ # resp.pricing_plans[0].arn #=> String
1263
+ # resp.pricing_plans[0].description #=> String
1264
+ # resp.pricing_plans[0].size #=> Integer
1265
+ # resp.pricing_plans[0].creation_time #=> Integer
1266
+ # resp.pricing_plans[0].last_modified_time #=> Integer
1267
+ # resp.next_token #=> String
1268
+ #
1269
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/ListPricingPlans AWS API Documentation
1270
+ #
1271
+ # @overload list_pricing_plans(params = {})
1272
+ # @param [Hash] params ({})
1273
+ def list_pricing_plans(params = {}, options = {})
1274
+ req = build_request(:list_pricing_plans, params)
1275
+ req.send_request(options)
1276
+ end
1277
+
1278
+ # A list of the pricing plans associated with a pricing rule.
1279
+ #
1280
+ # @option params [String] :billing_period
1281
+ # The pricing plan billing period for which associations will be listed.
1282
+ #
1283
+ # @option params [required, String] :pricing_rule_arn
1284
+ # The pricing rule Amazon Resource Name (ARN) for which associations
1285
+ # will be listed.
1286
+ #
1287
+ # @option params [Integer] :max_results
1288
+ # The optional maximum number of pricing rule associations to retrieve.
1289
+ #
1290
+ # @option params [String] :next_token
1291
+ # The optional pagination token returned by a previous call.
1292
+ #
1293
+ # @return [Types::ListPricingPlansAssociatedWithPricingRuleOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1294
+ #
1295
+ # * {Types::ListPricingPlansAssociatedWithPricingRuleOutput#billing_period #billing_period} => String
1296
+ # * {Types::ListPricingPlansAssociatedWithPricingRuleOutput#pricing_rule_arn #pricing_rule_arn} => String
1297
+ # * {Types::ListPricingPlansAssociatedWithPricingRuleOutput#pricing_plan_arns #pricing_plan_arns} => Array&lt;String&gt;
1298
+ # * {Types::ListPricingPlansAssociatedWithPricingRuleOutput#next_token #next_token} => String
1299
+ #
1300
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1301
+ #
1302
+ # @example Request syntax with placeholder values
1303
+ #
1304
+ # resp = client.list_pricing_plans_associated_with_pricing_rule({
1305
+ # billing_period: "BillingPeriod",
1306
+ # pricing_rule_arn: "PricingRuleArn", # required
1307
+ # max_results: 1,
1308
+ # next_token: "Token",
1309
+ # })
1310
+ #
1311
+ # @example Response structure
1312
+ #
1313
+ # resp.billing_period #=> String
1314
+ # resp.pricing_rule_arn #=> String
1315
+ # resp.pricing_plan_arns #=> Array
1316
+ # resp.pricing_plan_arns[0] #=> String
1317
+ # resp.next_token #=> String
1318
+ #
1319
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/ListPricingPlansAssociatedWithPricingRule AWS API Documentation
1320
+ #
1321
+ # @overload list_pricing_plans_associated_with_pricing_rule(params = {})
1322
+ # @param [Hash] params ({})
1323
+ def list_pricing_plans_associated_with_pricing_rule(params = {}, options = {})
1324
+ req = build_request(:list_pricing_plans_associated_with_pricing_rule, params)
1325
+ req.send_request(options)
1326
+ end
1327
+
1328
+ # Describes a pricing rule that can be associated to a pricing plan, or
1329
+ # set of pricing plans.
1330
+ #
1331
+ # @option params [String] :billing_period
1332
+ # The preferred billing period to get the pricing plan.
1333
+ #
1334
+ # @option params [Types::ListPricingRulesFilter] :filters
1335
+ # A `DescribePricingRuleFilter` that specifies the Amazon Resource Name
1336
+ # (ARNs) of pricing rules to retrieve pricing rules information.
1337
+ #
1338
+ # @option params [Integer] :max_results
1339
+ # The maximum number of pricing rules to retrieve.
1340
+ #
1341
+ # @option params [String] :next_token
1342
+ # The pagination token used on subsequent call to get pricing rules.
1343
+ #
1344
+ # @return [Types::ListPricingRulesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1345
+ #
1346
+ # * {Types::ListPricingRulesOutput#billing_period #billing_period} => String
1347
+ # * {Types::ListPricingRulesOutput#pricing_rules #pricing_rules} => Array&lt;Types::PricingRuleListElement&gt;
1348
+ # * {Types::ListPricingRulesOutput#next_token #next_token} => String
1349
+ #
1350
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1351
+ #
1352
+ # @example Request syntax with placeholder values
1353
+ #
1354
+ # resp = client.list_pricing_rules({
1355
+ # billing_period: "BillingPeriod",
1356
+ # filters: {
1357
+ # arns: ["PricingRuleArn"],
1358
+ # },
1359
+ # max_results: 1,
1360
+ # next_token: "Token",
1361
+ # })
1362
+ #
1363
+ # @example Response structure
1364
+ #
1365
+ # resp.billing_period #=> String
1366
+ # resp.pricing_rules #=> Array
1367
+ # resp.pricing_rules[0].name #=> String
1368
+ # resp.pricing_rules[0].arn #=> String
1369
+ # resp.pricing_rules[0].description #=> String
1370
+ # resp.pricing_rules[0].scope #=> String, one of "GLOBAL", "SERVICE"
1371
+ # resp.pricing_rules[0].type #=> String, one of "MARKUP", "DISCOUNT"
1372
+ # resp.pricing_rules[0].modifier_percentage #=> Float
1373
+ # resp.pricing_rules[0].service #=> String
1374
+ # resp.pricing_rules[0].associated_pricing_plan_count #=> Integer
1375
+ # resp.pricing_rules[0].creation_time #=> Integer
1376
+ # resp.pricing_rules[0].last_modified_time #=> Integer
1377
+ # resp.next_token #=> String
1378
+ #
1379
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/ListPricingRules AWS API Documentation
1380
+ #
1381
+ # @overload list_pricing_rules(params = {})
1382
+ # @param [Hash] params ({})
1383
+ def list_pricing_rules(params = {}, options = {})
1384
+ req = build_request(:list_pricing_rules, params)
1385
+ req.send_request(options)
1386
+ end
1387
+
1388
+ # Lists the pricing rules associated with a pricing plan.
1389
+ #
1390
+ # @option params [String] :billing_period
1391
+ # The billing period for which the pricing rule associations are to be
1392
+ # listed.
1393
+ #
1394
+ # @option params [required, String] :pricing_plan_arn
1395
+ # The Amazon Resource Name (ARN) of the pricing plan for which
1396
+ # associations are to be listed.
1397
+ #
1398
+ # @option params [Integer] :max_results
1399
+ # The optional maximum number of pricing rule associations to retrieve.
1400
+ #
1401
+ # @option params [String] :next_token
1402
+ # The optional pagination token returned by a previous call.
1403
+ #
1404
+ # @return [Types::ListPricingRulesAssociatedToPricingPlanOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1405
+ #
1406
+ # * {Types::ListPricingRulesAssociatedToPricingPlanOutput#billing_period #billing_period} => String
1407
+ # * {Types::ListPricingRulesAssociatedToPricingPlanOutput#pricing_plan_arn #pricing_plan_arn} => String
1408
+ # * {Types::ListPricingRulesAssociatedToPricingPlanOutput#pricing_rule_arns #pricing_rule_arns} => Array&lt;String&gt;
1409
+ # * {Types::ListPricingRulesAssociatedToPricingPlanOutput#next_token #next_token} => String
1410
+ #
1411
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1412
+ #
1413
+ # @example Request syntax with placeholder values
1414
+ #
1415
+ # resp = client.list_pricing_rules_associated_to_pricing_plan({
1416
+ # billing_period: "BillingPeriod",
1417
+ # pricing_plan_arn: "PricingPlanArn", # required
1418
+ # max_results: 1,
1419
+ # next_token: "Token",
1420
+ # })
1421
+ #
1422
+ # @example Response structure
1423
+ #
1424
+ # resp.billing_period #=> String
1425
+ # resp.pricing_plan_arn #=> String
1426
+ # resp.pricing_rule_arns #=> Array
1427
+ # resp.pricing_rule_arns[0] #=> String
1428
+ # resp.next_token #=> String
1429
+ #
1430
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/ListPricingRulesAssociatedToPricingPlan AWS API Documentation
1431
+ #
1432
+ # @overload list_pricing_rules_associated_to_pricing_plan(params = {})
1433
+ # @param [Hash] params ({})
1434
+ def list_pricing_rules_associated_to_pricing_plan(params = {}, options = {})
1435
+ req = build_request(:list_pricing_rules_associated_to_pricing_plan, params)
1436
+ req.send_request(options)
1437
+ end
1438
+
1439
+ # List the resources associated to a custom line item.
1440
+ #
1441
+ # @option params [String] :billing_period
1442
+ # The billing period for which the resource associations will be listed.
1443
+ #
1444
+ # @option params [required, String] :arn
1445
+ # The ARN of the custom line item for which the resource associations
1446
+ # will be listed.
1447
+ #
1448
+ # @option params [Integer] :max_results
1449
+ # (Optional) The maximum number of resource associations to be
1450
+ # retrieved.
1451
+ #
1452
+ # @option params [String] :next_token
1453
+ # (Optional) The pagination token returned by a previous request.
1454
+ #
1455
+ # @option params [Types::ListResourcesAssociatedToCustomLineItemFilter] :filters
1456
+ # (Optional) A `ListResourcesAssociatedToCustomLineItemFilter` that can
1457
+ # specify the types of resources that should be retrieved.
1458
+ #
1459
+ # @return [Types::ListResourcesAssociatedToCustomLineItemOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1460
+ #
1461
+ # * {Types::ListResourcesAssociatedToCustomLineItemOutput#arn #arn} => String
1462
+ # * {Types::ListResourcesAssociatedToCustomLineItemOutput#associated_resources #associated_resources} => Array&lt;Types::ListResourcesAssociatedToCustomLineItemResponseElement&gt;
1463
+ # * {Types::ListResourcesAssociatedToCustomLineItemOutput#next_token #next_token} => String
1464
+ #
1465
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1466
+ #
1467
+ # @example Request syntax with placeholder values
1468
+ #
1469
+ # resp = client.list_resources_associated_to_custom_line_item({
1470
+ # billing_period: "BillingPeriod",
1471
+ # arn: "CustomLineItemArn", # required
1472
+ # max_results: 1,
1473
+ # next_token: "Token",
1474
+ # filters: {
1475
+ # relationship: "PARENT", # accepts PARENT, CHILD
1476
+ # },
1477
+ # })
1478
+ #
1479
+ # @example Response structure
1480
+ #
1481
+ # resp.arn #=> String
1482
+ # resp.associated_resources #=> Array
1483
+ # resp.associated_resources[0].arn #=> String
1484
+ # resp.associated_resources[0].relationship #=> String, one of "PARENT", "CHILD"
1485
+ # resp.next_token #=> String
1486
+ #
1487
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/ListResourcesAssociatedToCustomLineItem AWS API Documentation
1488
+ #
1489
+ # @overload list_resources_associated_to_custom_line_item(params = {})
1490
+ # @param [Hash] params ({})
1491
+ def list_resources_associated_to_custom_line_item(params = {}, options = {})
1492
+ req = build_request(:list_resources_associated_to_custom_line_item, params)
1493
+ req.send_request(options)
1494
+ end
1495
+
1496
+ # A list the tags for a resource.
1497
+ #
1498
+ # @option params [required, String] :resource_arn
1499
+ # The Amazon Resource Name (ARN) that identifies the resource to list
1500
+ # the tags.
1501
+ #
1502
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1503
+ #
1504
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
1505
+ #
1506
+ # @example Request syntax with placeholder values
1507
+ #
1508
+ # resp = client.list_tags_for_resource({
1509
+ # resource_arn: "Arn", # required
1510
+ # })
1511
+ #
1512
+ # @example Response structure
1513
+ #
1514
+ # resp.tags #=> Hash
1515
+ # resp.tags["TagKey"] #=> String
1516
+ #
1517
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/ListTagsForResource AWS API Documentation
1518
+ #
1519
+ # @overload list_tags_for_resource(params = {})
1520
+ # @param [Hash] params ({})
1521
+ def list_tags_for_resource(params = {}, options = {})
1522
+ req = build_request(:list_tags_for_resource, params)
1523
+ req.send_request(options)
1524
+ end
1525
+
1526
+ # Associates the specified tags to a resource with the specified
1527
+ # `resourceArn`. If existing tags on a resource are not specified in the
1528
+ # request parameters, they are not changed.
1529
+ #
1530
+ # @option params [required, String] :resource_arn
1531
+ # The Amazon Resource Name (ARN) of the resource to which to add tags.
1532
+ #
1533
+ # @option params [required, Hash<String,String>] :tags
1534
+ # The tags to add to the resource as a list of key-value pairs.
1535
+ #
1536
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1537
+ #
1538
+ # @example Request syntax with placeholder values
1539
+ #
1540
+ # resp = client.tag_resource({
1541
+ # resource_arn: "Arn", # required
1542
+ # tags: { # required
1543
+ # "TagKey" => "TagValue",
1544
+ # },
1545
+ # })
1546
+ #
1547
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/TagResource AWS API Documentation
1548
+ #
1549
+ # @overload tag_resource(params = {})
1550
+ # @param [Hash] params ({})
1551
+ def tag_resource(params = {}, options = {})
1552
+ req = build_request(:tag_resource, params)
1553
+ req.send_request(options)
1554
+ end
1555
+
1556
+ # Deletes specified tags from a resource.
1557
+ #
1558
+ # @option params [required, String] :resource_arn
1559
+ # The Amazon Resource Name (ARN) of the resource to which to delete
1560
+ # tags.
1561
+ #
1562
+ # @option params [required, Array<String>] :tag_keys
1563
+ # The tags to delete from the resource as a list of key-value pairs.
1564
+ #
1565
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1566
+ #
1567
+ # @example Request syntax with placeholder values
1568
+ #
1569
+ # resp = client.untag_resource({
1570
+ # resource_arn: "Arn", # required
1571
+ # tag_keys: ["TagKey"], # required
1572
+ # })
1573
+ #
1574
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/UntagResource AWS API Documentation
1575
+ #
1576
+ # @overload untag_resource(params = {})
1577
+ # @param [Hash] params ({})
1578
+ def untag_resource(params = {}, options = {})
1579
+ req = build_request(:untag_resource, params)
1580
+ req.send_request(options)
1581
+ end
1582
+
1583
+ # This updates an existing billing group.
1584
+ #
1585
+ # @option params [required, String] :arn
1586
+ # The Amazon Resource Name (ARN) of the billing group being updated.
1587
+ #
1588
+ # @option params [String] :name
1589
+ # The name of the billing group. The names must be unique to each
1590
+ # billing group.
1591
+ #
1592
+ # @option params [String] :status
1593
+ # The status of the billing group. Only one of the valid values can be
1594
+ # used.
1595
+ #
1596
+ # @option params [Types::ComputationPreference] :computation_preference
1597
+ # The preferences and settings that will be used to compute the Amazon
1598
+ # Web Services charges for a billing group.
1599
+ #
1600
+ # @option params [String] :description
1601
+ # A description of the billing group.
1602
+ #
1603
+ # @return [Types::UpdateBillingGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1604
+ #
1605
+ # * {Types::UpdateBillingGroupOutput#arn #arn} => String
1606
+ # * {Types::UpdateBillingGroupOutput#name #name} => String
1607
+ # * {Types::UpdateBillingGroupOutput#description #description} => String
1608
+ # * {Types::UpdateBillingGroupOutput#primary_account_id #primary_account_id} => String
1609
+ # * {Types::UpdateBillingGroupOutput#pricing_plan_arn #pricing_plan_arn} => String
1610
+ # * {Types::UpdateBillingGroupOutput#size #size} => Integer
1611
+ # * {Types::UpdateBillingGroupOutput#last_modified_time #last_modified_time} => Integer
1612
+ # * {Types::UpdateBillingGroupOutput#status #status} => String
1613
+ # * {Types::UpdateBillingGroupOutput#status_reason #status_reason} => String
1614
+ #
1615
+ # @example Request syntax with placeholder values
1616
+ #
1617
+ # resp = client.update_billing_group({
1618
+ # arn: "BillingGroupArn", # required
1619
+ # name: "BillingGroupName",
1620
+ # status: "ACTIVE", # accepts ACTIVE, PRIMARY_ACCOUNT_MISSING
1621
+ # computation_preference: {
1622
+ # pricing_plan_arn: "PricingPlanFullArn", # required
1623
+ # },
1624
+ # description: "BillingGroupDescription",
1625
+ # })
1626
+ #
1627
+ # @example Response structure
1628
+ #
1629
+ # resp.arn #=> String
1630
+ # resp.name #=> String
1631
+ # resp.description #=> String
1632
+ # resp.primary_account_id #=> String
1633
+ # resp.pricing_plan_arn #=> String
1634
+ # resp.size #=> Integer
1635
+ # resp.last_modified_time #=> Integer
1636
+ # resp.status #=> String, one of "ACTIVE", "PRIMARY_ACCOUNT_MISSING"
1637
+ # resp.status_reason #=> String
1638
+ #
1639
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/UpdateBillingGroup AWS API Documentation
1640
+ #
1641
+ # @overload update_billing_group(params = {})
1642
+ # @param [Hash] params ({})
1643
+ def update_billing_group(params = {}, options = {})
1644
+ req = build_request(:update_billing_group, params)
1645
+ req.send_request(options)
1646
+ end
1647
+
1648
+ # Update an existing custom line item in the current or previous billing
1649
+ # period.
1650
+ #
1651
+ # @option params [required, String] :arn
1652
+ # The ARN of the custom line item to be updated.
1653
+ #
1654
+ # @option params [String] :name
1655
+ # The new name for the custom line item.
1656
+ #
1657
+ # @option params [String] :description
1658
+ # The new line item description of the custom line item.
1659
+ #
1660
+ # @option params [Types::UpdateCustomLineItemChargeDetails] :charge_details
1661
+ # A `ListCustomLineItemChargeDetails` containing the new charge details
1662
+ # for the custom line item.
1663
+ #
1664
+ # @option params [Types::CustomLineItemBillingPeriodRange] :billing_period_range
1665
+ # The billing period range in which the custom line item request will be
1666
+ # applied.
1667
+ #
1668
+ # @return [Types::UpdateCustomLineItemOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1669
+ #
1670
+ # * {Types::UpdateCustomLineItemOutput#arn #arn} => String
1671
+ # * {Types::UpdateCustomLineItemOutput#billing_group_arn #billing_group_arn} => String
1672
+ # * {Types::UpdateCustomLineItemOutput#name #name} => String
1673
+ # * {Types::UpdateCustomLineItemOutput#description #description} => String
1674
+ # * {Types::UpdateCustomLineItemOutput#charge_details #charge_details} => Types::ListCustomLineItemChargeDetails
1675
+ # * {Types::UpdateCustomLineItemOutput#last_modified_time #last_modified_time} => Integer
1676
+ # * {Types::UpdateCustomLineItemOutput#association_size #association_size} => Integer
1677
+ #
1678
+ # @example Request syntax with placeholder values
1679
+ #
1680
+ # resp = client.update_custom_line_item({
1681
+ # arn: "CustomLineItemArn", # required
1682
+ # name: "BillingGroupName",
1683
+ # description: "CustomLineItemDescription",
1684
+ # charge_details: {
1685
+ # flat: {
1686
+ # charge_value: 1.0, # required
1687
+ # },
1688
+ # percentage: {
1689
+ # percentage_value: 1.0, # required
1690
+ # },
1691
+ # },
1692
+ # billing_period_range: {
1693
+ # inclusive_start_billing_period: "BillingPeriod", # required
1694
+ # exclusive_end_billing_period: "BillingPeriod", # required
1695
+ # },
1696
+ # })
1697
+ #
1698
+ # @example Response structure
1699
+ #
1700
+ # resp.arn #=> String
1701
+ # resp.billing_group_arn #=> String
1702
+ # resp.name #=> String
1703
+ # resp.description #=> String
1704
+ # resp.charge_details.flat.charge_value #=> Float
1705
+ # resp.charge_details.percentage.percentage_value #=> Float
1706
+ # resp.charge_details.type #=> String, one of "CREDIT", "FEE"
1707
+ # resp.last_modified_time #=> Integer
1708
+ # resp.association_size #=> Integer
1709
+ #
1710
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/UpdateCustomLineItem AWS API Documentation
1711
+ #
1712
+ # @overload update_custom_line_item(params = {})
1713
+ # @param [Hash] params ({})
1714
+ def update_custom_line_item(params = {}, options = {})
1715
+ req = build_request(:update_custom_line_item, params)
1716
+ req.send_request(options)
1717
+ end
1718
+
1719
+ # This updates an existing pricing plan.
1720
+ #
1721
+ # @option params [required, String] :arn
1722
+ # The Amazon Resource Name (ARN) of the pricing plan you're updating.
1723
+ #
1724
+ # @option params [String] :name
1725
+ # The name of the pricing plan. The name must be unique to each pricing
1726
+ # plan.
1727
+ #
1728
+ # @option params [String] :description
1729
+ # The pricing plan description.
1730
+ #
1731
+ # @return [Types::UpdatePricingPlanOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1732
+ #
1733
+ # * {Types::UpdatePricingPlanOutput#arn #arn} => String
1734
+ # * {Types::UpdatePricingPlanOutput#name #name} => String
1735
+ # * {Types::UpdatePricingPlanOutput#description #description} => String
1736
+ # * {Types::UpdatePricingPlanOutput#size #size} => Integer
1737
+ # * {Types::UpdatePricingPlanOutput#last_modified_time #last_modified_time} => Integer
1738
+ #
1739
+ # @example Request syntax with placeholder values
1740
+ #
1741
+ # resp = client.update_pricing_plan({
1742
+ # arn: "PricingPlanArn", # required
1743
+ # name: "PricingPlanName",
1744
+ # description: "PricingPlanDescription",
1745
+ # })
1746
+ #
1747
+ # @example Response structure
1748
+ #
1749
+ # resp.arn #=> String
1750
+ # resp.name #=> String
1751
+ # resp.description #=> String
1752
+ # resp.size #=> Integer
1753
+ # resp.last_modified_time #=> Integer
1754
+ #
1755
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/UpdatePricingPlan AWS API Documentation
1756
+ #
1757
+ # @overload update_pricing_plan(params = {})
1758
+ # @param [Hash] params ({})
1759
+ def update_pricing_plan(params = {}, options = {})
1760
+ req = build_request(:update_pricing_plan, params)
1761
+ req.send_request(options)
1762
+ end
1763
+
1764
+ # Updates an existing pricing rule.
1765
+ #
1766
+ # @option params [required, String] :arn
1767
+ # The Amazon Resource Name (ARN) of the pricing rule to update.
1768
+ #
1769
+ # @option params [String] :name
1770
+ # The new name of the pricing rule. The name must be unique to each
1771
+ # pricing rule.
1772
+ #
1773
+ # @option params [String] :description
1774
+ # The new description for the pricing rule.
1775
+ #
1776
+ # @option params [String] :type
1777
+ # The new pricing rule type.
1778
+ #
1779
+ # @option params [Float] :modifier_percentage
1780
+ # The new modifier to show pricing plan rates as a percentage.
1781
+ #
1782
+ # @return [Types::UpdatePricingRuleOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1783
+ #
1784
+ # * {Types::UpdatePricingRuleOutput#arn #arn} => String
1785
+ # * {Types::UpdatePricingRuleOutput#name #name} => String
1786
+ # * {Types::UpdatePricingRuleOutput#description #description} => String
1787
+ # * {Types::UpdatePricingRuleOutput#scope #scope} => String
1788
+ # * {Types::UpdatePricingRuleOutput#type #type} => String
1789
+ # * {Types::UpdatePricingRuleOutput#modifier_percentage #modifier_percentage} => Float
1790
+ # * {Types::UpdatePricingRuleOutput#service #service} => String
1791
+ # * {Types::UpdatePricingRuleOutput#associated_pricing_plan_count #associated_pricing_plan_count} => Integer
1792
+ # * {Types::UpdatePricingRuleOutput#last_modified_time #last_modified_time} => Integer
1793
+ #
1794
+ # @example Request syntax with placeholder values
1795
+ #
1796
+ # resp = client.update_pricing_rule({
1797
+ # arn: "PricingRuleArn", # required
1798
+ # name: "PricingRuleName",
1799
+ # description: "PricingRuleDescription",
1800
+ # type: "MARKUP", # accepts MARKUP, DISCOUNT
1801
+ # modifier_percentage: 1.0,
1802
+ # })
1803
+ #
1804
+ # @example Response structure
1805
+ #
1806
+ # resp.arn #=> String
1807
+ # resp.name #=> String
1808
+ # resp.description #=> String
1809
+ # resp.scope #=> String, one of "GLOBAL", "SERVICE"
1810
+ # resp.type #=> String, one of "MARKUP", "DISCOUNT"
1811
+ # resp.modifier_percentage #=> Float
1812
+ # resp.service #=> String
1813
+ # resp.associated_pricing_plan_count #=> Integer
1814
+ # resp.last_modified_time #=> Integer
1815
+ #
1816
+ # @see http://docs.aws.amazon.com/goto/WebAPI/billingconductor-2021-07-30/UpdatePricingRule AWS API Documentation
1817
+ #
1818
+ # @overload update_pricing_rule(params = {})
1819
+ # @param [Hash] params ({})
1820
+ def update_pricing_rule(params = {}, options = {})
1821
+ req = build_request(:update_pricing_rule, params)
1822
+ req.send_request(options)
1823
+ end
1824
+
1825
+ # @!endgroup
1826
+
1827
+ # @param params ({})
1828
+ # @api private
1829
+ def build_request(operation_name, params = {})
1830
+ handlers = @handlers.for(operation_name)
1831
+ context = Seahorse::Client::RequestContext.new(
1832
+ operation_name: operation_name,
1833
+ operation: config.api.operation(operation_name),
1834
+ client: self,
1835
+ params: params,
1836
+ config: config)
1837
+ context[:gem_name] = 'aws-sdk-billingconductor'
1838
+ context[:gem_version] = '1.0.0'
1839
+ Seahorse::Client::Request.new(handlers, context)
1840
+ end
1841
+
1842
+ # @api private
1843
+ # @deprecated
1844
+ def waiter_names
1845
+ []
1846
+ end
1847
+
1848
+ class << self
1849
+
1850
+ # @api private
1851
+ attr_reader :identifier
1852
+
1853
+ # @api private
1854
+ def errors_module
1855
+ Errors
1856
+ end
1857
+
1858
+ end
1859
+ end
1860
+ end