/*
* 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
{
///
/// 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 maximum string size is 256 KB. 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 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 message to send. The maximum string size is 256 KB.
///
///
///
/// 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 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;
}
///
/// 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;
}
}
}