aws-sdk-sns 1.0.0.rc1

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,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