File Coverage

blib/lib/Paws/SNS.pm
Criterion Covered Total %
statement 41 190 21.5
branch 0 20 0.0
condition n/a
subroutine 15 41 36.5
pod 35 39 89.7
total 91 290 31.3


line stmt bran cond sub pod time code
1             package Paws::SNS;
2 1     1   3748 use Moose;
  1     3   3  
  1         12  
  3         38336  
  3         10  
  3         37  
3 23     23 0 138 sub service { 'sns' }
4 1     1 0 7 sub version { '2010-03-31' }
5 0     0 0 0 sub flattened_arrays { 0 }
6             has max_attempts => (is => 'ro', isa => 'Int', default => 5);
7             has retry => (is => 'ro', isa => 'HashRef', default => sub {
8             { base => 'rand', type => 'exponential', growth_factor => 2 }
9             });
10             has retriables => (is => 'ro', isa => 'ArrayRef', default => sub { [
11             ] });
12              
13             with 'Paws::API::Caller', 'Paws::API::EndpointResolver', 'Paws::Net::V4Signature', 'Paws::Net::QueryCaller', 'Paws::Net::XMLResponse';
14              
15            
16             sub AddPermission {
17 1     1 1 687 my $self = shift;
18 1         8 my $call_object = $self->new_with_coercions('Paws::SNS::AddPermission', @_);
19 1         1622 return $self->caller->do_call($self, $call_object);
20             }
21             sub CheckIfPhoneNumberIsOptedOut {
22 0     0 1 0 my $self = shift;
23 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::CheckIfPhoneNumberIsOptedOut', @_);
24 0         0 return $self->caller->do_call($self, $call_object);
25             }
26             sub ConfirmSubscription {
27 1     1 1 435 my $self = shift;
28 1         9 my $call_object = $self->new_with_coercions('Paws::SNS::ConfirmSubscription', @_);
29 1         884 return $self->caller->do_call($self, $call_object);
30             }
31             sub CreatePlatformApplication {
32 0     0 1 0 my $self = shift;
33 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::CreatePlatformApplication', @_);
34 0         0 return $self->caller->do_call($self, $call_object);
35             }
36             sub CreatePlatformEndpoint {
37 0     0 1 0 my $self = shift;
38 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::CreatePlatformEndpoint', @_);
39 0         0 return $self->caller->do_call($self, $call_object);
40             }
41             sub CreateTopic {
42 1     1 1 311 my $self = shift;
43 1         8 my $call_object = $self->new_with_coercions('Paws::SNS::CreateTopic', @_);
44 1         519 return $self->caller->do_call($self, $call_object);
45             }
46             sub DeleteEndpoint {
47 0     0 1 0 my $self = shift;
48 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::DeleteEndpoint', @_);
49 0         0 return $self->caller->do_call($self, $call_object);
50             }
51             sub DeletePlatformApplication {
52 0     0 1 0 my $self = shift;
53 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::DeletePlatformApplication', @_);
54 0         0 return $self->caller->do_call($self, $call_object);
55             }
56             sub DeleteTopic {
57 0     0 1 0 my $self = shift;
58 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::DeleteTopic', @_);
59 0         0 return $self->caller->do_call($self, $call_object);
60             }
61             sub GetEndpointAttributes {
62 0     0 1 0 my $self = shift;
63 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::GetEndpointAttributes', @_);
64 0         0 return $self->caller->do_call($self, $call_object);
65             }
66             sub GetPlatformApplicationAttributes {
67 0     0 1 0 my $self = shift;
68 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::GetPlatformApplicationAttributes', @_);
69 0         0 return $self->caller->do_call($self, $call_object);
70             }
71             sub GetSMSAttributes {
72 0     0 1 0 my $self = shift;
73 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::GetSMSAttributes', @_);
74 0         0 return $self->caller->do_call($self, $call_object);
75             }
76             sub GetSubscriptionAttributes {
77 1     1 1 321 my $self = shift;
78 1         9 my $call_object = $self->new_with_coercions('Paws::SNS::GetSubscriptionAttributes', @_);
79 1         541 return $self->caller->do_call($self, $call_object);
80             }
81             sub GetTopicAttributes {
82 2     2 1 636 my $self = shift;
83 2         16 my $call_object = $self->new_with_coercions('Paws::SNS::GetTopicAttributes', @_);
84 2         1092 return $self->caller->do_call($self, $call_object);
85             }
86             sub ListEndpointsByPlatformApplication {
87 0     0 1 0 my $self = shift;
88 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::ListEndpointsByPlatformApplication', @_);
89 0         0 return $self->caller->do_call($self, $call_object);
90             }
91             sub ListPhoneNumbersOptedOut {
92 0     0 1 0 my $self = shift;
93 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::ListPhoneNumbersOptedOut', @_);
94 0         0 return $self->caller->do_call($self, $call_object);
95             }
96             sub ListPlatformApplications {
97 0     0 1 0 my $self = shift;
98 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::ListPlatformApplications', @_);
99 0         0 return $self->caller->do_call($self, $call_object);
100             }
101             sub ListSubscriptions {
102 1     1 1 362 my $self = shift;
103 1         12 my $call_object = $self->new_with_coercions('Paws::SNS::ListSubscriptions', @_);
104 1         423 return $self->caller->do_call($self, $call_object);
105             }
106             sub ListSubscriptionsByTopic {
107 1     1 1 405 my $self = shift;
108 1         8 my $call_object = $self->new_with_coercions('Paws::SNS::ListSubscriptionsByTopic', @_);
109 1         645 return $self->caller->do_call($self, $call_object);
110             }
111             sub ListTopics {
112 1     1 1 338 my $self = shift;
113 1         12 my $call_object = $self->new_with_coercions('Paws::SNS::ListTopics', @_);
114 1         526 return $self->caller->do_call($self, $call_object);
115             }
116             sub OptInPhoneNumber {
117 0     0 1 0 my $self = shift;
118 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::OptInPhoneNumber', @_);
119 0         0 return $self->caller->do_call($self, $call_object);
120             }
121             sub Publish {
122 1     1 1 497 my $self = shift;
123 1         8 my $call_object = $self->new_with_coercions('Paws::SNS::Publish', @_);
124 1         1308 return $self->caller->do_call($self, $call_object);
125             }
126             sub RemovePermission {
127 0     0 1 0 my $self = shift;
128 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::RemovePermission', @_);
129 0         0 return $self->caller->do_call($self, $call_object);
130             }
131             sub SetEndpointAttributes {
132 0     0 1 0 my $self = shift;
133 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::SetEndpointAttributes', @_);
134 0         0 return $self->caller->do_call($self, $call_object);
135             }
136             sub SetPlatformApplicationAttributes {
137 1     1 1 8 my $self = shift;
138 1         5 my $call_object = $self->new_with_coercions('Paws::SNS::SetPlatformApplicationAttributes', @_);
139 1         821 return $self->caller->do_call($self, $call_object);
140             }
141             sub SetSMSAttributes {
142 0     0 1 0 my $self = shift;
143 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::SetSMSAttributes', @_);
144 0         0 return $self->caller->do_call($self, $call_object);
145             }
146             sub SetSubscriptionAttributes {
147 0     0 1 0 my $self = shift;
148 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::SetSubscriptionAttributes', @_);
149 0         0 return $self->caller->do_call($self, $call_object);
150             }
151             sub SetTopicAttributes {
152 0     0 1 0 my $self = shift;
153 0         0 my $call_object = $self->new_with_coercions('Paws::SNS::SetTopicAttributes', @_);
154 0         0 return $self->caller->do_call($self, $call_object);
155             }
156             sub Subscribe {
157 1     1 1 777 my $self = shift;
158 1         11 my $call_object = $self->new_with_coercions('Paws::SNS::Subscribe', @_);
159 1         945 return $self->caller->do_call($self, $call_object);
160             }
161             sub Unsubscribe {
162 0     0 1   my $self = shift;
163 0           my $call_object = $self->new_with_coercions('Paws::SNS::Unsubscribe', @_);
164 0           return $self->caller->do_call($self, $call_object);
165             }
166            
167             sub ListAllEndpointsByPlatformApplication {
168 0     0 1   my $self = shift;
169              
170 0 0         my $callback = shift @_ if (ref($_[0]) eq 'CODE');
171 0           my $result = $self->ListEndpointsByPlatformApplication(@_);
172 0           my $next_result = $result;
173              
174 0 0         if (not defined $callback) {
175 0           while ($next_result->NextToken) {
176 0           $next_result = $self->ListEndpointsByPlatformApplication(@_, NextToken => $next_result->NextToken);
177 0           push @{ $result->Endpoints }, @{ $next_result->Endpoints };
  0            
  0            
178             }
179 0           return $result;
180             } else {
181 0           while ($result->NextToken) {
182 0           $callback->($_ => 'Endpoints') foreach (@{ $result->Endpoints });
  0            
183 0           $result = $self->ListEndpointsByPlatformApplication(@_, NextToken => $result->NextToken);
184             }
185 0           $callback->($_ => 'Endpoints') foreach (@{ $result->Endpoints });
  0            
186             }
187              
188             return undef
189 0           }
190             sub ListAllPlatformApplications {
191 0     0 1   my $self = shift;
192              
193 0 0         my $callback = shift @_ if (ref($_[0]) eq 'CODE');
194 0           my $result = $self->ListPlatformApplications(@_);
195 0           my $next_result = $result;
196              
197 0 0         if (not defined $callback) {
198 0           while ($next_result->NextToken) {
199 0           $next_result = $self->ListPlatformApplications(@_, NextToken => $next_result->NextToken);
200 0           push @{ $result->PlatformApplications }, @{ $next_result->PlatformApplications };
  0            
  0            
201             }
202 0           return $result;
203             } else {
204 0           while ($result->NextToken) {
205 0           $callback->($_ => 'PlatformApplications') foreach (@{ $result->PlatformApplications });
  0            
206 0           $result = $self->ListPlatformApplications(@_, NextToken => $result->NextToken);
207             }
208 0           $callback->($_ => 'PlatformApplications') foreach (@{ $result->PlatformApplications });
  0            
209             }
210              
211             return undef
212 0           }
213             sub ListAllSubscriptions {
214 0     0 1   my $self = shift;
215              
216 0 0         my $callback = shift @_ if (ref($_[0]) eq 'CODE');
217 0           my $result = $self->ListSubscriptions(@_);
218 0           my $next_result = $result;
219              
220 0 0         if (not defined $callback) {
221 0           while ($next_result->NextToken) {
222 0           $next_result = $self->ListSubscriptions(@_, NextToken => $next_result->NextToken);
223 0           push @{ $result->Subscriptions }, @{ $next_result->Subscriptions };
  0            
  0            
224             }
225 0           return $result;
226             } else {
227 0           while ($result->NextToken) {
228 0           $callback->($_ => 'Subscriptions') foreach (@{ $result->Subscriptions });
  0            
229 0           $result = $self->ListSubscriptions(@_, NextToken => $result->NextToken);
230             }
231 0           $callback->($_ => 'Subscriptions') foreach (@{ $result->Subscriptions });
  0            
232             }
233              
234             return undef
235 0           }
236             sub ListAllSubscriptionsByTopic {
237 0     0 1   my $self = shift;
238              
239 0 0         my $callback = shift @_ if (ref($_[0]) eq 'CODE');
240 0           my $result = $self->ListSubscriptionsByTopic(@_);
241 0           my $next_result = $result;
242              
243 0 0         if (not defined $callback) {
244 0           while ($next_result->NextToken) {
245 0           $next_result = $self->ListSubscriptionsByTopic(@_, NextToken => $next_result->NextToken);
246 0           push @{ $result->Subscriptions }, @{ $next_result->Subscriptions };
  0            
  0            
247             }
248 0           return $result;
249             } else {
250 0           while ($result->NextToken) {
251 0           $callback->($_ => 'Subscriptions') foreach (@{ $result->Subscriptions });
  0            
252 0           $result = $self->ListSubscriptionsByTopic(@_, NextToken => $result->NextToken);
253             }
254 0           $callback->($_ => 'Subscriptions') foreach (@{ $result->Subscriptions });
  0            
255             }
256              
257             return undef
258 0           }
259             sub ListAllTopics {
260 0     0 1   my $self = shift;
261              
262 0 0         my $callback = shift @_ if (ref($_[0]) eq 'CODE');
263 0           my $result = $self->ListTopics(@_);
264 0           my $next_result = $result;
265              
266 0 0         if (not defined $callback) {
267 0           while ($next_result->NextToken) {
268 0           $next_result = $self->ListTopics(@_, NextToken => $next_result->NextToken);
269 0           push @{ $result->Topics }, @{ $next_result->Topics };
  0            
  0            
270             }
271 0           return $result;
272             } else {
273 0           while ($result->NextToken) {
274 0           $callback->($_ => 'Topics') foreach (@{ $result->Topics });
  0            
275 0           $result = $self->ListTopics(@_, NextToken => $result->NextToken);
276             }
277 0           $callback->($_ => 'Topics') foreach (@{ $result->Topics });
  0            
278             }
279              
280             return undef
281 0           }
282              
283              
284 0     0 0   sub operations { qw/AddPermission CheckIfPhoneNumberIsOptedOut ConfirmSubscription CreatePlatformApplication CreatePlatformEndpoint CreateTopic DeleteEndpoint DeletePlatformApplication DeleteTopic GetEndpointAttributes GetPlatformApplicationAttributes GetSMSAttributes GetSubscriptionAttributes GetTopicAttributes ListEndpointsByPlatformApplication ListPhoneNumbersOptedOut ListPlatformApplications ListSubscriptions ListSubscriptionsByTopic ListTopics OptInPhoneNumber Publish RemovePermission SetEndpointAttributes SetPlatformApplicationAttributes SetSMSAttributes SetSubscriptionAttributes SetTopicAttributes Subscribe Unsubscribe / }
285              
286             1;
287              
288             ### main pod documentation begin ###
289              
290             =head1 NAME
291              
292             Paws::SNS - Perl Interface to AWS Amazon Simple Notification Service
293              
294             =head1 SYNOPSIS
295              
296             use Paws;
297              
298             my $obj = Paws->service('SNS');
299             my $res = $obj->Method(
300             Arg1 => $val1,
301             Arg2 => [ 'V1', 'V2' ],
302             # if Arg3 is an object, the HashRef will be used as arguments to the constructor
303             # of the arguments type
304             Arg3 => { Att1 => 'Val1' },
305             # if Arg4 is an array of objects, the HashRefs will be passed as arguments to
306             # the constructor of the arguments type
307             Arg4 => [ { Att1 => 'Val1' }, { Att1 => 'Val2' } ],
308             );
309              
310             =head1 DESCRIPTION
311              
312             Amazon Simple Notification Service
313              
314             Amazon Simple Notification Service (Amazon SNS) is a web service that
315             enables you to build distributed web-enabled applications. Applications
316             can use Amazon SNS to easily push real-time notification messages to
317             interested subscribers over multiple delivery protocols. For more
318             information about this product see http://aws.amazon.com/sns. For
319             detailed information about Amazon SNS features and their associated API
320             calls, see the Amazon SNS Developer Guide.
321              
322             We also provide SDKs that enable you to access Amazon SNS from your
323             preferred programming language. The SDKs contain functionality that
324             automatically takes care of tasks such as: cryptographically signing
325             your service requests, retrying requests, and handling error responses.
326             For a list of available SDKs, go to Tools for Amazon Web Services.
327              
328             =head1 METHODS
329              
330             =head2 AddPermission(ActionName => ArrayRef[Str|Undef], AWSAccountId => ArrayRef[Str|Undef], Label => Str, TopicArn => Str)
331              
332             Each argument is described in detail in: L<Paws::SNS::AddPermission>
333              
334             Returns: nothing
335              
336             Adds a statement to a topic's access control policy, granting access
337             for the specified AWS accounts to the specified actions.
338              
339              
340             =head2 CheckIfPhoneNumberIsOptedOut(PhoneNumber => Str)
341              
342             Each argument is described in detail in: L<Paws::SNS::CheckIfPhoneNumberIsOptedOut>
343              
344             Returns: a L<Paws::SNS::CheckIfPhoneNumberIsOptedOutResponse> instance
345              
346             Accepts a phone number and indicates whether the phone holder has opted
347             out of receiving SMS messages from your account. You cannot send SMS
348             messages to a number that is opted out.
349              
350             To resume sending messages, you can opt in the number by using the
351             C<OptInPhoneNumber> action.
352              
353              
354             =head2 ConfirmSubscription(Token => Str, TopicArn => Str, [AuthenticateOnUnsubscribe => Str])
355              
356             Each argument is described in detail in: L<Paws::SNS::ConfirmSubscription>
357              
358             Returns: a L<Paws::SNS::ConfirmSubscriptionResponse> instance
359              
360             Verifies an endpoint owner's intent to receive messages by validating
361             the token sent to the endpoint by an earlier C<Subscribe> action. If
362             the token is valid, the action creates a new subscription and returns
363             its Amazon Resource Name (ARN). This call requires an AWS signature
364             only when the C<AuthenticateOnUnsubscribe> flag is set to "true".
365              
366              
367             =head2 CreatePlatformApplication(Attributes => L<Paws::SNS::MapStringToString>, Name => Str, Platform => Str)
368              
369             Each argument is described in detail in: L<Paws::SNS::CreatePlatformApplication>
370              
371             Returns: a L<Paws::SNS::CreatePlatformApplicationResponse> instance
372              
373             Creates a platform application object for one of the supported push
374             notification services, such as APNS and GCM, to which devices and
375             mobile apps may register. You must specify PlatformPrincipal and
376             PlatformCredential attributes when using the
377             C<CreatePlatformApplication> action. The PlatformPrincipal is received
378             from the notification service. For APNS/APNS_SANDBOX, PlatformPrincipal
379             is "SSL certificate". For GCM, PlatformPrincipal is not applicable. For
380             ADM, PlatformPrincipal is "client id". The PlatformCredential is also
381             received from the notification service. For WNS, PlatformPrincipal is
382             "Package Security Identifier". For MPNS, PlatformPrincipal is "TLS
383             certificate". For Baidu, PlatformPrincipal is "API key".
384              
385             For APNS/APNS_SANDBOX, PlatformCredential is "private key". For GCM,
386             PlatformCredential is "API key". For ADM, PlatformCredential is "client
387             secret". For WNS, PlatformCredential is "secret key". For MPNS,
388             PlatformCredential is "private key". For Baidu, PlatformCredential is
389             "secret key". The PlatformApplicationArn that is returned when using
390             C<CreatePlatformApplication> is then used as an attribute for the
391             C<CreatePlatformEndpoint> action. For more information, see Using
392             Amazon SNS Mobile Push Notifications. For more information about
393             obtaining the PlatformPrincipal and PlatformCredential for each of the
394             supported push notification services, see Getting Started with Apple
395             Push Notification Service, Getting Started with Amazon Device
396             Messaging, Getting Started with Baidu Cloud Push, Getting Started with
397             Google Cloud Messaging for Android, Getting Started with MPNS, or
398             Getting Started with WNS.
399              
400              
401             =head2 CreatePlatformEndpoint(PlatformApplicationArn => Str, Token => Str, [Attributes => L<Paws::SNS::MapStringToString>, CustomUserData => Str])
402              
403             Each argument is described in detail in: L<Paws::SNS::CreatePlatformEndpoint>
404              
405             Returns: a L<Paws::SNS::CreateEndpointResponse> instance
406              
407             Creates an endpoint for a device and mobile app on one of the supported
408             push notification services, such as GCM and APNS.
409             C<CreatePlatformEndpoint> requires the PlatformApplicationArn that is
410             returned from C<CreatePlatformApplication>. The EndpointArn that is
411             returned when using C<CreatePlatformEndpoint> can then be used by the
412             C<Publish> action to send a message to a mobile app or by the
413             C<Subscribe> action for subscription to a topic. The
414             C<CreatePlatformEndpoint> action is idempotent, so if the requester
415             already owns an endpoint with the same device token and attributes,
416             that endpoint's ARN is returned without creating a new endpoint. For
417             more information, see Using Amazon SNS Mobile Push Notifications.
418              
419             When using C<CreatePlatformEndpoint> with Baidu, two attributes must be
420             provided: ChannelId and UserId. The token field must also contain the
421             ChannelId. For more information, see Creating an Amazon SNS Endpoint
422             for Baidu.
423              
424              
425             =head2 CreateTopic(Name => Str)
426              
427             Each argument is described in detail in: L<Paws::SNS::CreateTopic>
428              
429             Returns: a L<Paws::SNS::CreateTopicResponse> instance
430              
431             Creates a topic to which notifications can be published. Users can
432             create at most 100,000 topics. For more information, see
433             http://aws.amazon.com/sns. This action is idempotent, so if the
434             requester already owns a topic with the specified name, that topic's
435             ARN is returned without creating a new topic.
436              
437              
438             =head2 DeleteEndpoint(EndpointArn => Str)
439              
440             Each argument is described in detail in: L<Paws::SNS::DeleteEndpoint>
441              
442             Returns: nothing
443              
444             Deletes the endpoint for a device and mobile app from Amazon SNS. This
445             action is idempotent. For more information, see Using Amazon SNS Mobile
446             Push Notifications.
447              
448             When you delete an endpoint that is also subscribed to a topic, then
449             you must also unsubscribe the endpoint from the topic.
450              
451              
452             =head2 DeletePlatformApplication(PlatformApplicationArn => Str)
453              
454             Each argument is described in detail in: L<Paws::SNS::DeletePlatformApplication>
455              
456             Returns: nothing
457              
458             Deletes a platform application object for one of the supported push
459             notification services, such as APNS and GCM. For more information, see
460             Using Amazon SNS Mobile Push Notifications.
461              
462              
463             =head2 DeleteTopic(TopicArn => Str)
464              
465             Each argument is described in detail in: L<Paws::SNS::DeleteTopic>
466              
467             Returns: nothing
468              
469             Deletes a topic and all its subscriptions. Deleting a topic might
470             prevent some messages previously sent to the topic from being delivered
471             to subscribers. This action is idempotent, so deleting a topic that
472             does not exist does not result in an error.
473              
474              
475             =head2 GetEndpointAttributes(EndpointArn => Str)
476              
477             Each argument is described in detail in: L<Paws::SNS::GetEndpointAttributes>
478              
479             Returns: a L<Paws::SNS::GetEndpointAttributesResponse> instance
480              
481             Retrieves the endpoint attributes for a device on one of the supported
482             push notification services, such as GCM and APNS. For more information,
483             see Using Amazon SNS Mobile Push Notifications.
484              
485              
486             =head2 GetPlatformApplicationAttributes(PlatformApplicationArn => Str)
487              
488             Each argument is described in detail in: L<Paws::SNS::GetPlatformApplicationAttributes>
489              
490             Returns: a L<Paws::SNS::GetPlatformApplicationAttributesResponse> instance
491              
492             Retrieves the attributes of the platform application object for the
493             supported push notification services, such as APNS and GCM. For more
494             information, see Using Amazon SNS Mobile Push Notifications.
495              
496              
497             =head2 GetSMSAttributes([Attributes => ArrayRef[Str|Undef]])
498              
499             Each argument is described in detail in: L<Paws::SNS::GetSMSAttributes>
500              
501             Returns: a L<Paws::SNS::GetSMSAttributesResponse> instance
502              
503             Returns the settings for sending SMS messages from your account.
504              
505             These settings are set with the C<SetSMSAttributes> action.
506              
507              
508             =head2 GetSubscriptionAttributes(SubscriptionArn => Str)
509              
510             Each argument is described in detail in: L<Paws::SNS::GetSubscriptionAttributes>
511              
512             Returns: a L<Paws::SNS::GetSubscriptionAttributesResponse> instance
513              
514             Returns all of the properties of a subscription.
515              
516              
517             =head2 GetTopicAttributes(TopicArn => Str)
518              
519             Each argument is described in detail in: L<Paws::SNS::GetTopicAttributes>
520              
521             Returns: a L<Paws::SNS::GetTopicAttributesResponse> instance
522              
523             Returns all of the properties of a topic. Topic properties returned
524             might differ based on the authorization of the user.
525              
526              
527             =head2 ListEndpointsByPlatformApplication(PlatformApplicationArn => Str, [NextToken => Str])
528              
529             Each argument is described in detail in: L<Paws::SNS::ListEndpointsByPlatformApplication>
530              
531             Returns: a L<Paws::SNS::ListEndpointsByPlatformApplicationResponse> instance
532              
533             Lists the endpoints and endpoint attributes for devices in a supported
534             push notification service, such as GCM and APNS. The results for
535             C<ListEndpointsByPlatformApplication> are paginated and return a
536             limited list of endpoints, up to 100. If additional records are
537             available after the first page results, then a NextToken string will be
538             returned. To receive the next page, you call
539             C<ListEndpointsByPlatformApplication> again using the NextToken string
540             received from the previous call. When there are no more records to
541             return, NextToken will be null. For more information, see Using Amazon
542             SNS Mobile Push Notifications.
543              
544              
545             =head2 ListPhoneNumbersOptedOut([NextToken => Str])
546              
547             Each argument is described in detail in: L<Paws::SNS::ListPhoneNumbersOptedOut>
548              
549             Returns: a L<Paws::SNS::ListPhoneNumbersOptedOutResponse> instance
550              
551             Returns a list of phone numbers that are opted out, meaning you cannot
552             send SMS messages to them.
553              
554             The results for C<ListPhoneNumbersOptedOut> are paginated, and each
555             page returns up to 100 phone numbers. If additional phone numbers are
556             available after the first page of results, then a C<NextToken> string
557             will be returned. To receive the next page, you call
558             C<ListPhoneNumbersOptedOut> again using the C<NextToken> string
559             received from the previous call. When there are no more records to
560             return, C<NextToken> will be null.
561              
562              
563             =head2 ListPlatformApplications([NextToken => Str])
564              
565             Each argument is described in detail in: L<Paws::SNS::ListPlatformApplications>
566              
567             Returns: a L<Paws::SNS::ListPlatformApplicationsResponse> instance
568              
569             Lists the platform application objects for the supported push
570             notification services, such as APNS and GCM. The results for
571             C<ListPlatformApplications> are paginated and return a limited list of
572             applications, up to 100. If additional records are available after the
573             first page results, then a NextToken string will be returned. To
574             receive the next page, you call C<ListPlatformApplications> using the
575             NextToken string received from the previous call. When there are no
576             more records to return, NextToken will be null. For more information,
577             see Using Amazon SNS Mobile Push Notifications.
578              
579              
580             =head2 ListSubscriptions([NextToken => Str])
581              
582             Each argument is described in detail in: L<Paws::SNS::ListSubscriptions>
583              
584             Returns: a L<Paws::SNS::ListSubscriptionsResponse> instance
585              
586             Returns a list of the requester's subscriptions. Each call returns a
587             limited list of subscriptions, up to 100. If there are more
588             subscriptions, a C<NextToken> is also returned. Use the C<NextToken>
589             parameter in a new C<ListSubscriptions> call to get further results.
590              
591              
592             =head2 ListSubscriptionsByTopic(TopicArn => Str, [NextToken => Str])
593              
594             Each argument is described in detail in: L<Paws::SNS::ListSubscriptionsByTopic>
595              
596             Returns: a L<Paws::SNS::ListSubscriptionsByTopicResponse> instance
597              
598             Returns a list of the subscriptions to a specific topic. Each call
599             returns a limited list of subscriptions, up to 100. If there are more
600             subscriptions, a C<NextToken> is also returned. Use the C<NextToken>
601             parameter in a new C<ListSubscriptionsByTopic> call to get further
602             results.
603              
604              
605             =head2 ListTopics([NextToken => Str])
606              
607             Each argument is described in detail in: L<Paws::SNS::ListTopics>
608              
609             Returns: a L<Paws::SNS::ListTopicsResponse> instance
610              
611             Returns a list of the requester's topics. Each call returns a limited
612             list of topics, up to 100. If there are more topics, a C<NextToken> is
613             also returned. Use the C<NextToken> parameter in a new C<ListTopics>
614             call to get further results.
615              
616              
617             =head2 OptInPhoneNumber(PhoneNumber => Str)
618              
619             Each argument is described in detail in: L<Paws::SNS::OptInPhoneNumber>
620              
621             Returns: a L<Paws::SNS::OptInPhoneNumberResponse> instance
622              
623             Use this request to opt in a phone number that is opted out, which
624             enables you to resume sending SMS messages to the number.
625              
626             You can opt in a phone number only once every 30 days.
627              
628              
629             =head2 Publish(Message => Str, [MessageAttributes => L<Paws::SNS::MessageAttributeMap>, MessageStructure => Str, PhoneNumber => Str, Subject => Str, TargetArn => Str, TopicArn => Str])
630              
631             Each argument is described in detail in: L<Paws::SNS::Publish>
632              
633             Returns: a L<Paws::SNS::PublishResponse> instance
634              
635             Sends a message to all of a topic's subscribed endpoints. When a
636             C<messageId> is returned, the message has been saved and Amazon SNS
637             will attempt to deliver it to the topic's subscribers shortly. The
638             format of the outgoing message to each subscribed endpoint depends on
639             the notification protocol.
640              
641             To use the C<Publish> action for sending a message to a mobile
642             endpoint, such as an app on a Kindle device or mobile phone, you must
643             specify the EndpointArn for the TargetArn parameter. The EndpointArn is
644             returned when making a call with the C<CreatePlatformEndpoint> action.
645              
646             For more information about formatting messages, see Send Custom
647             Platform-Specific Payloads in Messages to Mobile Devices.
648              
649              
650             =head2 RemovePermission(Label => Str, TopicArn => Str)
651              
652             Each argument is described in detail in: L<Paws::SNS::RemovePermission>
653              
654             Returns: nothing
655              
656             Removes a statement from a topic's access control policy.
657              
658              
659             =head2 SetEndpointAttributes(Attributes => L<Paws::SNS::MapStringToString>, EndpointArn => Str)
660              
661             Each argument is described in detail in: L<Paws::SNS::SetEndpointAttributes>
662              
663             Returns: nothing
664              
665             Sets the attributes for an endpoint for a device on one of the
666             supported push notification services, such as GCM and APNS. For more
667             information, see Using Amazon SNS Mobile Push Notifications.
668              
669              
670             =head2 SetPlatformApplicationAttributes(Attributes => L<Paws::SNS::MapStringToString>, PlatformApplicationArn => Str)
671              
672             Each argument is described in detail in: L<Paws::SNS::SetPlatformApplicationAttributes>
673              
674             Returns: nothing
675              
676             Sets the attributes of the platform application object for the
677             supported push notification services, such as APNS and GCM. For more
678             information, see Using Amazon SNS Mobile Push Notifications. For
679             information on configuring attributes for message delivery status, see
680             Using Amazon SNS Application Attributes for Message Delivery Status.
681              
682              
683             =head2 SetSMSAttributes(Attributes => L<Paws::SNS::MapStringToString>)
684              
685             Each argument is described in detail in: L<Paws::SNS::SetSMSAttributes>
686              
687             Returns: a L<Paws::SNS::SetSMSAttributesResponse> instance
688              
689             Use this request to set the default settings for sending SMS messages
690             and receiving daily SMS usage reports.
691              
692             You can override some of these settings for a single message when you
693             use the C<Publish> action with the C<MessageAttributes.entry.N>
694             parameter. For more information, see Sending an SMS Message in the
695             I<Amazon SNS Developer Guide>.
696              
697              
698             =head2 SetSubscriptionAttributes(AttributeName => Str, SubscriptionArn => Str, [AttributeValue => Str])
699              
700             Each argument is described in detail in: L<Paws::SNS::SetSubscriptionAttributes>
701              
702             Returns: nothing
703              
704             Allows a subscription owner to set an attribute of the topic to a new
705             value.
706              
707              
708             =head2 SetTopicAttributes(AttributeName => Str, TopicArn => Str, [AttributeValue => Str])
709              
710             Each argument is described in detail in: L<Paws::SNS::SetTopicAttributes>
711              
712             Returns: nothing
713              
714             Allows a topic owner to set an attribute of the topic to a new value.
715              
716              
717             =head2 Subscribe(Protocol => Str, TopicArn => Str, [Endpoint => Str])
718              
719             Each argument is described in detail in: L<Paws::SNS::Subscribe>
720              
721             Returns: a L<Paws::SNS::SubscribeResponse> instance
722              
723             Prepares to subscribe an endpoint by sending the endpoint a
724             confirmation message. To actually create a subscription, the endpoint
725             owner must call the C<ConfirmSubscription> action with the token from
726             the confirmation message. Confirmation tokens are valid for three days.
727              
728              
729             =head2 Unsubscribe(SubscriptionArn => Str)
730              
731             Each argument is described in detail in: L<Paws::SNS::Unsubscribe>
732              
733             Returns: nothing
734              
735             Deletes a subscription. If the subscription requires authentication for
736             deletion, only the owner of the subscription or the topic's owner can
737             unsubscribe, and an AWS signature is required. If the C<Unsubscribe>
738             call does not require authentication and the requester is not the
739             subscription owner, a final cancellation message is delivered to the
740             endpoint, so that the endpoint owner can easily resubscribe to the
741             topic if the C<Unsubscribe> request was unintended.
742              
743              
744              
745              
746             =head1 PAGINATORS
747              
748             Paginator methods are helpers that repetively call methods that return partial results
749              
750             =head2 ListAllEndpointsByPlatformApplication(sub { },PlatformApplicationArn => Str, [NextToken => Str])
751              
752             =head2 ListAllEndpointsByPlatformApplication(PlatformApplicationArn => Str, [NextToken => Str])
753              
754              
755             If passed a sub as first parameter, it will call the sub for each element found in :
756              
757             - Endpoints, passing the object as the first parameter, and the string 'Endpoints' as the second parameter
758              
759             If not, it will return a a L<Paws::SNS::ListEndpointsByPlatformApplicationResponse> instance with all the C<param>s; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.
760              
761              
762             =head2 ListAllPlatformApplications(sub { },[NextToken => Str])
763              
764             =head2 ListAllPlatformApplications([NextToken => Str])
765              
766              
767             If passed a sub as first parameter, it will call the sub for each element found in :
768              
769             - PlatformApplications, passing the object as the first parameter, and the string 'PlatformApplications' as the second parameter
770              
771             If not, it will return a a L<Paws::SNS::ListPlatformApplicationsResponse> instance with all the C<param>s; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.
772              
773              
774             =head2 ListAllSubscriptions(sub { },[NextToken => Str])
775              
776             =head2 ListAllSubscriptions([NextToken => Str])
777              
778              
779             If passed a sub as first parameter, it will call the sub for each element found in :
780              
781             - Subscriptions, passing the object as the first parameter, and the string 'Subscriptions' as the second parameter
782              
783             If not, it will return a a L<Paws::SNS::ListSubscriptionsResponse> instance with all the C<param>s; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.
784              
785              
786             =head2 ListAllSubscriptionsByTopic(sub { },TopicArn => Str, [NextToken => Str])
787              
788             =head2 ListAllSubscriptionsByTopic(TopicArn => Str, [NextToken => Str])
789              
790              
791             If passed a sub as first parameter, it will call the sub for each element found in :
792              
793             - Subscriptions, passing the object as the first parameter, and the string 'Subscriptions' as the second parameter
794              
795             If not, it will return a a L<Paws::SNS::ListSubscriptionsByTopicResponse> instance with all the C<param>s; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.
796              
797              
798             =head2 ListAllTopics(sub { },[NextToken => Str])
799              
800             =head2 ListAllTopics([NextToken => Str])
801              
802              
803             If passed a sub as first parameter, it will call the sub for each element found in :
804              
805             - Topics, passing the object as the first parameter, and the string 'Topics' as the second parameter
806              
807             If not, it will return a a L<Paws::SNS::ListTopicsResponse> instance with all the C<param>s; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.
808              
809              
810              
811              
812              
813             =head1 SEE ALSO
814              
815             This service class forms part of L<Paws>
816              
817             =head1 BUGS and CONTRIBUTIONS
818              
819             The source code is located here: https://github.com/pplu/aws-sdk-perl
820              
821             Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues
822              
823             =cut
824