aws-sdk-sns 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1351 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module SNS
10
+ module Types
11
+
12
+ # @note When making an API call, pass AddPermissionInput
13
+ # data as a hash:
14
+ #
15
+ # {
16
+ # topic_arn: "topicARN", # required
17
+ # label: "label", # required
18
+ # aws_account_id: ["delegate"], # required
19
+ # action_name: ["action"], # required
20
+ # }
21
+ # @!attribute [rw] topic_arn
22
+ # The ARN of the topic whose access control policy you wish to modify.
23
+ # @return [String]
24
+ #
25
+ # @!attribute [rw] label
26
+ # A unique identifier for the new policy statement.
27
+ # @return [String]
28
+ #
29
+ # @!attribute [rw] aws_account_id
30
+ # The AWS account IDs of the users (principals) who will be given
31
+ # access to the specified actions. The users must have AWS accounts,
32
+ # but do not need to be signed up for this service.
33
+ # @return [Array<String>]
34
+ #
35
+ # @!attribute [rw] action_name
36
+ # The action you want to allow for the specified principal(s).
37
+ #
38
+ # Valid values: any Amazon SNS action name.
39
+ # @return [Array<String>]
40
+ class AddPermissionInput < Struct.new(
41
+ :topic_arn,
42
+ :label,
43
+ :aws_account_id,
44
+ :action_name)
45
+ include Aws::Structure
46
+ end
47
+
48
+ # The input for the `CheckIfPhoneNumberIsOptedOut` action.
49
+ # @note When making an API call, pass CheckIfPhoneNumberIsOptedOutInput
50
+ # data as a hash:
51
+ #
52
+ # {
53
+ # phone_number: "PhoneNumber", # required
54
+ # }
55
+ # @!attribute [rw] phone_number
56
+ # The phone number for which you want to check the opt out status.
57
+ # @return [String]
58
+ class CheckIfPhoneNumberIsOptedOutInput < Struct.new(
59
+ :phone_number)
60
+ include Aws::Structure
61
+ end
62
+
63
+ # The response from the `CheckIfPhoneNumberIsOptedOut` action.
64
+ # @!attribute [rw] is_opted_out
65
+ # Indicates whether the phone number is opted out:
66
+ #
67
+ # * `true` – The phone number is opted out, meaning you cannot publish
68
+ # SMS messages to it.
69
+ #
70
+ # * `false` – The phone number is opted in, meaning you can publish
71
+ # SMS messages to it.
72
+ # @return [Boolean]
73
+ class CheckIfPhoneNumberIsOptedOutResponse < Struct.new(
74
+ :is_opted_out)
75
+ include Aws::Structure
76
+ end
77
+
78
+ # Input for ConfirmSubscription action.
79
+ # @note When making an API call, pass ConfirmSubscriptionInput
80
+ # data as a hash:
81
+ #
82
+ # {
83
+ # topic_arn: "topicARN", # required
84
+ # token: "token", # required
85
+ # authenticate_on_unsubscribe: "authenticateOnUnsubscribe",
86
+ # }
87
+ # @!attribute [rw] topic_arn
88
+ # The ARN of the topic for which you wish to confirm a subscription.
89
+ # @return [String]
90
+ #
91
+ # @!attribute [rw] token
92
+ # Short-lived token sent to an endpoint during the `Subscribe` action.
93
+ # @return [String]
94
+ #
95
+ # @!attribute [rw] authenticate_on_unsubscribe
96
+ # Disallows unauthenticated unsubscribes of the subscription. If the
97
+ # value of this parameter is `true` and the request has an AWS
98
+ # signature, then only the topic owner and the subscription owner can
99
+ # unsubscribe the endpoint. The unsubscribe action requires AWS
100
+ # authentication.
101
+ # @return [String]
102
+ class ConfirmSubscriptionInput < Struct.new(
103
+ :topic_arn,
104
+ :token,
105
+ :authenticate_on_unsubscribe)
106
+ include Aws::Structure
107
+ end
108
+
109
+ # Response for ConfirmSubscriptions action.
110
+ # @!attribute [rw] subscription_arn
111
+ # The ARN of the created subscription.
112
+ # @return [String]
113
+ class ConfirmSubscriptionResponse < Struct.new(
114
+ :subscription_arn)
115
+ include Aws::Structure
116
+ end
117
+
118
+ # Response from CreateEndpoint action.
119
+ # @!attribute [rw] endpoint_arn
120
+ # EndpointArn returned from CreateEndpoint action.
121
+ # @return [String]
122
+ class CreateEndpointResponse < Struct.new(
123
+ :endpoint_arn)
124
+ include Aws::Structure
125
+ end
126
+
127
+ # Input for CreatePlatformApplication action.
128
+ # @note When making an API call, pass CreatePlatformApplicationInput
129
+ # data as a hash:
130
+ #
131
+ # {
132
+ # name: "String", # required
133
+ # platform: "String", # required
134
+ # attributes: { # required
135
+ # "String" => "String",
136
+ # },
137
+ # }
138
+ # @!attribute [rw] name
139
+ # Application names must be made up of only uppercase and lowercase
140
+ # ASCII letters, numbers, underscores, hyphens, and periods, and must
141
+ # be between 1 and 256 characters long.
142
+ # @return [String]
143
+ #
144
+ # @!attribute [rw] platform
145
+ # The following platforms are supported: ADM (Amazon Device
146
+ # Messaging), APNS (Apple Push Notification Service), APNS\_SANDBOX,
147
+ # and GCM (Google Cloud Messaging).
148
+ # @return [String]
149
+ #
150
+ # @!attribute [rw] attributes
151
+ # For a list of attributes, see [SetPlatformApplicationAttributes][1]
152
+ #
153
+ #
154
+ #
155
+ # [1]: http://docs.aws.amazon.com/sns/latest/api/API_SetPlatformApplicationAttributes.html
156
+ # @return [Hash<String,String>]
157
+ class CreatePlatformApplicationInput < Struct.new(
158
+ :name,
159
+ :platform,
160
+ :attributes)
161
+ include Aws::Structure
162
+ end
163
+
164
+ # Response from CreatePlatformApplication action.
165
+ # @!attribute [rw] platform_application_arn
166
+ # PlatformApplicationArn is returned.
167
+ # @return [String]
168
+ class CreatePlatformApplicationResponse < Struct.new(
169
+ :platform_application_arn)
170
+ include Aws::Structure
171
+ end
172
+
173
+ # Input for CreatePlatformEndpoint action.
174
+ # @note When making an API call, pass CreatePlatformEndpointInput
175
+ # data as a hash:
176
+ #
177
+ # {
178
+ # platform_application_arn: "String", # required
179
+ # token: "String", # required
180
+ # custom_user_data: "String",
181
+ # attributes: {
182
+ # "String" => "String",
183
+ # },
184
+ # }
185
+ # @!attribute [rw] platform_application_arn
186
+ # PlatformApplicationArn returned from CreatePlatformApplication is
187
+ # used to create a an endpoint.
188
+ # @return [String]
189
+ #
190
+ # @!attribute [rw] token
191
+ # Unique identifier created by the notification service for an app on
192
+ # a device. The specific name for Token will vary, depending on which
193
+ # notification service is being used. For example, when using APNS as
194
+ # the notification service, you need the device token. Alternatively,
195
+ # when using GCM or ADM, the device token equivalent is called the
196
+ # registration ID.
197
+ # @return [String]
198
+ #
199
+ # @!attribute [rw] custom_user_data
200
+ # Arbitrary user data to associate with the endpoint. Amazon SNS does
201
+ # not use this data. The data must be in UTF-8 format and less than
202
+ # 2KB.
203
+ # @return [String]
204
+ #
205
+ # @!attribute [rw] attributes
206
+ # For a list of attributes, see [SetEndpointAttributes][1].
207
+ #
208
+ #
209
+ #
210
+ # [1]: http://docs.aws.amazon.com/sns/latest/api/API_SetEndpointAttributes.html
211
+ # @return [Hash<String,String>]
212
+ class CreatePlatformEndpointInput < Struct.new(
213
+ :platform_application_arn,
214
+ :token,
215
+ :custom_user_data,
216
+ :attributes)
217
+ include Aws::Structure
218
+ end
219
+
220
+ # Input for CreateTopic action.
221
+ # @note When making an API call, pass CreateTopicInput
222
+ # data as a hash:
223
+ #
224
+ # {
225
+ # name: "topicName", # required
226
+ # }
227
+ # @!attribute [rw] name
228
+ # The name of the topic you want to create.
229
+ #
230
+ # Constraints: Topic names must be made up of only uppercase and
231
+ # lowercase ASCII letters, numbers, underscores, and hyphens, and must
232
+ # be between 1 and 256 characters long.
233
+ # @return [String]
234
+ class CreateTopicInput < Struct.new(
235
+ :name)
236
+ include Aws::Structure
237
+ end
238
+
239
+ # Response from CreateTopic action.
240
+ # @!attribute [rw] topic_arn
241
+ # The Amazon Resource Name (ARN) assigned to the created topic.
242
+ # @return [String]
243
+ class CreateTopicResponse < Struct.new(
244
+ :topic_arn)
245
+ include Aws::Structure
246
+ end
247
+
248
+ # Input for DeleteEndpoint action.
249
+ # @note When making an API call, pass DeleteEndpointInput
250
+ # data as a hash:
251
+ #
252
+ # {
253
+ # endpoint_arn: "String", # required
254
+ # }
255
+ # @!attribute [rw] endpoint_arn
256
+ # EndpointArn of endpoint to delete.
257
+ # @return [String]
258
+ class DeleteEndpointInput < Struct.new(
259
+ :endpoint_arn)
260
+ include Aws::Structure
261
+ end
262
+
263
+ # Input for DeletePlatformApplication action.
264
+ # @note When making an API call, pass DeletePlatformApplicationInput
265
+ # data as a hash:
266
+ #
267
+ # {
268
+ # platform_application_arn: "String", # required
269
+ # }
270
+ # @!attribute [rw] platform_application_arn
271
+ # PlatformApplicationArn of platform application object to delete.
272
+ # @return [String]
273
+ class DeletePlatformApplicationInput < Struct.new(
274
+ :platform_application_arn)
275
+ include Aws::Structure
276
+ end
277
+
278
+ # @note When making an API call, pass DeleteTopicInput
279
+ # data as a hash:
280
+ #
281
+ # {
282
+ # topic_arn: "topicARN", # required
283
+ # }
284
+ # @!attribute [rw] topic_arn
285
+ # The ARN of the topic you want to delete.
286
+ # @return [String]
287
+ class DeleteTopicInput < Struct.new(
288
+ :topic_arn)
289
+ include Aws::Structure
290
+ end
291
+
292
+ # Endpoint for mobile app and device.
293
+ # @!attribute [rw] endpoint_arn
294
+ # EndpointArn for mobile app and device.
295
+ # @return [String]
296
+ #
297
+ # @!attribute [rw] attributes
298
+ # Attributes for endpoint.
299
+ # @return [Hash<String,String>]
300
+ class Endpoint < Struct.new(
301
+ :endpoint_arn,
302
+ :attributes)
303
+ include Aws::Structure
304
+ end
305
+
306
+ # Input for GetEndpointAttributes action.
307
+ # @note When making an API call, pass GetEndpointAttributesInput
308
+ # data as a hash:
309
+ #
310
+ # {
311
+ # endpoint_arn: "String", # required
312
+ # }
313
+ # @!attribute [rw] endpoint_arn
314
+ # EndpointArn for GetEndpointAttributes input.
315
+ # @return [String]
316
+ class GetEndpointAttributesInput < Struct.new(
317
+ :endpoint_arn)
318
+ include Aws::Structure
319
+ end
320
+
321
+ # Response from GetEndpointAttributes of the EndpointArn.
322
+ # @!attribute [rw] attributes
323
+ # Attributes include the following:
324
+ #
325
+ # * `CustomUserData` -- arbitrary user data to associate with the
326
+ # endpoint. Amazon SNS does not use this data. The data must be in
327
+ # UTF-8 format and less than 2KB.
328
+ #
329
+ # * `Enabled` -- flag that enables/disables delivery to the endpoint.
330
+ # Amazon SNS will set this to false when a notification service
331
+ # indicates to Amazon SNS that the endpoint is invalid. Users can
332
+ # set it back to true, typically after updating Token.
333
+ #
334
+ # * `Token` -- device token, also referred to as a registration id,
335
+ # for an app and mobile device. This is returned from the
336
+ # notification service when an app and mobile device are registered
337
+ # with the notification service.
338
+ # @return [Hash<String,String>]
339
+ class GetEndpointAttributesResponse < Struct.new(
340
+ :attributes)
341
+ include Aws::Structure
342
+ end
343
+
344
+ # Input for GetPlatformApplicationAttributes action.
345
+ # @note When making an API call, pass GetPlatformApplicationAttributesInput
346
+ # data as a hash:
347
+ #
348
+ # {
349
+ # platform_application_arn: "String", # required
350
+ # }
351
+ # @!attribute [rw] platform_application_arn
352
+ # PlatformApplicationArn for GetPlatformApplicationAttributesInput.
353
+ # @return [String]
354
+ class GetPlatformApplicationAttributesInput < Struct.new(
355
+ :platform_application_arn)
356
+ include Aws::Structure
357
+ end
358
+
359
+ # Response for GetPlatformApplicationAttributes action.
360
+ # @!attribute [rw] attributes
361
+ # Attributes include the following:
362
+ #
363
+ # * `EventEndpointCreated` -- Topic ARN to which EndpointCreated event
364
+ # notifications should be sent.
365
+ #
366
+ # * `EventEndpointDeleted` -- Topic ARN to which EndpointDeleted event
367
+ # notifications should be sent.
368
+ #
369
+ # * `EventEndpointUpdated` -- Topic ARN to which EndpointUpdate event
370
+ # notifications should be sent.
371
+ #
372
+ # * `EventDeliveryFailure` -- Topic ARN to which DeliveryFailure event
373
+ # notifications should be sent upon Direct Publish delivery failure
374
+ # (permanent) to one of the application's endpoints.
375
+ # @return [Hash<String,String>]
376
+ class GetPlatformApplicationAttributesResponse < Struct.new(
377
+ :attributes)
378
+ include Aws::Structure
379
+ end
380
+
381
+ # The input for the `GetSMSAttributes` request.
382
+ # @note When making an API call, pass GetSMSAttributesInput
383
+ # data as a hash:
384
+ #
385
+ # {
386
+ # attributes: ["String"],
387
+ # }
388
+ # @!attribute [rw] attributes
389
+ # A list of the individual attribute names, such as
390
+ # `MonthlySpendLimit`, for which you want values.
391
+ #
392
+ # For all attribute names, see [SetSMSAttributes][1].
393
+ #
394
+ # If you don't use this parameter, Amazon SNS returns all SMS
395
+ # attributes.
396
+ #
397
+ #
398
+ #
399
+ # [1]: http://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html
400
+ # @return [Array<String>]
401
+ class GetSMSAttributesInput < Struct.new(
402
+ :attributes)
403
+ include Aws::Structure
404
+ end
405
+
406
+ # The response from the `GetSMSAttributes` request.
407
+ # @!attribute [rw] attributes
408
+ # The SMS attribute names and their values.
409
+ # @return [Hash<String,String>]
410
+ class GetSMSAttributesResponse < Struct.new(
411
+ :attributes)
412
+ include Aws::Structure
413
+ end
414
+
415
+ # Input for GetSubscriptionAttributes.
416
+ # @note When making an API call, pass GetSubscriptionAttributesInput
417
+ # data as a hash:
418
+ #
419
+ # {
420
+ # subscription_arn: "subscriptionARN", # required
421
+ # }
422
+ # @!attribute [rw] subscription_arn
423
+ # The ARN of the subscription whose properties you want to get.
424
+ # @return [String]
425
+ class GetSubscriptionAttributesInput < Struct.new(
426
+ :subscription_arn)
427
+ include Aws::Structure
428
+ end
429
+
430
+ # Response for GetSubscriptionAttributes action.
431
+ # @!attribute [rw] attributes
432
+ # A map of the subscription's attributes. Attributes in this map
433
+ # include the following:
434
+ #
435
+ # * `SubscriptionArn` -- the subscription's ARN
436
+ #
437
+ # * `TopicArn` -- the topic ARN that the subscription is associated
438
+ # with
439
+ #
440
+ # * `Owner` -- the AWS account ID of the subscription's owner
441
+ #
442
+ # * `ConfirmationWasAuthenticated` -- true if the subscription
443
+ # confirmation request was authenticated
444
+ #
445
+ # * `DeliveryPolicy` -- the JSON serialization of the subscription's
446
+ # delivery policy
447
+ #
448
+ # * `EffectiveDeliveryPolicy` -- the JSON serialization of the
449
+ # effective delivery policy that takes into account the topic
450
+ # delivery policy and account system defaults
451
+ # @return [Hash<String,String>]
452
+ class GetSubscriptionAttributesResponse < Struct.new(
453
+ :attributes)
454
+ include Aws::Structure
455
+ end
456
+
457
+ # Input for GetTopicAttributes action.
458
+ # @note When making an API call, pass GetTopicAttributesInput
459
+ # data as a hash:
460
+ #
461
+ # {
462
+ # topic_arn: "topicARN", # required
463
+ # }
464
+ # @!attribute [rw] topic_arn
465
+ # The ARN of the topic whose properties you want to get.
466
+ # @return [String]
467
+ class GetTopicAttributesInput < Struct.new(
468
+ :topic_arn)
469
+ include Aws::Structure
470
+ end
471
+
472
+ # Response for GetTopicAttributes action.
473
+ # @!attribute [rw] attributes
474
+ # A map of the topic's attributes. Attributes in this map include the
475
+ # following:
476
+ #
477
+ # * `TopicArn` -- the topic's ARN
478
+ #
479
+ # * `Owner` -- the AWS account ID of the topic's owner
480
+ #
481
+ # * `Policy` -- the JSON serialization of the topic's access control
482
+ # policy
483
+ #
484
+ # * `DisplayName` -- the human-readable name used in the "From"
485
+ # field for notifications to email and email-json endpoints
486
+ #
487
+ # * `SubscriptionsPending` -- the number of subscriptions pending
488
+ # confirmation on this topic
489
+ #
490
+ # * `SubscriptionsConfirmed` -- the number of confirmed subscriptions
491
+ # on this topic
492
+ #
493
+ # * `SubscriptionsDeleted` -- the number of deleted subscriptions on
494
+ # this topic
495
+ #
496
+ # * `DeliveryPolicy` -- the JSON serialization of the topic's
497
+ # delivery policy
498
+ #
499
+ # * `EffectiveDeliveryPolicy` -- the JSON serialization of the
500
+ # effective delivery policy that takes into account system defaults
501
+ # @return [Hash<String,String>]
502
+ class GetTopicAttributesResponse < Struct.new(
503
+ :attributes)
504
+ include Aws::Structure
505
+ end
506
+
507
+ # Input for ListEndpointsByPlatformApplication action.
508
+ # @note When making an API call, pass ListEndpointsByPlatformApplicationInput
509
+ # data as a hash:
510
+ #
511
+ # {
512
+ # platform_application_arn: "String", # required
513
+ # next_token: "String",
514
+ # }
515
+ # @!attribute [rw] platform_application_arn
516
+ # PlatformApplicationArn for ListEndpointsByPlatformApplicationInput
517
+ # action.
518
+ # @return [String]
519
+ #
520
+ # @!attribute [rw] next_token
521
+ # NextToken string is used when calling
522
+ # ListEndpointsByPlatformApplication action to retrieve additional
523
+ # records that are available after the first page results.
524
+ # @return [String]
525
+ class ListEndpointsByPlatformApplicationInput < Struct.new(
526
+ :platform_application_arn,
527
+ :next_token)
528
+ include Aws::Structure
529
+ end
530
+
531
+ # Response for ListEndpointsByPlatformApplication action.
532
+ # @!attribute [rw] endpoints
533
+ # Endpoints returned for ListEndpointsByPlatformApplication action.
534
+ # @return [Array<Types::Endpoint>]
535
+ #
536
+ # @!attribute [rw] next_token
537
+ # NextToken string is returned when calling
538
+ # ListEndpointsByPlatformApplication action if additional records are
539
+ # available after the first page results.
540
+ # @return [String]
541
+ class ListEndpointsByPlatformApplicationResponse < Struct.new(
542
+ :endpoints,
543
+ :next_token)
544
+ include Aws::Structure
545
+ end
546
+
547
+ # The input for the `ListPhoneNumbersOptedOut` action.
548
+ # @note When making an API call, pass ListPhoneNumbersOptedOutInput
549
+ # data as a hash:
550
+ #
551
+ # {
552
+ # next_token: "string",
553
+ # }
554
+ # @!attribute [rw] next_token
555
+ # A `NextToken` string is used when you call the
556
+ # `ListPhoneNumbersOptedOut` action to retrieve additional records
557
+ # that are available after the first page of results.
558
+ # @return [String]
559
+ class ListPhoneNumbersOptedOutInput < Struct.new(
560
+ :next_token)
561
+ include Aws::Structure
562
+ end
563
+
564
+ # The response from the `ListPhoneNumbersOptedOut` action.
565
+ # @!attribute [rw] phone_numbers
566
+ # A list of phone numbers that are opted out of receiving SMS
567
+ # messages. The list is paginated, and each page can contain up to 100
568
+ # phone numbers.
569
+ # @return [Array<String>]
570
+ #
571
+ # @!attribute [rw] next_token
572
+ # A `NextToken` string is returned when you call the
573
+ # `ListPhoneNumbersOptedOut` action if additional records are
574
+ # available after the first page of results.
575
+ # @return [String]
576
+ class ListPhoneNumbersOptedOutResponse < Struct.new(
577
+ :phone_numbers,
578
+ :next_token)
579
+ include Aws::Structure
580
+ end
581
+
582
+ # Input for ListPlatformApplications action.
583
+ # @note When making an API call, pass ListPlatformApplicationsInput
584
+ # data as a hash:
585
+ #
586
+ # {
587
+ # next_token: "String",
588
+ # }
589
+ # @!attribute [rw] next_token
590
+ # NextToken string is used when calling ListPlatformApplications
591
+ # action to retrieve additional records that are available after the
592
+ # first page results.
593
+ # @return [String]
594
+ class ListPlatformApplicationsInput < Struct.new(
595
+ :next_token)
596
+ include Aws::Structure
597
+ end
598
+
599
+ # Response for ListPlatformApplications action.
600
+ # @!attribute [rw] platform_applications
601
+ # Platform applications returned when calling ListPlatformApplications
602
+ # action.
603
+ # @return [Array<Types::PlatformApplication>]
604
+ #
605
+ # @!attribute [rw] next_token
606
+ # NextToken string is returned when calling ListPlatformApplications
607
+ # action if additional records are available after the first page
608
+ # results.
609
+ # @return [String]
610
+ class ListPlatformApplicationsResponse < Struct.new(
611
+ :platform_applications,
612
+ :next_token)
613
+ include Aws::Structure
614
+ end
615
+
616
+ # Input for ListSubscriptionsByTopic action.
617
+ # @note When making an API call, pass ListSubscriptionsByTopicInput
618
+ # data as a hash:
619
+ #
620
+ # {
621
+ # topic_arn: "topicARN", # required
622
+ # next_token: "nextToken",
623
+ # }
624
+ # @!attribute [rw] topic_arn
625
+ # The ARN of the topic for which you wish to find subscriptions.
626
+ # @return [String]
627
+ #
628
+ # @!attribute [rw] next_token
629
+ # Token returned by the previous `ListSubscriptionsByTopic` request.
630
+ # @return [String]
631
+ class ListSubscriptionsByTopicInput < Struct.new(
632
+ :topic_arn,
633
+ :next_token)
634
+ include Aws::Structure
635
+ end
636
+
637
+ # Response for ListSubscriptionsByTopic action.
638
+ # @!attribute [rw] subscriptions
639
+ # A list of subscriptions.
640
+ # @return [Array<Types::Subscription>]
641
+ #
642
+ # @!attribute [rw] next_token
643
+ # Token to pass along to the next `ListSubscriptionsByTopic` request.
644
+ # This element is returned if there are more subscriptions to
645
+ # retrieve.
646
+ # @return [String]
647
+ class ListSubscriptionsByTopicResponse < Struct.new(
648
+ :subscriptions,
649
+ :next_token)
650
+ include Aws::Structure
651
+ end
652
+
653
+ # Input for ListSubscriptions action.
654
+ # @note When making an API call, pass ListSubscriptionsInput
655
+ # data as a hash:
656
+ #
657
+ # {
658
+ # next_token: "nextToken",
659
+ # }
660
+ # @!attribute [rw] next_token
661
+ # Token returned by the previous `ListSubscriptions` request.
662
+ # @return [String]
663
+ class ListSubscriptionsInput < Struct.new(
664
+ :next_token)
665
+ include Aws::Structure
666
+ end
667
+
668
+ # Response for ListSubscriptions action
669
+ # @!attribute [rw] subscriptions
670
+ # A list of subscriptions.
671
+ # @return [Array<Types::Subscription>]
672
+ #
673
+ # @!attribute [rw] next_token
674
+ # Token to pass along to the next `ListSubscriptions` request. This
675
+ # element is returned if there are more subscriptions to retrieve.
676
+ # @return [String]
677
+ class ListSubscriptionsResponse < Struct.new(
678
+ :subscriptions,
679
+ :next_token)
680
+ include Aws::Structure
681
+ end
682
+
683
+ # @note When making an API call, pass ListTopicsInput
684
+ # data as a hash:
685
+ #
686
+ # {
687
+ # next_token: "nextToken",
688
+ # }
689
+ # @!attribute [rw] next_token
690
+ # Token returned by the previous `ListTopics` request.
691
+ # @return [String]
692
+ class ListTopicsInput < Struct.new(
693
+ :next_token)
694
+ include Aws::Structure
695
+ end
696
+
697
+ # Response for ListTopics action.
698
+ # @!attribute [rw] topics
699
+ # A list of topic ARNs.
700
+ # @return [Array<Types::Topic>]
701
+ #
702
+ # @!attribute [rw] next_token
703
+ # Token to pass along to the next `ListTopics` request. This element
704
+ # is returned if there are additional topics to retrieve.
705
+ # @return [String]
706
+ class ListTopicsResponse < Struct.new(
707
+ :topics,
708
+ :next_token)
709
+ include Aws::Structure
710
+ end
711
+
712
+ # The user-specified message attribute value. For string data types, the
713
+ # value attribute has the same restrictions on the content as the
714
+ # message body. For more information, see [Publish][1].
715
+ #
716
+ # Name, type, and value must not be empty or null. In addition, the
717
+ # message body should not be empty or null. All parts of the message
718
+ # attribute, including name, type, and value, are included in the
719
+ # message size restriction, which is currently 256 KB (262,144 bytes).
720
+ # For more information, see [Using Amazon SNS Message Attributes][2].
721
+ #
722
+ #
723
+ #
724
+ # [1]: http://docs.aws.amazon.com/sns/latest/api/API_Publish.html
725
+ # [2]: http://docs.aws.amazon.com/sns/latest/dg/SNSMessageAttributes.html
726
+ # @note When making an API call, pass MessageAttributeValue
727
+ # data as a hash:
728
+ #
729
+ # {
730
+ # data_type: "String", # required
731
+ # string_value: "String",
732
+ # binary_value: "data",
733
+ # }
734
+ # @!attribute [rw] data_type
735
+ # Amazon SNS supports the following logical data types: String,
736
+ # Number, and Binary. For more information, see [Message Attribute
737
+ # Data Types][1].
738
+ #
739
+ #
740
+ #
741
+ # [1]: http://docs.aws.amazon.com/sns/latest/dg/SNSMessageAttributes.html#SNSMessageAttributes.DataTypes
742
+ # @return [String]
743
+ #
744
+ # @!attribute [rw] string_value
745
+ # Strings are Unicode with UTF8 binary encoding. For a list of code
746
+ # values, see
747
+ # [http://en.wikipedia.org/wiki/ASCII#ASCII\_printable\_characters][1].
748
+ #
749
+ #
750
+ #
751
+ # [1]: http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
752
+ # @return [String]
753
+ #
754
+ # @!attribute [rw] binary_value
755
+ # Binary type attributes can store any binary data, for example,
756
+ # compressed data, encrypted data, or images.
757
+ # @return [String]
758
+ class MessageAttributeValue < Struct.new(
759
+ :data_type,
760
+ :string_value,
761
+ :binary_value)
762
+ include Aws::Structure
763
+ end
764
+
765
+ # Input for the OptInPhoneNumber action.
766
+ # @note When making an API call, pass OptInPhoneNumberInput
767
+ # data as a hash:
768
+ #
769
+ # {
770
+ # phone_number: "PhoneNumber", # required
771
+ # }
772
+ # @!attribute [rw] phone_number
773
+ # The phone number to opt in.
774
+ # @return [String]
775
+ class OptInPhoneNumberInput < Struct.new(
776
+ :phone_number)
777
+ include Aws::Structure
778
+ end
779
+
780
+ # The response for the OptInPhoneNumber action.
781
+ class OptInPhoneNumberResponse < Aws::EmptyStructure; end
782
+
783
+ # Platform application object.
784
+ # @!attribute [rw] platform_application_arn
785
+ # PlatformApplicationArn for platform application object.
786
+ # @return [String]
787
+ #
788
+ # @!attribute [rw] attributes
789
+ # Attributes for platform application object.
790
+ # @return [Hash<String,String>]
791
+ class PlatformApplication < Struct.new(
792
+ :platform_application_arn,
793
+ :attributes)
794
+ include Aws::Structure
795
+ end
796
+
797
+ # Input for Publish action.
798
+ # @note When making an API call, pass PublishInput
799
+ # data as a hash:
800
+ #
801
+ # {
802
+ # topic_arn: "topicARN",
803
+ # target_arn: "String",
804
+ # phone_number: "String",
805
+ # message: "message", # required
806
+ # subject: "subject",
807
+ # message_structure: "messageStructure",
808
+ # message_attributes: {
809
+ # "String" => {
810
+ # data_type: "String", # required
811
+ # string_value: "String",
812
+ # binary_value: "data",
813
+ # },
814
+ # },
815
+ # }
816
+ # @!attribute [rw] topic_arn
817
+ # The topic you want to publish to.
818
+ #
819
+ # If you don't specify a value for the `TopicArn` parameter, you must
820
+ # specify a value for the `PhoneNumber` or `TargetArn` parameters.
821
+ # @return [String]
822
+ #
823
+ # @!attribute [rw] target_arn
824
+ # Either TopicArn or EndpointArn, but not both.
825
+ #
826
+ # If you don't specify a value for the `TargetArn` parameter, you
827
+ # must specify a value for the `PhoneNumber` or `TopicArn` parameters.
828
+ # @return [String]
829
+ #
830
+ # @!attribute [rw] phone_number
831
+ # The phone number to which you want to deliver an SMS message. Use
832
+ # E.164 format.
833
+ #
834
+ # If you don't specify a value for the `PhoneNumber` parameter, you
835
+ # must specify a value for the `TargetArn` or `TopicArn` parameters.
836
+ # @return [String]
837
+ #
838
+ # @!attribute [rw] message
839
+ # The message you want to send to the topic.
840
+ #
841
+ # If you want to send the same message to all transport protocols,
842
+ # include the text of the message as a String value.
843
+ #
844
+ # If you want to send different messages for each transport protocol,
845
+ # set the value of the `MessageStructure` parameter to `json` and use
846
+ # a JSON object for the `Message` parameter.
847
+ #
848
+ # Constraints: Messages must be UTF-8 encoded strings at most 256 KB
849
+ # in size (262144 bytes, not 262144 characters).
850
+ #
851
+ # JSON-specific constraints:
852
+ #
853
+ # * Keys in the JSON object that correspond to supported transport
854
+ # protocols must have simple JSON string values.
855
+ #
856
+ # * The values will be parsed (unescaped) before they are used in
857
+ # outgoing messages.
858
+ #
859
+ # * Outbound notifications are JSON encoded (meaning that the
860
+ # characters will be reescaped for sending).
861
+ #
862
+ # * Values have a minimum length of 0 (the empty string, "", is
863
+ # allowed).
864
+ #
865
+ # * Values have a maximum length bounded by the overall message size
866
+ # (so, including multiple protocols may limit message sizes).
867
+ #
868
+ # * Non-string values will cause the key to be ignored.
869
+ #
870
+ # * Keys that do not correspond to supported transport protocols are
871
+ # ignored.
872
+ #
873
+ # * Duplicate keys are not allowed.
874
+ #
875
+ # * Failure to parse or validate any key or value in the message will
876
+ # cause the `Publish` call to return an error (no partial delivery).
877
+ # @return [String]
878
+ #
879
+ # @!attribute [rw] subject
880
+ # Optional parameter to be used as the "Subject" line when the
881
+ # message is delivered to email endpoints. This field will also be
882
+ # included, if present, in the standard JSON messages delivered to
883
+ # other endpoints.
884
+ #
885
+ # Constraints: Subjects must be ASCII text that begins with a letter,
886
+ # number, or punctuation mark; must not include line breaks or control
887
+ # characters; and must be less than 100 characters long.
888
+ # @return [String]
889
+ #
890
+ # @!attribute [rw] message_structure
891
+ # Set `MessageStructure` to `json` if you want to send a different
892
+ # message for each protocol. For example, using one publish action,
893
+ # you can send a short message to your SMS subscribers and a longer
894
+ # message to your email subscribers. If you set `MessageStructure` to
895
+ # `json`, the value of the `Message` parameter must:
896
+ #
897
+ # * be a syntactically valid JSON object; and
898
+ #
899
+ # * contain at least a top-level JSON key of "default" with a value
900
+ # that is a string.
901
+ #
902
+ # You can define other top-level keys that define the message you want
903
+ # to send to a specific transport protocol (e.g., "http").
904
+ #
905
+ # For information about sending different messages for each protocol
906
+ # using the AWS Management Console, go to [Create Different Messages
907
+ # for Each Protocol][1] in the *Amazon Simple Notification Service
908
+ # Getting Started Guide*.
909
+ #
910
+ # Valid value: `json`
911
+ #
912
+ #
913
+ #
914
+ # [1]: http://docs.aws.amazon.com/sns/latest/gsg/Publish.html#sns-message-formatting-by-protocol
915
+ # @return [String]
916
+ #
917
+ # @!attribute [rw] message_attributes
918
+ # Message attributes for Publish action.
919
+ # @return [Hash<String,Types::MessageAttributeValue>]
920
+ class PublishInput < Struct.new(
921
+ :topic_arn,
922
+ :target_arn,
923
+ :phone_number,
924
+ :message,
925
+ :subject,
926
+ :message_structure,
927
+ :message_attributes)
928
+ include Aws::Structure
929
+ end
930
+
931
+ # Response for Publish action.
932
+ # @!attribute [rw] message_id
933
+ # Unique identifier assigned to the published message.
934
+ #
935
+ # Length Constraint: Maximum 100 characters
936
+ # @return [String]
937
+ class PublishResponse < Struct.new(
938
+ :message_id)
939
+ include Aws::Structure
940
+ end
941
+
942
+ # Input for RemovePermission action.
943
+ # @note When making an API call, pass RemovePermissionInput
944
+ # data as a hash:
945
+ #
946
+ # {
947
+ # topic_arn: "topicARN", # required
948
+ # label: "label", # required
949
+ # }
950
+ # @!attribute [rw] topic_arn
951
+ # The ARN of the topic whose access control policy you wish to modify.
952
+ # @return [String]
953
+ #
954
+ # @!attribute [rw] label
955
+ # The unique label of the statement you want to remove.
956
+ # @return [String]
957
+ class RemovePermissionInput < Struct.new(
958
+ :topic_arn,
959
+ :label)
960
+ include Aws::Structure
961
+ end
962
+
963
+ # Input for SetEndpointAttributes action.
964
+ # @note When making an API call, pass SetEndpointAttributesInput
965
+ # data as a hash:
966
+ #
967
+ # {
968
+ # endpoint_arn: "String", # required
969
+ # attributes: { # required
970
+ # "String" => "String",
971
+ # },
972
+ # }
973
+ # @!attribute [rw] endpoint_arn
974
+ # EndpointArn used for SetEndpointAttributes action.
975
+ # @return [String]
976
+ #
977
+ # @!attribute [rw] attributes
978
+ # A map of the endpoint attributes. Attributes in this map include the
979
+ # following:
980
+ #
981
+ # * `CustomUserData` -- arbitrary user data to associate with the
982
+ # endpoint. Amazon SNS does not use this data. The data must be in
983
+ # UTF-8 format and less than 2KB.
984
+ #
985
+ # * `Enabled` -- flag that enables/disables delivery to the endpoint.
986
+ # Amazon SNS will set this to false when a notification service
987
+ # indicates to Amazon SNS that the endpoint is invalid. Users can
988
+ # set it back to true, typically after updating Token.
989
+ #
990
+ # * `Token` -- device token, also referred to as a registration id,
991
+ # for an app and mobile device. This is returned from the
992
+ # notification service when an app and mobile device are registered
993
+ # with the notification service.
994
+ # @return [Hash<String,String>]
995
+ class SetEndpointAttributesInput < Struct.new(
996
+ :endpoint_arn,
997
+ :attributes)
998
+ include Aws::Structure
999
+ end
1000
+
1001
+ # Input for SetPlatformApplicationAttributes action.
1002
+ # @note When making an API call, pass SetPlatformApplicationAttributesInput
1003
+ # data as a hash:
1004
+ #
1005
+ # {
1006
+ # platform_application_arn: "String", # required
1007
+ # attributes: { # required
1008
+ # "String" => "String",
1009
+ # },
1010
+ # }
1011
+ # @!attribute [rw] platform_application_arn
1012
+ # PlatformApplicationArn for SetPlatformApplicationAttributes action.
1013
+ # @return [String]
1014
+ #
1015
+ # @!attribute [rw] attributes
1016
+ # A map of the platform application attributes. Attributes in this map
1017
+ # include the following:
1018
+ #
1019
+ # * `PlatformCredential` -- The credential received from the
1020
+ # notification service. For APNS/APNS\_SANDBOX, PlatformCredential
1021
+ # is private key. For GCM, PlatformCredential is "API key". For
1022
+ # ADM, PlatformCredential is "client secret".
1023
+ #
1024
+ # * `PlatformPrincipal` -- The principal received from the
1025
+ # notification service. For APNS/APNS\_SANDBOX, PlatformPrincipal is
1026
+ # SSL certificate. For GCM, PlatformPrincipal is not applicable. For
1027
+ # ADM, PlatformPrincipal is "client id".
1028
+ #
1029
+ # * `EventEndpointCreated` -- Topic ARN to which EndpointCreated event
1030
+ # notifications should be sent.
1031
+ #
1032
+ # * `EventEndpointDeleted` -- Topic ARN to which EndpointDeleted event
1033
+ # notifications should be sent.
1034
+ #
1035
+ # * `EventEndpointUpdated` -- Topic ARN to which EndpointUpdate event
1036
+ # notifications should be sent.
1037
+ #
1038
+ # * `EventDeliveryFailure` -- Topic ARN to which DeliveryFailure event
1039
+ # notifications should be sent upon Direct Publish delivery failure
1040
+ # (permanent) to one of the application's endpoints.
1041
+ #
1042
+ # * `SuccessFeedbackRoleArn` -- IAM role ARN used to give Amazon SNS
1043
+ # write access to use CloudWatch Logs on your behalf.
1044
+ #
1045
+ # * `FailureFeedbackRoleArn` -- IAM role ARN used to give Amazon SNS
1046
+ # write access to use CloudWatch Logs on your behalf.
1047
+ #
1048
+ # * `SuccessFeedbackSampleRate` -- Sample rate percentage (0-100) of
1049
+ # successfully delivered messages.
1050
+ # @return [Hash<String,String>]
1051
+ class SetPlatformApplicationAttributesInput < Struct.new(
1052
+ :platform_application_arn,
1053
+ :attributes)
1054
+ include Aws::Structure
1055
+ end
1056
+
1057
+ # The input for the SetSMSAttributes action.
1058
+ # @note When making an API call, pass SetSMSAttributesInput
1059
+ # data as a hash:
1060
+ #
1061
+ # {
1062
+ # attributes: { # required
1063
+ # "String" => "String",
1064
+ # },
1065
+ # }
1066
+ # @!attribute [rw] attributes
1067
+ # The default settings for sending SMS messages from your account. You
1068
+ # can set values for the following attribute names:
1069
+ #
1070
+ # `MonthlySpendLimit` – The maximum amount in USD that you are willing
1071
+ # to spend each month to send SMS messages. When Amazon SNS determines
1072
+ # that sending an SMS message would incur a cost that exceeds this
1073
+ # limit, it stops sending SMS messages within minutes.
1074
+ #
1075
+ # Amazon SNS stops sending SMS messages within minutes of the limit
1076
+ # being crossed. During that interval, if you continue to send SMS
1077
+ # messages, you will incur costs that exceed your limit.
1078
+ #
1079
+ # By default, the spend limit is set to the maximum allowed by Amazon
1080
+ # SNS. If you want to exceed the maximum, contact [AWS Support][1] or
1081
+ # your AWS sales representative for a service limit increase.
1082
+ #
1083
+ # `DeliveryStatusIAMRole` – The ARN of the IAM role that allows Amazon
1084
+ # SNS to write logs about SMS deliveries in CloudWatch Logs. For each
1085
+ # SMS message that you send, Amazon SNS writes a log that includes the
1086
+ # message price, the success or failure status, the reason for failure
1087
+ # (if the message failed), the message dwell time, and other
1088
+ # information.
1089
+ #
1090
+ # `DeliveryStatusSuccessSamplingRate` – The percentage of successful
1091
+ # SMS deliveries for which Amazon SNS will write logs in CloudWatch
1092
+ # Logs. The value can be an integer from 0 - 100. For example, to
1093
+ # write logs only for failed deliveries, set this value to `0`. To
1094
+ # write logs for 10% of your successful deliveries, set it to `10`.
1095
+ #
1096
+ # `DefaultSenderID` – A string, such as your business brand, that is
1097
+ # displayed as the sender on the receiving device. Support for sender
1098
+ # IDs varies by country. The sender ID can be 1 - 11 alphanumeric
1099
+ # characters, and it must contain at least one letter.
1100
+ #
1101
+ # `DefaultSMSType` – The type of SMS message that you will send by
1102
+ # default. You can assign the following values:
1103
+ #
1104
+ # * `Promotional` – (Default) Noncritical messages, such as marketing
1105
+ # messages. Amazon SNS optimizes the message delivery to incur the
1106
+ # lowest cost.
1107
+ #
1108
+ # * `Transactional` – Critical messages that support customer
1109
+ # transactions, such as one-time passcodes for multi-factor
1110
+ # authentication. Amazon SNS optimizes the message delivery to
1111
+ # achieve the highest reliability.
1112
+ #
1113
+ # `UsageReportS3Bucket` – The name of the Amazon S3 bucket to receive
1114
+ # daily SMS usage reports from Amazon SNS. Each day, Amazon SNS will
1115
+ # deliver a usage report as a CSV file to the bucket. The report
1116
+ # includes the following information for each SMS message that was
1117
+ # successfully delivered by your account:
1118
+ #
1119
+ # * Time that the message was published (in UTC)
1120
+ #
1121
+ # * Message ID
1122
+ #
1123
+ # * Destination phone number
1124
+ #
1125
+ # * Message type
1126
+ #
1127
+ # * Delivery status
1128
+ #
1129
+ # * Message price (in USD)
1130
+ #
1131
+ # * Part number (a message is split into multiple parts if it is too
1132
+ # long for a single message)
1133
+ #
1134
+ # * Total number of parts
1135
+ #
1136
+ # To receive the report, the bucket must have a policy that allows the
1137
+ # Amazon SNS service principle to perform the `s3:PutObject` and
1138
+ # `s3:GetBucketLocation` actions.
1139
+ #
1140
+ # For an example bucket policy and usage report, see [Monitoring SMS
1141
+ # Activity][2] in the *Amazon SNS Developer Guide*.
1142
+ #
1143
+ #
1144
+ #
1145
+ # [1]: https://aws.amazon.com/premiumsupport/
1146
+ # [2]: http://docs.aws.amazon.com/sns/latest/dg/sms_stats.html
1147
+ # @return [Hash<String,String>]
1148
+ class SetSMSAttributesInput < Struct.new(
1149
+ :attributes)
1150
+ include Aws::Structure
1151
+ end
1152
+
1153
+ # The response for the SetSMSAttributes action.
1154
+ class SetSMSAttributesResponse < Aws::EmptyStructure; end
1155
+
1156
+ # Input for SetSubscriptionAttributes action.
1157
+ # @note When making an API call, pass SetSubscriptionAttributesInput
1158
+ # data as a hash:
1159
+ #
1160
+ # {
1161
+ # subscription_arn: "subscriptionARN", # required
1162
+ # attribute_name: "attributeName", # required
1163
+ # attribute_value: "attributeValue",
1164
+ # }
1165
+ # @!attribute [rw] subscription_arn
1166
+ # The ARN of the subscription to modify.
1167
+ # @return [String]
1168
+ #
1169
+ # @!attribute [rw] attribute_name
1170
+ # The name of the attribute you want to set. Only a subset of the
1171
+ # subscriptions attributes are mutable.
1172
+ #
1173
+ # Valid values: `DeliveryPolicy` \| `RawMessageDelivery`
1174
+ # @return [String]
1175
+ #
1176
+ # @!attribute [rw] attribute_value
1177
+ # The new value for the attribute in JSON format.
1178
+ # @return [String]
1179
+ class SetSubscriptionAttributesInput < Struct.new(
1180
+ :subscription_arn,
1181
+ :attribute_name,
1182
+ :attribute_value)
1183
+ include Aws::Structure
1184
+ end
1185
+
1186
+ # Input for SetTopicAttributes action.
1187
+ # @note When making an API call, pass SetTopicAttributesInput
1188
+ # data as a hash:
1189
+ #
1190
+ # {
1191
+ # topic_arn: "topicARN", # required
1192
+ # attribute_name: "attributeName", # required
1193
+ # attribute_value: "attributeValue",
1194
+ # }
1195
+ # @!attribute [rw] topic_arn
1196
+ # The ARN of the topic to modify.
1197
+ # @return [String]
1198
+ #
1199
+ # @!attribute [rw] attribute_name
1200
+ # The name of the attribute you want to set. Only a subset of the
1201
+ # topic's attributes are mutable.
1202
+ #
1203
+ # Valid values: `Policy` \| `DisplayName` \| `DeliveryPolicy`
1204
+ # @return [String]
1205
+ #
1206
+ # @!attribute [rw] attribute_value
1207
+ # The new value for the attribute.
1208
+ # @return [String]
1209
+ class SetTopicAttributesInput < Struct.new(
1210
+ :topic_arn,
1211
+ :attribute_name,
1212
+ :attribute_value)
1213
+ include Aws::Structure
1214
+ end
1215
+
1216
+ # Input for Subscribe action.
1217
+ # @note When making an API call, pass SubscribeInput
1218
+ # data as a hash:
1219
+ #
1220
+ # {
1221
+ # topic_arn: "topicARN", # required
1222
+ # protocol: "protocol", # required
1223
+ # endpoint: "endpoint",
1224
+ # }
1225
+ # @!attribute [rw] topic_arn
1226
+ # The ARN of the topic you want to subscribe to.
1227
+ # @return [String]
1228
+ #
1229
+ # @!attribute [rw] protocol
1230
+ # The protocol you want to use. Supported protocols include:
1231
+ #
1232
+ # * `http` -- delivery of JSON-encoded message via HTTP POST
1233
+ #
1234
+ # * `https` -- delivery of JSON-encoded message via HTTPS POST
1235
+ #
1236
+ # * `email` -- delivery of message via SMTP
1237
+ #
1238
+ # * `email-json` -- delivery of JSON-encoded message via SMTP
1239
+ #
1240
+ # * `sms` -- delivery of message via SMS
1241
+ #
1242
+ # * `sqs` -- delivery of JSON-encoded message to an Amazon SQS queue
1243
+ #
1244
+ # * `application` -- delivery of JSON-encoded message to an
1245
+ # EndpointArn for a mobile app and device.
1246
+ #
1247
+ # * `lambda` -- delivery of JSON-encoded message to an AWS Lambda
1248
+ # function.
1249
+ # @return [String]
1250
+ #
1251
+ # @!attribute [rw] endpoint
1252
+ # The endpoint that you want to receive notifications. Endpoints vary
1253
+ # by protocol:
1254
+ #
1255
+ # * For the `http` protocol, the endpoint is an URL beginning with
1256
+ # "http://"
1257
+ #
1258
+ # * For the `https` protocol, the endpoint is a URL beginning with
1259
+ # "https://"
1260
+ #
1261
+ # * For the `email` protocol, the endpoint is an email address
1262
+ #
1263
+ # * For the `email-json` protocol, the endpoint is an email address
1264
+ #
1265
+ # * For the `sms` protocol, the endpoint is a phone number of an
1266
+ # SMS-enabled device
1267
+ #
1268
+ # * For the `sqs` protocol, the endpoint is the ARN of an Amazon SQS
1269
+ # queue
1270
+ #
1271
+ # * For the `application` protocol, the endpoint is the EndpointArn of
1272
+ # a mobile app and device.
1273
+ #
1274
+ # * For the `lambda` protocol, the endpoint is the ARN of an AWS
1275
+ # Lambda function.
1276
+ # @return [String]
1277
+ class SubscribeInput < Struct.new(
1278
+ :topic_arn,
1279
+ :protocol,
1280
+ :endpoint)
1281
+ include Aws::Structure
1282
+ end
1283
+
1284
+ # Response for Subscribe action.
1285
+ # @!attribute [rw] subscription_arn
1286
+ # The ARN of the subscription, if the service was able to create a
1287
+ # subscription immediately (without requiring endpoint owner
1288
+ # confirmation).
1289
+ # @return [String]
1290
+ class SubscribeResponse < Struct.new(
1291
+ :subscription_arn)
1292
+ include Aws::Structure
1293
+ end
1294
+
1295
+ # A wrapper type for the attributes of an Amazon SNS subscription.
1296
+ # @!attribute [rw] subscription_arn
1297
+ # The subscription's ARN.
1298
+ # @return [String]
1299
+ #
1300
+ # @!attribute [rw] owner
1301
+ # The subscription's owner.
1302
+ # @return [String]
1303
+ #
1304
+ # @!attribute [rw] protocol
1305
+ # The subscription's protocol.
1306
+ # @return [String]
1307
+ #
1308
+ # @!attribute [rw] endpoint
1309
+ # The subscription's endpoint (format depends on the protocol).
1310
+ # @return [String]
1311
+ #
1312
+ # @!attribute [rw] topic_arn
1313
+ # The ARN of the subscription's topic.
1314
+ # @return [String]
1315
+ class Subscription < Struct.new(
1316
+ :subscription_arn,
1317
+ :owner,
1318
+ :protocol,
1319
+ :endpoint,
1320
+ :topic_arn)
1321
+ include Aws::Structure
1322
+ end
1323
+
1324
+ # A wrapper type for the topic's Amazon Resource Name (ARN). To
1325
+ # retrieve a topic's attributes, use `GetTopicAttributes`.
1326
+ # @!attribute [rw] topic_arn
1327
+ # The topic's ARN.
1328
+ # @return [String]
1329
+ class Topic < Struct.new(
1330
+ :topic_arn)
1331
+ include Aws::Structure
1332
+ end
1333
+
1334
+ # Input for Unsubscribe action.
1335
+ # @note When making an API call, pass UnsubscribeInput
1336
+ # data as a hash:
1337
+ #
1338
+ # {
1339
+ # subscription_arn: "subscriptionARN", # required
1340
+ # }
1341
+ # @!attribute [rw] subscription_arn
1342
+ # The ARN of the subscription to be deleted.
1343
+ # @return [String]
1344
+ class UnsubscribeInput < Struct.new(
1345
+ :subscription_arn)
1346
+ include Aws::Structure
1347
+ end
1348
+
1349
+ end
1350
+ end
1351
+ end