/*
* 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 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 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 topics. For more information, see https://aws.amazon.com/sns.
/// 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 _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.
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.
///
/// -
///
///
Policy
– The policy that defines who can access your topic. By default,
/// only the topic owner can publish or subscribe to the topic.
///
///
///
/// The following attribute applies only to server-side-encryption:
///
/// -
///
///
KmsMasterKeyId
- The ID of an AWS-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 AWS Key Management Service API Reference.
///
///
///
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 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.
///
///
[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;
}
}
}