/*
* 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 rds-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.RDS.Model
{
///
/// Container for the parameters to the CreateEventSubscription operation.
/// Creates an RDS event notification subscription. This operation requires a topic Amazon
/// Resource Name (ARN) created by either the RDS console, the SNS console, or the SNS
/// API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe
/// to the topic. The ARN is displayed in the SNS console.
///
///
///
/// You can specify the type of source (SourceType
) that you want to be notified
/// of and provide a list of RDS sources (SourceIds
) that triggers the events.
/// You can also 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 SourceIds
= myDBInstance1
,
/// you are notified of all the db-instance
events for the specified source.
/// If you specify a SourceType
but do not specify SourceIds
,
/// you receive notice of the events for that source type for all your RDS sources. If
/// you don't specify either the SourceType or the SourceIds
, you are notified
/// of events generated from all RDS sources belonging to your customer account.
///
///
///
/// For more information about subscribing to an event for RDS DB engines, see
/// Subscribing to Amazon RDS event notification in the Amazon RDS User Guide.
///
///
///
/// For more information about subscribing to an event for Aurora DB engines, see
/// Subscribing to Amazon RDS event notification in the Amazon Aurora User Guide.
///
///
public partial class CreateEventSubscriptionRequest : AmazonRDSRequest
{
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 value that indicates whether to activate the subscription. If the event notification
/// subscription isn't activated, the subscription is created but not active.
///
///
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 particular source type (SourceType
)
/// that you want to subscribe to. You can see a list of the categories for a given source
/// type in the "Amazon RDS event categories and event messages" section of the
/// Amazon RDS User Guide or the
/// Amazon Aurora User Guide . You can also see this list by using the DescribeEventCategories
/// operation.
///
///
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. The
/// ARN is created by Amazon SNS 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 supplied, SourceType
must also be provided.
///
/// -
///
/// If the source type is a DB instance, a
DBInstanceIdentifier
value must
/// be supplied.
///
/// -
///
/// If the source type is a DB cluster, a
DBClusterIdentifier
value must
/// be supplied.
///
/// -
///
/// If the source type is a DB parameter group, a
DBParameterGroupName
value
/// must be supplied.
///
/// -
///
/// If the source type is a DB security group, a
DBSecurityGroupName
value
/// must be supplied.
///
/// -
///
/// If the source type is a DB snapshot, a
DBSnapshotIdentifier
value must
/// be supplied.
///
/// -
///
/// If the source type is a DB cluster snapshot, a
DBClusterSnapshotIdentifier
/// value must be supplied.
///
/// -
///
/// If the source type is an RDS Proxy, a
DBProxyName
value must be supplied.
///
///
///
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 a DB instance, you set this parameter to db-instance
.
/// For RDS Proxy events, specify db-proxy
. If this value isn't specified,
/// all events are returned.
///
///
///
/// Valid values: db-instance
| db-cluster
| db-parameter-group
/// | db-security-group
| db-snapshot
| db-cluster-snapshot
/// | db-proxy
///
///
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 less 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.
///
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;
}
}
}