aws-sdk-endusermessaging 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,2706 @@
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'
11
+ require 'aws-sdk-core/plugins/credentials_configuration'
12
+ require 'aws-sdk-core/plugins/logging'
13
+ require 'aws-sdk-core/plugins/param_converter'
14
+ require 'aws-sdk-core/plugins/param_validator'
15
+ require 'aws-sdk-core/plugins/user_agent'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors'
17
+ require 'aws-sdk-core/plugins/retry_errors'
18
+ require 'aws-sdk-core/plugins/global_configuration'
19
+ require 'aws-sdk-core/plugins/regional_endpoint'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern'
22
+ require 'aws-sdk-core/plugins/response_paging'
23
+ require 'aws-sdk-core/plugins/stub_responses'
24
+ require 'aws-sdk-core/plugins/idempotency_token'
25
+ require 'aws-sdk-core/plugins/invocation_id'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin'
29
+ require 'aws-sdk-core/plugins/transfer_encoding'
30
+ require 'aws-sdk-core/plugins/http_checksum'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm'
32
+ require 'aws-sdk-core/plugins/request_compression'
33
+ require 'aws-sdk-core/plugins/defaults_mode'
34
+ require 'aws-sdk-core/plugins/recursion_detection'
35
+ require 'aws-sdk-core/plugins/telemetry'
36
+ require 'aws-sdk-core/plugins/sign'
37
+ require 'aws-sdk-core/plugins/protocols/rest_json'
38
+
39
+ module Aws::EndUserMessaging
40
+ # An API client for EndUserMessaging. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::EndUserMessaging::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 = :endusermessaging
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::EndUserMessaging::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 used for authentication. This can be any class that includes and implements
99
+ # `Aws::CredentialProvider`, or instance of any one of the 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 locations will be searched for credentials:
128
+ #
129
+ # * `Aws.config[:credentials]`
130
+ #
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ #
134
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
135
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
136
+ #
137
+ # * `~/.aws/credentials`
138
+ #
139
+ # * `~/.aws/config`
140
+ #
141
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
142
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
143
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
144
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
145
+ #
146
+ # @option options [required, String] :region
147
+ # The AWS region to connect to. The configured `:region` is
148
+ # used to determine the service `:endpoint`. When not passed,
149
+ # a default `:region` is searched for in the following locations:
150
+ #
151
+ # * `Aws.config[:region]`
152
+ # * `ENV['AWS_REGION']`
153
+ # * `ENV['AMAZON_REGION']`
154
+ # * `ENV['AWS_DEFAULT_REGION']`
155
+ # * `~/.aws/credentials`
156
+ # * `~/.aws/config`
157
+ #
158
+ # @option options [String] :access_key_id
159
+ #
160
+ # @option options [String] :account_id
161
+ #
162
+ # @option options [Boolean] :active_endpoint_cache (false)
163
+ # When set to `true`, a thread polling for endpoints will be running in
164
+ # the background every 60 secs (default). Defaults to `false`.
165
+ #
166
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
167
+ # Used only in `adaptive` retry mode. When true, the request will sleep
168
+ # until there is sufficent client side capacity to retry the request.
169
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
170
+ # not retry instead of sleeping.
171
+ #
172
+ # @option options [Array<String>] :auth_scheme_preference
173
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
174
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
175
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
176
+ #
177
+ # @option options [Boolean] :client_side_monitoring (false)
178
+ # When `true`, client-side metrics will be collected for all API requests from
179
+ # this client.
180
+ #
181
+ # @option options [String] :client_side_monitoring_client_id ("")
182
+ # Allows you to provide an identifier for this client which will be attached to
183
+ # all generated client side metrics. Defaults to an empty string.
184
+ #
185
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
186
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
187
+ # side monitoring agent is running on, where client metrics will be published via UDP.
188
+ #
189
+ # @option options [Integer] :client_side_monitoring_port (31000)
190
+ # Required for publishing client metrics. The port that the client side monitoring
191
+ # agent is running on, where client metrics will be published via UDP.
192
+ #
193
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
194
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
195
+ # will use the Client Side Monitoring Agent Publisher.
196
+ #
197
+ # @option options [Boolean] :convert_params (true)
198
+ # When `true`, an attempt is made to coerce request parameters into
199
+ # the required types.
200
+ #
201
+ # @option options [Boolean] :correct_clock_skew (true)
202
+ # Used only in `standard` and `adaptive` retry modes. Specifies whether to apply
203
+ # a clock skew correction and retry requests with skewed client clocks.
204
+ #
205
+ # @option options [String] :defaults_mode ("legacy")
206
+ # See {Aws::DefaultsModeConfiguration} for a list of the
207
+ # accepted modes and the configuration defaults that are included.
208
+ #
209
+ # @option options [Boolean] :disable_host_prefix_injection (false)
210
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
211
+ #
212
+ # @option options [Boolean] :disable_request_compression (false)
213
+ # When set to 'true' the request body will not be compressed
214
+ # for supported operations.
215
+ #
216
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
217
+ # Normally you should not configure the `:endpoint` option
218
+ # directly. This is normally constructed from the `:region`
219
+ # option. Configuring `:endpoint` is normally reserved for
220
+ # connecting to test or custom endpoints. The endpoint should
221
+ # be a URI formatted like:
222
+ #
223
+ # 'http://example.com'
224
+ # 'https://example.com'
225
+ # 'http://example.com:123'
226
+ #
227
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
228
+ # Used for the maximum size limit of the LRU cache storing endpoints data
229
+ # for endpoint discovery enabled operations. Defaults to 1000.
230
+ #
231
+ # @option options [Integer] :endpoint_cache_max_threads (10)
232
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
233
+ #
234
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
235
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
236
+ # Use this option to config the time interval in seconds for making
237
+ # requests fetching endpoints information. Defaults to 60 sec.
238
+ #
239
+ # @option options [Boolean] :endpoint_discovery (false)
240
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
241
+ #
242
+ # @option options [Boolean] :ignore_configured_endpoint_urls
243
+ # Setting to true disables use of endpoint URLs provided via environment
244
+ # variables and the shared configuration file.
245
+ #
246
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
247
+ # The log formatter.
248
+ #
249
+ # @option options [Symbol] :log_level (:info)
250
+ # The log level to send messages to the `:logger` at.
251
+ #
252
+ # @option options [Logger] :logger
253
+ # The Logger instance to send log messages to. If this option
254
+ # is not set, logging will be disabled.
255
+ #
256
+ # @option options [Integer] :max_attempts (3)
257
+ # An integer representing the maximum number attempts that will be made for
258
+ # a single request, including the initial attempt. For example,
259
+ # setting this value to 5 will result in a request being retried up to
260
+ # 4 times. Used in `standard` and `adaptive` retry modes.
261
+ #
262
+ # @option options [String] :profile ("default")
263
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
264
+ # When not specified, 'default' is used.
265
+ #
266
+ # @option options [String] :request_checksum_calculation ("when_supported")
267
+ # Determines when a checksum will be calculated for request payloads. Values are:
268
+ #
269
+ # * `when_supported` - (default) When set, a checksum will be
270
+ # calculated for all request payloads of operations modeled with the
271
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
272
+ # `requestAlgorithmMember` is modeled.
273
+ # * `when_required` - When set, a checksum will only be calculated for
274
+ # request payloads of operations modeled with the `httpChecksum` trait where
275
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
276
+ # is modeled and supplied.
277
+ #
278
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
279
+ # The minimum size in bytes that triggers compression for request
280
+ # bodies. The value must be non-negative integer value between 0
281
+ # and 10485780 bytes inclusive.
282
+ #
283
+ # @option options [String] :response_checksum_validation ("when_supported")
284
+ # Determines when checksum validation will be performed on response payloads. Values are:
285
+ #
286
+ # * `when_supported` - (default) When set, checksum validation is performed on all
287
+ # response payloads of operations modeled with the `httpChecksum` trait where
288
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
289
+ # are supported.
290
+ # * `when_required` - When set, checksum validation is not performed on
291
+ # response payloads of operations unless the checksum algorithm is supported and
292
+ # the `requestValidationModeMember` member is set to `ENABLED`.
293
+ #
294
+ # @option options [Proc] :retry_backoff
295
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
296
+ # This option is only used in the `legacy` retry mode.
297
+ #
298
+ # @option options [Float] :retry_base_delay (0.3)
299
+ # The base delay in seconds used by the default backoff function. This option
300
+ # is only used in the `legacy` retry mode.
301
+ #
302
+ # @option options [Symbol] :retry_jitter (:none)
303
+ # A delay randomiser function used by the default backoff function.
304
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
305
+ # otherwise a Proc that takes and returns a number. This option is only used
306
+ # in the `legacy` retry mode.
307
+ #
308
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
309
+ #
310
+ # @option options [Integer] :retry_limit (3)
311
+ # The maximum number of times to retry failed requests. Only
312
+ # ~ 500 level server errors and certain ~ 400 level client errors
313
+ # are retried. Generally, these are throttling errors, data
314
+ # checksum errors, networking errors, timeout errors, auth errors,
315
+ # endpoint discovery, and errors from expired credentials.
316
+ # This option is only used in the `legacy` retry mode.
317
+ #
318
+ # @option options [Integer] :retry_max_delay (0)
319
+ # The maximum number of seconds to delay between retries (0 for no limit)
320
+ # used by the default backoff function. This option is only used in the
321
+ # `legacy` retry mode.
322
+ #
323
+ # @option options [String] :retry_mode ("legacy")
324
+ # Specifies which retry algorithm to use. Values are:
325
+ #
326
+ # * `legacy` - The pre-existing retry behavior. This is the default
327
+ # value if no retry mode is provided.
328
+ #
329
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
330
+ # This includes support for retry quotas, which limit the number of
331
+ # unsuccessful retries a client can make.
332
+ #
333
+ # * `adaptive` - A retry mode that includes all the functionality of
334
+ # `standard` mode along with automatic client side throttling.
335
+ #
336
+ # @option options [String] :sdk_ua_app_id
337
+ # A unique and opaque application ID that is appended to the
338
+ # User-Agent header as app/sdk_ua_app_id. It should have a
339
+ # maximum length of 50. This variable is sourced from environment
340
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
341
+ #
342
+ # @option options [String] :secret_access_key
343
+ #
344
+ # @option options [String] :session_token
345
+ #
346
+ # @option options [Array] :sigv4a_signing_region_set
347
+ # A list of regions that should be signed with SigV4a signing. When
348
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
349
+ # in the following locations:
350
+ #
351
+ # * `Aws.config[:sigv4a_signing_region_set]`
352
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
353
+ # * `~/.aws/config`
354
+ #
355
+ # @option options [Boolean] :stub_responses (false)
356
+ # Causes the client to return stubbed responses. By default
357
+ # fake responses are generated and returned. You can specify
358
+ # the response data to return or errors to raise by calling
359
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
360
+ #
361
+ # ** Please note ** When response stubbing is enabled, no HTTP
362
+ # requests are made, and retries are disabled.
363
+ #
364
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
365
+ # Allows you to provide a telemetry provider, which is used to
366
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
367
+ # will not record or emit any telemetry data. The SDK supports the
368
+ # following telemetry providers:
369
+ #
370
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
371
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
372
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
373
+ #
374
+ # @option options [Aws::TokenProvider] :token_provider
375
+ # Your Bearer token used for authentication. This can be any class that includes and implements
376
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
377
+ #
378
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
379
+ # tokens.
380
+ #
381
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
382
+ # access token generated from `aws login`.
383
+ #
384
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
385
+ # will be used to search for tokens configured for your profile in shared configuration files.
386
+ #
387
+ # @option options [Boolean] :use_dualstack_endpoint
388
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
389
+ # will be used if available.
390
+ #
391
+ # @option options [Boolean] :use_fips_endpoint
392
+ # When set to `true`, fips compatible endpoints will be used if available.
393
+ # When a `fips` region is used, the region is normalized and this config
394
+ # is set to `true`.
395
+ #
396
+ # @option options [Boolean] :validate_params (true)
397
+ # When `true`, request parameters are validated before
398
+ # sending the request.
399
+ #
400
+ # @option options [Aws::EndUserMessaging::EndpointProvider] :endpoint_provider
401
+ # The endpoint provider used to resolve endpoints. Any object that responds to
402
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
403
+ # `Aws::EndUserMessaging::EndpointParameters`.
404
+ #
405
+ # @option options [Float] :http_continue_timeout (1)
406
+ # The number of seconds to wait for a 100-continue response before sending the
407
+ # request body. This option has no effect unless the request has "Expect"
408
+ # header set to "100-continue". Defaults to `nil` which disables this
409
+ # behaviour. This value can safely be set per request on the session.
410
+ #
411
+ # @option options [Float] :http_idle_timeout (5)
412
+ # The number of seconds a connection is allowed to sit idle before it
413
+ # is considered stale. Stale connections are closed and removed from the
414
+ # pool before making a request.
415
+ #
416
+ # @option options [Float] :http_open_timeout (15)
417
+ # The default number of seconds to wait for response data.
418
+ # This value can safely be set per-request on the session.
419
+ #
420
+ # @option options [URI::HTTP,String] :http_proxy
421
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
422
+ #
423
+ # @option options [Float] :http_read_timeout (60)
424
+ # The default number of seconds to wait for response data.
425
+ # This value can safely be set per-request on the session.
426
+ #
427
+ # @option options [Boolean] :http_wire_trace (false)
428
+ # When `true`, HTTP debug output will be sent to the `:logger`.
429
+ #
430
+ # @option options [Proc] :on_chunk_received
431
+ # When a Proc object is provided, it will be used as callback when each chunk
432
+ # of the response body is received. It provides three arguments: the chunk,
433
+ # the number of bytes received, and the total number of
434
+ # bytes in the response (or nil if the server did not send a `content-length`).
435
+ #
436
+ # @option options [Proc] :on_chunk_sent
437
+ # When a Proc object is provided, it will be used as callback when each chunk
438
+ # of the request body is sent. It provides three arguments: the chunk,
439
+ # the number of bytes read from the body, and the total number of
440
+ # bytes in the body.
441
+ #
442
+ # @option options [Boolean] :raise_response_errors (true)
443
+ # When `true`, response errors are raised.
444
+ #
445
+ # @option options [String] :ssl_ca_bundle
446
+ # Full path to the SSL certificate authority bundle file that should be used when
447
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
448
+ # `:ssl_ca_directory` the the system default will be used if available.
449
+ #
450
+ # @option options [String] :ssl_ca_directory
451
+ # Full path of the directory that contains the unbundled SSL certificate
452
+ # authority files for verifying peer certificates. If you do
453
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
454
+ # default will be used if available.
455
+ #
456
+ # @option options [String] :ssl_ca_store
457
+ # Sets the X509::Store to verify peer certificate.
458
+ #
459
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
460
+ # Sets a client certificate when creating http connections.
461
+ #
462
+ # @option options [OpenSSL::PKey] :ssl_key
463
+ # Sets a client key when creating http connections.
464
+ #
465
+ # @option options [Float] :ssl_timeout
466
+ # Sets the SSL timeout in seconds
467
+ #
468
+ # @option options [Boolean] :ssl_verify_peer (true)
469
+ # When `true`, SSL peer certificates are verified when establishing a connection.
470
+ #
471
+ def initialize(*args)
472
+ super
473
+ end
474
+
475
+ # @!group API Operations
476
+
477
+ # Creates a brand profile. A brand profile is a lightweight container
478
+ # that holds your brand identity information as flexible attributes.
479
+ # After you create a brand profile, use the CreateBrandProfileAttributes
480
+ # operation to add company information, addresses, compliance documents,
481
+ # and logos.
482
+ #
483
+ # @option params [required, String] :brand_profile_name
484
+ # The name of the brand profile. The name can contain alphanumeric
485
+ # characters, underscores, hyphens, and spaces.
486
+ #
487
+ # @option params [String] :client_token
488
+ # A unique, case-sensitive identifier that you provide to ensure the
489
+ # idempotency of the request. If you do not specify a client token, the
490
+ # AWS SDK automatically generates one.
491
+ #
492
+ # **A suitable default value is auto-generated.** You should normally
493
+ # not need to pass this option.**
494
+ #
495
+ # @option params [Boolean] :deletion_protection_enabled
496
+ # Specifies whether deletion protection is enabled. When enabled, the
497
+ # resource cannot be deleted until deletion protection is turned off.
498
+ #
499
+ # @option params [Array<Types::Tag>] :tags
500
+ # An array of key and value pair tags that are associated with the
501
+ # resource.
502
+ #
503
+ # @return [Types::CreateBrandProfileOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
504
+ #
505
+ # * {Types::CreateBrandProfileOutput#brand_profile_id #brand_profile_id} => String
506
+ # * {Types::CreateBrandProfileOutput#brand_profile_arn #brand_profile_arn} => String
507
+ # * {Types::CreateBrandProfileOutput#brand_profile_name #brand_profile_name} => String
508
+ # * {Types::CreateBrandProfileOutput#status #status} => String
509
+ # * {Types::CreateBrandProfileOutput#deletion_protection_enabled #deletion_protection_enabled} => Boolean
510
+ # * {Types::CreateBrandProfileOutput#created_at #created_at} => Time
511
+ # * {Types::CreateBrandProfileOutput#updated_at #updated_at} => Time
512
+ # * {Types::CreateBrandProfileOutput#attributes_created #attributes_created} => Integer
513
+ #
514
+ #
515
+ # @example Example: Create a brand profile
516
+ #
517
+ # resp = client.create_brand_profile({
518
+ # brand_profile_name: "AcmeCorp",
519
+ # deletion_protection_enabled: true,
520
+ # })
521
+ #
522
+ # resp.to_h outputs the following:
523
+ # {
524
+ # attributes_created: 0,
525
+ # brand_profile_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:brand-profile/bp-abc12345678901234",
526
+ # brand_profile_id: "bp-abc12345678901234",
527
+ # brand_profile_name: "AcmeCorp",
528
+ # created_at: Time.parse(1727130000),
529
+ # deletion_protection_enabled: true,
530
+ # status: "ACTIVE",
531
+ # updated_at: Time.parse(1727130000),
532
+ # }
533
+ #
534
+ # @example Request syntax with placeholder values
535
+ #
536
+ # resp = client.create_brand_profile({
537
+ # brand_profile_name: "BrandProfileName", # required
538
+ # client_token: "ClientToken",
539
+ # deletion_protection_enabled: false,
540
+ # tags: [
541
+ # {
542
+ # key: "TagKey", # required
543
+ # value: "TagValue", # required
544
+ # },
545
+ # ],
546
+ # })
547
+ #
548
+ # @example Response structure
549
+ #
550
+ # resp.brand_profile_id #=> String
551
+ # resp.brand_profile_arn #=> String
552
+ # resp.brand_profile_name #=> String
553
+ # resp.status #=> String, one of "ACTIVE", "BLOCKED", "PAUSED", "CANCELLED", "FAILED"
554
+ # resp.deletion_protection_enabled #=> Boolean
555
+ # resp.created_at #=> Time
556
+ # resp.updated_at #=> Time
557
+ # resp.attributes_created #=> Integer
558
+ #
559
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/CreateBrandProfile AWS API Documentation
560
+ #
561
+ # @overload create_brand_profile(params = {})
562
+ # @param [Hash] params ({})
563
+ def create_brand_profile(params = {}, options = {})
564
+ req = build_request(:create_brand_profile, params)
565
+ req.send_request(options)
566
+ end
567
+
568
+ # Creates up to 10 attributes for a brand profile in a single request.
569
+ # For attributes of type IMAGE or DOCUMENT, the response includes a
570
+ # presigned Amazon S3 URL that you use to upload the media. This
571
+ # operation is atomic: either all of the attributes are created, or none
572
+ # of them are.
573
+ #
574
+ # @option params [required, String] :brand_profile_id
575
+ # The unique identifier of the brand profile. You can specify either the
576
+ # bare ID or the full Amazon Resource Name (ARN).
577
+ #
578
+ # @option params [required, Array<Types::BrandProfileAttributeInput>] :attributes
579
+ # The brand profile attributes.
580
+ #
581
+ # @option params [String] :client_token
582
+ # A unique, case-sensitive identifier that you provide to ensure the
583
+ # idempotency of the request. If you do not specify a client token, the
584
+ # AWS SDK automatically generates one.
585
+ #
586
+ # **A suitable default value is auto-generated.** You should normally
587
+ # not need to pass this option.**
588
+ #
589
+ # @return [Types::CreateBrandProfileAttributesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
590
+ #
591
+ # * {Types::CreateBrandProfileAttributesOutput#attributes #attributes} => Array&lt;Types::BrandProfileAttributeOutput&gt;
592
+ #
593
+ #
594
+ # @example Example: Create a text attribute on a brand profile
595
+ #
596
+ # resp = client.create_brand_profile_attributes({
597
+ # attributes: [
598
+ # {
599
+ # attribute_name: "SupportEmail",
600
+ # attribute_type: "TEXT",
601
+ # attribute_value: "support@example.com",
602
+ # category: "CONTACT",
603
+ # },
604
+ # ],
605
+ # brand_profile_id: "bp-abc12345678901234",
606
+ # })
607
+ #
608
+ # resp.to_h outputs the following:
609
+ # {
610
+ # attributes: [
611
+ # {
612
+ # attribute_name: "SupportEmail",
613
+ # attribute_type: "TEXT",
614
+ # },
615
+ # ],
616
+ # }
617
+ #
618
+ # @example Request syntax with placeholder values
619
+ #
620
+ # resp = client.create_brand_profile_attributes({
621
+ # brand_profile_id: "BrandProfileIdOrArn", # required
622
+ # attributes: [ # required
623
+ # {
624
+ # attribute_name: "BrandProfileAttributeName", # required
625
+ # attribute_type: "TEXT", # required, accepts TEXT, IMAGE, DOCUMENT
626
+ # attribute_value: "BrandProfileAttributeValue",
627
+ # attachment_body: "data",
628
+ # description: "BrandProfileAttributeDescription",
629
+ # category: "BrandProfileAttributeCategory",
630
+ # },
631
+ # ],
632
+ # client_token: "ClientToken",
633
+ # })
634
+ #
635
+ # @example Response structure
636
+ #
637
+ # resp.attributes #=> Array
638
+ # resp.attributes[0].attribute_name #=> String
639
+ # resp.attributes[0].attribute_type #=> String, one of "TEXT", "IMAGE", "DOCUMENT"
640
+ # resp.attributes[0].media_download_url #=> String
641
+ #
642
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/CreateBrandProfileAttributes AWS API Documentation
643
+ #
644
+ # @overload create_brand_profile_attributes(params = {})
645
+ # @param [Hash] params ({})
646
+ def create_brand_profile_attributes(params = {}, options = {})
647
+ req = build_request(:create_brand_profile_attributes, params)
648
+ req.send_request(options)
649
+ end
650
+
651
+ # Creates a brand profile and populates its attributes from an existing
652
+ # registration. This operation runs asynchronously. Use the GetJob
653
+ # operation to track its progress.
654
+ #
655
+ # @option params [required, String] :registration_id
656
+ # The identifier or Amazon Resource Name (ARN) of the registration to
657
+ # populate the brand profile from.
658
+ #
659
+ # @option params [required, String] :brand_profile_name
660
+ # The name of the brand profile. The name can contain alphanumeric
661
+ # characters, underscores, hyphens, and spaces.
662
+ #
663
+ # @option params [Boolean] :smart_match
664
+ # Specifies whether to use semantic field mapping between brand profile
665
+ # attributes and registration fields. The default is true. When false,
666
+ # the service maps fields using a fixed set of standard field types.
667
+ #
668
+ # @option params [Array<Types::Tag>] :tags
669
+ # An array of key and value pair tags that are associated with the
670
+ # resource.
671
+ #
672
+ # @option params [String] :client_token
673
+ # A unique, case-sensitive identifier that you provide to ensure the
674
+ # idempotency of the request. If you do not specify a client token, the
675
+ # AWS SDK automatically generates one.
676
+ #
677
+ # **A suitable default value is auto-generated.** You should normally
678
+ # not need to pass this option.**
679
+ #
680
+ # @return [Types::CreateBrandProfileFromRegistrationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
681
+ #
682
+ # * {Types::CreateBrandProfileFromRegistrationOutput#results #results} => Array&lt;Types::JobResult&gt;
683
+ #
684
+ #
685
+ # @example Example: Create a brand profile from a registration
686
+ #
687
+ # resp = client.create_brand_profile_from_registration({
688
+ # brand_profile_name: "AcmeCorp",
689
+ # registration_id: "reg-abc12345678901234",
690
+ # smart_match: true,
691
+ # })
692
+ #
693
+ # resp.to_h outputs the following:
694
+ # {
695
+ # results: [
696
+ # {
697
+ # job_id: "job-abc12345678901234",
698
+ # resource_identifier: "reg-abc12345678901234",
699
+ # },
700
+ # ],
701
+ # }
702
+ #
703
+ # @example Request syntax with placeholder values
704
+ #
705
+ # resp = client.create_brand_profile_from_registration({
706
+ # registration_id: "RegistrationIdOrArn", # required
707
+ # brand_profile_name: "BrandProfileName", # required
708
+ # smart_match: false,
709
+ # tags: [
710
+ # {
711
+ # key: "TagKey", # required
712
+ # value: "TagValue", # required
713
+ # },
714
+ # ],
715
+ # client_token: "ClientToken",
716
+ # })
717
+ #
718
+ # @example Response structure
719
+ #
720
+ # resp.results #=> Array
721
+ # resp.results[0].job_id #=> String
722
+ # resp.results[0].resource_identifier #=> String
723
+ #
724
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/CreateBrandProfileFromRegistration AWS API Documentation
725
+ #
726
+ # @overload create_brand_profile_from_registration(params = {})
727
+ # @param [Hash] params ({})
728
+ def create_brand_profile_from_registration(params = {}, options = {})
729
+ req = build_request(:create_brand_profile_from_registration, params)
730
+ req.send_request(options)
731
+ end
732
+
733
+ # Creates a notify code configuration. A notify code configuration is a
734
+ # reusable policy that defines how one-time passcodes are generated and
735
+ # rendered, including the code type, length, validity period, maximum
736
+ # number of attempts, and channel templates.
737
+ #
738
+ # @option params [required, String] :notify_code_configuration_name
739
+ # The name of the notify code configuration.
740
+ #
741
+ # @option params [Types::CodeConfigurationParameters] :code_configuration_parameters
742
+ # The passcode policy parameters, including the code type, length,
743
+ # validity period, and maximum number of attempts. Each member is
744
+ # optional. When you omit a member, no value is applied at create time
745
+ # and the default is applied when a passcode is sent.
746
+ #
747
+ # @option params [Types::ChannelParameters] :channel_parameters
748
+ # The channel-specific parameters used to render and deliver the
749
+ # one-time passcode. Provide parameters for any subset of channels. Each
750
+ # member configures one delivery route, and the route that is selected
751
+ # at send time uses the matching channel.
752
+ #
753
+ # @option params [Boolean] :deletion_protection_enabled
754
+ # Specifies whether deletion protection is enabled. When enabled, the
755
+ # resource cannot be deleted until deletion protection is turned off.
756
+ #
757
+ # @option params [String] :client_token
758
+ # A unique, case-sensitive identifier that you provide to ensure the
759
+ # idempotency of the request. If you do not specify a client token, the
760
+ # AWS SDK automatically generates one.
761
+ #
762
+ # **A suitable default value is auto-generated.** You should normally
763
+ # not need to pass this option.**
764
+ #
765
+ # @option params [Array<Types::Tag>] :tags
766
+ # An array of key and value pair tags that are associated with the
767
+ # resource.
768
+ #
769
+ # @return [Types::CreateNotifyCodeConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
770
+ #
771
+ # * {Types::CreateNotifyCodeConfigurationOutput#notify_code_configuration #notify_code_configuration} => Types::NotifyCodeConfiguration
772
+ #
773
+ #
774
+ # @example Example: Create a notify code configuration
775
+ #
776
+ # resp = client.create_notify_code_configuration({
777
+ # channel_parameters: {
778
+ # text: {
779
+ # inline_template_body: "Your verification code is {{code}}.",
780
+ # },
781
+ # },
782
+ # code_configuration_parameters: {
783
+ # code_length: 6,
784
+ # code_type: "NUMERIC",
785
+ # max_attempts: 3,
786
+ # validity_period_minutes: 10,
787
+ # },
788
+ # notify_code_configuration_name: "SignupOtp",
789
+ # })
790
+ #
791
+ # resp.to_h outputs the following:
792
+ # {
793
+ # notify_code_configuration: {
794
+ # channel_parameters: {
795
+ # text: {
796
+ # inline_template_body: "Your verification code is {{code}}.",
797
+ # },
798
+ # },
799
+ # code_configuration_parameters: {
800
+ # code_length: 6,
801
+ # code_type: "NUMERIC",
802
+ # max_attempts: 3,
803
+ # validity_period_minutes: 10,
804
+ # },
805
+ # created_at: Time.parse(1727130000),
806
+ # deletion_protection_enabled: false,
807
+ # notify_code_configuration_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:notify-code-configuration/ncc-abc12345678901234",
808
+ # notify_code_configuration_id: "ncc-abc12345678901234",
809
+ # notify_code_configuration_name: "SignupOtp",
810
+ # updated_at: Time.parse(1727130000),
811
+ # },
812
+ # }
813
+ #
814
+ # @example Request syntax with placeholder values
815
+ #
816
+ # resp = client.create_notify_code_configuration({
817
+ # notify_code_configuration_name: "NotifyCodeConfigurationName", # required
818
+ # code_configuration_parameters: {
819
+ # code_type: "NUMERIC", # accepts NUMERIC, ALPHA, ALPHANUMERIC
820
+ # code_length: 1,
821
+ # validity_period_minutes: 1,
822
+ # max_attempts: 1,
823
+ # },
824
+ # channel_parameters: {
825
+ # text: {
826
+ # inline_template_body: "InlineTemplateBody",
827
+ # destination_country_parameters: {
828
+ # "DestinationCountryParameterKey" => "DestinationCountryParameterValue",
829
+ # },
830
+ # },
831
+ # voice: {
832
+ # inline_template_body: "InlineTemplateBody",
833
+ # language_code: "LanguageCode",
834
+ # voice_id: "VoiceId",
835
+ # voice_message_body_text_type: "TEXT", # accepts TEXT, SSML
836
+ # },
837
+ # notify: {
838
+ # notify_template_id: "NotifyTemplateId",
839
+ # voice_id: "VoiceId",
840
+ # },
841
+ # whats_app: {
842
+ # whats_app_template_name: "WhatsAppTemplateName",
843
+ # language_code: "LanguageCode",
844
+ # },
845
+ # },
846
+ # deletion_protection_enabled: false,
847
+ # client_token: "ClientToken",
848
+ # tags: [
849
+ # {
850
+ # key: "TagKey", # required
851
+ # value: "TagValue", # required
852
+ # },
853
+ # ],
854
+ # })
855
+ #
856
+ # @example Response structure
857
+ #
858
+ # resp.notify_code_configuration.notify_code_configuration_id #=> String
859
+ # resp.notify_code_configuration.notify_code_configuration_arn #=> String
860
+ # resp.notify_code_configuration.notify_code_configuration_name #=> String
861
+ # resp.notify_code_configuration.code_configuration_parameters.code_type #=> String, one of "NUMERIC", "ALPHA", "ALPHANUMERIC"
862
+ # resp.notify_code_configuration.code_configuration_parameters.code_length #=> Integer
863
+ # resp.notify_code_configuration.code_configuration_parameters.validity_period_minutes #=> Integer
864
+ # resp.notify_code_configuration.code_configuration_parameters.max_attempts #=> Integer
865
+ # resp.notify_code_configuration.channel_parameters.text.inline_template_body #=> String
866
+ # resp.notify_code_configuration.channel_parameters.text.destination_country_parameters #=> Hash
867
+ # resp.notify_code_configuration.channel_parameters.text.destination_country_parameters["DestinationCountryParameterKey"] #=> String
868
+ # resp.notify_code_configuration.channel_parameters.voice.inline_template_body #=> String
869
+ # resp.notify_code_configuration.channel_parameters.voice.language_code #=> String
870
+ # resp.notify_code_configuration.channel_parameters.voice.voice_id #=> String
871
+ # resp.notify_code_configuration.channel_parameters.voice.voice_message_body_text_type #=> String, one of "TEXT", "SSML"
872
+ # resp.notify_code_configuration.channel_parameters.notify.notify_template_id #=> String
873
+ # resp.notify_code_configuration.channel_parameters.notify.voice_id #=> String
874
+ # resp.notify_code_configuration.channel_parameters.whats_app.whats_app_template_name #=> String
875
+ # resp.notify_code_configuration.channel_parameters.whats_app.language_code #=> String
876
+ # resp.notify_code_configuration.deletion_protection_enabled #=> Boolean
877
+ # resp.notify_code_configuration.created_at #=> Time
878
+ # resp.notify_code_configuration.updated_at #=> Time
879
+ #
880
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/CreateNotifyCodeConfiguration AWS API Documentation
881
+ #
882
+ # @overload create_notify_code_configuration(params = {})
883
+ # @param [Hash] params ({})
884
+ def create_notify_code_configuration(params = {}, options = {})
885
+ req = build_request(:create_notify_code_configuration, params)
886
+ req.send_request(options)
887
+ end
888
+
889
+ # Creates one or more registrations in the DRAFT state and prefills
890
+ # their fields from the attributes of a brand profile. This operation
891
+ # runs asynchronously. Use the GetJob operation to track its progress.
892
+ #
893
+ # @option params [required, String] :brand_profile_id
894
+ # The unique identifier of the brand profile. You can specify either the
895
+ # bare ID or the full Amazon Resource Name (ARN).
896
+ #
897
+ # @option params [required, Array<String>] :registration_types
898
+ # The registration types to create, for example
899
+ # US\_TOLL\_FREE\_REGISTRATION or SENDER\_ID.
900
+ #
901
+ # @option params [Boolean] :smart_match
902
+ # Specifies whether to use semantic field mapping between brand profile
903
+ # attributes and registration fields. The default is true. When false,
904
+ # the service maps fields using a fixed set of standard field types.
905
+ #
906
+ # @option params [String] :client_token
907
+ # A unique, case-sensitive identifier that you provide to ensure the
908
+ # idempotency of the request. If you do not specify a client token, the
909
+ # AWS SDK automatically generates one.
910
+ #
911
+ # **A suitable default value is auto-generated.** You should normally
912
+ # not need to pass this option.**
913
+ #
914
+ # @return [Types::CreateRegistrationsFromBrandProfileOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
915
+ #
916
+ # * {Types::CreateRegistrationsFromBrandProfileOutput#results #results} => Array&lt;Types::JobResult&gt;
917
+ #
918
+ #
919
+ # @example Example: Create draft registrations from a brand profile
920
+ #
921
+ # resp = client.create_registrations_from_brand_profile({
922
+ # brand_profile_id: "bp-abc12345678901234",
923
+ # registration_types: [
924
+ # "US_TOLL_FREE_REGISTRATION",
925
+ # ],
926
+ # smart_match: true,
927
+ # })
928
+ #
929
+ # resp.to_h outputs the following:
930
+ # {
931
+ # results: [
932
+ # {
933
+ # job_id: "job-abc12345678901234",
934
+ # resource_identifier: "US_TOLL_FREE_REGISTRATION",
935
+ # },
936
+ # ],
937
+ # }
938
+ #
939
+ # @example Request syntax with placeholder values
940
+ #
941
+ # resp = client.create_registrations_from_brand_profile({
942
+ # brand_profile_id: "BrandProfileIdOrArn", # required
943
+ # registration_types: ["RegistrationType"], # required
944
+ # smart_match: false,
945
+ # client_token: "ClientToken",
946
+ # })
947
+ #
948
+ # @example Response structure
949
+ #
950
+ # resp.results #=> Array
951
+ # resp.results[0].job_id #=> String
952
+ # resp.results[0].resource_identifier #=> String
953
+ #
954
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/CreateRegistrationsFromBrandProfile AWS API Documentation
955
+ #
956
+ # @overload create_registrations_from_brand_profile(params = {})
957
+ # @param [Hash] params ({})
958
+ def create_registrations_from_brand_profile(params = {}, options = {})
959
+ req = build_request(:create_registrations_from_brand_profile, params)
960
+ req.send_request(options)
961
+ end
962
+
963
+ # Deletes a brand profile. This operation also deletes the attributes of
964
+ # the profile and any associated media. The request fails if deletion
965
+ # protection is enabled for the profile.
966
+ #
967
+ # @option params [required, String] :brand_profile_id
968
+ # The unique identifier of the brand profile. You can specify either the
969
+ # bare ID or the full Amazon Resource Name (ARN).
970
+ #
971
+ # @return [Types::DeleteBrandProfileOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
972
+ #
973
+ # * {Types::DeleteBrandProfileOutput#brand_profile_id #brand_profile_id} => String
974
+ # * {Types::DeleteBrandProfileOutput#brand_profile_arn #brand_profile_arn} => String
975
+ #
976
+ #
977
+ # @example Example: Delete a brand profile
978
+ #
979
+ # resp = client.delete_brand_profile({
980
+ # brand_profile_id: "bp-abc12345678901234",
981
+ # })
982
+ #
983
+ # resp.to_h outputs the following:
984
+ # {
985
+ # brand_profile_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:brand-profile/bp-abc12345678901234",
986
+ # brand_profile_id: "bp-abc12345678901234",
987
+ # }
988
+ #
989
+ # @example Request syntax with placeholder values
990
+ #
991
+ # resp = client.delete_brand_profile({
992
+ # brand_profile_id: "BrandProfileIdOrArn", # required
993
+ # })
994
+ #
995
+ # @example Response structure
996
+ #
997
+ # resp.brand_profile_id #=> String
998
+ # resp.brand_profile_arn #=> String
999
+ #
1000
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/DeleteBrandProfile AWS API Documentation
1001
+ #
1002
+ # @overload delete_brand_profile(params = {})
1003
+ # @param [Hash] params ({})
1004
+ def delete_brand_profile(params = {}, options = {})
1005
+ req = build_request(:delete_brand_profile, params)
1006
+ req.send_request(options)
1007
+ end
1008
+
1009
+ # Deletes a brand profile attribute. If the attribute stores media, this
1010
+ # operation also deletes the associated media.
1011
+ #
1012
+ # @option params [required, String] :brand_profile_id
1013
+ # The unique identifier of the brand profile. You can specify either the
1014
+ # bare ID or the full Amazon Resource Name (ARN).
1015
+ #
1016
+ # @option params [required, String] :attribute_name
1017
+ # The name of the brand profile attribute. The name is unique within a
1018
+ # brand profile.
1019
+ #
1020
+ # @return [Types::DeleteBrandProfileAttributeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1021
+ #
1022
+ # * {Types::DeleteBrandProfileAttributeOutput#brand_profile_id #brand_profile_id} => String
1023
+ # * {Types::DeleteBrandProfileAttributeOutput#attribute_name #attribute_name} => String
1024
+ #
1025
+ #
1026
+ # @example Example: Delete a brand profile attribute
1027
+ #
1028
+ # resp = client.delete_brand_profile_attribute({
1029
+ # attribute_name: "SupportEmail",
1030
+ # brand_profile_id: "bp-abc12345678901234",
1031
+ # })
1032
+ #
1033
+ # resp.to_h outputs the following:
1034
+ # {
1035
+ # attribute_name: "SupportEmail",
1036
+ # brand_profile_id: "bp-abc12345678901234",
1037
+ # }
1038
+ #
1039
+ # @example Request syntax with placeholder values
1040
+ #
1041
+ # resp = client.delete_brand_profile_attribute({
1042
+ # brand_profile_id: "BrandProfileIdOrArn", # required
1043
+ # attribute_name: "BrandProfileAttributeName", # required
1044
+ # })
1045
+ #
1046
+ # @example Response structure
1047
+ #
1048
+ # resp.brand_profile_id #=> String
1049
+ # resp.attribute_name #=> String
1050
+ #
1051
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/DeleteBrandProfileAttribute AWS API Documentation
1052
+ #
1053
+ # @overload delete_brand_profile_attribute(params = {})
1054
+ # @param [Hash] params ({})
1055
+ def delete_brand_profile_attribute(params = {}, options = {})
1056
+ req = build_request(:delete_brand_profile_attribute, params)
1057
+ req.send_request(options)
1058
+ end
1059
+
1060
+ # Deletes a notify code configuration. Verifications that are already in
1061
+ # progress are not affected, because they capture the policy at the time
1062
+ # that the passcode was sent.
1063
+ #
1064
+ # @option params [required, String] :notify_code_configuration_id
1065
+ # The unique identifier of the notify code configuration. You can
1066
+ # specify either the bare ID or the full Amazon Resource Name (ARN).
1067
+ #
1068
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1069
+ #
1070
+ #
1071
+ # @example Example: Delete a notify code configuration
1072
+ #
1073
+ # resp = client.delete_notify_code_configuration({
1074
+ # notify_code_configuration_id: "ncc-abc12345678901234",
1075
+ # })
1076
+ #
1077
+ # resp.to_h outputs the following:
1078
+ # {
1079
+ # }
1080
+ #
1081
+ # @example Request syntax with placeholder values
1082
+ #
1083
+ # resp = client.delete_notify_code_configuration({
1084
+ # notify_code_configuration_id: "NotifyCodeConfigurationIdOrArn", # required
1085
+ # })
1086
+ #
1087
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/DeleteNotifyCodeConfiguration AWS API Documentation
1088
+ #
1089
+ # @overload delete_notify_code_configuration(params = {})
1090
+ # @param [Hash] params ({})
1091
+ def delete_notify_code_configuration(params = {}, options = {})
1092
+ req = build_request(:delete_notify_code_configuration, params)
1093
+ req.send_request(options)
1094
+ end
1095
+
1096
+ # Retrieves the metadata for a brand profile, including its name,
1097
+ # status, deletion protection setting, and timestamps. To retrieve the
1098
+ # attributes of the profile, use the ListBrandProfileAttributes
1099
+ # operation.
1100
+ #
1101
+ # @option params [required, String] :brand_profile_id
1102
+ # The unique identifier of the brand profile. You can specify either the
1103
+ # bare ID or the full Amazon Resource Name (ARN).
1104
+ #
1105
+ # @return [Types::GetBrandProfileOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1106
+ #
1107
+ # * {Types::GetBrandProfileOutput#brand_profile_id #brand_profile_id} => String
1108
+ # * {Types::GetBrandProfileOutput#brand_profile_arn #brand_profile_arn} => String
1109
+ # * {Types::GetBrandProfileOutput#brand_profile_name #brand_profile_name} => String
1110
+ # * {Types::GetBrandProfileOutput#status #status} => String
1111
+ # * {Types::GetBrandProfileOutput#deletion_protection_enabled #deletion_protection_enabled} => Boolean
1112
+ # * {Types::GetBrandProfileOutput#created_at #created_at} => Time
1113
+ # * {Types::GetBrandProfileOutput#updated_at #updated_at} => Time
1114
+ #
1115
+ #
1116
+ # @example Example: Get a brand profile
1117
+ #
1118
+ # resp = client.get_brand_profile({
1119
+ # brand_profile_id: "bp-abc12345678901234",
1120
+ # })
1121
+ #
1122
+ # resp.to_h outputs the following:
1123
+ # {
1124
+ # brand_profile_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:brand-profile/bp-abc12345678901234",
1125
+ # brand_profile_id: "bp-abc12345678901234",
1126
+ # brand_profile_name: "AcmeCorp",
1127
+ # created_at: Time.parse(1727130000),
1128
+ # deletion_protection_enabled: true,
1129
+ # status: "ACTIVE",
1130
+ # updated_at: Time.parse(1727130000),
1131
+ # }
1132
+ #
1133
+ # @example Request syntax with placeholder values
1134
+ #
1135
+ # resp = client.get_brand_profile({
1136
+ # brand_profile_id: "BrandProfileIdOrArn", # required
1137
+ # })
1138
+ #
1139
+ # @example Response structure
1140
+ #
1141
+ # resp.brand_profile_id #=> String
1142
+ # resp.brand_profile_arn #=> String
1143
+ # resp.brand_profile_name #=> String
1144
+ # resp.status #=> String, one of "ACTIVE", "BLOCKED", "PAUSED", "CANCELLED", "FAILED"
1145
+ # resp.deletion_protection_enabled #=> Boolean
1146
+ # resp.created_at #=> Time
1147
+ # resp.updated_at #=> Time
1148
+ #
1149
+ #
1150
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1151
+ #
1152
+ # * brand_profile_active
1153
+ #
1154
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/GetBrandProfile AWS API Documentation
1155
+ #
1156
+ # @overload get_brand_profile(params = {})
1157
+ # @param [Hash] params ({})
1158
+ def get_brand_profile(params = {}, options = {})
1159
+ req = build_request(:get_brand_profile, params)
1160
+ req.send_request(options)
1161
+ end
1162
+
1163
+ # Retrieves a single brand profile attribute.
1164
+ #
1165
+ # @option params [required, String] :brand_profile_id
1166
+ # The unique identifier of the brand profile. You can specify either the
1167
+ # bare ID or the full Amazon Resource Name (ARN).
1168
+ #
1169
+ # @option params [required, String] :attribute_name
1170
+ # The name of the brand profile attribute. The name is unique within a
1171
+ # brand profile.
1172
+ #
1173
+ # @return [Types::GetBrandProfileAttributeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1174
+ #
1175
+ # * {Types::GetBrandProfileAttributeOutput#attribute_name #attribute_name} => String
1176
+ # * {Types::GetBrandProfileAttributeOutput#attribute_type #attribute_type} => String
1177
+ # * {Types::GetBrandProfileAttributeOutput#attribute_value #attribute_value} => String
1178
+ # * {Types::GetBrandProfileAttributeOutput#description #description} => String
1179
+ # * {Types::GetBrandProfileAttributeOutput#category #category} => String
1180
+ # * {Types::GetBrandProfileAttributeOutput#media_content_type #media_content_type} => String
1181
+ # * {Types::GetBrandProfileAttributeOutput#media_size_bytes #media_size_bytes} => Integer
1182
+ # * {Types::GetBrandProfileAttributeOutput#media_download_url #media_download_url} => String
1183
+ # * {Types::GetBrandProfileAttributeOutput#created_at #created_at} => Time
1184
+ # * {Types::GetBrandProfileAttributeOutput#updated_at #updated_at} => Time
1185
+ #
1186
+ #
1187
+ # @example Example: Get a brand profile attribute
1188
+ #
1189
+ # resp = client.get_brand_profile_attribute({
1190
+ # attribute_name: "SupportEmail",
1191
+ # brand_profile_id: "bp-abc12345678901234",
1192
+ # })
1193
+ #
1194
+ # resp.to_h outputs the following:
1195
+ # {
1196
+ # attribute_name: "SupportEmail",
1197
+ # attribute_type: "TEXT",
1198
+ # attribute_value: "support@example.com",
1199
+ # category: "CONTACT",
1200
+ # created_at: Time.parse(1727130000),
1201
+ # updated_at: Time.parse(1727130000),
1202
+ # }
1203
+ #
1204
+ # @example Request syntax with placeholder values
1205
+ #
1206
+ # resp = client.get_brand_profile_attribute({
1207
+ # brand_profile_id: "BrandProfileIdOrArn", # required
1208
+ # attribute_name: "BrandProfileAttributeName", # required
1209
+ # })
1210
+ #
1211
+ # @example Response structure
1212
+ #
1213
+ # resp.attribute_name #=> String
1214
+ # resp.attribute_type #=> String, one of "TEXT", "IMAGE", "DOCUMENT"
1215
+ # resp.attribute_value #=> String
1216
+ # resp.description #=> String
1217
+ # resp.category #=> String
1218
+ # resp.media_content_type #=> String
1219
+ # resp.media_size_bytes #=> Integer
1220
+ # resp.media_download_url #=> String
1221
+ # resp.created_at #=> Time
1222
+ # resp.updated_at #=> Time
1223
+ #
1224
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/GetBrandProfileAttribute AWS API Documentation
1225
+ #
1226
+ # @overload get_brand_profile_attribute(params = {})
1227
+ # @param [Hash] params ({})
1228
+ def get_brand_profile_attribute(params = {}, options = {})
1229
+ req = build_request(:get_brand_profile_attribute, params)
1230
+ req.send_request(options)
1231
+ end
1232
+
1233
+ # Retrieves the current state of an asynchronous job, including its
1234
+ # status and any resources that it created or updated.
1235
+ #
1236
+ # @option params [required, String] :job_id
1237
+ # The unique identifier of the asynchronous job. Use the GetJob
1238
+ # operation to check the status of the job and to retrieve its results.
1239
+ #
1240
+ # @return [Types::Job] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1241
+ #
1242
+ # * {Types::Job#job_id #job_id} => String
1243
+ # * {Types::Job#status #status} => String
1244
+ # * {Types::Job#operation_type #operation_type} => String
1245
+ # * {Types::Job#created_at #created_at} => Time
1246
+ # * {Types::Job#updated_at #updated_at} => Time
1247
+ # * {Types::Job#brand_profile_id #brand_profile_id} => String
1248
+ # * {Types::Job#error_code #error_code} => String
1249
+ # * {Types::Job#error_message #error_message} => String
1250
+ # * {Types::Job#resources #resources} => Array&lt;Types::JobResource&gt;
1251
+ #
1252
+ #
1253
+ # @example Example: Get an async job
1254
+ #
1255
+ # resp = client.get_job({
1256
+ # job_id: "job-abc12345678901234",
1257
+ # })
1258
+ #
1259
+ # resp.to_h outputs the following:
1260
+ # {
1261
+ # brand_profile_id: "bp-abc12345678901234",
1262
+ # created_at: Time.parse(1727130000),
1263
+ # job_id: "job-abc12345678901234",
1264
+ # operation_type: "CreateRegistrationsFromBrandProfile",
1265
+ # resources: [
1266
+ # {
1267
+ # resource_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:registration/reg-abc12345678901234",
1268
+ # resource_id: "reg-abc12345678901234",
1269
+ # resource_type: "REGISTRATION",
1270
+ # },
1271
+ # ],
1272
+ # status: "SUCCESS",
1273
+ # updated_at: Time.parse(1727130060),
1274
+ # }
1275
+ #
1276
+ # @example Request syntax with placeholder values
1277
+ #
1278
+ # resp = client.get_job({
1279
+ # job_id: "JobId", # required
1280
+ # })
1281
+ #
1282
+ # @example Response structure
1283
+ #
1284
+ # resp.job_id #=> String
1285
+ # resp.status #=> String, one of "SUCCESS", "PROCESSING", "FAILED"
1286
+ # resp.operation_type #=> String
1287
+ # resp.created_at #=> Time
1288
+ # resp.updated_at #=> Time
1289
+ # resp.brand_profile_id #=> String
1290
+ # resp.error_code #=> String
1291
+ # resp.error_message #=> String
1292
+ # resp.resources #=> Array
1293
+ # resp.resources[0].resource_type #=> String, one of "REGISTRATION", "BRAND_PROFILE"
1294
+ # resp.resources[0].resource_id #=> String
1295
+ # resp.resources[0].resource_arn #=> String
1296
+ #
1297
+ #
1298
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1299
+ #
1300
+ # * job_success
1301
+ #
1302
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/GetJob AWS API Documentation
1303
+ #
1304
+ # @overload get_job(params = {})
1305
+ # @param [Hash] params ({})
1306
+ def get_job(params = {}, options = {})
1307
+ req = build_request(:get_job, params)
1308
+ req.send_request(options)
1309
+ end
1310
+
1311
+ # Retrieves a notify code configuration.
1312
+ #
1313
+ # @option params [required, String] :notify_code_configuration_id
1314
+ # The unique identifier of the notify code configuration. You can
1315
+ # specify either the bare ID or the full Amazon Resource Name (ARN).
1316
+ #
1317
+ # @return [Types::GetNotifyCodeConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1318
+ #
1319
+ # * {Types::GetNotifyCodeConfigurationOutput#notify_code_configuration #notify_code_configuration} => Types::NotifyCodeConfiguration
1320
+ #
1321
+ #
1322
+ # @example Example: Get a notify code configuration
1323
+ #
1324
+ # resp = client.get_notify_code_configuration({
1325
+ # notify_code_configuration_id: "ncc-abc12345678901234",
1326
+ # })
1327
+ #
1328
+ # resp.to_h outputs the following:
1329
+ # {
1330
+ # notify_code_configuration: {
1331
+ # channel_parameters: {
1332
+ # text: {
1333
+ # inline_template_body: "Your verification code is {{code}}.",
1334
+ # },
1335
+ # },
1336
+ # code_configuration_parameters: {
1337
+ # code_length: 6,
1338
+ # code_type: "NUMERIC",
1339
+ # max_attempts: 3,
1340
+ # validity_period_minutes: 10,
1341
+ # },
1342
+ # created_at: Time.parse(1727130000),
1343
+ # deletion_protection_enabled: false,
1344
+ # notify_code_configuration_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:notify-code-configuration/ncc-abc12345678901234",
1345
+ # notify_code_configuration_id: "ncc-abc12345678901234",
1346
+ # notify_code_configuration_name: "SignupOtp",
1347
+ # updated_at: Time.parse(1727130000),
1348
+ # },
1349
+ # }
1350
+ #
1351
+ # @example Request syntax with placeholder values
1352
+ #
1353
+ # resp = client.get_notify_code_configuration({
1354
+ # notify_code_configuration_id: "NotifyCodeConfigurationIdOrArn", # required
1355
+ # })
1356
+ #
1357
+ # @example Response structure
1358
+ #
1359
+ # resp.notify_code_configuration.notify_code_configuration_id #=> String
1360
+ # resp.notify_code_configuration.notify_code_configuration_arn #=> String
1361
+ # resp.notify_code_configuration.notify_code_configuration_name #=> String
1362
+ # resp.notify_code_configuration.code_configuration_parameters.code_type #=> String, one of "NUMERIC", "ALPHA", "ALPHANUMERIC"
1363
+ # resp.notify_code_configuration.code_configuration_parameters.code_length #=> Integer
1364
+ # resp.notify_code_configuration.code_configuration_parameters.validity_period_minutes #=> Integer
1365
+ # resp.notify_code_configuration.code_configuration_parameters.max_attempts #=> Integer
1366
+ # resp.notify_code_configuration.channel_parameters.text.inline_template_body #=> String
1367
+ # resp.notify_code_configuration.channel_parameters.text.destination_country_parameters #=> Hash
1368
+ # resp.notify_code_configuration.channel_parameters.text.destination_country_parameters["DestinationCountryParameterKey"] #=> String
1369
+ # resp.notify_code_configuration.channel_parameters.voice.inline_template_body #=> String
1370
+ # resp.notify_code_configuration.channel_parameters.voice.language_code #=> String
1371
+ # resp.notify_code_configuration.channel_parameters.voice.voice_id #=> String
1372
+ # resp.notify_code_configuration.channel_parameters.voice.voice_message_body_text_type #=> String, one of "TEXT", "SSML"
1373
+ # resp.notify_code_configuration.channel_parameters.notify.notify_template_id #=> String
1374
+ # resp.notify_code_configuration.channel_parameters.notify.voice_id #=> String
1375
+ # resp.notify_code_configuration.channel_parameters.whats_app.whats_app_template_name #=> String
1376
+ # resp.notify_code_configuration.channel_parameters.whats_app.language_code #=> String
1377
+ # resp.notify_code_configuration.deletion_protection_enabled #=> Boolean
1378
+ # resp.notify_code_configuration.created_at #=> Time
1379
+ # resp.notify_code_configuration.updated_at #=> Time
1380
+ #
1381
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/GetNotifyCodeConfiguration AWS API Documentation
1382
+ #
1383
+ # @overload get_notify_code_configuration(params = {})
1384
+ # @param [Hash] params ({})
1385
+ def get_notify_code_configuration(params = {}, options = {})
1386
+ req = build_request(:get_notify_code_configuration, params)
1387
+ req.send_request(options)
1388
+ end
1389
+
1390
+ # Retrieves a paginated list of the attributes for a brand profile.
1391
+ #
1392
+ # @option params [required, String] :brand_profile_id
1393
+ # The unique identifier of the brand profile. You can specify either the
1394
+ # bare ID or the full Amazon Resource Name (ARN).
1395
+ #
1396
+ # @option params [String] :next_token
1397
+ # The token to retrieve the next page of results. This value is returned
1398
+ # when more results are available, and is null when there are no more
1399
+ # results to return.
1400
+ #
1401
+ # @option params [Integer] :max_results
1402
+ # The maximum number of results to return per page.
1403
+ #
1404
+ # @return [Types::ListBrandProfileAttributesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1405
+ #
1406
+ # * {Types::ListBrandProfileAttributesOutput#brand_profile_attributes #brand_profile_attributes} => Array&lt;Types::BrandProfileAttributeSummary&gt;
1407
+ # * {Types::ListBrandProfileAttributesOutput#next_token #next_token} => String
1408
+ #
1409
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1410
+ #
1411
+ #
1412
+ # @example Example: List brand profile attributes
1413
+ #
1414
+ # resp = client.list_brand_profile_attributes({
1415
+ # brand_profile_id: "bp-abc12345678901234",
1416
+ # max_results: 10,
1417
+ # })
1418
+ #
1419
+ # resp.to_h outputs the following:
1420
+ # {
1421
+ # brand_profile_attributes: [
1422
+ # {
1423
+ # attribute_name: "SupportEmail",
1424
+ # attribute_type: "TEXT",
1425
+ # category: "CONTACT",
1426
+ # created_at: Time.parse(1727130000),
1427
+ # updated_at: Time.parse(1727130000),
1428
+ # },
1429
+ # ],
1430
+ # }
1431
+ #
1432
+ # @example Request syntax with placeholder values
1433
+ #
1434
+ # resp = client.list_brand_profile_attributes({
1435
+ # brand_profile_id: "BrandProfileIdOrArn", # required
1436
+ # next_token: "NextToken",
1437
+ # max_results: 1,
1438
+ # })
1439
+ #
1440
+ # @example Response structure
1441
+ #
1442
+ # resp.brand_profile_attributes #=> Array
1443
+ # resp.brand_profile_attributes[0].attribute_name #=> String
1444
+ # resp.brand_profile_attributes[0].attribute_type #=> String, one of "TEXT", "IMAGE", "DOCUMENT"
1445
+ # resp.brand_profile_attributes[0].description #=> String
1446
+ # resp.brand_profile_attributes[0].category #=> String
1447
+ # resp.brand_profile_attributes[0].created_at #=> Time
1448
+ # resp.brand_profile_attributes[0].updated_at #=> Time
1449
+ # resp.next_token #=> String
1450
+ #
1451
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/ListBrandProfileAttributes AWS API Documentation
1452
+ #
1453
+ # @overload list_brand_profile_attributes(params = {})
1454
+ # @param [Hash] params ({})
1455
+ def list_brand_profile_attributes(params = {}, options = {})
1456
+ req = build_request(:list_brand_profile_attributes, params)
1457
+ req.send_request(options)
1458
+ end
1459
+
1460
+ # Retrieves a paginated list of the brand profiles in your account. Use
1461
+ # the nextToken parameter to retrieve additional results.
1462
+ #
1463
+ # @option params [String] :next_token
1464
+ # The token to retrieve the next page of results. This value is returned
1465
+ # when more results are available, and is null when there are no more
1466
+ # results to return.
1467
+ #
1468
+ # @option params [Integer] :max_results
1469
+ # The maximum number of results to return per page.
1470
+ #
1471
+ # @return [Types::ListBrandProfilesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1472
+ #
1473
+ # * {Types::ListBrandProfilesOutput#brand_profiles #brand_profiles} => Array&lt;Types::BrandProfileInfo&gt;
1474
+ # * {Types::ListBrandProfilesOutput#next_token #next_token} => String
1475
+ #
1476
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1477
+ #
1478
+ #
1479
+ # @example Example: List brand profiles
1480
+ #
1481
+ # resp = client.list_brand_profiles({
1482
+ # max_results: 10,
1483
+ # })
1484
+ #
1485
+ # resp.to_h outputs the following:
1486
+ # {
1487
+ # brand_profiles: [
1488
+ # {
1489
+ # brand_profile_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:brand-profile/bp-abc12345678901234",
1490
+ # brand_profile_id: "bp-abc12345678901234",
1491
+ # brand_profile_name: "AcmeCorp",
1492
+ # created_at: Time.parse(1727130000),
1493
+ # deletion_protection_enabled: true,
1494
+ # status: "ACTIVE",
1495
+ # updated_at: Time.parse(1727130000),
1496
+ # },
1497
+ # ],
1498
+ # }
1499
+ #
1500
+ # @example Request syntax with placeholder values
1501
+ #
1502
+ # resp = client.list_brand_profiles({
1503
+ # next_token: "NextToken",
1504
+ # max_results: 1,
1505
+ # })
1506
+ #
1507
+ # @example Response structure
1508
+ #
1509
+ # resp.brand_profiles #=> Array
1510
+ # resp.brand_profiles[0].brand_profile_id #=> String
1511
+ # resp.brand_profiles[0].brand_profile_arn #=> String
1512
+ # resp.brand_profiles[0].brand_profile_name #=> String
1513
+ # resp.brand_profiles[0].status #=> String, one of "ACTIVE", "BLOCKED", "PAUSED", "CANCELLED", "FAILED"
1514
+ # resp.brand_profiles[0].deletion_protection_enabled #=> Boolean
1515
+ # resp.brand_profiles[0].created_at #=> Time
1516
+ # resp.brand_profiles[0].updated_at #=> Time
1517
+ # resp.next_token #=> String
1518
+ #
1519
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/ListBrandProfiles AWS API Documentation
1520
+ #
1521
+ # @overload list_brand_profiles(params = {})
1522
+ # @param [Hash] params ({})
1523
+ def list_brand_profiles(params = {}, options = {})
1524
+ req = build_request(:list_brand_profiles, params)
1525
+ req.send_request(options)
1526
+ end
1527
+
1528
+ # Retrieves a paginated list of the asynchronous jobs in your account.
1529
+ # You can filter the results by status, brand profile, or operation
1530
+ # type.
1531
+ #
1532
+ # @option params [Integer] :max_results
1533
+ # The maximum number of results to return per page.
1534
+ #
1535
+ # @option params [String] :next_token
1536
+ # The token to retrieve the next page of results. This value is returned
1537
+ # when more results are available, and is null when there are no more
1538
+ # results to return.
1539
+ #
1540
+ # @option params [String] :status
1541
+ # Filters the results to jobs that have the specified status.
1542
+ #
1543
+ # @option params [String] :brand_profile_id
1544
+ # Filters the results to jobs for the specified brand profile.
1545
+ #
1546
+ # @option params [String] :operation_type
1547
+ # Filters the results to jobs of the specified operation type.
1548
+ #
1549
+ # @return [Types::ListJobsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1550
+ #
1551
+ # * {Types::ListJobsOutput#jobs #jobs} => Array&lt;Types::JobSummary&gt;
1552
+ # * {Types::ListJobsOutput#next_token #next_token} => String
1553
+ #
1554
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1555
+ #
1556
+ #
1557
+ # @example Example: List async jobs
1558
+ #
1559
+ # resp = client.list_jobs({
1560
+ # max_results: 10,
1561
+ # status: "SUCCESS",
1562
+ # })
1563
+ #
1564
+ # resp.to_h outputs the following:
1565
+ # {
1566
+ # jobs: [
1567
+ # {
1568
+ # brand_profile_id: "bp-abc12345678901234",
1569
+ # created_at: Time.parse(1727130000),
1570
+ # job_id: "job-abc12345678901234",
1571
+ # operation_type: "CreateRegistrationsFromBrandProfile",
1572
+ # status: "SUCCESS",
1573
+ # updated_at: Time.parse(1727130060),
1574
+ # },
1575
+ # ],
1576
+ # }
1577
+ #
1578
+ # @example Request syntax with placeholder values
1579
+ #
1580
+ # resp = client.list_jobs({
1581
+ # max_results: 1,
1582
+ # next_token: "NextToken",
1583
+ # status: "SUCCESS", # accepts SUCCESS, PROCESSING, FAILED
1584
+ # brand_profile_id: "BrandProfileIdOrArn",
1585
+ # operation_type: "JobOperationType",
1586
+ # })
1587
+ #
1588
+ # @example Response structure
1589
+ #
1590
+ # resp.jobs #=> Array
1591
+ # resp.jobs[0].job_id #=> String
1592
+ # resp.jobs[0].status #=> String, one of "SUCCESS", "PROCESSING", "FAILED"
1593
+ # resp.jobs[0].operation_type #=> String
1594
+ # resp.jobs[0].created_at #=> Time
1595
+ # resp.jobs[0].updated_at #=> Time
1596
+ # resp.jobs[0].brand_profile_id #=> String
1597
+ # resp.jobs[0].error_code #=> String
1598
+ # resp.jobs[0].error_message #=> String
1599
+ # resp.jobs[0].resources #=> Array
1600
+ # resp.jobs[0].resources[0].resource_type #=> String, one of "REGISTRATION", "BRAND_PROFILE"
1601
+ # resp.jobs[0].resources[0].resource_id #=> String
1602
+ # resp.jobs[0].resources[0].resource_arn #=> String
1603
+ # resp.next_token #=> String
1604
+ #
1605
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/ListJobs AWS API Documentation
1606
+ #
1607
+ # @overload list_jobs(params = {})
1608
+ # @param [Hash] params ({})
1609
+ def list_jobs(params = {}, options = {})
1610
+ req = build_request(:list_jobs, params)
1611
+ req.send_request(options)
1612
+ end
1613
+
1614
+ # Retrieves a paginated list of the notify code configurations in your
1615
+ # account.
1616
+ #
1617
+ # @option params [Integer] :max_results
1618
+ # The maximum number of results to return per page.
1619
+ #
1620
+ # @option params [String] :next_token
1621
+ # The token to retrieve the next page of results. This value is returned
1622
+ # when more results are available, and is null when there are no more
1623
+ # results to return.
1624
+ #
1625
+ # @return [Types::ListNotifyCodeConfigurationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1626
+ #
1627
+ # * {Types::ListNotifyCodeConfigurationsOutput#notify_code_configurations #notify_code_configurations} => Array&lt;Types::NotifyCodeConfiguration&gt;
1628
+ # * {Types::ListNotifyCodeConfigurationsOutput#next_token #next_token} => String
1629
+ #
1630
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1631
+ #
1632
+ #
1633
+ # @example Example: List notify code configurations
1634
+ #
1635
+ # resp = client.list_notify_code_configurations({
1636
+ # max_results: 10,
1637
+ # })
1638
+ #
1639
+ # resp.to_h outputs the following:
1640
+ # {
1641
+ # notify_code_configurations: [
1642
+ # {
1643
+ # channel_parameters: {
1644
+ # text: {
1645
+ # inline_template_body: "Your verification code is {{code}}.",
1646
+ # },
1647
+ # },
1648
+ # code_configuration_parameters: {
1649
+ # code_length: 6,
1650
+ # code_type: "NUMERIC",
1651
+ # max_attempts: 3,
1652
+ # validity_period_minutes: 10,
1653
+ # },
1654
+ # created_at: Time.parse(1727130000),
1655
+ # deletion_protection_enabled: false,
1656
+ # notify_code_configuration_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:notify-code-configuration/ncc-abc12345678901234",
1657
+ # notify_code_configuration_id: "ncc-abc12345678901234",
1658
+ # notify_code_configuration_name: "SignupOtp",
1659
+ # updated_at: Time.parse(1727130000),
1660
+ # },
1661
+ # ],
1662
+ # }
1663
+ #
1664
+ # @example Request syntax with placeholder values
1665
+ #
1666
+ # resp = client.list_notify_code_configurations({
1667
+ # max_results: 1,
1668
+ # next_token: "NextToken",
1669
+ # })
1670
+ #
1671
+ # @example Response structure
1672
+ #
1673
+ # resp.notify_code_configurations #=> Array
1674
+ # resp.notify_code_configurations[0].notify_code_configuration_id #=> String
1675
+ # resp.notify_code_configurations[0].notify_code_configuration_arn #=> String
1676
+ # resp.notify_code_configurations[0].notify_code_configuration_name #=> String
1677
+ # resp.notify_code_configurations[0].code_configuration_parameters.code_type #=> String, one of "NUMERIC", "ALPHA", "ALPHANUMERIC"
1678
+ # resp.notify_code_configurations[0].code_configuration_parameters.code_length #=> Integer
1679
+ # resp.notify_code_configurations[0].code_configuration_parameters.validity_period_minutes #=> Integer
1680
+ # resp.notify_code_configurations[0].code_configuration_parameters.max_attempts #=> Integer
1681
+ # resp.notify_code_configurations[0].channel_parameters.text.inline_template_body #=> String
1682
+ # resp.notify_code_configurations[0].channel_parameters.text.destination_country_parameters #=> Hash
1683
+ # resp.notify_code_configurations[0].channel_parameters.text.destination_country_parameters["DestinationCountryParameterKey"] #=> String
1684
+ # resp.notify_code_configurations[0].channel_parameters.voice.inline_template_body #=> String
1685
+ # resp.notify_code_configurations[0].channel_parameters.voice.language_code #=> String
1686
+ # resp.notify_code_configurations[0].channel_parameters.voice.voice_id #=> String
1687
+ # resp.notify_code_configurations[0].channel_parameters.voice.voice_message_body_text_type #=> String, one of "TEXT", "SSML"
1688
+ # resp.notify_code_configurations[0].channel_parameters.notify.notify_template_id #=> String
1689
+ # resp.notify_code_configurations[0].channel_parameters.notify.voice_id #=> String
1690
+ # resp.notify_code_configurations[0].channel_parameters.whats_app.whats_app_template_name #=> String
1691
+ # resp.notify_code_configurations[0].channel_parameters.whats_app.language_code #=> String
1692
+ # resp.notify_code_configurations[0].deletion_protection_enabled #=> Boolean
1693
+ # resp.notify_code_configurations[0].created_at #=> Time
1694
+ # resp.notify_code_configurations[0].updated_at #=> Time
1695
+ # resp.next_token #=> String
1696
+ #
1697
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/ListNotifyCodeConfigurations AWS API Documentation
1698
+ #
1699
+ # @overload list_notify_code_configurations(params = {})
1700
+ # @param [Hash] params ({})
1701
+ def list_notify_code_configurations(params = {}, options = {})
1702
+ req = build_request(:list_notify_code_configurations, params)
1703
+ req.send_request(options)
1704
+ end
1705
+
1706
+ # Retrieves a paginated list of the registrations that were created from
1707
+ # a brand profile through the synchronization operations.
1708
+ #
1709
+ # @option params [required, String] :brand_profile_id
1710
+ # The unique identifier of the brand profile. You can specify either the
1711
+ # bare ID or the full Amazon Resource Name (ARN).
1712
+ #
1713
+ # @option params [Integer] :max_results
1714
+ # The maximum number of results to return per page.
1715
+ #
1716
+ # @option params [String] :next_token
1717
+ # The token to retrieve the next page of results. This value is returned
1718
+ # when more results are available, and is null when there are no more
1719
+ # results to return.
1720
+ #
1721
+ # @return [Types::ListRegistrationsFromBrandProfileOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1722
+ #
1723
+ # * {Types::ListRegistrationsFromBrandProfileOutput#registration_associations #registration_associations} => Array&lt;Types::RegistrationAssociationSummary&gt;
1724
+ # * {Types::ListRegistrationsFromBrandProfileOutput#next_token #next_token} => String
1725
+ #
1726
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1727
+ #
1728
+ #
1729
+ # @example Example: List registrations created from a brand profile
1730
+ #
1731
+ # resp = client.list_registrations_from_brand_profile({
1732
+ # brand_profile_id: "bp-abc12345678901234",
1733
+ # max_results: 10,
1734
+ # })
1735
+ #
1736
+ # resp.to_h outputs the following:
1737
+ # {
1738
+ # registration_associations: [
1739
+ # {
1740
+ # created_at: Time.parse(1727130000),
1741
+ # registration_id: "reg-abc12345678901234",
1742
+ # registration_type: "US_TOLL_FREE_REGISTRATION",
1743
+ # smart_match_used: true,
1744
+ # },
1745
+ # ],
1746
+ # }
1747
+ #
1748
+ # @example Request syntax with placeholder values
1749
+ #
1750
+ # resp = client.list_registrations_from_brand_profile({
1751
+ # brand_profile_id: "BrandProfileIdOrArn", # required
1752
+ # max_results: 1,
1753
+ # next_token: "NextToken",
1754
+ # })
1755
+ #
1756
+ # @example Response structure
1757
+ #
1758
+ # resp.registration_associations #=> Array
1759
+ # resp.registration_associations[0].registration_id #=> String
1760
+ # resp.registration_associations[0].registration_type #=> String
1761
+ # resp.registration_associations[0].created_at #=> Time
1762
+ # resp.registration_associations[0].smart_match_used #=> Boolean
1763
+ # resp.next_token #=> String
1764
+ #
1765
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/ListRegistrationsFromBrandProfile AWS API Documentation
1766
+ #
1767
+ # @overload list_registrations_from_brand_profile(params = {})
1768
+ # @param [Hash] params ({})
1769
+ def list_registrations_from_brand_profile(params = {}, options = {})
1770
+ req = build_request(:list_registrations_from_brand_profile, params)
1771
+ req.send_request(options)
1772
+ end
1773
+
1774
+ # Retrieves the tags that are associated with a resource.
1775
+ #
1776
+ # @option params [required, String] :resource_arn
1777
+ # The Amazon Resource Name (ARN) of the resource.
1778
+ #
1779
+ # @return [Types::ListTagsForResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1780
+ #
1781
+ # * {Types::ListTagsForResourceOutput#tags #tags} => Array&lt;Types::Tag&gt;
1782
+ #
1783
+ #
1784
+ # @example Example: List tags on a resource
1785
+ #
1786
+ # resp = client.list_tags_for_resource({
1787
+ # resource_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:brand-profile/bp-abc12345678901234",
1788
+ # })
1789
+ #
1790
+ # resp.to_h outputs the following:
1791
+ # {
1792
+ # tags: [
1793
+ # {
1794
+ # key: "Environment",
1795
+ # value: "Production",
1796
+ # },
1797
+ # ],
1798
+ # }
1799
+ #
1800
+ # @example Request syntax with placeholder values
1801
+ #
1802
+ # resp = client.list_tags_for_resource({
1803
+ # resource_arn: "AmazonResourceName", # required
1804
+ # })
1805
+ #
1806
+ # @example Response structure
1807
+ #
1808
+ # resp.tags #=> Array
1809
+ # resp.tags[0].key #=> String
1810
+ # resp.tags[0].value #=> String
1811
+ #
1812
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/ListTagsForResource AWS API Documentation
1813
+ #
1814
+ # @overload list_tags_for_resource(params = {})
1815
+ # @param [Hash] params ({})
1816
+ def list_tags_for_resource(params = {}, options = {})
1817
+ req = build_request(:list_tags_for_resource, params)
1818
+ req.send_request(options)
1819
+ end
1820
+
1821
+ # Generates a one-time passcode and delivers it to a recipient over the
1822
+ # requested channel. The passcode policy is captured from the referenced
1823
+ # notify code configuration at the time of the request, so later updates
1824
+ # to the configuration do not affect verifications that are already in
1825
+ # progress.
1826
+ #
1827
+ # @option params [required, String] :channel
1828
+ # The channel used to deliver the one-time passcode to the recipient.
1829
+ #
1830
+ # @option params [required, String] :destination_identity
1831
+ # The recipient identifier. For the TEXT and VOICE channels, specify an
1832
+ # E.164 phone number. For the WhatsApp channel, specify a WhatsApp
1833
+ # address.
1834
+ #
1835
+ # @option params [required, String] :origination_identity
1836
+ # The identity used to send the message, such as a phone number, sender
1837
+ # ID, or pool that is owned by your account.
1838
+ #
1839
+ # @option params [String] :notify_code_configuration
1840
+ # The identifier or Amazon Resource Name (ARN) of the notify code
1841
+ # configuration that supplies the passcode policy and template defaults.
1842
+ # When you do not specify a configuration, you must supply the template
1843
+ # in the request.
1844
+ #
1845
+ # @option params [Types::ChannelParameters] :override_channel_parameters
1846
+ # The channel-specific parameters used to render and deliver the
1847
+ # one-time passcode for this request. The route that is derived from the
1848
+ # channel and the origination identity selects the matching channel.
1849
+ # When you do not specify channel parameters, the service uses the
1850
+ # parameters from the referenced notify code configuration.
1851
+ #
1852
+ # @option params [Types::CodeConfigurationParameters] :override_code_configuration_parameters
1853
+ # The per-send overrides for the passcode policy parameters, including
1854
+ # the code type, length, validity period, and maximum number of
1855
+ # attempts. These values override the values from the referenced notify
1856
+ # code configuration. When you do not specify a value, the value from
1857
+ # the configuration is used, and if neither is set, the service default
1858
+ # applies.
1859
+ #
1860
+ # @option params [String] :configuration_set_name
1861
+ # The name of the configuration set used to control how delivery events
1862
+ # for the message are handled.
1863
+ #
1864
+ # @option params [Hash<String,String>] :context
1865
+ # A map of custom key and value pairs that are propagated to the
1866
+ # delivery events for this verification.
1867
+ #
1868
+ # @option params [String] :reference_id
1869
+ # A caller-supplied reference identifier that binds a send request to a
1870
+ # later validate request. Specify the same value in both requests.
1871
+ #
1872
+ # @return [Types::SendNotifyCodeVerificationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1873
+ #
1874
+ # * {Types::SendNotifyCodeVerificationOutput#verification_id #verification_id} => String
1875
+ # * {Types::SendNotifyCodeVerificationOutput#message_id #message_id} => String
1876
+ #
1877
+ #
1878
+ # @example Example: Send a one-time passcode over SMS
1879
+ #
1880
+ # resp = client.send_notify_code_verification({
1881
+ # channel: "TEXT",
1882
+ # destination_identity: "+14255550100",
1883
+ # notify_code_configuration: "ncc-abc12345678901234",
1884
+ # origination_identity: "arn:aws:sms-voice:us-east-1:123456789012:phone-number/pn-abc123",
1885
+ # reference_id: "signup-flow-42",
1886
+ # })
1887
+ #
1888
+ # resp.to_h outputs the following:
1889
+ # {
1890
+ # message_id: "msg-abc12345678901234",
1891
+ # verification_id: "ver-abc12345678901234",
1892
+ # }
1893
+ #
1894
+ # @example Request syntax with placeholder values
1895
+ #
1896
+ # resp = client.send_notify_code_verification({
1897
+ # channel: "TEXT", # required, accepts TEXT, VOICE, WHATSAPP
1898
+ # destination_identity: "DestinationIdentity", # required
1899
+ # origination_identity: "OriginationIdentity", # required
1900
+ # notify_code_configuration: "NotifyCodeConfigurationIdOrArn",
1901
+ # override_channel_parameters: {
1902
+ # text: {
1903
+ # inline_template_body: "InlineTemplateBody",
1904
+ # destination_country_parameters: {
1905
+ # "DestinationCountryParameterKey" => "DestinationCountryParameterValue",
1906
+ # },
1907
+ # },
1908
+ # voice: {
1909
+ # inline_template_body: "InlineTemplateBody",
1910
+ # language_code: "LanguageCode",
1911
+ # voice_id: "VoiceId",
1912
+ # voice_message_body_text_type: "TEXT", # accepts TEXT, SSML
1913
+ # },
1914
+ # notify: {
1915
+ # notify_template_id: "NotifyTemplateId",
1916
+ # voice_id: "VoiceId",
1917
+ # },
1918
+ # whats_app: {
1919
+ # whats_app_template_name: "WhatsAppTemplateName",
1920
+ # language_code: "LanguageCode",
1921
+ # },
1922
+ # },
1923
+ # override_code_configuration_parameters: {
1924
+ # code_type: "NUMERIC", # accepts NUMERIC, ALPHA, ALPHANUMERIC
1925
+ # code_length: 1,
1926
+ # validity_period_minutes: 1,
1927
+ # max_attempts: 1,
1928
+ # },
1929
+ # configuration_set_name: "ConfigurationSetName",
1930
+ # context: {
1931
+ # "ContextKey" => "ContextValue",
1932
+ # },
1933
+ # reference_id: "ReferenceId",
1934
+ # })
1935
+ #
1936
+ # @example Response structure
1937
+ #
1938
+ # resp.verification_id #=> String
1939
+ # resp.message_id #=> String
1940
+ #
1941
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/SendNotifyCodeVerification AWS API Documentation
1942
+ #
1943
+ # @overload send_notify_code_verification(params = {})
1944
+ # @param [Hash] params ({})
1945
+ def send_notify_code_verification(params = {}, options = {})
1946
+ req = build_request(:send_notify_code_verification, params)
1947
+ req.send_request(options)
1948
+ end
1949
+
1950
+ # Adds or overwrites the tags on a resource.
1951
+ #
1952
+ # @option params [required, String] :resource_arn
1953
+ # The Amazon Resource Name (ARN) of the resource.
1954
+ #
1955
+ # @option params [required, Array<Types::Tag>] :tags
1956
+ # An array of key and value pair tags that are associated with the
1957
+ # resource.
1958
+ #
1959
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1960
+ #
1961
+ #
1962
+ # @example Example: Tag a resource
1963
+ #
1964
+ # resp = client.tag_resource({
1965
+ # resource_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:brand-profile/bp-abc12345678901234",
1966
+ # tags: [
1967
+ # {
1968
+ # key: "Environment",
1969
+ # value: "Production",
1970
+ # },
1971
+ # ],
1972
+ # })
1973
+ #
1974
+ # resp.to_h outputs the following:
1975
+ # {
1976
+ # }
1977
+ #
1978
+ # @example Request syntax with placeholder values
1979
+ #
1980
+ # resp = client.tag_resource({
1981
+ # resource_arn: "AmazonResourceName", # required
1982
+ # tags: [ # required
1983
+ # {
1984
+ # key: "TagKey", # required
1985
+ # value: "TagValue", # required
1986
+ # },
1987
+ # ],
1988
+ # })
1989
+ #
1990
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/TagResource AWS API Documentation
1991
+ #
1992
+ # @overload tag_resource(params = {})
1993
+ # @param [Hash] params ({})
1994
+ def tag_resource(params = {}, options = {})
1995
+ req = build_request(:tag_resource, params)
1996
+ req.send_request(options)
1997
+ end
1998
+
1999
+ # Removes the specified tags from a resource.
2000
+ #
2001
+ # @option params [required, String] :resource_arn
2002
+ # The Amazon Resource Name (ARN) of the resource.
2003
+ #
2004
+ # @option params [required, Array<String>] :tag_keys
2005
+ # The list of tag keys to remove from the resource.
2006
+ #
2007
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2008
+ #
2009
+ #
2010
+ # @example Example: Remove tags from a resource
2011
+ #
2012
+ # resp = client.untag_resource({
2013
+ # resource_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:brand-profile/bp-abc12345678901234",
2014
+ # tag_keys: [
2015
+ # "Environment",
2016
+ # ],
2017
+ # })
2018
+ #
2019
+ # resp.to_h outputs the following:
2020
+ # {
2021
+ # }
2022
+ #
2023
+ # @example Request syntax with placeholder values
2024
+ #
2025
+ # resp = client.untag_resource({
2026
+ # resource_arn: "AmazonResourceName", # required
2027
+ # tag_keys: ["TagKey"], # required
2028
+ # })
2029
+ #
2030
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/UntagResource AWS API Documentation
2031
+ #
2032
+ # @overload untag_resource(params = {})
2033
+ # @param [Hash] params ({})
2034
+ def untag_resource(params = {}, options = {})
2035
+ req = build_request(:untag_resource, params)
2036
+ req.send_request(options)
2037
+ end
2038
+
2039
+ # Updates the name or the deletion protection setting of a brand
2040
+ # profile. To change the information that is stored in the profile, use
2041
+ # the brand profile attribute operations.
2042
+ #
2043
+ # @option params [required, String] :brand_profile_id
2044
+ # The unique identifier of the brand profile. You can specify either the
2045
+ # bare ID or the full Amazon Resource Name (ARN).
2046
+ #
2047
+ # @option params [String] :brand_profile_name
2048
+ # The name of the brand profile. The name can contain alphanumeric
2049
+ # characters, underscores, hyphens, and spaces.
2050
+ #
2051
+ # @option params [Boolean] :deletion_protection_enabled
2052
+ # Specifies whether deletion protection is enabled. When enabled, the
2053
+ # resource cannot be deleted until deletion protection is turned off.
2054
+ #
2055
+ # @return [Types::UpdateBrandProfileOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2056
+ #
2057
+ # * {Types::UpdateBrandProfileOutput#brand_profile_id #brand_profile_id} => String
2058
+ # * {Types::UpdateBrandProfileOutput#brand_profile_arn #brand_profile_arn} => String
2059
+ # * {Types::UpdateBrandProfileOutput#brand_profile_name #brand_profile_name} => String
2060
+ # * {Types::UpdateBrandProfileOutput#status #status} => String
2061
+ # * {Types::UpdateBrandProfileOutput#deletion_protection_enabled #deletion_protection_enabled} => Boolean
2062
+ # * {Types::UpdateBrandProfileOutput#created_at #created_at} => Time
2063
+ # * {Types::UpdateBrandProfileOutput#updated_at #updated_at} => Time
2064
+ #
2065
+ #
2066
+ # @example Example: Update a brand profile name
2067
+ #
2068
+ # resp = client.update_brand_profile({
2069
+ # brand_profile_id: "bp-abc12345678901234",
2070
+ # brand_profile_name: "AcmeCorpUpdated",
2071
+ # deletion_protection_enabled: false,
2072
+ # })
2073
+ #
2074
+ # resp.to_h outputs the following:
2075
+ # {
2076
+ # brand_profile_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:brand-profile/bp-abc12345678901234",
2077
+ # brand_profile_id: "bp-abc12345678901234",
2078
+ # brand_profile_name: "AcmeCorpUpdated",
2079
+ # created_at: Time.parse(1727130000),
2080
+ # deletion_protection_enabled: false,
2081
+ # status: "ACTIVE",
2082
+ # updated_at: Time.parse(1727216400),
2083
+ # }
2084
+ #
2085
+ # @example Request syntax with placeholder values
2086
+ #
2087
+ # resp = client.update_brand_profile({
2088
+ # brand_profile_id: "BrandProfileIdOrArn", # required
2089
+ # brand_profile_name: "BrandProfileName",
2090
+ # deletion_protection_enabled: false,
2091
+ # })
2092
+ #
2093
+ # @example Response structure
2094
+ #
2095
+ # resp.brand_profile_id #=> String
2096
+ # resp.brand_profile_arn #=> String
2097
+ # resp.brand_profile_name #=> String
2098
+ # resp.status #=> String, one of "ACTIVE", "BLOCKED", "PAUSED", "CANCELLED", "FAILED"
2099
+ # resp.deletion_protection_enabled #=> Boolean
2100
+ # resp.created_at #=> Time
2101
+ # resp.updated_at #=> Time
2102
+ #
2103
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/UpdateBrandProfile AWS API Documentation
2104
+ #
2105
+ # @overload update_brand_profile(params = {})
2106
+ # @param [Hash] params ({})
2107
+ def update_brand_profile(params = {}, options = {})
2108
+ req = build_request(:update_brand_profile, params)
2109
+ req.send_request(options)
2110
+ end
2111
+
2112
+ # Updates the value, description, or category of an existing brand
2113
+ # profile attribute.
2114
+ #
2115
+ # @option params [required, String] :brand_profile_id
2116
+ # The unique identifier of the brand profile. You can specify either the
2117
+ # bare ID or the full Amazon Resource Name (ARN).
2118
+ #
2119
+ # @option params [required, String] :attribute_name
2120
+ # The name of the brand profile attribute. The name is unique within a
2121
+ # brand profile.
2122
+ #
2123
+ # @option params [String] :attribute_value
2124
+ # The text value of the attribute. This value applies to attributes of
2125
+ # type TEXT.
2126
+ #
2127
+ # @option params [String, StringIO, File] :attachment_body
2128
+ # The binary content for an attribute of type IMAGE or DOCUMENT. The
2129
+ # content is base64-encoded when it is sent over the wire.
2130
+ #
2131
+ # @option params [String] :description
2132
+ # A description of the attribute.
2133
+ #
2134
+ # @option params [String] :category
2135
+ # The category of the attribute.
2136
+ #
2137
+ # @return [Types::UpdateBrandProfileAttributeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2138
+ #
2139
+ # * {Types::UpdateBrandProfileAttributeOutput#attribute_name #attribute_name} => String
2140
+ # * {Types::UpdateBrandProfileAttributeOutput#attribute_type #attribute_type} => String
2141
+ # * {Types::UpdateBrandProfileAttributeOutput#attribute_value #attribute_value} => String
2142
+ # * {Types::UpdateBrandProfileAttributeOutput#description #description} => String
2143
+ # * {Types::UpdateBrandProfileAttributeOutput#category #category} => String
2144
+ # * {Types::UpdateBrandProfileAttributeOutput#media_content_type #media_content_type} => String
2145
+ # * {Types::UpdateBrandProfileAttributeOutput#media_size_bytes #media_size_bytes} => Integer
2146
+ # * {Types::UpdateBrandProfileAttributeOutput#created_at #created_at} => Time
2147
+ # * {Types::UpdateBrandProfileAttributeOutput#updated_at #updated_at} => Time
2148
+ #
2149
+ #
2150
+ # @example Example: Update a brand profile attribute value
2151
+ #
2152
+ # resp = client.update_brand_profile_attribute({
2153
+ # attribute_name: "SupportEmail",
2154
+ # attribute_value: "help@example.com",
2155
+ # brand_profile_id: "bp-abc12345678901234",
2156
+ # category: "CONTACT",
2157
+ # })
2158
+ #
2159
+ # resp.to_h outputs the following:
2160
+ # {
2161
+ # attribute_name: "SupportEmail",
2162
+ # attribute_type: "TEXT",
2163
+ # attribute_value: "help@example.com",
2164
+ # category: "CONTACT",
2165
+ # created_at: Time.parse(1727130000),
2166
+ # updated_at: Time.parse(1727216400),
2167
+ # }
2168
+ #
2169
+ # @example Request syntax with placeholder values
2170
+ #
2171
+ # resp = client.update_brand_profile_attribute({
2172
+ # brand_profile_id: "BrandProfileIdOrArn", # required
2173
+ # attribute_name: "BrandProfileAttributeName", # required
2174
+ # attribute_value: "BrandProfileAttributeValue",
2175
+ # attachment_body: "data",
2176
+ # description: "BrandProfileAttributeDescription",
2177
+ # category: "BrandProfileAttributeCategory",
2178
+ # })
2179
+ #
2180
+ # @example Response structure
2181
+ #
2182
+ # resp.attribute_name #=> String
2183
+ # resp.attribute_type #=> String, one of "TEXT", "IMAGE", "DOCUMENT"
2184
+ # resp.attribute_value #=> String
2185
+ # resp.description #=> String
2186
+ # resp.category #=> String
2187
+ # resp.media_content_type #=> String
2188
+ # resp.media_size_bytes #=> Integer
2189
+ # resp.created_at #=> Time
2190
+ # resp.updated_at #=> Time
2191
+ #
2192
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/UpdateBrandProfileAttribute AWS API Documentation
2193
+ #
2194
+ # @overload update_brand_profile_attribute(params = {})
2195
+ # @param [Hash] params ({})
2196
+ def update_brand_profile_attribute(params = {}, options = {})
2197
+ req = build_request(:update_brand_profile_attribute, params)
2198
+ req.send_request(options)
2199
+ end
2200
+
2201
+ # Imports or refreshes the attributes of an existing brand profile from
2202
+ # an existing registration. This operation runs asynchronously. Use the
2203
+ # GetJob operation to track its progress.
2204
+ #
2205
+ # @option params [required, String] :brand_profile_id
2206
+ # The unique identifier of the brand profile. You can specify either the
2207
+ # bare ID or the full Amazon Resource Name (ARN).
2208
+ #
2209
+ # @option params [required, String] :registration_id
2210
+ # The identifier or Amazon Resource Name (ARN) of the registration to
2211
+ # import attributes from.
2212
+ #
2213
+ # @option params [Boolean] :smart_match
2214
+ # Specifies whether to use semantic field mapping between brand profile
2215
+ # attributes and registration fields. The default is true. When false,
2216
+ # the service maps fields using a fixed set of standard field types.
2217
+ #
2218
+ # @option params [String] :on_attribute_conflict
2219
+ # Specifies how the service resolves an attribute that already exists.
2220
+ # REPLACE overwrites the existing value with the incoming value.
2221
+ # PRESERVE keeps the existing value.
2222
+ #
2223
+ # @option params [String] :client_token
2224
+ # A unique, case-sensitive identifier that you provide to ensure the
2225
+ # idempotency of the request. If you do not specify a client token, the
2226
+ # AWS SDK automatically generates one.
2227
+ #
2228
+ # **A suitable default value is auto-generated.** You should normally
2229
+ # not need to pass this option.**
2230
+ #
2231
+ # @return [Types::UpdateBrandProfileFromRegistrationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2232
+ #
2233
+ # * {Types::UpdateBrandProfileFromRegistrationOutput#results #results} => Array&lt;Types::JobResult&gt;
2234
+ #
2235
+ #
2236
+ # @example Example: Update a brand profile from a registration
2237
+ #
2238
+ # resp = client.update_brand_profile_from_registration({
2239
+ # brand_profile_id: "bp-abc12345678901234",
2240
+ # on_attribute_conflict: "REPLACE",
2241
+ # registration_id: "reg-abc12345678901234",
2242
+ # smart_match: true,
2243
+ # })
2244
+ #
2245
+ # resp.to_h outputs the following:
2246
+ # {
2247
+ # results: [
2248
+ # {
2249
+ # job_id: "job-abc12345678901234",
2250
+ # resource_identifier: "reg-abc12345678901234",
2251
+ # },
2252
+ # ],
2253
+ # }
2254
+ #
2255
+ # @example Request syntax with placeholder values
2256
+ #
2257
+ # resp = client.update_brand_profile_from_registration({
2258
+ # brand_profile_id: "BrandProfileIdOrArn", # required
2259
+ # registration_id: "RegistrationIdOrArn", # required
2260
+ # smart_match: false,
2261
+ # on_attribute_conflict: "REPLACE", # accepts REPLACE, PRESERVE
2262
+ # client_token: "ClientToken",
2263
+ # })
2264
+ #
2265
+ # @example Response structure
2266
+ #
2267
+ # resp.results #=> Array
2268
+ # resp.results[0].job_id #=> String
2269
+ # resp.results[0].resource_identifier #=> String
2270
+ #
2271
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/UpdateBrandProfileFromRegistration AWS API Documentation
2272
+ #
2273
+ # @overload update_brand_profile_from_registration(params = {})
2274
+ # @param [Hash] params ({})
2275
+ def update_brand_profile_from_registration(params = {}, options = {})
2276
+ req = build_request(:update_brand_profile_from_registration, params)
2277
+ req.send_request(options)
2278
+ end
2279
+
2280
+ # Updates the mutable fields of a notify code configuration. Only the
2281
+ # fields that you supply are changed. For the template and language
2282
+ # fields, supplying an empty value clears the currently stored value.
2283
+ #
2284
+ # @option params [required, String] :notify_code_configuration_id
2285
+ # The unique identifier of the notify code configuration. You can
2286
+ # specify either the bare ID or the full Amazon Resource Name (ARN).
2287
+ #
2288
+ # @option params [String] :notify_code_configuration_name
2289
+ # The name of the notify code configuration.
2290
+ #
2291
+ # @option params [Types::UpdateCodeConfigurationParameters] :code_configuration_parameters
2292
+ # The updated passcode policy parameters, including the code type,
2293
+ # length, validity period, and maximum number of attempts. When you omit
2294
+ # a member, its current value is preserved.
2295
+ #
2296
+ # @option params [Types::UpdateChannelParameters] :channel_parameters
2297
+ # The updated channel-specific parameters used to render and deliver the
2298
+ # one-time passcode. This is a loose, nested update: when you omit a
2299
+ # channel, that channel's parameters remain unchanged. Within a
2300
+ # supplied channel, an empty string on a string member, or an empty map
2301
+ # on the destination-country parameters, clears the currently stored
2302
+ # value, and absent members preserve the current value.
2303
+ #
2304
+ # @option params [Boolean] :deletion_protection_enabled
2305
+ # Specifies whether deletion protection is enabled. When enabled, the
2306
+ # resource cannot be deleted until deletion protection is turned off.
2307
+ #
2308
+ # @return [Types::UpdateNotifyCodeConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2309
+ #
2310
+ # * {Types::UpdateNotifyCodeConfigurationOutput#notify_code_configuration #notify_code_configuration} => Types::NotifyCodeConfiguration
2311
+ #
2312
+ #
2313
+ # @example Example: Update a notify code configuration
2314
+ #
2315
+ # resp = client.update_notify_code_configuration({
2316
+ # code_configuration_parameters: {
2317
+ # code_length: 8,
2318
+ # validity_period_minutes: 15,
2319
+ # },
2320
+ # notify_code_configuration_id: "ncc-abc12345678901234",
2321
+ # })
2322
+ #
2323
+ # resp.to_h outputs the following:
2324
+ # {
2325
+ # notify_code_configuration: {
2326
+ # channel_parameters: {
2327
+ # text: {
2328
+ # inline_template_body: "Your verification code is {{code}}.",
2329
+ # },
2330
+ # },
2331
+ # code_configuration_parameters: {
2332
+ # code_length: 8,
2333
+ # code_type: "NUMERIC",
2334
+ # max_attempts: 3,
2335
+ # validity_period_minutes: 15,
2336
+ # },
2337
+ # created_at: Time.parse(1727130000),
2338
+ # deletion_protection_enabled: false,
2339
+ # notify_code_configuration_arn: "arn:aws:end-user-messaging:us-east-1:123456789012:notify-code-configuration/ncc-abc12345678901234",
2340
+ # notify_code_configuration_id: "ncc-abc12345678901234",
2341
+ # notify_code_configuration_name: "SignupOtp",
2342
+ # updated_at: Time.parse(1727216400),
2343
+ # },
2344
+ # }
2345
+ #
2346
+ # @example Request syntax with placeholder values
2347
+ #
2348
+ # resp = client.update_notify_code_configuration({
2349
+ # notify_code_configuration_id: "NotifyCodeConfigurationIdOrArn", # required
2350
+ # notify_code_configuration_name: "NotifyCodeConfigurationName",
2351
+ # code_configuration_parameters: {
2352
+ # code_type: "NUMERIC", # accepts NUMERIC, ALPHA, ALPHANUMERIC
2353
+ # code_length: 1,
2354
+ # validity_period_minutes: 1,
2355
+ # max_attempts: 1,
2356
+ # },
2357
+ # channel_parameters: {
2358
+ # text: {
2359
+ # inline_template_body: "UpdateInlineTemplateBody",
2360
+ # destination_country_parameters: {
2361
+ # "DestinationCountryParameterKey" => "DestinationCountryParameterValue",
2362
+ # },
2363
+ # },
2364
+ # voice: {
2365
+ # inline_template_body: "UpdateInlineTemplateBody",
2366
+ # language_code: "UpdateLanguageCode",
2367
+ # voice_id: "UpdateVoiceId",
2368
+ # voice_message_body_text_type: "TEXT", # accepts TEXT, SSML
2369
+ # },
2370
+ # notify: {
2371
+ # notify_template_id: "UpdateNotifyTemplateId",
2372
+ # voice_id: "UpdateVoiceId",
2373
+ # },
2374
+ # whats_app: {
2375
+ # whats_app_template_name: "UpdateWhatsAppTemplateName",
2376
+ # language_code: "UpdateLanguageCode",
2377
+ # },
2378
+ # },
2379
+ # deletion_protection_enabled: false,
2380
+ # })
2381
+ #
2382
+ # @example Response structure
2383
+ #
2384
+ # resp.notify_code_configuration.notify_code_configuration_id #=> String
2385
+ # resp.notify_code_configuration.notify_code_configuration_arn #=> String
2386
+ # resp.notify_code_configuration.notify_code_configuration_name #=> String
2387
+ # resp.notify_code_configuration.code_configuration_parameters.code_type #=> String, one of "NUMERIC", "ALPHA", "ALPHANUMERIC"
2388
+ # resp.notify_code_configuration.code_configuration_parameters.code_length #=> Integer
2389
+ # resp.notify_code_configuration.code_configuration_parameters.validity_period_minutes #=> Integer
2390
+ # resp.notify_code_configuration.code_configuration_parameters.max_attempts #=> Integer
2391
+ # resp.notify_code_configuration.channel_parameters.text.inline_template_body #=> String
2392
+ # resp.notify_code_configuration.channel_parameters.text.destination_country_parameters #=> Hash
2393
+ # resp.notify_code_configuration.channel_parameters.text.destination_country_parameters["DestinationCountryParameterKey"] #=> String
2394
+ # resp.notify_code_configuration.channel_parameters.voice.inline_template_body #=> String
2395
+ # resp.notify_code_configuration.channel_parameters.voice.language_code #=> String
2396
+ # resp.notify_code_configuration.channel_parameters.voice.voice_id #=> String
2397
+ # resp.notify_code_configuration.channel_parameters.voice.voice_message_body_text_type #=> String, one of "TEXT", "SSML"
2398
+ # resp.notify_code_configuration.channel_parameters.notify.notify_template_id #=> String
2399
+ # resp.notify_code_configuration.channel_parameters.notify.voice_id #=> String
2400
+ # resp.notify_code_configuration.channel_parameters.whats_app.whats_app_template_name #=> String
2401
+ # resp.notify_code_configuration.channel_parameters.whats_app.language_code #=> String
2402
+ # resp.notify_code_configuration.deletion_protection_enabled #=> Boolean
2403
+ # resp.notify_code_configuration.created_at #=> Time
2404
+ # resp.notify_code_configuration.updated_at #=> Time
2405
+ #
2406
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/UpdateNotifyCodeConfiguration AWS API Documentation
2407
+ #
2408
+ # @overload update_notify_code_configuration(params = {})
2409
+ # @param [Hash] params ({})
2410
+ def update_notify_code_configuration(params = {}, options = {})
2411
+ req = build_request(:update_notify_code_configuration, params)
2412
+ req.send_request(options)
2413
+ end
2414
+
2415
+ # Repushes the attributes of a brand profile into existing DRAFT
2416
+ # registrations. This operation runs asynchronously. Use the GetJob
2417
+ # operation to track its progress.
2418
+ #
2419
+ # @option params [required, String] :brand_profile_id
2420
+ # The unique identifier of the brand profile. You can specify either the
2421
+ # bare ID or the full Amazon Resource Name (ARN).
2422
+ #
2423
+ # @option params [required, Array<String>] :registration_ids
2424
+ # The identifiers of the registrations.
2425
+ #
2426
+ # @option params [Boolean] :smart_match
2427
+ # Specifies whether to use semantic field mapping between brand profile
2428
+ # attributes and registration fields. The default is true. When false,
2429
+ # the service maps fields using a fixed set of standard field types.
2430
+ #
2431
+ # @option params [String] :on_attribute_conflict
2432
+ # Specifies how the service resolves an attribute that already exists.
2433
+ # REPLACE overwrites the existing value with the incoming value.
2434
+ # PRESERVE keeps the existing value.
2435
+ #
2436
+ # @option params [String] :client_token
2437
+ # A unique, case-sensitive identifier that you provide to ensure the
2438
+ # idempotency of the request. If you do not specify a client token, the
2439
+ # AWS SDK automatically generates one.
2440
+ #
2441
+ # **A suitable default value is auto-generated.** You should normally
2442
+ # not need to pass this option.**
2443
+ #
2444
+ # @return [Types::UpdateRegistrationsFromBrandProfileOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2445
+ #
2446
+ # * {Types::UpdateRegistrationsFromBrandProfileOutput#results #results} => Array&lt;Types::JobResult&gt;
2447
+ #
2448
+ #
2449
+ # @example Example: Update registrations from a brand profile
2450
+ #
2451
+ # resp = client.update_registrations_from_brand_profile({
2452
+ # brand_profile_id: "bp-abc12345678901234",
2453
+ # on_attribute_conflict: "PRESERVE",
2454
+ # registration_ids: [
2455
+ # "reg-abc12345678901234",
2456
+ # ],
2457
+ # smart_match: true,
2458
+ # })
2459
+ #
2460
+ # resp.to_h outputs the following:
2461
+ # {
2462
+ # results: [
2463
+ # {
2464
+ # job_id: "job-abc12345678901234",
2465
+ # resource_identifier: "reg-abc12345678901234",
2466
+ # },
2467
+ # ],
2468
+ # }
2469
+ #
2470
+ # @example Request syntax with placeholder values
2471
+ #
2472
+ # resp = client.update_registrations_from_brand_profile({
2473
+ # brand_profile_id: "BrandProfileIdOrArn", # required
2474
+ # registration_ids: ["RegistrationIdOrArn"], # required
2475
+ # smart_match: false,
2476
+ # on_attribute_conflict: "REPLACE", # accepts REPLACE, PRESERVE
2477
+ # client_token: "ClientToken",
2478
+ # })
2479
+ #
2480
+ # @example Response structure
2481
+ #
2482
+ # resp.results #=> Array
2483
+ # resp.results[0].job_id #=> String
2484
+ # resp.results[0].resource_identifier #=> String
2485
+ #
2486
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/UpdateRegistrationsFromBrandProfile AWS API Documentation
2487
+ #
2488
+ # @overload update_registrations_from_brand_profile(params = {})
2489
+ # @param [Hash] params ({})
2490
+ def update_registrations_from_brand_profile(params = {}, options = {})
2491
+ req = build_request(:update_registrations_from_brand_profile, params)
2492
+ req.send_request(options)
2493
+ end
2494
+
2495
+ # Validates a one-time passcode that a recipient submitted. Validation
2496
+ # succeeds when the passcode matches, the validity period has not
2497
+ # elapsed, and the maximum number of attempts has not been exceeded.
2498
+ #
2499
+ # @option params [required, String] :destination_identity
2500
+ # The recipient identifier. For the TEXT and VOICE channels, specify an
2501
+ # E.164 phone number. For the WhatsApp channel, specify a WhatsApp
2502
+ # address.
2503
+ #
2504
+ # @option params [String] :reference_id
2505
+ # The caller-supplied reference identifier used to locate the
2506
+ # verification. This value must match the value that you supplied to the
2507
+ # SendNotifyCodeVerification operation.
2508
+ #
2509
+ # @option params [required, String] :code
2510
+ # The one-time passcode that the recipient submitted for validation.
2511
+ #
2512
+ # @return [Types::ValidateNotifyCodeVerificationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2513
+ #
2514
+ # * {Types::ValidateNotifyCodeVerificationOutput#status #status} => String
2515
+ #
2516
+ #
2517
+ # @example Example: Validate a submitted one-time passcode
2518
+ #
2519
+ # resp = client.validate_notify_code_verification({
2520
+ # code: "123456",
2521
+ # destination_identity: "+14255550100",
2522
+ # reference_id: "signup-flow-42",
2523
+ # })
2524
+ #
2525
+ # resp.to_h outputs the following:
2526
+ # {
2527
+ # status: "VALID",
2528
+ # }
2529
+ #
2530
+ # @example Request syntax with placeholder values
2531
+ #
2532
+ # resp = client.validate_notify_code_verification({
2533
+ # destination_identity: "DestinationIdentity", # required
2534
+ # reference_id: "ReferenceId",
2535
+ # code: "VerificationCode", # required
2536
+ # })
2537
+ #
2538
+ # @example Response structure
2539
+ #
2540
+ # resp.status #=> String, one of "VALID", "INVALID"
2541
+ #
2542
+ # @see http://docs.aws.amazon.com/goto/WebAPI/endusermessaging-2026-09-21/ValidateNotifyCodeVerification AWS API Documentation
2543
+ #
2544
+ # @overload validate_notify_code_verification(params = {})
2545
+ # @param [Hash] params ({})
2546
+ def validate_notify_code_verification(params = {}, options = {})
2547
+ req = build_request(:validate_notify_code_verification, params)
2548
+ req.send_request(options)
2549
+ end
2550
+
2551
+ # @!endgroup
2552
+
2553
+ # @param params ({})
2554
+ # @api private
2555
+ def build_request(operation_name, params = {})
2556
+ handlers = @handlers.for(operation_name)
2557
+ tracer = config.telemetry_provider.tracer_provider.tracer(
2558
+ Aws::Telemetry.module_to_tracer_name('Aws::EndUserMessaging')
2559
+ )
2560
+ context = Seahorse::Client::RequestContext.new(
2561
+ operation_name: operation_name,
2562
+ operation: config.api.operation(operation_name),
2563
+ client: self,
2564
+ params: params,
2565
+ config: config,
2566
+ tracer: tracer
2567
+ )
2568
+ context[:gem_name] = 'aws-sdk-endusermessaging'
2569
+ context[:gem_version] = '1.0.0'
2570
+ Seahorse::Client::Request.new(handlers, context)
2571
+ end
2572
+
2573
+ # Polls an API operation until a resource enters a desired state.
2574
+ #
2575
+ # ## Basic Usage
2576
+ #
2577
+ # A waiter will call an API operation until:
2578
+ #
2579
+ # * It is successful
2580
+ # * It enters a terminal state
2581
+ # * It makes the maximum number of attempts
2582
+ #
2583
+ # In between attempts, the waiter will sleep.
2584
+ #
2585
+ # # polls in a loop, sleeping between attempts
2586
+ # client.wait_until(waiter_name, params)
2587
+ #
2588
+ # ## Configuration
2589
+ #
2590
+ # You can configure the maximum number of polling attempts, and the
2591
+ # delay (in seconds) between each polling attempt. You can pass
2592
+ # configuration as the final arguments hash.
2593
+ #
2594
+ # # poll for ~25 seconds
2595
+ # client.wait_until(waiter_name, params, {
2596
+ # max_attempts: 5,
2597
+ # delay: 5,
2598
+ # })
2599
+ #
2600
+ # ## Callbacks
2601
+ #
2602
+ # You can be notified before each polling attempt and before each
2603
+ # delay. If you throw `:success` or `:failure` from these callbacks,
2604
+ # it will terminate the waiter.
2605
+ #
2606
+ # started_at = Time.now
2607
+ # client.wait_until(waiter_name, params, {
2608
+ #
2609
+ # # disable max attempts
2610
+ # max_attempts: nil,
2611
+ #
2612
+ # # poll for 1 hour, instead of a number of attempts
2613
+ # before_wait: -> (attempts, response) do
2614
+ # throw :failure if Time.now - started_at > 3600
2615
+ # end
2616
+ # })
2617
+ #
2618
+ # ## Handling Errors
2619
+ #
2620
+ # When a waiter is unsuccessful, it will raise an error.
2621
+ # All of the failure errors extend from
2622
+ # {Aws::Waiters::Errors::WaiterFailed}.
2623
+ #
2624
+ # begin
2625
+ # client.wait_until(...)
2626
+ # rescue Aws::Waiters::Errors::WaiterFailed
2627
+ # # resource did not enter the desired state in time
2628
+ # end
2629
+ #
2630
+ # ## Valid Waiters
2631
+ #
2632
+ # The following table lists the valid waiter names, the operations they call,
2633
+ # and the default `:delay` and `:max_attempts` values.
2634
+ #
2635
+ # | waiter_name | params | :delay | :max_attempts |
2636
+ # | -------------------- | -------------------------- | -------- | ------------- |
2637
+ # | brand_profile_active | {Client#get_brand_profile} | 30 | 5 |
2638
+ # | job_success | {Client#get_job} | 30 | 5 |
2639
+ #
2640
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
2641
+ # because the waiter has entered a state that it will not transition
2642
+ # out of, preventing success.
2643
+ #
2644
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
2645
+ # maximum number of attempts have been made, and the waiter is not
2646
+ # yet successful.
2647
+ #
2648
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
2649
+ # while polling for a resource that is not expected.
2650
+ #
2651
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
2652
+ # for an unknown state.
2653
+ #
2654
+ # @return [Boolean] Returns `true` if the waiter was successful.
2655
+ # @param [Symbol] waiter_name
2656
+ # @param [Hash] params ({})
2657
+ # @param [Hash] options ({})
2658
+ # @option options [Integer] :max_attempts
2659
+ # @option options [Integer] :delay
2660
+ # @option options [Proc] :before_attempt
2661
+ # @option options [Proc] :before_wait
2662
+ def wait_until(waiter_name, params = {}, options = {})
2663
+ w = waiter(waiter_name, options)
2664
+ yield(w.waiter) if block_given? # deprecated
2665
+ w.wait(params)
2666
+ end
2667
+
2668
+ # @api private
2669
+ # @deprecated
2670
+ def waiter_names
2671
+ waiters.keys
2672
+ end
2673
+
2674
+ private
2675
+
2676
+ # @param [Symbol] waiter_name
2677
+ # @param [Hash] options ({})
2678
+ def waiter(waiter_name, options = {})
2679
+ waiter_class = waiters[waiter_name]
2680
+ if waiter_class
2681
+ waiter_class.new(options.merge(client: self))
2682
+ else
2683
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
2684
+ end
2685
+ end
2686
+
2687
+ def waiters
2688
+ {
2689
+ brand_profile_active: Waiters::BrandProfileActive,
2690
+ job_success: Waiters::JobSuccess
2691
+ }
2692
+ end
2693
+
2694
+ class << self
2695
+
2696
+ # @api private
2697
+ attr_reader :identifier
2698
+
2699
+ # @api private
2700
+ def errors_module
2701
+ Errors
2702
+ end
2703
+
2704
+ end
2705
+ end
2706
+ end