/*
* 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 internetmonitor-2021-06-03.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.InternetMonitor.Model
{
///
/// Information about a health event created in a monitor in Amazon CloudWatch Internet
/// Monitor.
///
public partial class HealthEvent
{
private DateTime? _createdAt;
private DateTime? _endedAt;
private string _eventArn;
private string _eventId;
private double? _healthScoreThreshold;
private List _impactedLocations = new List();
private HealthEventImpactType _impactType;
private DateTime? _lastUpdatedAt;
private double? _percentOfTotalTrafficImpacted;
private DateTime? _startedAt;
private HealthEventStatus _status;
///
/// Gets and sets the property CreatedAt.
///
/// When the health event was created.
///
///
public DateTime CreatedAt
{
get { return this._createdAt.GetValueOrDefault(); }
set { this._createdAt = value; }
}
// Check to see if CreatedAt property is set
internal bool IsSetCreatedAt()
{
return this._createdAt.HasValue;
}
///
/// Gets and sets the property EndedAt.
///
/// The time when a health event ended. If the health event is still active, then the
/// end time is not set.
///
///
public DateTime EndedAt
{
get { return this._endedAt.GetValueOrDefault(); }
set { this._endedAt = value; }
}
// Check to see if EndedAt property is set
internal bool IsSetEndedAt()
{
return this._endedAt.HasValue;
}
///
/// Gets and sets the property EventArn.
///
/// The Amazon Resource Name (ARN) of the event.
///
///
[AWSProperty(Required=true, Min=20, Max=2048)]
public string EventArn
{
get { return this._eventArn; }
set { this._eventArn = value; }
}
// Check to see if EventArn property is set
internal bool IsSetEventArn()
{
return this._eventArn != null;
}
///
/// Gets and sets the property EventId.
///
/// The internally generated identifier of a specific network traffic impairment health
/// event.
///
///
[AWSProperty(Required=true, Min=1, Max=255)]
public string EventId
{
get { return this._eventId; }
set { this._eventId = value; }
}
// Check to see if EventId property is set
internal bool IsSetEventId()
{
return this._eventId != null;
}
///
/// Gets and sets the property HealthScoreThreshold.
///
/// The value of the threshold percentage for performance or availability that was configured
/// when Amazon CloudWatch Internet Monitor created the health event.
///
///
[AWSProperty(Min=0, Max=100)]
public double HealthScoreThreshold
{
get { return this._healthScoreThreshold.GetValueOrDefault(); }
set { this._healthScoreThreshold = value; }
}
// Check to see if HealthScoreThreshold property is set
internal bool IsSetHealthScoreThreshold()
{
return this._healthScoreThreshold.HasValue;
}
///
/// Gets and sets the property ImpactedLocations.
///
/// The locations impacted by the health event.
///
///
[AWSProperty(Required=true)]
public List ImpactedLocations
{
get { return this._impactedLocations; }
set { this._impactedLocations = value; }
}
// Check to see if ImpactedLocations property is set
internal bool IsSetImpactedLocations()
{
return this._impactedLocations != null && this._impactedLocations.Count > 0;
}
///
/// Gets and sets the property ImpactType.
///
/// The type of impairment for a health event.
///
///
[AWSProperty(Required=true)]
public HealthEventImpactType ImpactType
{
get { return this._impactType; }
set { this._impactType = value; }
}
// Check to see if ImpactType property is set
internal bool IsSetImpactType()
{
return this._impactType != null;
}
///
/// Gets and sets the property LastUpdatedAt.
///
/// When the health event was last updated.
///
///
[AWSProperty(Required=true)]
public DateTime LastUpdatedAt
{
get { return this._lastUpdatedAt.GetValueOrDefault(); }
set { this._lastUpdatedAt = value; }
}
// Check to see if LastUpdatedAt property is set
internal bool IsSetLastUpdatedAt()
{
return this._lastUpdatedAt.HasValue;
}
///
/// Gets and sets the property PercentOfTotalTrafficImpacted.
///
/// The impact on global traffic monitored by this monitor for this health event.
///
///
public double PercentOfTotalTrafficImpacted
{
get { return this._percentOfTotalTrafficImpacted.GetValueOrDefault(); }
set { this._percentOfTotalTrafficImpacted = value; }
}
// Check to see if PercentOfTotalTrafficImpacted property is set
internal bool IsSetPercentOfTotalTrafficImpacted()
{
return this._percentOfTotalTrafficImpacted.HasValue;
}
///
/// Gets and sets the property StartedAt.
///
/// When a health event started.
///
///
[AWSProperty(Required=true)]
public DateTime StartedAt
{
get { return this._startedAt.GetValueOrDefault(); }
set { this._startedAt = value; }
}
// Check to see if StartedAt property is set
internal bool IsSetStartedAt()
{
return this._startedAt.HasValue;
}
///
/// Gets and sets the property Status.
///
/// Health event list member.
///
///
[AWSProperty(Required=true)]
public HealthEventStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
}
}