/* * 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 docdb-2014-10-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.DocDB.Model { /// /// Container for the parameters to the CreateEventSubscription operation. /// Creates an Amazon DocumentDB event notification subscription. This action requires /// a topic Amazon Resource Name (ARN) created by using the Amazon DocumentDB console, /// the Amazon SNS console, or the Amazon SNS API. To obtain an ARN with Amazon SNS, you /// must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed /// in the Amazon SNS console. /// /// /// /// You can specify the type of source (SourceType) that you want to be notified /// of. You can also provide a list of Amazon DocumentDB sources (SourceIds) /// that trigger the events, and you can provide a list of event categories (EventCategories) /// for events that you want to be notified of. For example, you can specify SourceType /// = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories /// = Availability, Backup. /// /// /// /// If you specify both the SourceType and SourceIds (such as /// SourceType = db-instance and SourceIdentifier = myDBInstance1), /// you are notified of all the db-instance events for the specified source. /// If you specify a SourceType but do not specify a SourceIdentifier, /// you receive notice of the events for that source type for all your Amazon DocumentDB /// sources. If you do not specify either the SourceType or the SourceIdentifier, /// you are notified of events generated from all Amazon DocumentDB sources belonging /// to your customer account. /// /// public partial class CreateEventSubscriptionRequest : AmazonDocDBRequest { private bool? _enabled; private List _eventCategories = new List(); private string _snsTopicArn; private List _sourceIds = new List(); private string _sourceType; private string _subscriptionName; private List _tags = new List(); /// /// Gets and sets the property Enabled. /// /// A Boolean value; set to true to activate the subscription, set to false /// to create the subscription but not active it. /// /// public bool Enabled { get { return this._enabled.GetValueOrDefault(); } set { this._enabled = value; } } // Check to see if Enabled property is set internal bool IsSetEnabled() { return this._enabled.HasValue; } /// /// Gets and sets the property EventCategories. /// /// A list of event categories for a SourceType that you want to subscribe /// to. /// /// public List EventCategories { get { return this._eventCategories; } set { this._eventCategories = value; } } // Check to see if EventCategories property is set internal bool IsSetEventCategories() { return this._eventCategories != null && this._eventCategories.Count > 0; } /// /// Gets and sets the property SnsTopicArn. /// /// The Amazon Resource Name (ARN) of the SNS topic created for event notification. Amazon /// SNS creates the ARN when you create a topic and subscribe to it. /// /// [AWSProperty(Required=true)] public string SnsTopicArn { get { return this._snsTopicArn; } set { this._snsTopicArn = value; } } // Check to see if SnsTopicArn property is set internal bool IsSetSnsTopicArn() { return this._snsTopicArn != null; } /// /// Gets and sets the property SourceIds. /// /// The list of identifiers of the event sources for which events are returned. If not /// specified, then all sources are included in the response. An identifier must begin /// with a letter and must contain only ASCII letters, digits, and hyphens; it can't end /// with a hyphen or contain two consecutive hyphens. /// /// /// /// Constraints: /// ///
  • /// /// If SourceIds are provided, SourceType must also be provided. /// ///
  • /// /// If the source type is an instance, a DBInstanceIdentifier must be provided. /// ///
  • /// /// If the source type is a security group, a DBSecurityGroupName must be /// provided. /// ///
  • /// /// If the source type is a parameter group, a DBParameterGroupName must /// be provided. /// ///
  • /// /// If the source type is a snapshot, a DBSnapshotIdentifier must be provided. /// ///
///
public List SourceIds { get { return this._sourceIds; } set { this._sourceIds = value; } } // Check to see if SourceIds property is set internal bool IsSetSourceIds() { return this._sourceIds != null && this._sourceIds.Count > 0; } /// /// Gets and sets the property SourceType. /// /// The type of source that is generating the events. For example, if you want to be notified /// of events generated by an instance, you would set this parameter to db-instance. /// If this value is not specified, all events are returned. /// /// /// /// Valid values: db-instance, db-cluster, db-parameter-group, /// db-security-group, db-cluster-snapshot /// /// public string SourceType { get { return this._sourceType; } set { this._sourceType = value; } } // Check to see if SourceType property is set internal bool IsSetSourceType() { return this._sourceType != null; } /// /// Gets and sets the property SubscriptionName. /// /// The name of the subscription. /// /// /// /// Constraints: The name must be fewer than 255 characters. /// /// [AWSProperty(Required=true)] public string SubscriptionName { get { return this._subscriptionName; } set { this._subscriptionName = value; } } // Check to see if SubscriptionName property is set internal bool IsSetSubscriptionName() { return this._subscriptionName != null; } /// /// Gets and sets the property Tags. /// /// The tags to be assigned to the event subscription. /// /// 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; } } }