File Coverage

blib/lib/Paws/SNS/Publish.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 16 16 100.0


line stmt bran cond sub pod time code
1              
2             package Paws::SNS::Publish;
3 1     1   709 use Moose;
  1     1   3  
  1         14  
  1         893  
  1         3  
  1         9  
4             has Message => (is => 'ro', isa => 'Str', required => 1);
5             has MessageAttributes => (is => 'ro', isa => 'Paws::SNS::MessageAttributeMap');
6             has MessageStructure => (is => 'ro', isa => 'Str');
7             has PhoneNumber => (is => 'ro', isa => 'Str');
8             has Subject => (is => 'ro', isa => 'Str');
9             has TargetArn => (is => 'ro', isa => 'Str');
10             has TopicArn => (is => 'ro', isa => 'Str');
11              
12 1     1   7818 use MooseX::ClassAttribute;
  1     1   3  
  1         14  
  1         8686  
  1         4  
  1         8  
13              
14             class_has _api_call => (isa => 'Str', is => 'ro', default => 'Publish');
15             class_has _returns => (isa => 'Str', is => 'ro', default => 'Paws::SNS::PublishResponse');
16             class_has _result_key => (isa => 'Str', is => 'ro', default => 'PublishResult');
17             1;
18              
19             ### main pod documentation begin ###
20              
21             =head1 NAME
22              
23             Paws::SNS::Publish - Arguments for method Publish on Paws::SNS
24              
25             =head1 DESCRIPTION
26              
27             This class represents the parameters used for calling the method Publish on the
28             Amazon Simple Notification Service service. Use the attributes of this class
29             as arguments to method Publish.
30              
31             You shouldn't make instances of this class. Each attribute should be used as a named argument in the call to Publish.
32              
33             As an example:
34              
35             $service_obj->Publish(Att1 => $value1, Att2 => $value2, ...);
36              
37             Values for attributes that are native types (Int, String, Float, etc) can passed as-is (scalar values). Values for complex Types (objects) can be passed as a HashRef. The keys and values of the hashref will be used to instance the underlying object.
38              
39             =head1 ATTRIBUTES
40              
41              
42             =head2 B<REQUIRED> Message => Str
43              
44             The message you want to send to the topic.
45              
46             If you want to send the same message to all transport protocols,
47             include the text of the message as a String value.
48              
49             If you want to send different messages for each transport protocol, set
50             the value of the C<MessageStructure> parameter to C<json> and use a
51             JSON object for the C<Message> parameter.
52              
53             Constraints: Messages must be UTF-8 encoded strings at most 256 KB in
54             size (262144 bytes, not 262144 characters).
55              
56             JSON-specific constraints:
57              
58             =over
59              
60             =item *
61              
62             Keys in the JSON object that correspond to supported transport
63             protocols must have simple JSON string values.
64              
65             =item *
66              
67             The values will be parsed (unescaped) before they are used in outgoing
68             messages.
69              
70             =item *
71              
72             Outbound notifications are JSON encoded (meaning that the characters
73             will be reescaped for sending).
74              
75             =item *
76              
77             Values have a minimum length of 0 (the empty string, "", is allowed).
78              
79             =item *
80              
81             Values have a maximum length bounded by the overall message size (so,
82             including multiple protocols may limit message sizes).
83              
84             =item *
85              
86             Non-string values will cause the key to be ignored.
87              
88             =item *
89              
90             Keys that do not correspond to supported transport protocols are
91             ignored.
92              
93             =item *
94              
95             Duplicate keys are not allowed.
96              
97             =item *
98              
99             Failure to parse or validate any key or value in the message will cause
100             the C<Publish> call to return an error (no partial delivery).
101              
102             =back
103              
104              
105              
106              
107             =head2 MessageAttributes => L<Paws::SNS::MessageAttributeMap>
108              
109             Message attributes for Publish action.
110              
111              
112              
113             =head2 MessageStructure => Str
114              
115             Set C<MessageStructure> to C<json> if you want to send a different
116             message for each protocol. For example, using one publish action, you
117             can send a short message to your SMS subscribers and a longer message
118             to your email subscribers. If you set C<MessageStructure> to C<json>,
119             the value of the C<Message> parameter must:
120              
121             =over
122              
123             =item *
124              
125             be a syntactically valid JSON object; and
126              
127             =item *
128              
129             contain at least a top-level JSON key of "default" with a value that is
130             a string.
131              
132             =back
133              
134             You can define other top-level keys that define the message you want to
135             send to a specific transport protocol (e.g., "http").
136              
137             For information about sending different messages for each protocol
138             using the AWS Management Console, go to Create Different Messages for
139             Each Protocol in the I<Amazon Simple Notification Service Getting
140             Started Guide>.
141              
142             Valid value: C<json>
143              
144              
145              
146             =head2 PhoneNumber => Str
147              
148             The phone number to which you want to deliver an SMS message. Use E.164
149             format.
150              
151             If you don't specify a value for the C<PhoneNumber> parameter, you must
152             specify a value for the C<TargetArn> or C<TopicArn> parameters.
153              
154              
155              
156             =head2 Subject => Str
157              
158             Optional parameter to be used as the "Subject" line when the message is
159             delivered to email endpoints. This field will also be included, if
160             present, in the standard JSON messages delivered to other endpoints.
161              
162             Constraints: Subjects must be ASCII text that begins with a letter,
163             number, or punctuation mark; must not include line breaks or control
164             characters; and must be less than 100 characters long.
165              
166              
167              
168             =head2 TargetArn => Str
169              
170             Either TopicArn or EndpointArn, but not both.
171              
172             If you don't specify a value for the C<TargetArn> parameter, you must
173             specify a value for the C<PhoneNumber> or C<TopicArn> parameters.
174              
175              
176              
177             =head2 TopicArn => Str
178              
179             The topic you want to publish to.
180              
181             If you don't specify a value for the C<TopicArn> parameter, you must
182             specify a value for the C<PhoneNumber> or C<TargetArn> parameters.
183              
184              
185              
186              
187             =head1 SEE ALSO
188              
189             This class forms part of L<Paws>, documenting arguments for method Publish in L<Paws::SNS>
190              
191             =head1 BUGS and CONTRIBUTIONS
192              
193             The source code is located here: https://github.com/pplu/aws-sdk-perl
194              
195             Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues
196              
197             =cut
198