/* * 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 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 System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.SQS.Model { /// /// Container for the parameters to the SendMessage operation. /// Delivers a message to the specified queue. /// /// /// /// A message can include only XML, JSON, and unformatted text. The following Unicode /// characters are allowed: /// /// /// /// #x9 | #xA | #xD | #x20 to #xD7FF /// | #xE000 to #xFFFD | #x10000 to #x10FFFF /// /// /// /// /// Any characters not included in this list will be rejected. For more information, see /// the W3C specification for characters. /// /// /// public partial class SendMessageRequest : AmazonSQSRequest { private int? _delaySeconds; private Dictionary _messageAttributes = new Dictionary(); private string _messageBody; private string _messageDeduplicationId; private string _messageGroupId; private Dictionary _messageSystemAttributes = new Dictionary(); private string _queueUrl; /// /// Empty constructor used to set properties independently even when a simple constructor is available /// public SendMessageRequest() { } /// /// Instantiates SendMessageRequest with the parameterized properties /// /// The URL of the Amazon SQS queue to which a message is sent. Queue URLs and names are case-sensitive. /// The message to send. The minimum size is one character. The maximum size is 256 KiB. A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed: #x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF Any characters not included in this list will be rejected. For more information, see the W3C specification for characters. public SendMessageRequest(string queueUrl, string messageBody) { _queueUrl = queueUrl; _messageBody = messageBody; } /// /// Gets and sets the property DelaySeconds. /// /// The length of time, in seconds, for which to delay a specific message. 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 applies. /// /// /// /// 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 MessageAttributes. /// /// Each message attribute consists of a Name, Type, and Value. /// For more information, see Amazon /// SQS message attributes in the Amazon SQS 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 message to send. The minimum size is one character. The maximum size is 256 KiB. /// /// /// /// A message can include only XML, JSON, and unformatted text. The following Unicode /// characters are allowed: /// /// /// /// #x9 | #xA | #xD | #x20 to #xD7FF /// | #xE000 to #xFFFD | #x10000 to #x10FFFF /// /// /// /// /// Any characters not included in this list will be rejected. For more information, see /// the W3C specification for characters. /// /// /// [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 sent messages. If a message with a particular /// MessageDeduplicationId is sent successfully, any messages sent with the /// same MessageDeduplicationId are accepted successfully but aren't delivered /// during the 5-minute deduplication interval. For more information, see /// Exactly-once processing in the Amazon SQS 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 maximum 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 SQS 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 SQS 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 X-Ray /// trace header 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; } /// /// Gets and sets the property QueueUrl. /// /// The URL of the Amazon SQS queue to which a message is sent. /// /// /// /// Queue URLs and names are case-sensitive. /// /// [AWSProperty(Required=true)] public string QueueUrl { get { return this._queueUrl; } set { this._queueUrl = value; } } // Check to see if QueueUrl property is set internal bool IsSetQueueUrl() { return this._queueUrl != null; } } }