/*
* 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 shield-2016-06-02.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.Shield.Model
{
///
/// Information about the Shield Advanced subscription for an account.
///
public partial class Subscription
{
private AutoRenew _autoRenew;
private DateTime? _endTime;
private List _limits = new List();
private ProactiveEngagementStatus _proactiveEngagementStatus;
private DateTime? _startTime;
private string _subscriptionArn;
private SubscriptionLimits _subscriptionLimits;
private long? _timeCommitmentInSeconds;
///
/// Gets and sets the property AutoRenew.
///
/// If ENABLED
, the subscription will be automatically renewed at the end
/// of the existing subscription period.
///
///
///
/// When you initally create a subscription, AutoRenew
is set to ENABLED
.
/// You can change this by submitting an UpdateSubscription
request. If the
/// UpdateSubscription
request does not included a value for AutoRenew
,
/// the existing value for AutoRenew
remains unchanged.
///
///
public AutoRenew AutoRenew
{
get { return this._autoRenew; }
set { this._autoRenew = value; }
}
// Check to see if AutoRenew property is set
internal bool IsSetAutoRenew()
{
return this._autoRenew != null;
}
///
/// Gets and sets the property EndTime.
///
/// The date and time your subscription will end.
///
///
public DateTime EndTime
{
get { return this._endTime.GetValueOrDefault(); }
set { this._endTime = value; }
}
// Check to see if EndTime property is set
internal bool IsSetEndTime()
{
return this._endTime.HasValue;
}
///
/// Gets and sets the property Limits.
///
/// Specifies how many protections of a given type you can create.
///
///
public List Limits
{
get { return this._limits; }
set { this._limits = value; }
}
// Check to see if Limits property is set
internal bool IsSetLimits()
{
return this._limits != null && this._limits.Count > 0;
}
///
/// Gets and sets the property ProactiveEngagementStatus.
///
/// If ENABLED
, the Shield Response Team (SRT) will use email and phone to
/// notify contacts about escalations to the SRT and to initiate proactive customer support.
///
///
///
/// If PENDING
, you have requested proactive engagement and the request is
/// pending. The status changes to ENABLED
when your request is fully processed.
///
///
///
/// If DISABLED
, the SRT will not proactively notify contacts about escalations
/// or to initiate proactive customer support.
///
///
public ProactiveEngagementStatus ProactiveEngagementStatus
{
get { return this._proactiveEngagementStatus; }
set { this._proactiveEngagementStatus = value; }
}
// Check to see if ProactiveEngagementStatus property is set
internal bool IsSetProactiveEngagementStatus()
{
return this._proactiveEngagementStatus != null;
}
///
/// Gets and sets the property StartTime.
///
/// The start time of the subscription, in Unix time in seconds.
///
///
public DateTime StartTime
{
get { return this._startTime.GetValueOrDefault(); }
set { this._startTime = value; }
}
// Check to see if StartTime property is set
internal bool IsSetStartTime()
{
return this._startTime.HasValue;
}
///
/// Gets and sets the property SubscriptionArn.
///
/// The ARN (Amazon Resource Name) of the subscription.
///
///
[AWSProperty(Min=1, Max=2048)]
public string SubscriptionArn
{
get { return this._subscriptionArn; }
set { this._subscriptionArn = value; }
}
// Check to see if SubscriptionArn property is set
internal bool IsSetSubscriptionArn()
{
return this._subscriptionArn != null;
}
///
/// Gets and sets the property SubscriptionLimits.
///
/// Limits settings for your subscription.
///
///
[AWSProperty(Required=true)]
public SubscriptionLimits SubscriptionLimits
{
get { return this._subscriptionLimits; }
set { this._subscriptionLimits = value; }
}
// Check to see if SubscriptionLimits property is set
internal bool IsSetSubscriptionLimits()
{
return this._subscriptionLimits != null;
}
///
/// Gets and sets the property TimeCommitmentInSeconds.
///
/// The length, in seconds, of the Shield Advanced subscription for the account.
///
///
[AWSProperty(Min=0)]
public long TimeCommitmentInSeconds
{
get { return this._timeCommitmentInSeconds.GetValueOrDefault(); }
set { this._timeCommitmentInSeconds = value; }
}
// Check to see if TimeCommitmentInSeconds property is set
internal bool IsSetTimeCommitmentInSeconds()
{
return this._timeCommitmentInSeconds.HasValue;
}
}
}