/*
* 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 redshift-2012-12-01.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.Redshift.Model
{
///
/// Container for the parameters to the CreateEventSubscription operation.
/// Creates an Amazon Redshift event notification subscription. This action requires an
/// ARN (Amazon Resource Name) of an Amazon SNS topic created by either the Amazon Redshift
/// 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 SNS console.
///
///
///
/// You can specify the source type, and lists of Amazon Redshift source IDs, event categories,
/// and event severities. Notifications will be sent for all events you want that match
/// those criteria. For example, you can specify source type = cluster, source ID = my-cluster-1
/// and mycluster2, event categories = Availability, Backup, and severity = ERROR. The
/// subscription will only send notifications for those ERROR events in the Availability
/// and Backup categories for the specified clusters.
///
///
///
/// If you specify both the source type and source IDs, such as source type = cluster
/// and source identifier = my-cluster-1, notifications will be sent for all the cluster
/// events for my-cluster-1. If you specify a source type but do not specify a source
/// identifier, you will receive notice of the events for the objects of that type in
/// your Amazon Web Services account. If you do not specify either the SourceType nor
/// the SourceIdentifier, you will be notified of events generated from all Amazon Redshift
/// sources belonging to your Amazon Web Services account. You must specify a source type
/// if you specify a source ID.
///
///
public partial class CreateEventSubscriptionRequest : AmazonRedshiftRequest
{
private bool? _enabled;
private List _eventCategories = new List();
private string _severity;
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, and set to
/// false
to create the subscription but not activate 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.
///
/// Specifies the Amazon Redshift event categories to be published by the event notification
/// subscription.
///
///
///
/// Values: configuration, management, monitoring, security, pending
///
///
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 Severity.
///
/// Specifies the Amazon Redshift event severity to be published by the event notification
/// subscription.
///
///
///
/// Values: ERROR, INFO
///
///
[AWSProperty(Max=2147483647)]
public string Severity
{
get { return this._severity; }
set { this._severity = value; }
}
// Check to see if Severity property is set
internal bool IsSetSeverity()
{
return this._severity != null;
}
///
/// Gets and sets the property SnsTopicArn.
///
/// The Amazon Resource Name (ARN) of the Amazon SNS topic used to transmit the event
/// notifications. The ARN is created by Amazon SNS when you create a topic and subscribe
/// to it.
///
///
[AWSProperty(Required=true, Max=2147483647)]
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.
///
/// A list of one or more identifiers of Amazon Redshift source objects. All of the objects
/// must be of the same type as was specified in the source type parameter. The event
/// subscription will return only events generated by the specified objects. If not specified,
/// then events are returned for all objects within the source type specified.
///
///
///
/// Example: my-cluster-1, my-cluster-2
///
///
///
/// Example: my-snapshot-20131010
///
///
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 will be generating the events. For example, if you want to
/// be notified of events generated by a cluster, you would set this parameter to cluster.
/// If this value is not specified, events are returned for all Amazon Redshift objects
/// in your Amazon Web Services account. You must specify a source type in order to specify
/// source IDs.
///
///
///
/// Valid values: cluster, cluster-parameter-group, cluster-security-group, cluster-snapshot,
/// and scheduled-action.
///
///
[AWSProperty(Max=2147483647)]
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 event subscription to be created.
///
///
///
/// Constraints:
///
/// -
///
/// Cannot be null, empty, or blank.
///
///
-
///
/// Must contain from 1 to 255 alphanumeric characters or hyphens.
///
///
-
///
/// First character must be a letter.
///
///
-
///
/// Cannot end with a hyphen or contain two consecutive hyphens.
///
///
///
[AWSProperty(Required=true, Max=2147483647)]
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.
///
/// A list of tag instances.
///
///
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;
}
}
}