aws-sdk-invoicing 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,1188 @@
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::Invoicing
40
+ # An API client for Invoicing. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::Invoicing::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 = :invoicing
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::Invoicing::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::Invoicing::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::Invoicing::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
+ # This gets the invoice profile associated with a set of accounts. The
458
+ # accounts must be linked accounts under the requester management
459
+ # account organization.
460
+ #
461
+ # @option params [required, Array<String>] :account_ids
462
+ # Retrieves the corresponding invoice profile data for these account
463
+ # IDs.
464
+ #
465
+ # @return [Types::BatchGetInvoiceProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
466
+ #
467
+ # * {Types::BatchGetInvoiceProfileResponse#profiles #profiles} => Array&lt;Types::InvoiceProfile&gt;
468
+ #
469
+ #
470
+ # @example Example: BatchGetInvoiceProfile
471
+ #
472
+ # resp = client.batch_get_invoice_profile({
473
+ # account_ids: [
474
+ # "111111111111",
475
+ # ],
476
+ # })
477
+ #
478
+ # resp.to_h outputs the following:
479
+ # {
480
+ # profiles: [
481
+ # {
482
+ # account_id: "111111111111",
483
+ # issuer: "Test",
484
+ # receiver_address: {
485
+ # address_line_1: "Test",
486
+ # city: "Test",
487
+ # country_code: "LU",
488
+ # postal_code: "Test",
489
+ # state_or_region: "Test",
490
+ # },
491
+ # receiver_email: "test@amazon.com",
492
+ # receiver_name: "TestAccount",
493
+ # },
494
+ # ],
495
+ # }
496
+ #
497
+ # @example Request syntax with placeholder values
498
+ #
499
+ # resp = client.batch_get_invoice_profile({
500
+ # account_ids: ["AccountIdString"], # required
501
+ # })
502
+ #
503
+ # @example Response structure
504
+ #
505
+ # resp.profiles #=> Array
506
+ # resp.profiles[0].account_id #=> String
507
+ # resp.profiles[0].receiver_name #=> String
508
+ # resp.profiles[0].receiver_address.address_line_1 #=> String
509
+ # resp.profiles[0].receiver_address.address_line_2 #=> String
510
+ # resp.profiles[0].receiver_address.address_line_3 #=> String
511
+ # resp.profiles[0].receiver_address.district_or_county #=> String
512
+ # resp.profiles[0].receiver_address.city #=> String
513
+ # resp.profiles[0].receiver_address.state_or_region #=> String
514
+ # resp.profiles[0].receiver_address.country_code #=> String
515
+ # resp.profiles[0].receiver_address.company_name #=> String
516
+ # resp.profiles[0].receiver_address.postal_code #=> String
517
+ # resp.profiles[0].receiver_email #=> String
518
+ # resp.profiles[0].issuer #=> String
519
+ # resp.profiles[0].tax_registration_number #=> String
520
+ #
521
+ # @see http://docs.aws.amazon.com/goto/WebAPI/invoicing-2024-12-01/BatchGetInvoiceProfile AWS API Documentation
522
+ #
523
+ # @overload batch_get_invoice_profile(params = {})
524
+ # @param [Hash] params ({})
525
+ def batch_get_invoice_profile(params = {}, options = {})
526
+ req = build_request(:batch_get_invoice_profile, params)
527
+ req.send_request(options)
528
+ end
529
+
530
+ # This creates a new invoice unit with the provided definition.
531
+ #
532
+ # @option params [required, String] :name
533
+ # The unique name of the invoice unit that is shown on the generated
534
+ # invoice. This can't be changed once it is set. To change this name,
535
+ # you must delete the invoice unit recreate.
536
+ #
537
+ # @option params [required, String] :invoice_receiver
538
+ # The Amazon Web Services account ID chosen to be the receiver of an
539
+ # invoice unit. All invoices generated for that invoice unit will be
540
+ # sent to this account ID.
541
+ #
542
+ # @option params [String] :description
543
+ # The invoice unit's description. This can be changed at a later time.
544
+ #
545
+ # @option params [Boolean] :tax_inheritance_disabled
546
+ # Whether the invoice unit based tax inheritance is/ should be enabled
547
+ # or disabled.
548
+ #
549
+ # @option params [required, Types::InvoiceUnitRule] :rule
550
+ # The `InvoiceUnitRule` object used to create invoice units.
551
+ #
552
+ # @option params [Array<Types::ResourceTag>] :resource_tags
553
+ # The tag structure that contains a tag key and value.
554
+ #
555
+ # @return [Types::CreateInvoiceUnitResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
556
+ #
557
+ # * {Types::CreateInvoiceUnitResponse#invoice_unit_arn #invoice_unit_arn} => String
558
+ #
559
+ #
560
+ # @example Example: CreateInvoiceUnit
561
+ #
562
+ # resp = client.create_invoice_unit({
563
+ # description: "Example Invoice Unit Description",
564
+ # invoice_receiver: "111111111111",
565
+ # name: "Example Invoice Unit",
566
+ # resource_tags: [
567
+ # {
568
+ # key: "TagKey",
569
+ # value: "TagValue",
570
+ # },
571
+ # ],
572
+ # rule: {
573
+ # linked_accounts: [
574
+ # "222222222222",
575
+ # ],
576
+ # },
577
+ # tax_inheritance_disabled: false,
578
+ # })
579
+ #
580
+ # resp.to_h outputs the following:
581
+ # {
582
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
583
+ # }
584
+ #
585
+ # @example Request syntax with placeholder values
586
+ #
587
+ # resp = client.create_invoice_unit({
588
+ # name: "InvoiceUnitName", # required
589
+ # invoice_receiver: "AccountIdString", # required
590
+ # description: "DescriptionString",
591
+ # tax_inheritance_disabled: false,
592
+ # rule: { # required
593
+ # linked_accounts: ["AccountIdString"],
594
+ # },
595
+ # resource_tags: [
596
+ # {
597
+ # key: "ResourceTagKey", # required
598
+ # value: "ResourceTagValue", # required
599
+ # },
600
+ # ],
601
+ # })
602
+ #
603
+ # @example Response structure
604
+ #
605
+ # resp.invoice_unit_arn #=> String
606
+ #
607
+ # @see http://docs.aws.amazon.com/goto/WebAPI/invoicing-2024-12-01/CreateInvoiceUnit AWS API Documentation
608
+ #
609
+ # @overload create_invoice_unit(params = {})
610
+ # @param [Hash] params ({})
611
+ def create_invoice_unit(params = {}, options = {})
612
+ req = build_request(:create_invoice_unit, params)
613
+ req.send_request(options)
614
+ end
615
+
616
+ # This deletes an invoice unit with the provided invoice unit ARN.
617
+ #
618
+ # @option params [required, String] :invoice_unit_arn
619
+ # The ARN to identify an invoice unit. This information can't be
620
+ # modified or deleted.
621
+ #
622
+ # @return [Types::DeleteInvoiceUnitResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
623
+ #
624
+ # * {Types::DeleteInvoiceUnitResponse#invoice_unit_arn #invoice_unit_arn} => String
625
+ #
626
+ #
627
+ # @example Example: DeleteInvoiceUnit
628
+ #
629
+ # resp = client.delete_invoice_unit({
630
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
631
+ # })
632
+ #
633
+ # resp.to_h outputs the following:
634
+ # {
635
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
636
+ # }
637
+ #
638
+ # @example Request syntax with placeholder values
639
+ #
640
+ # resp = client.delete_invoice_unit({
641
+ # invoice_unit_arn: "InvoiceUnitArnString", # required
642
+ # })
643
+ #
644
+ # @example Response structure
645
+ #
646
+ # resp.invoice_unit_arn #=> String
647
+ #
648
+ # @see http://docs.aws.amazon.com/goto/WebAPI/invoicing-2024-12-01/DeleteInvoiceUnit AWS API Documentation
649
+ #
650
+ # @overload delete_invoice_unit(params = {})
651
+ # @param [Hash] params ({})
652
+ def delete_invoice_unit(params = {}, options = {})
653
+ req = build_request(:delete_invoice_unit, params)
654
+ req.send_request(options)
655
+ end
656
+
657
+ # This retrieves the invoice unit definition.
658
+ #
659
+ # @option params [required, String] :invoice_unit_arn
660
+ # The ARN to identify an invoice unit. This information can't be
661
+ # modified or deleted.
662
+ #
663
+ # @option params [Time,DateTime,Date,Integer,String] :as_of
664
+ # The state of an invoice unit at a specified time. You can see legacy
665
+ # invoice units that are currently deleted if the `AsOf` time is set to
666
+ # before it was deleted. If an `AsOf` is not provided, the default value
667
+ # is the current time.
668
+ #
669
+ # @return [Types::GetInvoiceUnitResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
670
+ #
671
+ # * {Types::GetInvoiceUnitResponse#invoice_unit_arn #invoice_unit_arn} => String
672
+ # * {Types::GetInvoiceUnitResponse#invoice_receiver #invoice_receiver} => String
673
+ # * {Types::GetInvoiceUnitResponse#name #name} => String
674
+ # * {Types::GetInvoiceUnitResponse#description #description} => String
675
+ # * {Types::GetInvoiceUnitResponse#tax_inheritance_disabled #tax_inheritance_disabled} => Boolean
676
+ # * {Types::GetInvoiceUnitResponse#rule #rule} => Types::InvoiceUnitRule
677
+ # * {Types::GetInvoiceUnitResponse#last_modified #last_modified} => Time
678
+ #
679
+ #
680
+ # @example Example: GetInvoiceUnit as of current time
681
+ #
682
+ # resp = client.get_invoice_unit({
683
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
684
+ # })
685
+ #
686
+ # resp.to_h outputs the following:
687
+ # {
688
+ # description: "Description changed on 1733788800",
689
+ # invoice_receiver: "111111111111",
690
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
691
+ # last_modified: Time.parse(1733788800),
692
+ # name: "Example Invoice Unit A",
693
+ # rule: {
694
+ # linked_accounts: [
695
+ # "222222222222",
696
+ # ],
697
+ # },
698
+ # tax_inheritance_disabled: false,
699
+ # }
700
+ #
701
+ # @example Example: GetInvoiceUnit as of specified time
702
+ #
703
+ # resp = client.get_invoice_unit({
704
+ # as_of: Time.parse(1733097600),
705
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/87654321",
706
+ # })
707
+ #
708
+ # resp.to_h outputs the following:
709
+ # {
710
+ # description: "Description changed on 1733011200",
711
+ # invoice_receiver: "333333333333",
712
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/87654321",
713
+ # last_modified: Time.parse(1733011200),
714
+ # name: "Example Invoice Unit B",
715
+ # rule: {
716
+ # linked_accounts: [
717
+ # "333333333333",
718
+ # ],
719
+ # },
720
+ # tax_inheritance_disabled: false,
721
+ # }
722
+ #
723
+ # @example Request syntax with placeholder values
724
+ #
725
+ # resp = client.get_invoice_unit({
726
+ # invoice_unit_arn: "InvoiceUnitArnString", # required
727
+ # as_of: Time.now,
728
+ # })
729
+ #
730
+ # @example Response structure
731
+ #
732
+ # resp.invoice_unit_arn #=> String
733
+ # resp.invoice_receiver #=> String
734
+ # resp.name #=> String
735
+ # resp.description #=> String
736
+ # resp.tax_inheritance_disabled #=> Boolean
737
+ # resp.rule.linked_accounts #=> Array
738
+ # resp.rule.linked_accounts[0] #=> String
739
+ # resp.last_modified #=> Time
740
+ #
741
+ # @see http://docs.aws.amazon.com/goto/WebAPI/invoicing-2024-12-01/GetInvoiceUnit AWS API Documentation
742
+ #
743
+ # @overload get_invoice_unit(params = {})
744
+ # @param [Hash] params ({})
745
+ def get_invoice_unit(params = {}, options = {})
746
+ req = build_request(:get_invoice_unit, params)
747
+ req.send_request(options)
748
+ end
749
+
750
+ # This fetches a list of all invoice unit definitions for a given
751
+ # account, as of the provided `AsOf` date.
752
+ #
753
+ # @option params [Types::Filters] :filters
754
+ # An optional input to the list API. If multiple filters are specified,
755
+ # the returned list will be a configuration that match all of the
756
+ # provided filters. Supported filter types are `InvoiceReceivers`,
757
+ # `Names`, and `Accounts`.
758
+ #
759
+ # @option params [String] :next_token
760
+ # The next token used to indicate where the returned list should start
761
+ # from.
762
+ #
763
+ # @option params [Integer] :max_results
764
+ # The maximum number of invoice units that can be returned.
765
+ #
766
+ # @option params [Time,DateTime,Date,Integer,String] :as_of
767
+ # The state of an invoice unit at a specified time. You can see legacy
768
+ # invoice units that are currently deleted if the `AsOf` time is set to
769
+ # before it was deleted. If an `AsOf` is not provided, the default value
770
+ # is the current time.
771
+ #
772
+ # @return [Types::ListInvoiceUnitsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
773
+ #
774
+ # * {Types::ListInvoiceUnitsResponse#invoice_units #invoice_units} => Array&lt;Types::InvoiceUnit&gt;
775
+ # * {Types::ListInvoiceUnitsResponse#next_token #next_token} => String
776
+ #
777
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
778
+ #
779
+ #
780
+ # @example Example: ListInvoiceUnits without filters as of current time
781
+ #
782
+ # resp = client.list_invoice_units({
783
+ # })
784
+ #
785
+ # resp.to_h outputs the following:
786
+ # {
787
+ # invoice_units: [
788
+ # {
789
+ # description: "Description changed on 1733788800",
790
+ # invoice_receiver: "111111111111",
791
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
792
+ # last_modified: Time.parse(1733788800),
793
+ # name: "Example Invoice Unit A",
794
+ # rule: {
795
+ # linked_accounts: [
796
+ # "222222222222",
797
+ # ],
798
+ # },
799
+ # tax_inheritance_disabled: false,
800
+ # },
801
+ # {
802
+ # description: "Description changed on 1733788800",
803
+ # invoice_receiver: "333333333333",
804
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/87654321",
805
+ # last_modified: Time.parse(1733788800),
806
+ # name: "Example Invoice Unit B",
807
+ # rule: {
808
+ # linked_accounts: [
809
+ # "333333333333",
810
+ # ],
811
+ # },
812
+ # tax_inheritance_disabled: true,
813
+ # },
814
+ # ],
815
+ # }
816
+ #
817
+ # @example Example: ListInvoiceUnits with filters as of specified time
818
+ #
819
+ # resp = client.list_invoice_units({
820
+ # as_of: Time.parse(1733097600),
821
+ # filters: {
822
+ # invoice_receivers: [
823
+ # "333333333333",
824
+ # ],
825
+ # },
826
+ # })
827
+ #
828
+ # resp.to_h outputs the following:
829
+ # {
830
+ # invoice_units: [
831
+ # {
832
+ # description: "Description changed on 1733011200",
833
+ # invoice_receiver: "333333333333",
834
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/87654321",
835
+ # last_modified: Time.parse(1733011200),
836
+ # name: "Example Invoice Unit B",
837
+ # rule: {
838
+ # linked_accounts: [
839
+ # "333333333333",
840
+ # ],
841
+ # },
842
+ # tax_inheritance_disabled: false,
843
+ # },
844
+ # ],
845
+ # }
846
+ #
847
+ # @example Example: ListInvoiceUnits with pagination - first page
848
+ #
849
+ # resp = client.list_invoice_units({
850
+ # max_results: 1,
851
+ # })
852
+ #
853
+ # resp.to_h outputs the following:
854
+ # {
855
+ # invoice_units: [
856
+ # {
857
+ # description: "Description changed on 1733788800",
858
+ # invoice_receiver: "111111111111",
859
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
860
+ # last_modified: Time.parse(1733788800),
861
+ # name: "Example Invoice Unit A",
862
+ # rule: {
863
+ # linked_accounts: [
864
+ # "222222222222",
865
+ # ],
866
+ # },
867
+ # tax_inheritance_disabled: false,
868
+ # },
869
+ # ],
870
+ # next_token: "nextTokenExample",
871
+ # }
872
+ #
873
+ # @example Example: ListInvoiceUnits with pagination - second page
874
+ #
875
+ # resp = client.list_invoice_units({
876
+ # max_results: 1,
877
+ # next_token: "nextTokenExample",
878
+ # })
879
+ #
880
+ # resp.to_h outputs the following:
881
+ # {
882
+ # invoice_units: [
883
+ # {
884
+ # description: "Description changed on 1733788800",
885
+ # invoice_receiver: "333333333333",
886
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/87654321",
887
+ # last_modified: Time.parse(1733788800),
888
+ # name: "Example Invoice Unit B",
889
+ # rule: {
890
+ # linked_accounts: [
891
+ # "333333333333",
892
+ # ],
893
+ # },
894
+ # tax_inheritance_disabled: true,
895
+ # },
896
+ # ],
897
+ # }
898
+ #
899
+ # @example Request syntax with placeholder values
900
+ #
901
+ # resp = client.list_invoice_units({
902
+ # filters: {
903
+ # names: ["InvoiceUnitName"],
904
+ # invoice_receivers: ["AccountIdString"],
905
+ # accounts: ["AccountIdString"],
906
+ # },
907
+ # next_token: "NextTokenString",
908
+ # max_results: 1,
909
+ # as_of: Time.now,
910
+ # })
911
+ #
912
+ # @example Response structure
913
+ #
914
+ # resp.invoice_units #=> Array
915
+ # resp.invoice_units[0].invoice_unit_arn #=> String
916
+ # resp.invoice_units[0].invoice_receiver #=> String
917
+ # resp.invoice_units[0].name #=> String
918
+ # resp.invoice_units[0].description #=> String
919
+ # resp.invoice_units[0].tax_inheritance_disabled #=> Boolean
920
+ # resp.invoice_units[0].rule.linked_accounts #=> Array
921
+ # resp.invoice_units[0].rule.linked_accounts[0] #=> String
922
+ # resp.invoice_units[0].last_modified #=> Time
923
+ # resp.next_token #=> String
924
+ #
925
+ # @see http://docs.aws.amazon.com/goto/WebAPI/invoicing-2024-12-01/ListInvoiceUnits AWS API Documentation
926
+ #
927
+ # @overload list_invoice_units(params = {})
928
+ # @param [Hash] params ({})
929
+ def list_invoice_units(params = {}, options = {})
930
+ req = build_request(:list_invoice_units, params)
931
+ req.send_request(options)
932
+ end
933
+
934
+ # Lists the tags for a resource.
935
+ #
936
+ # @option params [required, String] :resource_arn
937
+ # The Amazon Resource Name (ARN) of tags to list.
938
+ #
939
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
940
+ #
941
+ # * {Types::ListTagsForResourceResponse#resource_tags #resource_tags} => Array&lt;Types::ResourceTag&gt;
942
+ #
943
+ #
944
+ # @example Example: ListTagsForResource
945
+ #
946
+ # resp = client.list_tags_for_resource({
947
+ # resource_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
948
+ # })
949
+ #
950
+ # resp.to_h outputs the following:
951
+ # {
952
+ # resource_tags: [
953
+ # {
954
+ # key: "TagKey",
955
+ # value: "TagValue",
956
+ # },
957
+ # ],
958
+ # }
959
+ #
960
+ # @example Request syntax with placeholder values
961
+ #
962
+ # resp = client.list_tags_for_resource({
963
+ # resource_arn: "TagrisArn", # required
964
+ # })
965
+ #
966
+ # @example Response structure
967
+ #
968
+ # resp.resource_tags #=> Array
969
+ # resp.resource_tags[0].key #=> String
970
+ # resp.resource_tags[0].value #=> String
971
+ #
972
+ # @see http://docs.aws.amazon.com/goto/WebAPI/invoicing-2024-12-01/ListTagsForResource AWS API Documentation
973
+ #
974
+ # @overload list_tags_for_resource(params = {})
975
+ # @param [Hash] params ({})
976
+ def list_tags_for_resource(params = {}, options = {})
977
+ req = build_request(:list_tags_for_resource, params)
978
+ req.send_request(options)
979
+ end
980
+
981
+ # Adds a tag to a resource.
982
+ #
983
+ # @option params [required, String] :resource_arn
984
+ # The Amazon Resource Name (ARN) of the tags.
985
+ #
986
+ # @option params [required, Array<Types::ResourceTag>] :resource_tags
987
+ # Adds a tag to a resource.
988
+ #
989
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
990
+ #
991
+ #
992
+ # @example Example: TagResource
993
+ #
994
+ # resp = client.tag_resource({
995
+ # resource_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
996
+ # resource_tags: [
997
+ # {
998
+ # key: "TagKey",
999
+ # value: "TagValue",
1000
+ # },
1001
+ # ],
1002
+ # })
1003
+ #
1004
+ # resp.to_h outputs the following:
1005
+ # {
1006
+ # }
1007
+ #
1008
+ # @example Request syntax with placeholder values
1009
+ #
1010
+ # resp = client.tag_resource({
1011
+ # resource_arn: "TagrisArn", # required
1012
+ # resource_tags: [ # required
1013
+ # {
1014
+ # key: "ResourceTagKey", # required
1015
+ # value: "ResourceTagValue", # required
1016
+ # },
1017
+ # ],
1018
+ # })
1019
+ #
1020
+ # @see http://docs.aws.amazon.com/goto/WebAPI/invoicing-2024-12-01/TagResource AWS API Documentation
1021
+ #
1022
+ # @overload tag_resource(params = {})
1023
+ # @param [Hash] params ({})
1024
+ def tag_resource(params = {}, options = {})
1025
+ req = build_request(:tag_resource, params)
1026
+ req.send_request(options)
1027
+ end
1028
+
1029
+ # Removes a tag from a resource.
1030
+ #
1031
+ # @option params [required, String] :resource_arn
1032
+ # The Amazon Resource Name (ARN) to untag.
1033
+ #
1034
+ # @option params [required, Array<String>] :resource_tag_keys
1035
+ # Keys for the tags to be removed.
1036
+ #
1037
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1038
+ #
1039
+ #
1040
+ # @example Example: UntagResource
1041
+ #
1042
+ # resp = client.untag_resource({
1043
+ # resource_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
1044
+ # resource_tag_keys: [
1045
+ # "TagKey",
1046
+ # ],
1047
+ # })
1048
+ #
1049
+ # resp.to_h outputs the following:
1050
+ # {
1051
+ # }
1052
+ #
1053
+ # @example Request syntax with placeholder values
1054
+ #
1055
+ # resp = client.untag_resource({
1056
+ # resource_arn: "TagrisArn", # required
1057
+ # resource_tag_keys: ["ResourceTagKey"], # required
1058
+ # })
1059
+ #
1060
+ # @see http://docs.aws.amazon.com/goto/WebAPI/invoicing-2024-12-01/UntagResource AWS API Documentation
1061
+ #
1062
+ # @overload untag_resource(params = {})
1063
+ # @param [Hash] params ({})
1064
+ def untag_resource(params = {}, options = {})
1065
+ req = build_request(:untag_resource, params)
1066
+ req.send_request(options)
1067
+ end
1068
+
1069
+ # You can update the invoice unit configuration at any time, and Amazon
1070
+ # Web Services will use the latest configuration at the end of the
1071
+ # month.
1072
+ #
1073
+ # @option params [required, String] :invoice_unit_arn
1074
+ # The ARN to identify an invoice unit. This information can't be
1075
+ # modified or deleted.
1076
+ #
1077
+ # @option params [String] :description
1078
+ # The assigned description for an invoice unit. This information can't
1079
+ # be modified or deleted.
1080
+ #
1081
+ # @option params [Boolean] :tax_inheritance_disabled
1082
+ # Whether the invoice unit based tax inheritance is/ should be enabled
1083
+ # or disabled.
1084
+ #
1085
+ # @option params [Types::InvoiceUnitRule] :rule
1086
+ # The `InvoiceUnitRule` object used to update invoice units.
1087
+ #
1088
+ # @return [Types::UpdateInvoiceUnitResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1089
+ #
1090
+ # * {Types::UpdateInvoiceUnitResponse#invoice_unit_arn #invoice_unit_arn} => String
1091
+ #
1092
+ #
1093
+ # @example Example: UpdateInvoiceUnit with all updatable fields
1094
+ #
1095
+ # resp = client.update_invoice_unit({
1096
+ # description: "Updated IU description",
1097
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
1098
+ # rule: {
1099
+ # linked_accounts: [
1100
+ # "111111111111",
1101
+ # "222222222222",
1102
+ # ],
1103
+ # },
1104
+ # tax_inheritance_disabled: false,
1105
+ # })
1106
+ #
1107
+ # resp.to_h outputs the following:
1108
+ # {
1109
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
1110
+ # }
1111
+ #
1112
+ # @example Example: UpdateInvoiceUnit with specific fields
1113
+ #
1114
+ # resp = client.update_invoice_unit({
1115
+ # description: "Updated IU description. All other fields remain unchanged",
1116
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
1117
+ # })
1118
+ #
1119
+ # resp.to_h outputs the following:
1120
+ # {
1121
+ # invoice_unit_arn: "arn:aws:invoicing::000000000000:invoice-unit/12345678",
1122
+ # }
1123
+ #
1124
+ # @example Request syntax with placeholder values
1125
+ #
1126
+ # resp = client.update_invoice_unit({
1127
+ # invoice_unit_arn: "InvoiceUnitArnString", # required
1128
+ # description: "DescriptionString",
1129
+ # tax_inheritance_disabled: false,
1130
+ # rule: {
1131
+ # linked_accounts: ["AccountIdString"],
1132
+ # },
1133
+ # })
1134
+ #
1135
+ # @example Response structure
1136
+ #
1137
+ # resp.invoice_unit_arn #=> String
1138
+ #
1139
+ # @see http://docs.aws.amazon.com/goto/WebAPI/invoicing-2024-12-01/UpdateInvoiceUnit AWS API Documentation
1140
+ #
1141
+ # @overload update_invoice_unit(params = {})
1142
+ # @param [Hash] params ({})
1143
+ def update_invoice_unit(params = {}, options = {})
1144
+ req = build_request(:update_invoice_unit, params)
1145
+ req.send_request(options)
1146
+ end
1147
+
1148
+ # @!endgroup
1149
+
1150
+ # @param params ({})
1151
+ # @api private
1152
+ def build_request(operation_name, params = {})
1153
+ handlers = @handlers.for(operation_name)
1154
+ tracer = config.telemetry_provider.tracer_provider.tracer(
1155
+ Aws::Telemetry.module_to_tracer_name('Aws::Invoicing')
1156
+ )
1157
+ context = Seahorse::Client::RequestContext.new(
1158
+ operation_name: operation_name,
1159
+ operation: config.api.operation(operation_name),
1160
+ client: self,
1161
+ params: params,
1162
+ config: config,
1163
+ tracer: tracer
1164
+ )
1165
+ context[:gem_name] = 'aws-sdk-invoicing'
1166
+ context[:gem_version] = '1.0.0'
1167
+ Seahorse::Client::Request.new(handlers, context)
1168
+ end
1169
+
1170
+ # @api private
1171
+ # @deprecated
1172
+ def waiter_names
1173
+ []
1174
+ end
1175
+
1176
+ class << self
1177
+
1178
+ # @api private
1179
+ attr_reader :identifier
1180
+
1181
+ # @api private
1182
+ def errors_module
1183
+ Errors
1184
+ end
1185
+
1186
+ end
1187
+ end
1188
+ end