/* * Copyright 2010-2014 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 sqs-2012-11-05.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.SQS.Model { /// /// Contains the details of a single Amazon SQS message along with an Id. /// public partial class SendMessageBatchRequestEntry { private int? _delaySeconds; private string _id; private Dictionary _messageAttributes = new Dictionary(); private string _messageBody; private string _messageDeduplicationId; private string _messageGroupId; private Dictionary _messageSystemAttributes = new Dictionary(); /// /// Empty constructor used to set properties independently even when a simple constructor is available /// public SendMessageBatchRequestEntry() { } /// /// Instantiates SendMessageBatchRequestEntry with the parameterized properties /// /// An identifier for a message in this batch used to communicate the result. The Ids of a batch request need to be unique within a request This identifier can have up to 80 characters. The following characters are accepted: alphanumeric characters, hyphens(-), and underscores (_). /// The body of the message. public SendMessageBatchRequestEntry(string id, string messageBody) { _id = id; _messageBody = messageBody; } /// /// Gets and sets the property DelaySeconds. /// /// The length of time, in seconds, for which a specific message is delayed. Valid values: /// 0 to 900. Maximum: 15 minutes. Messages with a positive DelaySeconds /// value become available for processing after the delay period is finished. If you don't /// specify a value, the default value for the queue is applied. /// /// /// /// When you set FifoQueue, you can't set DelaySeconds per message. /// You can set this parameter only on a queue level. /// /// /// public int DelaySeconds { get { return this._delaySeconds.GetValueOrDefault(); } set { this._delaySeconds = value; } } // Check to see if DelaySeconds property is set internal bool IsSetDelaySeconds() { return this._delaySeconds.HasValue; } /// /// Gets and sets the property Id. /// /// An identifier for a message in this batch used to communicate the result. /// /// /// /// The Ids of a batch request need to 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 MessageAttributes. /// /// Each message attribute consists of a Name, Type, and Value. /// For more information, see Amazon /// SQS Message Attributes in the Amazon Simple Queue Service 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 MessageBody. /// /// The body of the message. /// /// [AWSProperty(Required=true)] public string MessageBody { get { return this._messageBody; } set { this._messageBody = value; } } // Check to see if MessageBody property is set internal bool IsSetMessageBody() { return this._messageBody != null; } /// /// Gets and sets the property MessageDeduplicationId. /// /// This parameter applies only to FIFO (first-in-first-out) queues. /// /// /// /// 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. For more information, see /// Exactly-Once Processing in the Amazon Simple Queue Service Developer Guide. /// ///
  • /// /// 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 queue, Amazon SQS 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 queue doesn't have /// ContentBasedDeduplication set, the action fails with an error. /// ///
    • /// /// If the queue has 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 SQS can't detect duplicate messages. /// /// /// /// Amazon SQS 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 (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). /// /// /// /// For best practices of using MessageDeduplicationId, see Using /// the MessageDeduplicationId Property in the Amazon Simple Queue Service Developer /// Guide. /// ///
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) queues. /// /// /// /// 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 queue, use MessageGroupId values (for /// example, session data for multiple users). In this scenario, multiple consumers can /// process the queue, 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. /// ///
  • /// /// ReceiveMessage might return messages with multiple MessageGroupId /// values. For each MessageGroupId, the messages are sorted by time sent. /// The caller can't specify a MessageGroupId. /// ///
/// /// The length of MessageGroupId is 128 characters. Valid values: alphanumeric /// characters and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). /// /// /// /// For best practices of using MessageGroupId, see Using /// the MessageGroupId Property in the Amazon Simple Queue Service Developer Guide. /// /// /// /// MessageGroupId is required for FIFO queues. You can't use it for Standard /// queues. /// /// ///
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 MessageSystemAttributes. /// /// The message system attribute to send Each message system attribute consists of a Name, /// Type, and Value. /// ///
  • /// /// Currently, the only supported message system attribute is AWSTraceHeader. /// Its type must be String and its value must be a correctly formatted AWS /// X-Ray trace string. /// ///
  • /// /// The size of a message system attribute doesn't count towards the total size of a message. /// ///
///
public Dictionary MessageSystemAttributes { get { return this._messageSystemAttributes; } set { this._messageSystemAttributes = value; } } // Check to see if MessageSystemAttributes property is set internal bool IsSetMessageSystemAttributes() { return this._messageSystemAttributes != null && this._messageSystemAttributes.Count > 0; } } }