/* * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.amazonaws.services.sns.model; import java.io.Serializable; import com.amazonaws.AmazonWebServiceRequest; /** *
* Sends a message to an Amazon SNS topic, a text message (SMS message) directly
* to a phone number, or a message to a mobile platform endpoint (when you
* specify the TargetArn
).
*
* If you send a message to a topic, Amazon SNS delivers the message to each * endpoint that is subscribed to the topic. The format of the message depends * on the notification protocol for each subscribed endpoint. *
*
* When a messageId
is returned, the message is saved and Amazon
* SNS immediately delivers it to subscribers.
*
* To use the Publish
action for publishing a message to a mobile
* endpoint, such as an app on a Kindle device or mobile phone, you must specify
* the EndpointArn for the TargetArn parameter. The EndpointArn is returned when
* making a call with the CreatePlatformEndpoint
action.
*
* For more information about formatting messages, see Send Custom Platform-Specific Payloads in Messages to Mobile Devices. *
** You can publish messages only to topics and endpoints in the same Amazon Web * Services Region. *
** The topic you want to publish to. *
*
* If you don't specify a value for the TopicArn
parameter, you
* must specify a value for the PhoneNumber
or
* TargetArn
parameters.
*
* If you don't specify a value for the TargetArn
parameter,
* you must specify a value for the PhoneNumber
or
* TopicArn
parameters.
*
* The phone number to which you want to deliver an SMS message. Use E.164 * format. *
*
* If you don't specify a value for the PhoneNumber
parameter,
* you must specify a value for the TargetArn
or
* TopicArn
parameters.
*
* The message you want to send. *
*
* If you are publishing to a topic and you want to send the same message to
* all transport protocols, include the text of the message as a String
* value. If you want to send different messages for each transport
* protocol, set the value of the MessageStructure
parameter to
* json
and use a JSON object for the Message
* parameter.
*
* Constraints: *
** With the exception of SMS, messages must be UTF-8 encoded strings and at * most 256 KB in size (262,144 bytes, not 262,144 characters). *
** For SMS, each message can contain up to 140 characters. This character * limit depends on the encoding schema. For example, an SMS message can * contain 160 GSM characters, 140 ASCII characters, or 70 UCS-2 characters. *
** If you publish a message that exceeds this size limit, Amazon SNS sends * the message as multiple messages, each fitting within the size limit. * Messages aren't truncated mid-word but are cut off at whole-word * boundaries. *
*
* The total size limit for a single SMS Publish
action is
* 1,600 characters.
*
* JSON-specific constraints: *
** Keys in the JSON object that correspond to supported transport protocols * must have simple JSON string values. *
** The values will be parsed (unescaped) before they are used in outgoing * messages. *
** Outbound notifications are JSON encoded (meaning that the characters will * be reescaped for sending). *
** Values have a minimum length of 0 (the empty string, "", is allowed). *
** Values have a maximum length bounded by the overall message size (so, * including multiple protocols may limit message sizes). *
** Non-string values will cause the key to be ignored. *
** Keys that do not correspond to supported transport protocols are ignored. *
** Duplicate keys are not allowed. *
*
* Failure to parse or validate any key or value in the message will cause
* the Publish
call to return an error (no partial delivery).
*
* Optional parameter to be used as the "Subject" line when the message is * delivered to email endpoints. This field will also be included, if * present, in the standard JSON messages delivered to other endpoints. *
** Constraints: Subjects must be ASCII text that begins with a letter, * number, or punctuation mark; must not include line breaks or control * characters; and must be less than 100 characters long. *
*/ private String subject; /** *
* Set MessageStructure
to json
if you want to
* send a different message for each protocol. For example, using one
* publish action, you can send a short message to your SMS subscribers and
* a longer message to your email subscribers. If you set
* MessageStructure
to json
, the value of the
* Message
parameter must:
*
* be a syntactically valid JSON object; and *
** contain at least a top-level JSON key of "default" with a value that is a * string. *
** You can define other top-level keys that define the message you want to * send to a specific transport protocol (e.g., "http"). *
*
* Valid value: json
*
* Message attributes for Publish action. *
*/ private java.util.Map
* This parameter applies only to FIFO (first-in-first-out) topics. The
* MessageDeduplicationId
can contain up to 128 alphanumeric
* characters (a-z, A-Z, 0-9)
and punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
*
* Every message must have a unique MessageDeduplicationId
,
* which is a token used for deduplication of sent messages. If a message
* with a particular MessageDeduplicationId
is sent
* successfully, any message sent with the same
* MessageDeduplicationId
during the 5-minute deduplication
* interval is treated as a duplicate.
*
* If the topic has ContentBasedDeduplication
set, the system
* generates a MessageDeduplicationId
based on the contents of
* the message. Your MessageDeduplicationId
overrides the
* generated one.
*
* This parameter applies only to FIFO (first-in-first-out) topics. The
* MessageGroupId
can contain up to 128 alphanumeric characters
* (a-z, A-Z, 0-9)
and punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
*
* The MessageGroupId
is a tag that specifies that a message
* belongs to a specific message group. Messages that belong to the same
* message group are processed in a FIFO manner (however, messages in
* different message groups might be processed out of order). Every message
* must include a MessageGroupId
.
*
* The topic you want to publish to. *
*
* If you don't specify a value for the TopicArn
* parameter, you must specify a value for the
* PhoneNumber
or TargetArn
parameters.
*
* The message you want to send. *
*
* If you are publishing to a topic and you want to send the same
* message to all transport protocols, include the text of the
* message as a String value. If you want to send different
* messages for each transport protocol, set the value of the
* MessageStructure
parameter to json
* and use a JSON object for the Message
parameter.
*
* Constraints: *
** With the exception of SMS, messages must be UTF-8 encoded * strings and at most 256 KB in size (262,144 bytes, not 262,144 * characters). *
** For SMS, each message can contain up to 140 characters. This * character limit depends on the encoding schema. For example, * an SMS message can contain 160 GSM characters, 140 ASCII * characters, or 70 UCS-2 characters. *
** If you publish a message that exceeds this size limit, Amazon * SNS sends the message as multiple messages, each fitting * within the size limit. Messages aren't truncated mid-word but * are cut off at whole-word boundaries. *
*
* The total size limit for a single SMS Publish
* action is 1,600 characters.
*
* JSON-specific constraints: *
** Keys in the JSON object that correspond to supported transport * protocols must have simple JSON string values. *
** The values will be parsed (unescaped) before they are used in * outgoing messages. *
** Outbound notifications are JSON encoded (meaning that the * characters will be reescaped for sending). *
** Values have a minimum length of 0 (the empty string, "", is * allowed). *
** Values have a maximum length bounded by the overall message * size (so, including multiple protocols may limit message * sizes). *
** Non-string values will cause the key to be ignored. *
** Keys that do not correspond to supported transport protocols * are ignored. *
** Duplicate keys are not allowed. *
*
* Failure to parse or validate any key or value in the message
* will cause the Publish
call to return an error
* (no partial delivery).
*
* The topic you want to publish to. *
*
* If you don't specify a value for the TopicArn
* parameter, you must specify a value for the
* PhoneNumber
or TargetArn
parameters.
*
* The message you want to send. *
*
* If you are publishing to a topic and you want to send the same
* message to all transport protocols, include the text of the
* message as a String value. If you want to send different
* messages for each transport protocol, set the value of the
* MessageStructure
parameter to json
* and use a JSON object for the Message
parameter.
*
* Constraints: *
** With the exception of SMS, messages must be UTF-8 encoded * strings and at most 256 KB in size (262,144 bytes, not 262,144 * characters). *
** For SMS, each message can contain up to 140 characters. This * character limit depends on the encoding schema. For example, * an SMS message can contain 160 GSM characters, 140 ASCII * characters, or 70 UCS-2 characters. *
** If you publish a message that exceeds this size limit, Amazon * SNS sends the message as multiple messages, each fitting * within the size limit. Messages aren't truncated mid-word but * are cut off at whole-word boundaries. *
*
* The total size limit for a single SMS Publish
* action is 1,600 characters.
*
* JSON-specific constraints: *
** Keys in the JSON object that correspond to supported transport * protocols must have simple JSON string values. *
** The values will be parsed (unescaped) before they are used in * outgoing messages. *
** Outbound notifications are JSON encoded (meaning that the * characters will be reescaped for sending). *
** Values have a minimum length of 0 (the empty string, "", is * allowed). *
** Values have a maximum length bounded by the overall message * size (so, including multiple protocols may limit message * sizes). *
** Non-string values will cause the key to be ignored. *
** Keys that do not correspond to supported transport protocols * are ignored. *
** Duplicate keys are not allowed. *
*
* Failure to parse or validate any key or value in the message
* will cause the Publish
call to return an error
* (no partial delivery).
*
* Optional parameter to be used as the "Subject" line when the * message is delivered to email endpoints. This field will also * be included, if present, in the standard JSON messages * delivered to other endpoints. *
** Constraints: Subjects must be ASCII text that begins with a * letter, number, or punctuation mark; must not include line * breaks or control characters; and must be less than 100 * characters long. *
*/ public PublishRequest(String topicArn, String message, String subject) { setTopicArn(topicArn); setMessage(message); setSubject(subject); } /** ** The topic you want to publish to. *
*
* If you don't specify a value for the TopicArn
parameter, you
* must specify a value for the PhoneNumber
or
* TargetArn
parameters.
*
* The topic you want to publish to. *
*
* If you don't specify a value for the TopicArn
* parameter, you must specify a value for the
* PhoneNumber
or TargetArn
parameters.
*
* The topic you want to publish to. *
*
* If you don't specify a value for the TopicArn
parameter, you
* must specify a value for the PhoneNumber
or
* TargetArn
parameters.
*
* The topic you want to publish to. *
*
* If you don't specify a value for the TopicArn
* parameter, you must specify a value for the
* PhoneNumber
or TargetArn
parameters.
*
* The topic you want to publish to. *
*
* If you don't specify a value for the TopicArn
parameter, you
* must specify a value for the PhoneNumber
or
* TargetArn
parameters.
*
* Returns a reference to this object so that method calls can be chained * together. * * @param topicArn
* The topic you want to publish to. *
*
* If you don't specify a value for the TopicArn
* parameter, you must specify a value for the
* PhoneNumber
or TargetArn
parameters.
*
* If you don't specify a value for the TargetArn
parameter,
* you must specify a value for the PhoneNumber
or
* TopicArn
parameters.
*
* If you don't specify a value for the TargetArn
* parameter, you must specify a value for the
* PhoneNumber
or TopicArn
parameters.
*
* If you don't specify a value for the TargetArn
parameter,
* you must specify a value for the PhoneNumber
or
* TopicArn
parameters.
*
* If you don't specify a value for the TargetArn
* parameter, you must specify a value for the
* PhoneNumber
or TopicArn
parameters.
*
* If you don't specify a value for the TargetArn
parameter,
* you must specify a value for the PhoneNumber
or
* TopicArn
parameters.
*
* Returns a reference to this object so that method calls can be chained * together. * * @param targetArn
* If you don't specify a value for the TargetArn
* parameter, you must specify a value for the
* PhoneNumber
or TopicArn
parameters.
*
* The phone number to which you want to deliver an SMS message. Use E.164 * format. *
*
* If you don't specify a value for the PhoneNumber
parameter,
* you must specify a value for the TargetArn
or
* TopicArn
parameters.
*
* The phone number to which you want to deliver an SMS message. Use * E.164 format. *
*
* If you don't specify a value for the PhoneNumber
* parameter, you must specify a value for the
* TargetArn
or TopicArn
parameters.
*
* The phone number to which you want to deliver an SMS message. Use E.164 * format. *
*
* If you don't specify a value for the PhoneNumber
parameter,
* you must specify a value for the TargetArn
or
* TopicArn
parameters.
*
* The phone number to which you want to deliver an SMS message. * Use E.164 format. *
*
* If you don't specify a value for the PhoneNumber
* parameter, you must specify a value for the
* TargetArn
or TopicArn
parameters.
*
* The phone number to which you want to deliver an SMS message. Use E.164 * format. *
*
* If you don't specify a value for the PhoneNumber
parameter,
* you must specify a value for the TargetArn
or
* TopicArn
parameters.
*
* Returns a reference to this object so that method calls can be chained * together. * * @param phoneNumber
* The phone number to which you want to deliver an SMS message. * Use E.164 format. *
*
* If you don't specify a value for the PhoneNumber
* parameter, you must specify a value for the
* TargetArn
or TopicArn
parameters.
*
* The message you want to send. *
*
* If you are publishing to a topic and you want to send the same message to
* all transport protocols, include the text of the message as a String
* value. If you want to send different messages for each transport
* protocol, set the value of the MessageStructure
parameter to
* json
and use a JSON object for the Message
* parameter.
*
* Constraints: *
** With the exception of SMS, messages must be UTF-8 encoded strings and at * most 256 KB in size (262,144 bytes, not 262,144 characters). *
** For SMS, each message can contain up to 140 characters. This character * limit depends on the encoding schema. For example, an SMS message can * contain 160 GSM characters, 140 ASCII characters, or 70 UCS-2 characters. *
** If you publish a message that exceeds this size limit, Amazon SNS sends * the message as multiple messages, each fitting within the size limit. * Messages aren't truncated mid-word but are cut off at whole-word * boundaries. *
*
* The total size limit for a single SMS Publish
action is
* 1,600 characters.
*
* JSON-specific constraints: *
** Keys in the JSON object that correspond to supported transport protocols * must have simple JSON string values. *
** The values will be parsed (unescaped) before they are used in outgoing * messages. *
** Outbound notifications are JSON encoded (meaning that the characters will * be reescaped for sending). *
** Values have a minimum length of 0 (the empty string, "", is allowed). *
** Values have a maximum length bounded by the overall message size (so, * including multiple protocols may limit message sizes). *
** Non-string values will cause the key to be ignored. *
** Keys that do not correspond to supported transport protocols are ignored. *
** Duplicate keys are not allowed. *
*
* Failure to parse or validate any key or value in the message will cause
* the Publish
call to return an error (no partial delivery).
*
* The message you want to send. *
*
* If you are publishing to a topic and you want to send the same
* message to all transport protocols, include the text of the
* message as a String value. If you want to send different messages
* for each transport protocol, set the value of the
* MessageStructure
parameter to json
and
* use a JSON object for the Message
parameter.
*
* Constraints: *
** With the exception of SMS, messages must be UTF-8 encoded strings * and at most 256 KB in size (262,144 bytes, not 262,144 * characters). *
** For SMS, each message can contain up to 140 characters. This * character limit depends on the encoding schema. For example, an * SMS message can contain 160 GSM characters, 140 ASCII characters, * or 70 UCS-2 characters. *
** If you publish a message that exceeds this size limit, Amazon SNS * sends the message as multiple messages, each fitting within the * size limit. Messages aren't truncated mid-word but are cut off at * whole-word boundaries. *
*
* The total size limit for a single SMS Publish
action
* is 1,600 characters.
*
* JSON-specific constraints: *
** Keys in the JSON object that correspond to supported transport * protocols must have simple JSON string values. *
** The values will be parsed (unescaped) before they are used in * outgoing messages. *
** Outbound notifications are JSON encoded (meaning that the * characters will be reescaped for sending). *
** Values have a minimum length of 0 (the empty string, "", is * allowed). *
** Values have a maximum length bounded by the overall message size * (so, including multiple protocols may limit message sizes). *
** Non-string values will cause the key to be ignored. *
** Keys that do not correspond to supported transport protocols are * ignored. *
** Duplicate keys are not allowed. *
*
* Failure to parse or validate any key or value in the message will
* cause the Publish
call to return an error (no
* partial delivery).
*
* The message you want to send. *
*
* If you are publishing to a topic and you want to send the same message to
* all transport protocols, include the text of the message as a String
* value. If you want to send different messages for each transport
* protocol, set the value of the MessageStructure
parameter to
* json
and use a JSON object for the Message
* parameter.
*
* Constraints: *
** With the exception of SMS, messages must be UTF-8 encoded strings and at * most 256 KB in size (262,144 bytes, not 262,144 characters). *
** For SMS, each message can contain up to 140 characters. This character * limit depends on the encoding schema. For example, an SMS message can * contain 160 GSM characters, 140 ASCII characters, or 70 UCS-2 characters. *
** If you publish a message that exceeds this size limit, Amazon SNS sends * the message as multiple messages, each fitting within the size limit. * Messages aren't truncated mid-word but are cut off at whole-word * boundaries. *
*
* The total size limit for a single SMS Publish
action is
* 1,600 characters.
*
* JSON-specific constraints: *
** Keys in the JSON object that correspond to supported transport protocols * must have simple JSON string values. *
** The values will be parsed (unescaped) before they are used in outgoing * messages. *
** Outbound notifications are JSON encoded (meaning that the characters will * be reescaped for sending). *
** Values have a minimum length of 0 (the empty string, "", is allowed). *
** Values have a maximum length bounded by the overall message size (so, * including multiple protocols may limit message sizes). *
** Non-string values will cause the key to be ignored. *
** Keys that do not correspond to supported transport protocols are ignored. *
** Duplicate keys are not allowed. *
*
* Failure to parse or validate any key or value in the message will cause
* the Publish
call to return an error (no partial delivery).
*
* The message you want to send. *
*
* If you are publishing to a topic and you want to send the same
* message to all transport protocols, include the text of the
* message as a String value. If you want to send different
* messages for each transport protocol, set the value of the
* MessageStructure
parameter to json
* and use a JSON object for the Message
parameter.
*
* Constraints: *
** With the exception of SMS, messages must be UTF-8 encoded * strings and at most 256 KB in size (262,144 bytes, not 262,144 * characters). *
** For SMS, each message can contain up to 140 characters. This * character limit depends on the encoding schema. For example, * an SMS message can contain 160 GSM characters, 140 ASCII * characters, or 70 UCS-2 characters. *
** If you publish a message that exceeds this size limit, Amazon * SNS sends the message as multiple messages, each fitting * within the size limit. Messages aren't truncated mid-word but * are cut off at whole-word boundaries. *
*
* The total size limit for a single SMS Publish
* action is 1,600 characters.
*
* JSON-specific constraints: *
** Keys in the JSON object that correspond to supported transport * protocols must have simple JSON string values. *
** The values will be parsed (unescaped) before they are used in * outgoing messages. *
** Outbound notifications are JSON encoded (meaning that the * characters will be reescaped for sending). *
** Values have a minimum length of 0 (the empty string, "", is * allowed). *
** Values have a maximum length bounded by the overall message * size (so, including multiple protocols may limit message * sizes). *
** Non-string values will cause the key to be ignored. *
** Keys that do not correspond to supported transport protocols * are ignored. *
** Duplicate keys are not allowed. *
*
* Failure to parse or validate any key or value in the message
* will cause the Publish
call to return an error
* (no partial delivery).
*
* The message you want to send. *
*
* If you are publishing to a topic and you want to send the same message to
* all transport protocols, include the text of the message as a String
* value. If you want to send different messages for each transport
* protocol, set the value of the MessageStructure
parameter to
* json
and use a JSON object for the Message
* parameter.
*
* Constraints: *
** With the exception of SMS, messages must be UTF-8 encoded strings and at * most 256 KB in size (262,144 bytes, not 262,144 characters). *
** For SMS, each message can contain up to 140 characters. This character * limit depends on the encoding schema. For example, an SMS message can * contain 160 GSM characters, 140 ASCII characters, or 70 UCS-2 characters. *
** If you publish a message that exceeds this size limit, Amazon SNS sends * the message as multiple messages, each fitting within the size limit. * Messages aren't truncated mid-word but are cut off at whole-word * boundaries. *
*
* The total size limit for a single SMS Publish
action is
* 1,600 characters.
*
* JSON-specific constraints: *
** Keys in the JSON object that correspond to supported transport protocols * must have simple JSON string values. *
** The values will be parsed (unescaped) before they are used in outgoing * messages. *
** Outbound notifications are JSON encoded (meaning that the characters will * be reescaped for sending). *
** Values have a minimum length of 0 (the empty string, "", is allowed). *
** Values have a maximum length bounded by the overall message size (so, * including multiple protocols may limit message sizes). *
** Non-string values will cause the key to be ignored. *
** Keys that do not correspond to supported transport protocols are ignored. *
** Duplicate keys are not allowed. *
*
* Failure to parse or validate any key or value in the message will cause
* the Publish
call to return an error (no partial delivery).
*
* Returns a reference to this object so that method calls can be chained * together. * * @param message
* The message you want to send. *
*
* If you are publishing to a topic and you want to send the same
* message to all transport protocols, include the text of the
* message as a String value. If you want to send different
* messages for each transport protocol, set the value of the
* MessageStructure
parameter to json
* and use a JSON object for the Message
parameter.
*
* Constraints: *
** With the exception of SMS, messages must be UTF-8 encoded * strings and at most 256 KB in size (262,144 bytes, not 262,144 * characters). *
** For SMS, each message can contain up to 140 characters. This * character limit depends on the encoding schema. For example, * an SMS message can contain 160 GSM characters, 140 ASCII * characters, or 70 UCS-2 characters. *
** If you publish a message that exceeds this size limit, Amazon * SNS sends the message as multiple messages, each fitting * within the size limit. Messages aren't truncated mid-word but * are cut off at whole-word boundaries. *
*
* The total size limit for a single SMS Publish
* action is 1,600 characters.
*
* JSON-specific constraints: *
** Keys in the JSON object that correspond to supported transport * protocols must have simple JSON string values. *
** The values will be parsed (unescaped) before they are used in * outgoing messages. *
** Outbound notifications are JSON encoded (meaning that the * characters will be reescaped for sending). *
** Values have a minimum length of 0 (the empty string, "", is * allowed). *
** Values have a maximum length bounded by the overall message * size (so, including multiple protocols may limit message * sizes). *
** Non-string values will cause the key to be ignored. *
** Keys that do not correspond to supported transport protocols * are ignored. *
** Duplicate keys are not allowed. *
*
* Failure to parse or validate any key or value in the message
* will cause the Publish
call to return an error
* (no partial delivery).
*
* Optional parameter to be used as the "Subject" line when the message is * delivered to email endpoints. This field will also be included, if * present, in the standard JSON messages delivered to other endpoints. *
** Constraints: Subjects must be ASCII text that begins with a letter, * number, or punctuation mark; must not include line breaks or control * characters; and must be less than 100 characters long. *
* * @return* Optional parameter to be used as the "Subject" line when the * message is delivered to email endpoints. This field will also be * included, if present, in the standard JSON messages delivered to * other endpoints. *
** Constraints: Subjects must be ASCII text that begins with a * letter, number, or punctuation mark; must not include line breaks * or control characters; and must be less than 100 characters long. *
*/ public String getSubject() { return subject; } /** ** Optional parameter to be used as the "Subject" line when the message is * delivered to email endpoints. This field will also be included, if * present, in the standard JSON messages delivered to other endpoints. *
** Constraints: Subjects must be ASCII text that begins with a letter, * number, or punctuation mark; must not include line breaks or control * characters; and must be less than 100 characters long. *
* * @param subject* Optional parameter to be used as the "Subject" line when the * message is delivered to email endpoints. This field will also * be included, if present, in the standard JSON messages * delivered to other endpoints. *
** Constraints: Subjects must be ASCII text that begins with a * letter, number, or punctuation mark; must not include line * breaks or control characters; and must be less than 100 * characters long. *
*/ public void setSubject(String subject) { this.subject = subject; } /** ** Optional parameter to be used as the "Subject" line when the message is * delivered to email endpoints. This field will also be included, if * present, in the standard JSON messages delivered to other endpoints. *
** Constraints: Subjects must be ASCII text that begins with a letter, * number, or punctuation mark; must not include line breaks or control * characters; and must be less than 100 characters long. *
** Returns a reference to this object so that method calls can be chained * together. * * @param subject
* Optional parameter to be used as the "Subject" line when the * message is delivered to email endpoints. This field will also * be included, if present, in the standard JSON messages * delivered to other endpoints. *
** Constraints: Subjects must be ASCII text that begins with a * letter, number, or punctuation mark; must not include line * breaks or control characters; and must be less than 100 * characters long. *
* @return A reference to this updated object so that method calls can be * chained together. */ public PublishRequest withSubject(String subject) { this.subject = subject; return this; } /** *
* Set MessageStructure
to json
if you want to
* send a different message for each protocol. For example, using one
* publish action, you can send a short message to your SMS subscribers and
* a longer message to your email subscribers. If you set
* MessageStructure
to json
, the value of the
* Message
parameter must:
*
* be a syntactically valid JSON object; and *
** contain at least a top-level JSON key of "default" with a value that is a * string. *
** You can define other top-level keys that define the message you want to * send to a specific transport protocol (e.g., "http"). *
*
* Valid value: json
*
* Set MessageStructure
to json
if you
* want to send a different message for each protocol. For example,
* using one publish action, you can send a short message to your
* SMS subscribers and a longer message to your email subscribers.
* If you set MessageStructure
to json
,
* the value of the Message
parameter must:
*
* be a syntactically valid JSON object; and *
** contain at least a top-level JSON key of "default" with a value * that is a string. *
** You can define other top-level keys that define the message you * want to send to a specific transport protocol (e.g., "http"). *
*
* Valid value: json
*
* Set MessageStructure
to json
if you want to
* send a different message for each protocol. For example, using one
* publish action, you can send a short message to your SMS subscribers and
* a longer message to your email subscribers. If you set
* MessageStructure
to json
, the value of the
* Message
parameter must:
*
* be a syntactically valid JSON object; and *
** contain at least a top-level JSON key of "default" with a value that is a * string. *
** You can define other top-level keys that define the message you want to * send to a specific transport protocol (e.g., "http"). *
*
* Valid value: json
*
* Set MessageStructure
to json
if you
* want to send a different message for each protocol. For
* example, using one publish action, you can send a short
* message to your SMS subscribers and a longer message to your
* email subscribers. If you set MessageStructure
to
* json
, the value of the Message
* parameter must:
*
* be a syntactically valid JSON object; and *
** contain at least a top-level JSON key of "default" with a * value that is a string. *
** You can define other top-level keys that define the message * you want to send to a specific transport protocol (e.g., * "http"). *
*
* Valid value: json
*
* Set MessageStructure
to json
if you want to
* send a different message for each protocol. For example, using one
* publish action, you can send a short message to your SMS subscribers and
* a longer message to your email subscribers. If you set
* MessageStructure
to json
, the value of the
* Message
parameter must:
*
* be a syntactically valid JSON object; and *
** contain at least a top-level JSON key of "default" with a value that is a * string. *
** You can define other top-level keys that define the message you want to * send to a specific transport protocol (e.g., "http"). *
*
* Valid value: json
*
* Returns a reference to this object so that method calls can be chained * together. * * @param messageStructure
* Set MessageStructure
to json
if you
* want to send a different message for each protocol. For
* example, using one publish action, you can send a short
* message to your SMS subscribers and a longer message to your
* email subscribers. If you set MessageStructure
to
* json
, the value of the Message
* parameter must:
*
* be a syntactically valid JSON object; and *
** contain at least a top-level JSON key of "default" with a * value that is a string. *
** You can define other top-level keys that define the message * you want to send to a specific transport protocol (e.g., * "http"). *
*
* Valid value: json
*
* Message attributes for Publish action. *
* * @return* Message attributes for Publish action. *
*/ public java.util.Map* Message attributes for Publish action. *
* * @param messageAttributes* Message attributes for Publish action. *
*/ public void setMessageAttributes(java.util.Map* Message attributes for Publish action. *
** Returns a reference to this object so that method calls can be chained * together. * * @param messageAttributes
* Message attributes for Publish action. *
* @return A reference to this updated object so that method calls can be * chained together. */ public PublishRequest withMessageAttributes( java.util.Map* Message attributes for Publish action. *
*
* The method adds a new key-value pair into MessageAttributes parameter,
* and returns a reference to this object so that method calls can be
* chained together.
*
* @param key The key of the entry to be added into MessageAttributes.
* @param value The corresponding value of the entry to be added into
* MessageAttributes.
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public PublishRequest addMessageAttributesEntry(String key, MessageAttributeValue value) {
if (null == this.messageAttributes) {
this.messageAttributes = new java.util.HashMap
* Returns a reference to this object so that method calls can be chained
* together.
*/
public PublishRequest clearMessageAttributesEntries() {
this.messageAttributes = null;
return this;
}
/**
*
* This parameter applies only to FIFO (first-in-first-out) topics. The
*
* Every message must have a unique
* If the topic has
* This parameter applies only to FIFO (first-in-first-out) topics.
* The
* Every message must have a unique
*
* If the topic has
* This parameter applies only to FIFO (first-in-first-out) topics. The
*
* Every message must have a unique
* If the topic has
* This parameter applies only to FIFO (first-in-first-out)
* topics. The
* Every message must have a unique
*
* If the topic has
* This parameter applies only to FIFO (first-in-first-out) topics. The
*
* Every message must have a unique
* If the topic has
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param messageDeduplicationId
* This parameter applies only to FIFO (first-in-first-out)
* topics. The
* Every message must have a unique
*
* If the topic has
* This parameter applies only to FIFO (first-in-first-out) topics. The
*
* The
* This parameter applies only to FIFO (first-in-first-out) topics.
* The
* The
* This parameter applies only to FIFO (first-in-first-out) topics. The
*
* The
* This parameter applies only to FIFO (first-in-first-out)
* topics. The
* The
* This parameter applies only to FIFO (first-in-first-out) topics. The
*
* The
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param messageGroupId
* This parameter applies only to FIFO (first-in-first-out)
* topics. The
* The MessageDeduplicationId
can contain up to 128 alphanumeric
* characters (a-z, A-Z, 0-9)
and punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
* MessageDeduplicationId
,
* which is a token used for deduplication of sent messages. If a message
* with a particular MessageDeduplicationId
is sent
* successfully, any message sent with the same
* MessageDeduplicationId
during the 5-minute deduplication
* interval is treated as a duplicate.
* ContentBasedDeduplication
set, the system
* generates a MessageDeduplicationId
based on the contents of
* the message. Your MessageDeduplicationId
overrides the
* generated one.
* MessageDeduplicationId
can contain up to 128
* alphanumeric characters (a-z, A-Z, 0-9)
and
* punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
* MessageDeduplicationId
, which is a token used for
* deduplication of sent messages. If a message with a particular
* MessageDeduplicationId
is sent successfully, any
* message sent with the same MessageDeduplicationId
* during the 5-minute deduplication interval is treated as a
* duplicate.
* ContentBasedDeduplication
set, the
* system generates a MessageDeduplicationId
based on
* the contents of the message. Your
* MessageDeduplicationId
overrides the generated one.
* MessageDeduplicationId
can contain up to 128 alphanumeric
* characters (a-z, A-Z, 0-9)
and punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
* MessageDeduplicationId
,
* which is a token used for deduplication of sent messages. If a message
* with a particular MessageDeduplicationId
is sent
* successfully, any message sent with the same
* MessageDeduplicationId
during the 5-minute deduplication
* interval is treated as a duplicate.
* ContentBasedDeduplication
set, the system
* generates a MessageDeduplicationId
based on the contents of
* the message. Your MessageDeduplicationId
overrides the
* generated one.
* MessageDeduplicationId
can contain up
* to 128 alphanumeric characters (a-z, A-Z, 0-9)
* and punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
* MessageDeduplicationId
, which is a token used for
* deduplication of sent messages. If a message with a particular
* MessageDeduplicationId
is sent successfully, any
* message sent with the same MessageDeduplicationId
* during the 5-minute deduplication interval is treated as a
* duplicate.
* ContentBasedDeduplication
set,
* the system generates a MessageDeduplicationId
* based on the contents of the message. Your
* MessageDeduplicationId
overrides the generated
* one.
* MessageDeduplicationId
can contain up to 128 alphanumeric
* characters (a-z, A-Z, 0-9)
and punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
* MessageDeduplicationId
,
* which is a token used for deduplication of sent messages. If a message
* with a particular MessageDeduplicationId
is sent
* successfully, any message sent with the same
* MessageDeduplicationId
during the 5-minute deduplication
* interval is treated as a duplicate.
* ContentBasedDeduplication
set, the system
* generates a MessageDeduplicationId
based on the contents of
* the message. Your MessageDeduplicationId
overrides the
* generated one.
* MessageDeduplicationId
can contain up
* to 128 alphanumeric characters (a-z, A-Z, 0-9)
* and punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
* MessageDeduplicationId
, which is a token used for
* deduplication of sent messages. If a message with a particular
* MessageDeduplicationId
is sent successfully, any
* message sent with the same MessageDeduplicationId
* during the 5-minute deduplication interval is treated as a
* duplicate.
* ContentBasedDeduplication
set,
* the system generates a MessageDeduplicationId
* based on the contents of the message. Your
* MessageDeduplicationId
overrides the generated
* one.
* MessageGroupId
can contain up to 128 alphanumeric characters
* (a-z, A-Z, 0-9)
and punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
* MessageGroupId
is a tag that specifies that a message
* belongs to a specific message group. Messages that belong to the same
* message group are processed in a FIFO manner (however, messages in
* different message groups might be processed out of order). Every message
* must include a MessageGroupId
.
* MessageGroupId
can contain up to 128
* alphanumeric characters (a-z, A-Z, 0-9)
and
* punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
* MessageGroupId
is a tag that specifies that a
* message belongs to a specific message group. Messages that belong
* to the same message group are processed in a FIFO manner
* (however, messages in different message groups might be processed
* out of order). Every message must include a
* MessageGroupId
.
* MessageGroupId
can contain up to 128 alphanumeric characters
* (a-z, A-Z, 0-9)
and punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
* MessageGroupId
is a tag that specifies that a message
* belongs to a specific message group. Messages that belong to the same
* message group are processed in a FIFO manner (however, messages in
* different message groups might be processed out of order). Every message
* must include a MessageGroupId
.
* MessageGroupId
can contain up to 128
* alphanumeric characters (a-z, A-Z, 0-9)
and
* punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
* MessageGroupId
is a tag that specifies that a
* message belongs to a specific message group. Messages that
* belong to the same message group are processed in a FIFO
* manner (however, messages in different message groups might be
* processed out of order). Every message must include a
* MessageGroupId
.
* MessageGroupId
can contain up to 128 alphanumeric characters
* (a-z, A-Z, 0-9)
and punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
* MessageGroupId
is a tag that specifies that a message
* belongs to a specific message group. Messages that belong to the same
* message group are processed in a FIFO manner (however, messages in
* different message groups might be processed out of order). Every message
* must include a MessageGroupId
.
* MessageGroupId
can contain up to 128
* alphanumeric characters (a-z, A-Z, 0-9)
and
* punctuation
* (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
.
* MessageGroupId
is a tag that specifies that a
* message belongs to a specific message group. Messages that
* belong to the same message group are processed in a FIFO
* manner (however, messages in different message groups might be
* processed out of order). Every message must include a
* MessageGroupId
.
*