/* * Copyright 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. */ /* * Do not modify this file. This file is generated from the sns-2010-03-31.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.SimpleNotificationService.Model { /// /// Contains the details of a single Amazon SNS message along with an Id /// that identifies a message within the batch. /// public partial class PublishBatchRequestEntry { private string _id; private string _message; private Dictionary _messageAttributes = new Dictionary(); private string _messageDeduplicationId; private string _messageGroupId; private string _messageStructure; private string _subject; /// /// Gets and sets the property Id. /// /// An identifier for the message in this batch. /// /// /// /// The Ids of a batch request must be unique within a request. /// /// /// /// This identifier can have up to 80 characters. The following characters are accepted: /// alphanumeric characters, hyphens(-), and underscores (_). /// /// /// [AWSProperty(Required=true)] public string Id { get { return this._id; } set { this._id = value; } } // Check to see if Id property is set internal bool IsSetId() { return this._id != null; } /// /// Gets and sets the property Message. /// /// The body of the message. /// /// [AWSProperty(Required=true)] public string Message { get { return this._message; } set { this._message = value; } } // Check to see if Message property is set internal bool IsSetMessage() { return this._message != null; } /// /// Gets and sets the property MessageAttributes. /// /// Each message attribute consists of a Name, Type, and Value. /// For more information, see Amazon /// SNS message attributes in the Amazon SNS Developer Guide. /// /// public Dictionary MessageAttributes { get { return this._messageAttributes; } set { this._messageAttributes = value; } } // Check to see if MessageAttributes property is set internal bool IsSetMessageAttributes() { return this._messageAttributes != null && this._messageAttributes.Count > 0; } /// /// Gets and sets the property MessageDeduplicationId. /// /// This parameter applies only to FIFO (first-in-first-out) topics. /// /// /// /// The token used for deduplication of messages within a 5-minute minimum deduplication /// interval. If a message with a particular MessageDeduplicationId is sent /// successfully, subsequent messages with the same MessageDeduplicationId /// are accepted successfully but aren't delivered. /// ///
  • /// /// Every message must have a unique MessageDeduplicationId. /// ///
    • /// /// You may provide a MessageDeduplicationId explicitly. /// ///
    • /// /// If you aren't able to provide a MessageDeduplicationId and you enable /// ContentBasedDeduplication for your topic, Amazon SNS uses a SHA-256 hash /// to generate the MessageDeduplicationId using the body of the message /// (but not the attributes of the message). /// ///
    • /// /// If you don't provide a MessageDeduplicationId and the topic doesn't have /// ContentBasedDeduplication set, the action fails with an error. /// ///
    • /// /// If the topic has a ContentBasedDeduplication set, your MessageDeduplicationId /// overrides the generated one. /// ///
  • /// /// When ContentBasedDeduplication is in effect, messages with identical /// content sent within the deduplication interval are treated as duplicates and only /// one copy of the message is delivered. /// ///
  • /// /// If you send one message with ContentBasedDeduplication enabled, and then /// another message with a MessageDeduplicationId that is the same as the /// one generated for the first MessageDeduplicationId, the two messages /// are treated as duplicates and only one copy of the message is delivered. /// ///
/// /// The MessageDeduplicationId is available to the consumer of the message /// (this can be useful for troubleshooting delivery issues). /// /// /// /// If a message is sent successfully but the acknowledgement is lost and the message /// is resent with the same MessageDeduplicationId after the deduplication /// interval, Amazon SNS can't detect duplicate messages. /// /// /// /// Amazon SNS continues to keep track of the message deduplication ID even after the /// message is received and deleted. /// /// /// /// The length of MessageDeduplicationId is 128 characters. /// /// /// /// MessageDeduplicationId can contain alphanumeric characters (a-z, /// A-Z, 0-9) and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). /// ///
public string MessageDeduplicationId { get { return this._messageDeduplicationId; } set { this._messageDeduplicationId = value; } } // Check to see if MessageDeduplicationId property is set internal bool IsSetMessageDeduplicationId() { return this._messageDeduplicationId != null; } /// /// Gets and sets the property MessageGroupId. /// /// This parameter applies only to FIFO (first-in-first-out) topics. /// /// /// /// The 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). To interleave multiple /// ordered streams within a single topic, use MessageGroupId values (for /// example, session data for multiple users). In this scenario, multiple consumers can /// process the topic, but the session data of each user is processed in a FIFO fashion. /// /// /// /// /// You must associate a non-empty MessageGroupId with a message. If you /// don't provide a MessageGroupId, the action fails. /// /// /// /// The length of MessageGroupId is 128 characters. /// /// /// /// MessageGroupId can contain alphanumeric characters (a-z, A-Z, /// 0-9) and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). /// /// /// /// MessageGroupId is required for FIFO topics. You can't use it for standard /// topics. /// /// /// public string MessageGroupId { get { return this._messageGroupId; } set { this._messageGroupId = value; } } // Check to see if MessageGroupId property is set internal bool IsSetMessageGroupId() { return this._messageGroupId != null; } /// /// Gets and sets the property 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). /// ///
public string MessageStructure { get { return this._messageStructure; } set { this._messageStructure = value; } } // Check to see if MessageStructure property is set internal bool IsSetMessageStructure() { return this._messageStructure != null; } /// /// Gets and sets the property Subject. /// /// The subject of the batch message. /// /// public string Subject { get { return this._subject; } set { this._subject = value; } } // Check to see if Subject property is set internal bool IsSetSubject() { return this._subject != null; } } }