aws-sdk-sns 1.42.0 → 1.77.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -28,13 +28,18 @@ module Aws::SNS
28
28
  #
29
29
  # ## Error Classes
30
30
  # * {AuthorizationErrorException}
31
+ # * {BatchEntryIdsNotDistinctException}
32
+ # * {BatchRequestTooLongException}
31
33
  # * {ConcurrentAccessException}
34
+ # * {EmptyBatchRequestException}
32
35
  # * {EndpointDisabledException}
33
36
  # * {FilterPolicyLimitExceededException}
34
37
  # * {InternalErrorException}
38
+ # * {InvalidBatchEntryIdException}
35
39
  # * {InvalidParameterException}
36
40
  # * {InvalidParameterValueException}
37
41
  # * {InvalidSecurityException}
42
+ # * {InvalidStateException}
38
43
  # * {KMSAccessDeniedException}
39
44
  # * {KMSDisabledException}
40
45
  # * {KMSInvalidStateException}
@@ -44,12 +49,14 @@ module Aws::SNS
44
49
  # * {NotFoundException}
45
50
  # * {OptedOutException}
46
51
  # * {PlatformApplicationDisabledException}
52
+ # * {ReplayLimitExceededException}
47
53
  # * {ResourceNotFoundException}
48
54
  # * {StaleTagException}
49
55
  # * {SubscriptionLimitExceededException}
50
56
  # * {TagLimitExceededException}
51
57
  # * {TagPolicyException}
52
58
  # * {ThrottledException}
59
+ # * {TooManyEntriesInBatchRequestException}
53
60
  # * {TopicLimitExceededException}
54
61
  # * {UserErrorException}
55
62
  # * {ValidationException}
@@ -76,6 +83,36 @@ module Aws::SNS
76
83
  end
77
84
  end
78
85
 
86
+ class BatchEntryIdsNotDistinctException < ServiceError
87
+
88
+ # @param [Seahorse::Client::RequestContext] context
89
+ # @param [String] message
90
+ # @param [Aws::SNS::Types::BatchEntryIdsNotDistinctException] data
91
+ def initialize(context, message, data = Aws::EmptyStructure.new)
92
+ super(context, message, data)
93
+ end
94
+
95
+ # @return [String]
96
+ def message
97
+ @message || @data[:message]
98
+ end
99
+ end
100
+
101
+ class BatchRequestTooLongException < ServiceError
102
+
103
+ # @param [Seahorse::Client::RequestContext] context
104
+ # @param [String] message
105
+ # @param [Aws::SNS::Types::BatchRequestTooLongException] data
106
+ def initialize(context, message, data = Aws::EmptyStructure.new)
107
+ super(context, message, data)
108
+ end
109
+
110
+ # @return [String]
111
+ def message
112
+ @message || @data[:message]
113
+ end
114
+ end
115
+
79
116
  class ConcurrentAccessException < ServiceError
80
117
 
81
118
  # @param [Seahorse::Client::RequestContext] context
@@ -91,6 +128,21 @@ module Aws::SNS
91
128
  end
92
129
  end
93
130
 
131
+ class EmptyBatchRequestException < ServiceError
132
+
133
+ # @param [Seahorse::Client::RequestContext] context
134
+ # @param [String] message
135
+ # @param [Aws::SNS::Types::EmptyBatchRequestException] data
136
+ def initialize(context, message, data = Aws::EmptyStructure.new)
137
+ super(context, message, data)
138
+ end
139
+
140
+ # @return [String]
141
+ def message
142
+ @message || @data[:message]
143
+ end
144
+ end
145
+
94
146
  class EndpointDisabledException < ServiceError
95
147
 
96
148
  # @param [Seahorse::Client::RequestContext] context
@@ -136,6 +188,21 @@ module Aws::SNS
136
188
  end
137
189
  end
138
190
 
191
+ class InvalidBatchEntryIdException < ServiceError
192
+
193
+ # @param [Seahorse::Client::RequestContext] context
194
+ # @param [String] message
195
+ # @param [Aws::SNS::Types::InvalidBatchEntryIdException] data
196
+ def initialize(context, message, data = Aws::EmptyStructure.new)
197
+ super(context, message, data)
198
+ end
199
+
200
+ # @return [String]
201
+ def message
202
+ @message || @data[:message]
203
+ end
204
+ end
205
+
139
206
  class InvalidParameterException < ServiceError
140
207
 
141
208
  # @param [Seahorse::Client::RequestContext] context
@@ -181,6 +248,21 @@ module Aws::SNS
181
248
  end
182
249
  end
183
250
 
251
+ class InvalidStateException < ServiceError
252
+
253
+ # @param [Seahorse::Client::RequestContext] context
254
+ # @param [String] message
255
+ # @param [Aws::SNS::Types::InvalidStateException] data
256
+ def initialize(context, message, data = Aws::EmptyStructure.new)
257
+ super(context, message, data)
258
+ end
259
+
260
+ # @return [String]
261
+ def message
262
+ @message || @data[:message]
263
+ end
264
+ end
265
+
184
266
  class KMSAccessDeniedException < ServiceError
185
267
 
186
268
  # @param [Seahorse::Client::RequestContext] context
@@ -316,6 +398,21 @@ module Aws::SNS
316
398
  end
317
399
  end
318
400
 
401
+ class ReplayLimitExceededException < ServiceError
402
+
403
+ # @param [Seahorse::Client::RequestContext] context
404
+ # @param [String] message
405
+ # @param [Aws::SNS::Types::ReplayLimitExceededException] data
406
+ def initialize(context, message, data = Aws::EmptyStructure.new)
407
+ super(context, message, data)
408
+ end
409
+
410
+ # @return [String]
411
+ def message
412
+ @message || @data[:message]
413
+ end
414
+ end
415
+
319
416
  class ResourceNotFoundException < ServiceError
320
417
 
321
418
  # @param [Seahorse::Client::RequestContext] context
@@ -406,6 +503,21 @@ module Aws::SNS
406
503
  end
407
504
  end
408
505
 
506
+ class TooManyEntriesInBatchRequestException < ServiceError
507
+
508
+ # @param [Seahorse::Client::RequestContext] context
509
+ # @param [String] message
510
+ # @param [Aws::SNS::Types::TooManyEntriesInBatchRequestException] data
511
+ def initialize(context, message, data = Aws::EmptyStructure.new)
512
+ super(context, message, data)
513
+ end
514
+
515
+ # @return [String]
516
+ def message
517
+ @message || @data[:message]
518
+ end
519
+ end
520
+
409
521
  class TopicLimitExceededException < ServiceError
410
522
 
411
523
  # @param [Seahorse::Client::RequestContext] context
@@ -65,11 +65,15 @@ module Aws
65
65
  def authenticate!(message_body)
66
66
  msg = Json.load(message_body)
67
67
  msg = convert_lambda_msg(msg) if is_from_lambda(msg)
68
- if public_key(msg).verify(sha1, signature(msg), canonical_string(msg))
69
- true
68
+
69
+ case msg['SignatureVersion']
70
+ when '1'
71
+ verify!(msg, sha1)
72
+ when '2'
73
+ verify!(msg, sha256)
70
74
  else
71
- msg = 'the authenticity of the message cannot be verified'
72
- raise VerificationError, msg
75
+ error_msg = 'Invalid SignatureVersion'
76
+ raise VerificationError, error_msg
73
77
  end
74
78
  end
75
79
 
@@ -88,10 +92,23 @@ module Aws
88
92
  message
89
93
  end
90
94
 
95
+ def verify!(msg, hash_alg)
96
+ if public_key(msg).verify(hash_alg, signature(msg), canonical_string(msg))
97
+ true
98
+ else
99
+ msg = 'the authenticity of the message cannot be verified'
100
+ raise VerificationError, msg
101
+ end
102
+ end
103
+
91
104
  def sha1
92
105
  OpenSSL::Digest::SHA1.new
93
106
  end
94
107
 
108
+ def sha256
109
+ OpenSSL::Digest::SHA256.new
110
+ end
111
+
95
112
  def signature(message)
96
113
  Base64.decode64(message['Signature'])
97
114
  end
@@ -123,7 +140,9 @@ module Aws
123
140
 
124
141
  def download_pem(uri)
125
142
  verify_uri!(uri)
126
- https_get(uri)
143
+ pem = https_get(uri)
144
+ verify_pem_format!(pem)
145
+ pem
127
146
  end
128
147
 
129
148
  def verify_uri!(uri)
@@ -153,6 +172,14 @@ module Aws
153
172
  end
154
173
  end
155
174
 
175
+ def verify_pem_format!(pem)
176
+ cert_regex = /\A[\s]*-----BEGIN [A-Z]+-----\n[A-Za-z\d+\/\n]+[=]{0,2}\n-----END [A-Z]+-----[\s]*\Z/
177
+ unless pem =~ cert_regex
178
+ msg = 'The certificate does not match expected X509 PEM format.'
179
+ raise VerificationError, msg
180
+ end
181
+ end
182
+
156
183
  def https_get(uri, failed_attempts = 0)
157
184
  args = []
158
185
  args << uri.host
@@ -36,6 +36,23 @@ module Aws::SNS
36
36
 
37
37
  # Attributes include the following:
38
38
  #
39
+ # * `AppleCertificateExpiryDate` – The expiry date of the SSL
40
+ # certificate used to configure certificate-based authentication.
41
+ #
42
+ # * `ApplePlatformTeamID` – The Apple developer account ID used to
43
+ # configure token-based authentication.
44
+ #
45
+ # * `ApplePlatformBundleID` – The app identifier used to configure
46
+ # token-based authentication.
47
+ #
48
+ # * `AuthenticationMethod` – Returns the credential type used when
49
+ # sending push notifications from application to APNS/APNS\_Sandbox,
50
+ # or application to GCM.
51
+ #
52
+ # * APNS – Returns the token or certificate.
53
+ #
54
+ # * GCM – Returns the token or key.
55
+ #
39
56
  # * `EventEndpointCreated` – Topic ARN to which EndpointCreated event
40
57
  # notifications should be sent.
41
58
  #
@@ -67,7 +84,9 @@ module Aws::SNS
67
84
  #
68
85
  # @return [self]
69
86
  def load
70
- resp = @client.get_platform_application_attributes(platform_application_arn: @arn)
87
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
88
+ @client.get_platform_application_attributes(platform_application_arn: @arn)
89
+ end
71
90
  @data = resp.data
72
91
  self
73
92
  end
@@ -111,7 +130,7 @@ module Aws::SNS
111
130
  # Arbitrary user data to associate with the endpoint. Amazon SNS does
112
131
  # not use this data. The data must be in UTF-8 format and less than 2KB.
113
132
  # @option options [Hash<String,String>] :attributes
114
- # For a list of attributes, see [SetEndpointAttributes][1].
133
+ # For a list of attributes, see [ `SetEndpointAttributes` ][1].
115
134
  #
116
135
  #
117
136
  #
@@ -119,7 +138,9 @@ module Aws::SNS
119
138
  # @return [PlatformEndpoint]
120
139
  def create_platform_endpoint(options = {})
121
140
  options = options.merge(platform_application_arn: @arn)
122
- resp = @client.create_platform_endpoint(options)
141
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
142
+ @client.create_platform_endpoint(options)
143
+ end
123
144
  PlatformEndpoint.new(
124
145
  arn: resp.data.endpoint_arn,
125
146
  client: @client
@@ -133,7 +154,9 @@ module Aws::SNS
133
154
  # @return [EmptyStructure]
134
155
  def delete(options = {})
135
156
  options = options.merge(platform_application_arn: @arn)
136
- resp = @client.delete_platform_application(options)
157
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
158
+ @client.delete_platform_application(options)
159
+ end
137
160
  resp.data
138
161
  end
139
162
 
@@ -150,15 +173,42 @@ module Aws::SNS
150
173
  # include the following:
151
174
  #
152
175
  # * `PlatformCredential` – The credential received from the notification
153
- # service. For `APNS` and `APNS_SANDBOX`, `PlatformCredential` is
154
- # `private key`. For `GCM` (Firebase Cloud Messaging),
155
- # `PlatformCredential` is `API key`. For `ADM`, `PlatformCredential`
156
- # is `client secret`.
176
+ # service.
177
+ #
178
+ # * For ADM, `PlatformCredential`is client secret.
179
+ #
180
+ # * For Apple Services using certificate credentials,
181
+ # `PlatformCredential` is private key.
182
+ #
183
+ # * For Apple Services using token credentials, `PlatformCredential`
184
+ # is signing key.
185
+ #
186
+ # * For GCM (Firebase Cloud Messaging) using key credentials, there is
187
+ # no `PlatformPrincipal`. The `PlatformCredential` is `API key`.
188
+ #
189
+ # * For GCM (Firebase Cloud Messaging) using token credentials, there
190
+ # is no `PlatformPrincipal`. The `PlatformCredential` is a JSON
191
+ # formatted private key file. When using the Amazon Web Services
192
+ # CLI, the file must be in string format and special characters must
193
+ # be ignored. To format the file correctly, Amazon SNS recommends
194
+ # using the following command: `` SERVICE_JSON=`jq @json <<< cat
195
+ # service.json` ``.
196
+ # ^
157
197
  #
158
198
  # * `PlatformPrincipal` – The principal received from the notification
159
- # service. For `APNS` and `APNS_SANDBOX`, `PlatformPrincipal` is `SSL
160
- # certificate`. For `GCM` (Firebase Cloud Messaging), there is no
161
- # `PlatformPrincipal`. For `ADM`, `PlatformPrincipal` is `client id`.
199
+ # service.
200
+ #
201
+ # * For ADM, `PlatformPrincipal`is client id.
202
+ #
203
+ # * For Apple Services using certificate credentials,
204
+ # `PlatformPrincipal` is SSL certificate.
205
+ #
206
+ # * For Apple Services using token credentials, `PlatformPrincipal` is
207
+ # signing key ID.
208
+ #
209
+ # * For GCM (Firebase Cloud Messaging), there is no
210
+ # `PlatformPrincipal`.
211
+ # ^
162
212
  #
163
213
  # * `EventEndpointCreated` – Topic ARN to which `EndpointCreated` event
164
214
  # notifications are sent.
@@ -181,10 +231,21 @@ module Aws::SNS
181
231
  #
182
232
  # * `SuccessFeedbackSampleRate` – Sample rate percentage (0-100) of
183
233
  # successfully delivered messages.
234
+ #
235
+ # The following attributes only apply to `APNs` token-based
236
+ # authentication:
237
+ #
238
+ # * `ApplePlatformTeamID` – The identifier that's assigned to your
239
+ # Apple developer account team.
240
+ #
241
+ # * `ApplePlatformBundleID` – The bundle identifier that's assigned to
242
+ # your iOS app.
184
243
  # @return [EmptyStructure]
185
244
  def set_attributes(options = {})
186
245
  options = options.merge(platform_application_arn: @arn)
187
- resp = @client.set_platform_application_attributes(options)
246
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
247
+ @client.set_platform_application_attributes(options)
248
+ end
188
249
  resp.data
189
250
  end
190
251
 
@@ -198,7 +259,9 @@ module Aws::SNS
198
259
  def endpoints(options = {})
199
260
  batches = Enumerator.new do |y|
200
261
  options = options.merge(platform_application_arn: @arn)
201
- resp = @client.list_endpoints_by_platform_application(options)
262
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
263
+ @client.list_endpoints_by_platform_application(options)
264
+ end
202
265
  resp.each_page do |page|
203
266
  batch = []
204
267
  page.data.endpoints.each do |e|
@@ -72,7 +72,9 @@ module Aws::SNS
72
72
  #
73
73
  # @return [self]
74
74
  def load
75
- resp = @client.get_endpoint_attributes(endpoint_arn: @arn)
75
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
76
+ @client.get_endpoint_attributes(endpoint_arn: @arn)
77
+ end
76
78
  @data = resp.data
77
79
  self
78
80
  end
@@ -102,7 +104,9 @@ module Aws::SNS
102
104
  # @return [EmptyStructure]
103
105
  def delete(options = {})
104
106
  options = options.merge(endpoint_arn: @arn)
105
- resp = @client.delete_endpoint(options)
107
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
108
+ @client.delete_endpoint(options)
109
+ end
106
110
  resp.data
107
111
  end
108
112
 
@@ -110,7 +114,7 @@ module Aws::SNS
110
114
  #
111
115
  # platform_endpoint.publish({
112
116
  # topic_arn: "topicARN",
113
- # phone_number: "String",
117
+ # phone_number: "PhoneNumber",
114
118
  # message: "message", # required
115
119
  # subject: "subject",
116
120
  # message_structure: "messageStructure",
@@ -196,9 +200,8 @@ module Aws::SNS
196
200
  # is delivered to email endpoints. This field will also be included, if
197
201
  # present, in the standard JSON messages delivered to other endpoints.
198
202
  #
199
- # Constraints: Subjects must be ASCII text that begins with a letter,
200
- # number, or punctuation mark; must not include line breaks or control
201
- # characters; and must be less than 100 characters long.
203
+ # Constraints: Subjects must be UTF-8 text with no line breaks or
204
+ # control characters, and less than 100 characters long.
202
205
  # @option options [String] :message_structure
203
206
  # Set `MessageStructure` to `json` if you want to send a different
204
207
  # message for each protocol. For example, using one publish action, you
@@ -220,7 +223,7 @@ module Aws::SNS
220
223
  # @option options [String] :message_deduplication_id
221
224
  # This parameter applies only to FIFO (first-in-first-out) topics. The
222
225
  # `MessageDeduplicationId` can contain up to 128 alphanumeric characters
223
- # (a-z, A-Z, 0-9) and punctuation ``
226
+ # `(a-z, A-Z, 0-9)` and punctuation ``
224
227
  # (!"#$%&'()*+,-./:;<=>?@[\]^_`\{|\}~) ``.
225
228
  #
226
229
  # Every message must have a unique `MessageDeduplicationId`, which is a
@@ -234,8 +237,8 @@ module Aws::SNS
234
237
  # `MessageDeduplicationId` overrides the generated one.
235
238
  # @option options [String] :message_group_id
236
239
  # This parameter applies only to FIFO (first-in-first-out) topics. The
237
- # `MessageGroupId` can contain up to 128 alphanumeric characters (a-z,
238
- # A-Z, 0-9) and punctuation `` (!"#$%&'()*+,-./:;<=>?@[\]^_`\{|\}~) ``.
240
+ # `MessageGroupId` can contain up to 128 alphanumeric characters `(a-z,
241
+ # A-Z, 0-9)` and punctuation `` (!"#$%&'()*+,-./:;<=>?@[\]^_`\{|\}~) ``.
239
242
  #
240
243
  # The `MessageGroupId` is a tag that specifies that a message belongs to
241
244
  # a specific message group. Messages that belong to the same message
@@ -245,7 +248,9 @@ module Aws::SNS
245
248
  # @return [Types::PublishResponse]
246
249
  def publish(options = {})
247
250
  options = options.merge(target_arn: @arn)
248
- resp = @client.publish(options)
251
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
252
+ @client.publish(options)
253
+ end
249
254
  resp.data
250
255
  end
251
256
 
@@ -277,7 +282,9 @@ module Aws::SNS
277
282
  # @return [EmptyStructure]
278
283
  def set_attributes(options = {})
279
284
  options = options.merge(endpoint_arn: @arn)
280
- resp = @client.set_endpoint_attributes(options)
285
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
286
+ @client.set_endpoint_attributes(options)
287
+ end
281
288
  resp.data
282
289
  end
283
290
 
@@ -0,0 +1,154 @@
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
+
11
+ module Aws::SNS
12
+ module Plugins
13
+ class Endpoints < Seahorse::Client::Plugin
14
+ option(
15
+ :endpoint_provider,
16
+ doc_type: 'Aws::SNS::EndpointProvider',
17
+ rbs_type: 'untyped',
18
+ docstring: 'The endpoint provider used to resolve endpoints. Any '\
19
+ 'object that responds to `#resolve_endpoint(parameters)` '\
20
+ 'where `parameters` is a Struct similar to '\
21
+ '`Aws::SNS::EndpointParameters`'
22
+ ) do |cfg|
23
+ Aws::SNS::EndpointProvider.new
24
+ end
25
+
26
+ # @api private
27
+ class Handler < Seahorse::Client::Handler
28
+ def call(context)
29
+ unless context[:discovered_endpoint]
30
+ params = parameters_for_operation(context)
31
+ endpoint = context.config.endpoint_provider.resolve_endpoint(params)
32
+
33
+ context.http_request.endpoint = endpoint.url
34
+ apply_endpoint_headers(context, endpoint.headers)
35
+
36
+ context[:endpoint_params] = params
37
+ context[:endpoint_properties] = endpoint.properties
38
+ end
39
+
40
+ context[:auth_scheme] =
41
+ Aws::Endpoints.resolve_auth_scheme(context, endpoint)
42
+
43
+ @handler.call(context)
44
+ end
45
+
46
+ private
47
+
48
+ def apply_endpoint_headers(context, headers)
49
+ headers.each do |key, values|
50
+ value = values
51
+ .compact
52
+ .map { |s| Seahorse::Util.escape_header_list_string(s.to_s) }
53
+ .join(',')
54
+
55
+ context.http_request.headers[key] = value
56
+ end
57
+ end
58
+
59
+ def parameters_for_operation(context)
60
+ case context.operation_name
61
+ when :add_permission
62
+ Aws::SNS::Endpoints::AddPermission.build(context)
63
+ when :check_if_phone_number_is_opted_out
64
+ Aws::SNS::Endpoints::CheckIfPhoneNumberIsOptedOut.build(context)
65
+ when :confirm_subscription
66
+ Aws::SNS::Endpoints::ConfirmSubscription.build(context)
67
+ when :create_platform_application
68
+ Aws::SNS::Endpoints::CreatePlatformApplication.build(context)
69
+ when :create_platform_endpoint
70
+ Aws::SNS::Endpoints::CreatePlatformEndpoint.build(context)
71
+ when :create_sms_sandbox_phone_number
72
+ Aws::SNS::Endpoints::CreateSMSSandboxPhoneNumber.build(context)
73
+ when :create_topic
74
+ Aws::SNS::Endpoints::CreateTopic.build(context)
75
+ when :delete_endpoint
76
+ Aws::SNS::Endpoints::DeleteEndpoint.build(context)
77
+ when :delete_platform_application
78
+ Aws::SNS::Endpoints::DeletePlatformApplication.build(context)
79
+ when :delete_sms_sandbox_phone_number
80
+ Aws::SNS::Endpoints::DeleteSMSSandboxPhoneNumber.build(context)
81
+ when :delete_topic
82
+ Aws::SNS::Endpoints::DeleteTopic.build(context)
83
+ when :get_data_protection_policy
84
+ Aws::SNS::Endpoints::GetDataProtectionPolicy.build(context)
85
+ when :get_endpoint_attributes
86
+ Aws::SNS::Endpoints::GetEndpointAttributes.build(context)
87
+ when :get_platform_application_attributes
88
+ Aws::SNS::Endpoints::GetPlatformApplicationAttributes.build(context)
89
+ when :get_sms_attributes
90
+ Aws::SNS::Endpoints::GetSMSAttributes.build(context)
91
+ when :get_sms_sandbox_account_status
92
+ Aws::SNS::Endpoints::GetSMSSandboxAccountStatus.build(context)
93
+ when :get_subscription_attributes
94
+ Aws::SNS::Endpoints::GetSubscriptionAttributes.build(context)
95
+ when :get_topic_attributes
96
+ Aws::SNS::Endpoints::GetTopicAttributes.build(context)
97
+ when :list_endpoints_by_platform_application
98
+ Aws::SNS::Endpoints::ListEndpointsByPlatformApplication.build(context)
99
+ when :list_origination_numbers
100
+ Aws::SNS::Endpoints::ListOriginationNumbers.build(context)
101
+ when :list_phone_numbers_opted_out
102
+ Aws::SNS::Endpoints::ListPhoneNumbersOptedOut.build(context)
103
+ when :list_platform_applications
104
+ Aws::SNS::Endpoints::ListPlatformApplications.build(context)
105
+ when :list_sms_sandbox_phone_numbers
106
+ Aws::SNS::Endpoints::ListSMSSandboxPhoneNumbers.build(context)
107
+ when :list_subscriptions
108
+ Aws::SNS::Endpoints::ListSubscriptions.build(context)
109
+ when :list_subscriptions_by_topic
110
+ Aws::SNS::Endpoints::ListSubscriptionsByTopic.build(context)
111
+ when :list_tags_for_resource
112
+ Aws::SNS::Endpoints::ListTagsForResource.build(context)
113
+ when :list_topics
114
+ Aws::SNS::Endpoints::ListTopics.build(context)
115
+ when :opt_in_phone_number
116
+ Aws::SNS::Endpoints::OptInPhoneNumber.build(context)
117
+ when :publish
118
+ Aws::SNS::Endpoints::Publish.build(context)
119
+ when :publish_batch
120
+ Aws::SNS::Endpoints::PublishBatch.build(context)
121
+ when :put_data_protection_policy
122
+ Aws::SNS::Endpoints::PutDataProtectionPolicy.build(context)
123
+ when :remove_permission
124
+ Aws::SNS::Endpoints::RemovePermission.build(context)
125
+ when :set_endpoint_attributes
126
+ Aws::SNS::Endpoints::SetEndpointAttributes.build(context)
127
+ when :set_platform_application_attributes
128
+ Aws::SNS::Endpoints::SetPlatformApplicationAttributes.build(context)
129
+ when :set_sms_attributes
130
+ Aws::SNS::Endpoints::SetSMSAttributes.build(context)
131
+ when :set_subscription_attributes
132
+ Aws::SNS::Endpoints::SetSubscriptionAttributes.build(context)
133
+ when :set_topic_attributes
134
+ Aws::SNS::Endpoints::SetTopicAttributes.build(context)
135
+ when :subscribe
136
+ Aws::SNS::Endpoints::Subscribe.build(context)
137
+ when :tag_resource
138
+ Aws::SNS::Endpoints::TagResource.build(context)
139
+ when :unsubscribe
140
+ Aws::SNS::Endpoints::Unsubscribe.build(context)
141
+ when :untag_resource
142
+ Aws::SNS::Endpoints::UntagResource.build(context)
143
+ when :verify_sms_sandbox_phone_number
144
+ Aws::SNS::Endpoints::VerifySMSSandboxPhoneNumber.build(context)
145
+ end
146
+ end
147
+ end
148
+
149
+ def add_handlers(handlers, _config)
150
+ handlers.add(Handler, step: :build, priority: 75)
151
+ end
152
+ end
153
+ end
154
+ end