/* * Copyright 2018-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 javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** *

* Input for Publish action. *

* * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class PublishRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* 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. *

*/ private String topicArn; /** *

* If you don't specify a value for the TargetArn parameter, you must specify a value for the * PhoneNumber or TopicArn parameters. *

*/ private String targetArn; /** *

* 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. *

*/ private String phoneNumber; /** *

* 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: *

* *

* JSON-specific constraints: *

* */ private String message; /** *

* 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: *

* *

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

*/ private String messageStructure; /** *

* Message attributes for Publish action. *

*/ private com.amazonaws.internal.SdkInternalMap messageAttributes; /** *

* 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. *

*/ private String messageDeduplicationId; /** *

* 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. *

*/ private String messageGroupId; /** * Default constructor for PublishRequest object. Callers should use the setter or fluent setter (with...) methods * to initialize the object after creating it. */ public PublishRequest() { } /** * Constructs a new PublishRequest object. Callers should use the setter or fluent setter (with...) methods to * initialize any additional object members. * * @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. * @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: *

* *

* JSON-specific constraints: *

*