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