/*
* 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;
}
}
}