aws-sdk-socialmessaging 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,1118 @@
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/rest_json.rb'
38
+
39
+ module Aws::SocialMessaging
40
+ # An API client for SocialMessaging. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::SocialMessaging::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 = :socialmessaging
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::RestJson)
88
+ add_plugin(Aws::SocialMessaging::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] :stub_responses (false)
329
+ # Causes the client to return stubbed responses. By default
330
+ # fake responses are generated and returned. You can specify
331
+ # the response data to return or errors to raise by calling
332
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
333
+ #
334
+ # ** Please note ** When response stubbing is enabled, no HTTP
335
+ # requests are made, and retries are disabled.
336
+ #
337
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
338
+ # Allows you to provide a telemetry provider, which is used to
339
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
340
+ # will not record or emit any telemetry data. The SDK supports the
341
+ # following telemetry providers:
342
+ #
343
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
344
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
345
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
346
+ #
347
+ # @option options [Aws::TokenProvider] :token_provider
348
+ # A Bearer Token Provider. This can be an instance of any one of the
349
+ # following classes:
350
+ #
351
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
352
+ # tokens.
353
+ #
354
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
355
+ # access token generated from `aws login`.
356
+ #
357
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
358
+ # will be used to search for tokens configured for your profile in shared configuration files.
359
+ #
360
+ # @option options [Boolean] :use_dualstack_endpoint
361
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
362
+ # will be used if available.
363
+ #
364
+ # @option options [Boolean] :use_fips_endpoint
365
+ # When set to `true`, fips compatible endpoints will be used if available.
366
+ # When a `fips` region is used, the region is normalized and this config
367
+ # is set to `true`.
368
+ #
369
+ # @option options [Boolean] :validate_params (true)
370
+ # When `true`, request parameters are validated before
371
+ # sending the request.
372
+ #
373
+ # @option options [Aws::SocialMessaging::EndpointProvider] :endpoint_provider
374
+ # The endpoint provider used to resolve endpoints. Any object that responds to
375
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
376
+ # `Aws::SocialMessaging::EndpointParameters`.
377
+ #
378
+ # @option options [Float] :http_continue_timeout (1)
379
+ # The number of seconds to wait for a 100-continue response before sending the
380
+ # request body. This option has no effect unless the request has "Expect"
381
+ # header set to "100-continue". Defaults to `nil` which disables this
382
+ # behaviour. This value can safely be set per request on the session.
383
+ #
384
+ # @option options [Float] :http_idle_timeout (5)
385
+ # The number of seconds a connection is allowed to sit idle before it
386
+ # is considered stale. Stale connections are closed and removed from the
387
+ # pool before making a request.
388
+ #
389
+ # @option options [Float] :http_open_timeout (15)
390
+ # The default number of seconds to wait for response data.
391
+ # This value can safely be set per-request on the session.
392
+ #
393
+ # @option options [URI::HTTP,String] :http_proxy
394
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
395
+ #
396
+ # @option options [Float] :http_read_timeout (60)
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 [Boolean] :http_wire_trace (false)
401
+ # When `true`, HTTP debug output will be sent to the `:logger`.
402
+ #
403
+ # @option options [Proc] :on_chunk_received
404
+ # When a Proc object is provided, it will be used as callback when each chunk
405
+ # of the response body is received. It provides three arguments: the chunk,
406
+ # the number of bytes received, and the total number of
407
+ # bytes in the response (or nil if the server did not send a `content-length`).
408
+ #
409
+ # @option options [Proc] :on_chunk_sent
410
+ # When a Proc object is provided, it will be used as callback when each chunk
411
+ # of the request body is sent. It provides three arguments: the chunk,
412
+ # the number of bytes read from the body, and the total number of
413
+ # bytes in the body.
414
+ #
415
+ # @option options [Boolean] :raise_response_errors (true)
416
+ # When `true`, response errors are raised.
417
+ #
418
+ # @option options [String] :ssl_ca_bundle
419
+ # Full path to the SSL certificate authority bundle file that should be used when
420
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
421
+ # `:ssl_ca_directory` the the system default will be used if available.
422
+ #
423
+ # @option options [String] :ssl_ca_directory
424
+ # Full path of the directory that contains the unbundled SSL certificate
425
+ # authority files for verifying peer certificates. If you do
426
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
427
+ # default will be used if available.
428
+ #
429
+ # @option options [String] :ssl_ca_store
430
+ # Sets the X509::Store to verify peer certificate.
431
+ #
432
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
433
+ # Sets a client certificate when creating http connections.
434
+ #
435
+ # @option options [OpenSSL::PKey] :ssl_key
436
+ # Sets a client key when creating http connections.
437
+ #
438
+ # @option options [Float] :ssl_timeout
439
+ # Sets the SSL timeout in seconds
440
+ #
441
+ # @option options [Boolean] :ssl_verify_peer (true)
442
+ # When `true`, SSL peer certificates are verified when establishing a connection.
443
+ #
444
+ def initialize(*args)
445
+ super
446
+ end
447
+
448
+ # @!group API Operations
449
+
450
+ # This is only used through the Amazon Web Services console during
451
+ # sign-up to associate your WhatsApp Business Account to your Amazon Web
452
+ # Services account.
453
+ #
454
+ # @option params [Types::WhatsAppSignupCallback] :signup_callback
455
+ # Contains the callback access token.
456
+ #
457
+ # @option params [Types::WhatsAppSetupFinalization] :setup_finalization
458
+ # A JSON object that contains the phone numbers and WhatsApp Business
459
+ # Account to link to your account.
460
+ #
461
+ # @return [Types::AssociateWhatsAppBusinessAccountOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
462
+ #
463
+ # * {Types::AssociateWhatsAppBusinessAccountOutput#signup_callback_result #signup_callback_result} => Types::WhatsAppSignupCallbackResult
464
+ # * {Types::AssociateWhatsAppBusinessAccountOutput#status_code #status_code} => Integer
465
+ #
466
+ # @example Request syntax with placeholder values
467
+ #
468
+ # resp = client.associate_whats_app_business_account({
469
+ # signup_callback: {
470
+ # access_token: "WhatsAppSignupCallbackAccessTokenString", # required
471
+ # },
472
+ # setup_finalization: {
473
+ # associate_in_progress_token: "AssociateInProgressToken", # required
474
+ # phone_numbers: [ # required
475
+ # {
476
+ # id: "WhatsAppPhoneNumber", # required
477
+ # two_factor_pin: "TwoFactorPin", # required
478
+ # data_localization_region: "IsoCountryCode",
479
+ # tags: [
480
+ # {
481
+ # key: "TagKeyString", # required
482
+ # value: "TagValueString",
483
+ # },
484
+ # ],
485
+ # },
486
+ # ],
487
+ # phone_number_parent: "LinkedWhatsAppBusinessAccountId",
488
+ # waba: {
489
+ # id: "WhatsAppBusinessAccountId",
490
+ # event_destinations: [
491
+ # {
492
+ # event_destination_arn: "EventDestinationArn", # required
493
+ # },
494
+ # ],
495
+ # tags: [
496
+ # {
497
+ # key: "TagKeyString", # required
498
+ # value: "TagValueString",
499
+ # },
500
+ # ],
501
+ # },
502
+ # },
503
+ # })
504
+ #
505
+ # @example Response structure
506
+ #
507
+ # resp.signup_callback_result.associate_in_progress_token #=> String
508
+ # resp.signup_callback_result.linked_accounts_with_incomplete_setup #=> Hash
509
+ # resp.signup_callback_result.linked_accounts_with_incomplete_setup["WhatsAppBusinessAccountId"].account_name #=> String
510
+ # resp.signup_callback_result.linked_accounts_with_incomplete_setup["WhatsAppBusinessAccountId"].registration_status #=> String, one of "COMPLETE", "INCOMPLETE"
511
+ # resp.signup_callback_result.linked_accounts_with_incomplete_setup["WhatsAppBusinessAccountId"].unregistered_whats_app_phone_numbers #=> Array
512
+ # resp.signup_callback_result.linked_accounts_with_incomplete_setup["WhatsAppBusinessAccountId"].unregistered_whats_app_phone_numbers[0].arn #=> String
513
+ # resp.signup_callback_result.linked_accounts_with_incomplete_setup["WhatsAppBusinessAccountId"].unregistered_whats_app_phone_numbers[0].phone_number #=> String
514
+ # resp.signup_callback_result.linked_accounts_with_incomplete_setup["WhatsAppBusinessAccountId"].unregistered_whats_app_phone_numbers[0].phone_number_id #=> String
515
+ # resp.signup_callback_result.linked_accounts_with_incomplete_setup["WhatsAppBusinessAccountId"].unregistered_whats_app_phone_numbers[0].meta_phone_number_id #=> String
516
+ # resp.signup_callback_result.linked_accounts_with_incomplete_setup["WhatsAppBusinessAccountId"].unregistered_whats_app_phone_numbers[0].display_phone_number_name #=> String
517
+ # resp.signup_callback_result.linked_accounts_with_incomplete_setup["WhatsAppBusinessAccountId"].unregistered_whats_app_phone_numbers[0].display_phone_number #=> String
518
+ # resp.signup_callback_result.linked_accounts_with_incomplete_setup["WhatsAppBusinessAccountId"].unregistered_whats_app_phone_numbers[0].quality_rating #=> String
519
+ # resp.status_code #=> Integer
520
+ #
521
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/AssociateWhatsAppBusinessAccount AWS API Documentation
522
+ #
523
+ # @overload associate_whats_app_business_account(params = {})
524
+ # @param [Hash] params ({})
525
+ def associate_whats_app_business_account(params = {}, options = {})
526
+ req = build_request(:associate_whats_app_business_account, params)
527
+ req.send_request(options)
528
+ end
529
+
530
+ # Delete a media object from the WhatsApp service. If the object is
531
+ # still in an Amazon S3 bucket you should delete it from there too.
532
+ #
533
+ # @option params [required, String] :media_id
534
+ # The unique identifier of the media file to delete. Use the `mediaId`
535
+ # returned from [PostWhatsAppMessageMedia][1].
536
+ #
537
+ #
538
+ #
539
+ # [1]: https://console.aws.amazon.com/social-messaging/latest/APIReference/API_PostWhatsAppMessageMedia.html
540
+ #
541
+ # @option params [required, String] :origination_phone_number_id
542
+ # The unique identifier of the originating phone number associated with
543
+ # the media. Phone number identifiers are formatted as
544
+ # `phone-number-id-01234567890123456789012345678901`. Use
545
+ # [GetLinkedWhatsAppBusinessAccount][1] to find a phone number's id.
546
+ #
547
+ #
548
+ #
549
+ # [1]: https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_GetLinkedWhatsAppBusinessAccountPhoneNumber.html
550
+ #
551
+ # @return [Types::DeleteWhatsAppMessageMediaOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
552
+ #
553
+ # * {Types::DeleteWhatsAppMessageMediaOutput#success #success} => Boolean
554
+ #
555
+ # @example Request syntax with placeholder values
556
+ #
557
+ # resp = client.delete_whats_app_message_media({
558
+ # media_id: "WhatsAppMediaId", # required
559
+ # origination_phone_number_id: "WhatsAppPhoneNumberId", # required
560
+ # })
561
+ #
562
+ # @example Response structure
563
+ #
564
+ # resp.success #=> Boolean
565
+ #
566
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/DeleteWhatsAppMessageMedia AWS API Documentation
567
+ #
568
+ # @overload delete_whats_app_message_media(params = {})
569
+ # @param [Hash] params ({})
570
+ def delete_whats_app_message_media(params = {}, options = {})
571
+ req = build_request(:delete_whats_app_message_media, params)
572
+ req.send_request(options)
573
+ end
574
+
575
+ # Disassociate a WhatsApp Business Account (WABA) from your Amazon Web
576
+ # Services account.
577
+ #
578
+ # @option params [required, String] :id
579
+ # The unique identifier of your WhatsApp Business Account. WABA
580
+ # identifiers are formatted as `waba-01234567890123456789012345678901`.
581
+ # Use [ListLinkedWhatsAppBusinessAccounts][1] to list all WABAs and
582
+ # their details.
583
+ #
584
+ #
585
+ #
586
+ # [1]: https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_ListLinkedWhatsAppBusinessAccounts.html
587
+ #
588
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
589
+ #
590
+ # @example Request syntax with placeholder values
591
+ #
592
+ # resp = client.disassociate_whats_app_business_account({
593
+ # id: "LinkedWhatsAppBusinessAccountId", # required
594
+ # })
595
+ #
596
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/DisassociateWhatsAppBusinessAccount AWS API Documentation
597
+ #
598
+ # @overload disassociate_whats_app_business_account(params = {})
599
+ # @param [Hash] params ({})
600
+ def disassociate_whats_app_business_account(params = {}, options = {})
601
+ req = build_request(:disassociate_whats_app_business_account, params)
602
+ req.send_request(options)
603
+ end
604
+
605
+ # Get the details of your linked WhatsApp Business Account.
606
+ #
607
+ # @option params [required, String] :id
608
+ # The unique identifier, from Amazon Web Services, of the linked
609
+ # WhatsApp Business Account. WABA identifiers are formatted as
610
+ # `waba-01234567890123456789012345678901`. Use
611
+ # [ListLinkedWhatsAppBusinessAccounts][1] to list all WABAs and their
612
+ # details.
613
+ #
614
+ #
615
+ #
616
+ # [1]: https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_ListLinkedWhatsAppBusinessAccounts.html
617
+ #
618
+ # @return [Types::GetLinkedWhatsAppBusinessAccountOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
619
+ #
620
+ # * {Types::GetLinkedWhatsAppBusinessAccountOutput#account #account} => Types::LinkedWhatsAppBusinessAccount
621
+ #
622
+ # @example Request syntax with placeholder values
623
+ #
624
+ # resp = client.get_linked_whats_app_business_account({
625
+ # id: "LinkedWhatsAppBusinessAccountId", # required
626
+ # })
627
+ #
628
+ # @example Response structure
629
+ #
630
+ # resp.account.arn #=> String
631
+ # resp.account.id #=> String
632
+ # resp.account.waba_id #=> String
633
+ # resp.account.registration_status #=> String, one of "COMPLETE", "INCOMPLETE"
634
+ # resp.account.link_date #=> Time
635
+ # resp.account.waba_name #=> String
636
+ # resp.account.event_destinations #=> Array
637
+ # resp.account.event_destinations[0].event_destination_arn #=> String
638
+ # resp.account.phone_numbers #=> Array
639
+ # resp.account.phone_numbers[0].arn #=> String
640
+ # resp.account.phone_numbers[0].phone_number #=> String
641
+ # resp.account.phone_numbers[0].phone_number_id #=> String
642
+ # resp.account.phone_numbers[0].meta_phone_number_id #=> String
643
+ # resp.account.phone_numbers[0].display_phone_number_name #=> String
644
+ # resp.account.phone_numbers[0].display_phone_number #=> String
645
+ # resp.account.phone_numbers[0].quality_rating #=> String
646
+ #
647
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/GetLinkedWhatsAppBusinessAccount AWS API Documentation
648
+ #
649
+ # @overload get_linked_whats_app_business_account(params = {})
650
+ # @param [Hash] params ({})
651
+ def get_linked_whats_app_business_account(params = {}, options = {})
652
+ req = build_request(:get_linked_whats_app_business_account, params)
653
+ req.send_request(options)
654
+ end
655
+
656
+ # Use your WhatsApp phone number id to get the WABA account id and phone
657
+ # number details.
658
+ #
659
+ # @option params [required, String] :id
660
+ # The unique identifier of the phone number. Phone number identifiers
661
+ # are formatted as `phone-number-id-01234567890123456789012345678901`.
662
+ # Use [GetLinkedWhatsAppBusinessAccount][1] to find a phone number's
663
+ # id.
664
+ #
665
+ #
666
+ #
667
+ # [1]: https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_GetLinkedWhatsAppBusinessAccountPhoneNumber.html
668
+ #
669
+ # @return [Types::GetLinkedWhatsAppBusinessAccountPhoneNumberOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
670
+ #
671
+ # * {Types::GetLinkedWhatsAppBusinessAccountPhoneNumberOutput#phone_number #phone_number} => Types::WhatsAppPhoneNumberDetail
672
+ # * {Types::GetLinkedWhatsAppBusinessAccountPhoneNumberOutput#linked_whats_app_business_account_id #linked_whats_app_business_account_id} => String
673
+ #
674
+ # @example Request syntax with placeholder values
675
+ #
676
+ # resp = client.get_linked_whats_app_business_account_phone_number({
677
+ # id: "WhatsAppPhoneNumberId", # required
678
+ # })
679
+ #
680
+ # @example Response structure
681
+ #
682
+ # resp.phone_number.arn #=> String
683
+ # resp.phone_number.phone_number #=> String
684
+ # resp.phone_number.phone_number_id #=> String
685
+ # resp.phone_number.meta_phone_number_id #=> String
686
+ # resp.phone_number.display_phone_number_name #=> String
687
+ # resp.phone_number.display_phone_number #=> String
688
+ # resp.phone_number.quality_rating #=> String
689
+ # resp.linked_whats_app_business_account_id #=> String
690
+ #
691
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/GetLinkedWhatsAppBusinessAccountPhoneNumber AWS API Documentation
692
+ #
693
+ # @overload get_linked_whats_app_business_account_phone_number(params = {})
694
+ # @param [Hash] params ({})
695
+ def get_linked_whats_app_business_account_phone_number(params = {}, options = {})
696
+ req = build_request(:get_linked_whats_app_business_account_phone_number, params)
697
+ req.send_request(options)
698
+ end
699
+
700
+ # Get a media file from the WhatsApp service. On successful completion
701
+ # the media file is retrieved from Meta and stored in the specified
702
+ # Amazon S3 bucket. Use either `destinationS3File` or
703
+ # `destinationS3PresignedUrl` for the destination. If both are used then
704
+ # an `InvalidParameterException` is returned.
705
+ #
706
+ # @option params [required, String] :media_id
707
+ # The unique identifier for the media file.
708
+ #
709
+ # @option params [required, String] :origination_phone_number_id
710
+ # The unique identifier of the originating phone number for the WhatsApp
711
+ # message media. The phone number identifiers are formatted as
712
+ # `phone-number-id-01234567890123456789012345678901`. Use
713
+ # [GetLinkedWhatsAppBusinessAccount][1] to find a phone number's id.
714
+ #
715
+ #
716
+ #
717
+ # [1]: https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_GetLinkedWhatsAppBusinessAccountPhoneNumber.html
718
+ #
719
+ # @option params [Boolean] :metadata_only
720
+ # Set to `True` to get only the metadata for the file.
721
+ #
722
+ # @option params [Types::S3PresignedUrl] :destination_s3_presigned_url
723
+ # The presign url of the media file.
724
+ #
725
+ # @option params [Types::S3File] :destination_s3_file
726
+ # The `bucketName` and `key` of the S3 media file.
727
+ #
728
+ # @return [Types::GetWhatsAppMessageMediaOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
729
+ #
730
+ # * {Types::GetWhatsAppMessageMediaOutput#mime_type #mime_type} => String
731
+ # * {Types::GetWhatsAppMessageMediaOutput#file_size #file_size} => Integer
732
+ #
733
+ # @example Request syntax with placeholder values
734
+ #
735
+ # resp = client.get_whats_app_message_media({
736
+ # media_id: "WhatsAppMediaId", # required
737
+ # origination_phone_number_id: "WhatsAppPhoneNumberId", # required
738
+ # metadata_only: false,
739
+ # destination_s3_presigned_url: {
740
+ # url: "S3PresignedUrlUrlString", # required
741
+ # headers: { # required
742
+ # "String" => "String",
743
+ # },
744
+ # },
745
+ # destination_s3_file: {
746
+ # bucket_name: "S3FileBucketNameString", # required
747
+ # key: "S3FileKeyString", # required
748
+ # },
749
+ # })
750
+ #
751
+ # @example Response structure
752
+ #
753
+ # resp.mime_type #=> String
754
+ # resp.file_size #=> Integer
755
+ #
756
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/GetWhatsAppMessageMedia AWS API Documentation
757
+ #
758
+ # @overload get_whats_app_message_media(params = {})
759
+ # @param [Hash] params ({})
760
+ def get_whats_app_message_media(params = {}, options = {})
761
+ req = build_request(:get_whats_app_message_media, params)
762
+ req.send_request(options)
763
+ end
764
+
765
+ # List all WhatsApp Business Accounts linked to your Amazon Web Services
766
+ # account.
767
+ #
768
+ # @option params [String] :next_token
769
+ # The next token for pagination.
770
+ #
771
+ # @option params [Integer] :max_results
772
+ # The maximum number of results to return.
773
+ #
774
+ # @return [Types::ListLinkedWhatsAppBusinessAccountsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
775
+ #
776
+ # * {Types::ListLinkedWhatsAppBusinessAccountsOutput#linked_accounts #linked_accounts} => Array&lt;Types::LinkedWhatsAppBusinessAccountSummary&gt;
777
+ # * {Types::ListLinkedWhatsAppBusinessAccountsOutput#next_token #next_token} => String
778
+ #
779
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
780
+ #
781
+ # @example Request syntax with placeholder values
782
+ #
783
+ # resp = client.list_linked_whats_app_business_accounts({
784
+ # next_token: "NextToken",
785
+ # max_results: 1,
786
+ # })
787
+ #
788
+ # @example Response structure
789
+ #
790
+ # resp.linked_accounts #=> Array
791
+ # resp.linked_accounts[0].arn #=> String
792
+ # resp.linked_accounts[0].id #=> String
793
+ # resp.linked_accounts[0].waba_id #=> String
794
+ # resp.linked_accounts[0].registration_status #=> String, one of "COMPLETE", "INCOMPLETE"
795
+ # resp.linked_accounts[0].link_date #=> Time
796
+ # resp.linked_accounts[0].waba_name #=> String
797
+ # resp.linked_accounts[0].event_destinations #=> Array
798
+ # resp.linked_accounts[0].event_destinations[0].event_destination_arn #=> String
799
+ # resp.next_token #=> String
800
+ #
801
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/ListLinkedWhatsAppBusinessAccounts AWS API Documentation
802
+ #
803
+ # @overload list_linked_whats_app_business_accounts(params = {})
804
+ # @param [Hash] params ({})
805
+ def list_linked_whats_app_business_accounts(params = {}, options = {})
806
+ req = build_request(:list_linked_whats_app_business_accounts, params)
807
+ req.send_request(options)
808
+ end
809
+
810
+ # List all tags associated with a resource, such as a phone number or
811
+ # WABA.
812
+ #
813
+ # @option params [required, String] :resource_arn
814
+ # The Amazon Resource Name (ARN) of the resource to retrieve the tags
815
+ # from.
816
+ #
817
+ # @return [Types::ListTagsForResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
818
+ #
819
+ # * {Types::ListTagsForResourceOutput#status_code #status_code} => Integer
820
+ # * {Types::ListTagsForResourceOutput#tags #tags} => Array&lt;Types::Tag&gt;
821
+ #
822
+ # @example Request syntax with placeholder values
823
+ #
824
+ # resp = client.list_tags_for_resource({
825
+ # resource_arn: "Arn", # required
826
+ # })
827
+ #
828
+ # @example Response structure
829
+ #
830
+ # resp.status_code #=> Integer
831
+ # resp.tags #=> Array
832
+ # resp.tags[0].key #=> String
833
+ # resp.tags[0].value #=> String
834
+ #
835
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/ListTagsForResource AWS API Documentation
836
+ #
837
+ # @overload list_tags_for_resource(params = {})
838
+ # @param [Hash] params ({})
839
+ def list_tags_for_resource(params = {}, options = {})
840
+ req = build_request(:list_tags_for_resource, params)
841
+ req.send_request(options)
842
+ end
843
+
844
+ # Upload a media file to the WhatsApp service. Only the specified
845
+ # `originationPhoneNumberId` has the permissions to send the media file
846
+ # when using [SendWhatsAppMessage][1]. You must use either
847
+ # `sourceS3File` or `sourceS3PresignedUrl` for the source. If both or
848
+ # neither are specified then an `InvalidParameterException` is returned.
849
+ #
850
+ #
851
+ #
852
+ # [1]: https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_SendWhatsAppMessage.html
853
+ #
854
+ # @option params [required, String] :origination_phone_number_id
855
+ # The ID of the phone number to associate with the WhatsApp media file.
856
+ # The phone number identifiers are formatted as
857
+ # `phone-number-id-01234567890123456789012345678901`. Use
858
+ # [GetLinkedWhatsAppBusinessAccount][1] to find a phone number's id.
859
+ #
860
+ #
861
+ #
862
+ # [1]: https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_GetLinkedWhatsAppBusinessAccountPhoneNumber.html
863
+ #
864
+ # @option params [Types::S3PresignedUrl] :source_s3_presigned_url
865
+ # The source presign url of the media file.
866
+ #
867
+ # @option params [Types::S3File] :source_s3_file
868
+ # The source S3 url for the media file.
869
+ #
870
+ # @return [Types::PostWhatsAppMessageMediaOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
871
+ #
872
+ # * {Types::PostWhatsAppMessageMediaOutput#media_id #media_id} => String
873
+ #
874
+ # @example Request syntax with placeholder values
875
+ #
876
+ # resp = client.post_whats_app_message_media({
877
+ # origination_phone_number_id: "WhatsAppPhoneNumberId", # required
878
+ # source_s3_presigned_url: {
879
+ # url: "S3PresignedUrlUrlString", # required
880
+ # headers: { # required
881
+ # "String" => "String",
882
+ # },
883
+ # },
884
+ # source_s3_file: {
885
+ # bucket_name: "S3FileBucketNameString", # required
886
+ # key: "S3FileKeyString", # required
887
+ # },
888
+ # })
889
+ #
890
+ # @example Response structure
891
+ #
892
+ # resp.media_id #=> String
893
+ #
894
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/PostWhatsAppMessageMedia AWS API Documentation
895
+ #
896
+ # @overload post_whats_app_message_media(params = {})
897
+ # @param [Hash] params ({})
898
+ def post_whats_app_message_media(params = {}, options = {})
899
+ req = build_request(:post_whats_app_message_media, params)
900
+ req.send_request(options)
901
+ end
902
+
903
+ # Add an event destination to log event data from WhatsApp for a
904
+ # WhatsApp Business Account (WABA). A WABA can only have one event
905
+ # destination at a time. All resources associated with the WABA use the
906
+ # same event destination.
907
+ #
908
+ # @option params [required, String] :id
909
+ # The unique identifier of your WhatsApp Business Account. WABA
910
+ # identifiers are formatted as `waba-01234567890123456789012345678901`.
911
+ # Use [ListLinkedWhatsAppBusinessAccounts][1] to list all WABAs and
912
+ # their details.
913
+ #
914
+ #
915
+ #
916
+ # [1]: https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_ListLinkedWhatsAppBusinessAccounts.html
917
+ #
918
+ # @option params [required, Array<Types::WhatsAppBusinessAccountEventDestination>] :event_destinations
919
+ # An array of `WhatsAppBusinessAccountEventDestination` event
920
+ # destinations.
921
+ #
922
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
923
+ #
924
+ # @example Request syntax with placeholder values
925
+ #
926
+ # resp = client.put_whats_app_business_account_event_destinations({
927
+ # id: "LinkedWhatsAppBusinessAccountId", # required
928
+ # event_destinations: [ # required
929
+ # {
930
+ # event_destination_arn: "EventDestinationArn", # required
931
+ # },
932
+ # ],
933
+ # })
934
+ #
935
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/PutWhatsAppBusinessAccountEventDestinations AWS API Documentation
936
+ #
937
+ # @overload put_whats_app_business_account_event_destinations(params = {})
938
+ # @param [Hash] params ({})
939
+ def put_whats_app_business_account_event_destinations(params = {}, options = {})
940
+ req = build_request(:put_whats_app_business_account_event_destinations, params)
941
+ req.send_request(options)
942
+ end
943
+
944
+ # Send a WhatsApp message. For examples of sending a message using the
945
+ # Amazon Web Services CLI, see [Sending messages][1] in the <i>
946
+ # <i>Amazon Web Services End User Messaging Social User Guide</i> </i>.
947
+ #
948
+ #
949
+ #
950
+ # [1]: https://docs.aws.amazon.com/social-messaging/latest/userguide/send-message.html
951
+ #
952
+ # @option params [required, String] :origination_phone_number_id
953
+ # The ID of the phone number used to send the WhatsApp message. If you
954
+ # are sending a media file only the `originationPhoneNumberId` used to
955
+ # upload the file can be used. Phone number identifiers are formatted as
956
+ # `phone-number-id-01234567890123456789012345678901`. Use
957
+ # [GetLinkedWhatsAppBusinessAccount][1] to find a phone number's id.
958
+ #
959
+ #
960
+ #
961
+ # [1]: https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_GetLinkedWhatsAppBusinessAccountPhoneNumber.html
962
+ #
963
+ # @option params [required, String, StringIO, File] :message
964
+ # The message to send through WhatsApp. The length is in KB. The message
965
+ # field passes through a WhatsApp Message object, see [Messages][1] in
966
+ # the *WhatsApp Business Platform Cloud API Reference*.
967
+ #
968
+ #
969
+ #
970
+ # [1]: https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages
971
+ #
972
+ # @option params [required, String] :meta_api_version
973
+ # The API version for the request formatted as `v\{VersionNumber\}`. For
974
+ # a list of supported API versions and Amazon Web Services Regions, see
975
+ # [ *Amazon Web Services End User Messaging Social API* Service
976
+ # Endpoints][1] in the *Amazon Web Services General Reference*.
977
+ #
978
+ #
979
+ #
980
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html
981
+ #
982
+ # @return [Types::SendWhatsAppMessageOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
983
+ #
984
+ # * {Types::SendWhatsAppMessageOutput#message_id #message_id} => String
985
+ #
986
+ # @example Request syntax with placeholder values
987
+ #
988
+ # resp = client.send_whats_app_message({
989
+ # origination_phone_number_id: "WhatsAppPhoneNumberId", # required
990
+ # message: "data", # required
991
+ # meta_api_version: "String", # required
992
+ # })
993
+ #
994
+ # @example Response structure
995
+ #
996
+ # resp.message_id #=> String
997
+ #
998
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/SendWhatsAppMessage AWS API Documentation
999
+ #
1000
+ # @overload send_whats_app_message(params = {})
1001
+ # @param [Hash] params ({})
1002
+ def send_whats_app_message(params = {}, options = {})
1003
+ req = build_request(:send_whats_app_message, params)
1004
+ req.send_request(options)
1005
+ end
1006
+
1007
+ # Adds or overwrites only the specified tags for the specified resource.
1008
+ # When you specify an existing tag key, the value is overwritten with
1009
+ # the new value.
1010
+ #
1011
+ # @option params [required, String] :resource_arn
1012
+ # The Amazon Resource Name (ARN) of the resource to tag.
1013
+ #
1014
+ # @option params [required, Array<Types::Tag>] :tags
1015
+ # The tags to add to the resource.
1016
+ #
1017
+ # @return [Types::TagResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1018
+ #
1019
+ # * {Types::TagResourceOutput#status_code #status_code} => Integer
1020
+ #
1021
+ # @example Request syntax with placeholder values
1022
+ #
1023
+ # resp = client.tag_resource({
1024
+ # resource_arn: "Arn", # required
1025
+ # tags: [ # required
1026
+ # {
1027
+ # key: "TagKeyString", # required
1028
+ # value: "TagValueString",
1029
+ # },
1030
+ # ],
1031
+ # })
1032
+ #
1033
+ # @example Response structure
1034
+ #
1035
+ # resp.status_code #=> Integer
1036
+ #
1037
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/TagResource AWS API Documentation
1038
+ #
1039
+ # @overload tag_resource(params = {})
1040
+ # @param [Hash] params ({})
1041
+ def tag_resource(params = {}, options = {})
1042
+ req = build_request(:tag_resource, params)
1043
+ req.send_request(options)
1044
+ end
1045
+
1046
+ # Removes the specified tags from a resource.
1047
+ #
1048
+ # @option params [required, String] :resource_arn
1049
+ # The Amazon Resource Name (ARN) of the resource to remove tags from.
1050
+ #
1051
+ # @option params [required, Array<String>] :tag_keys
1052
+ # The keys of the tags to remove from the resource.
1053
+ #
1054
+ # @return [Types::UntagResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1055
+ #
1056
+ # * {Types::UntagResourceOutput#status_code #status_code} => Integer
1057
+ #
1058
+ # @example Request syntax with placeholder values
1059
+ #
1060
+ # resp = client.untag_resource({
1061
+ # resource_arn: "Arn", # required
1062
+ # tag_keys: ["String"], # required
1063
+ # })
1064
+ #
1065
+ # @example Response structure
1066
+ #
1067
+ # resp.status_code #=> Integer
1068
+ #
1069
+ # @see http://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/UntagResource AWS API Documentation
1070
+ #
1071
+ # @overload untag_resource(params = {})
1072
+ # @param [Hash] params ({})
1073
+ def untag_resource(params = {}, options = {})
1074
+ req = build_request(:untag_resource, params)
1075
+ req.send_request(options)
1076
+ end
1077
+
1078
+ # @!endgroup
1079
+
1080
+ # @param params ({})
1081
+ # @api private
1082
+ def build_request(operation_name, params = {})
1083
+ handlers = @handlers.for(operation_name)
1084
+ tracer = config.telemetry_provider.tracer_provider.tracer(
1085
+ Aws::Telemetry.module_to_tracer_name('Aws::SocialMessaging')
1086
+ )
1087
+ context = Seahorse::Client::RequestContext.new(
1088
+ operation_name: operation_name,
1089
+ operation: config.api.operation(operation_name),
1090
+ client: self,
1091
+ params: params,
1092
+ config: config,
1093
+ tracer: tracer
1094
+ )
1095
+ context[:gem_name] = 'aws-sdk-socialmessaging'
1096
+ context[:gem_version] = '1.0.0'
1097
+ Seahorse::Client::Request.new(handlers, context)
1098
+ end
1099
+
1100
+ # @api private
1101
+ # @deprecated
1102
+ def waiter_names
1103
+ []
1104
+ end
1105
+
1106
+ class << self
1107
+
1108
+ # @api private
1109
+ attr_reader :identifier
1110
+
1111
+ # @api private
1112
+ def errors_module
1113
+ Errors
1114
+ end
1115
+
1116
+ end
1117
+ end
1118
+ end