/*
* 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
{
///
/// Container for the parameters to the CreateTopic operation.
/// Creates a topic to which notifications can be published. Users can create at most
/// 100,000 standard topics (at most 1,000 FIFO topics). For more information, see Creating an
/// Amazon SNS topic in the Amazon SNS Developer Guide. This action is idempotent,
/// so if the requester already owns a topic with the specified name, that topic's ARN
/// is returned without creating a new topic.
///
public partial class CreateTopicRequest : AmazonSimpleNotificationServiceRequest
{
private Dictionary _attributes = new Dictionary();
private string _dataProtectionPolicy;
private string _name;
private List _tags = new List();
///
/// Empty constructor used to set properties independently even when a simple constructor is available
///
public CreateTopicRequest() { }
///
/// Instantiates CreateTopicRequest with the parameterized properties
///
/// The name of the topic you want to create. Constraints: Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. For a FIFO (first-in-first-out) topic, the name must end with the .fifo
suffix.
public CreateTopicRequest(string name)
{
_name = name;
}
///
/// Gets and sets the property Attributes.
///
/// A map of attributes with their corresponding values.
///
///
///
/// The following lists the names, descriptions, and values of the special request parameters
/// that the CreateTopic
action uses:
///
/// -
///
///
DeliveryPolicy
– The policy that defines how Amazon SNS retries failed
/// deliveries to HTTP/S endpoints.
///
/// -
///
///
DisplayName
– The display name to use for a topic with SMS subscriptions.
///
/// -
///
///
FifoTopic
– Set to true to create a FIFO topic.
///
/// -
///
///
Policy
– The policy that defines who can access your topic. By default,
/// only the topic owner can publish or subscribe to the topic.
///
/// -
///
///
SignatureVersion
– The signature version corresponds to the hashing
/// algorithm used while creating the signature of the notifications, subscription confirmations,
/// or unsubscribe confirmation messages sent by Amazon SNS. By default, SignatureVersion
/// is set to 1
.
///
/// -
///
///
TracingConfig
– Tracing mode of an Amazon SNS topic. By default TracingConfig
/// is set to PassThrough
, and the topic passes through the tracing header
/// it receives from an Amazon SNS publisher to its subscriptions. If set to Active
,
/// Amazon SNS will vend X-Ray segment data to topic owner account if the sampled flag
/// in the tracing header is true. This is only supported on standard topics.
///
///
///
/// The following attribute applies only to server-side
/// encryption:
///
/// -
///
///
KmsMasterKeyId
– The ID of an Amazon Web Services managed customer master
/// key (CMK) for Amazon SNS or a custom CMK. For more information, see Key
/// Terms. For more examples, see KeyId
/// in the Key Management Service API Reference.
///
///
///
/// The following attributes apply only to FIFO
/// topics:
///
/// -
///
///
FifoTopic
– When this is set to true
, a FIFO topic is created.
///
/// -
///
///
ContentBasedDeduplication
– Enables content-based deduplication for
/// FIFO topics.
///
/// -
///
/// By default,
ContentBasedDeduplication
is set to false
. If
/// you create a FIFO topic and this attribute is false
, you must specify
/// a value for the MessageDeduplicationId
parameter for the Publish
/// action.
///
/// -
///
/// When you set
ContentBasedDeduplication
to true
, Amazon SNS
/// uses a SHA-256 hash to generate the MessageDeduplicationId
using the
/// body of the message (but not the attributes of the message).
///
///
///
/// (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId
/// parameter for the Publish
action.
///
///
///
public Dictionary Attributes
{
get { return this._attributes; }
set { this._attributes = value; }
}
// Check to see if Attributes property is set
internal bool IsSetAttributes()
{
return this._attributes != null && this._attributes.Count > 0;
}
///
/// Gets and sets the property DataProtectionPolicy.
///
/// The body of the policy document you want to use for this topic.
///
///
///
/// You can only add one policy per topic.
///
///
///
/// The policy must be in JSON string format.
///
///
///
/// Length Constraints: Maximum length of 30,720.
///
///
public string DataProtectionPolicy
{
get { return this._dataProtectionPolicy; }
set { this._dataProtectionPolicy = value; }
}
// Check to see if DataProtectionPolicy property is set
internal bool IsSetDataProtectionPolicy()
{
return this._dataProtectionPolicy != null;
}
///
/// Gets and sets the property Name.
///
/// The name of the topic you want to create.
///
///
///
/// Constraints: Topic names must be made up of only uppercase and lowercase ASCII letters,
/// numbers, underscores, and hyphens, and must be between 1 and 256 characters long.
///
///
///
/// For a FIFO (first-in-first-out) topic, the name must end with the .fifo
/// suffix.
///
///
[AWSProperty(Required=true)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property Tags.
///
/// The list of tags to add to a new topic.
///
///
///
/// To be able to tag a topic on creation, you must have the sns:CreateTopic
/// and sns:TagResource
permissions.
///
///
///
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
}
}