/*
* 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 drs-2020-02-26.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.Drs.Model
{
///
/// A Recovery Instance is a replica of a Source Server running on EC2.
///
public partial class RecoveryInstance
{
private string _arn;
private RecoveryInstanceDataReplicationInfo _dataReplicationInfo;
private string _ec2InstanceID;
private EC2InstanceState _ec2InstanceState;
private RecoveryInstanceFailback _failback;
private bool? _isDrill;
private string _jobid;
private string _originAvailabilityZone;
private OriginEnvironment _originEnvironment;
private string _pointInTimeSnapshotDateTime;
private string _recoveryInstanceID;
private RecoveryInstanceProperties _recoveryInstanceProperties;
private string _sourceServerID;
private Dictionary _tags = new Dictionary();
///
/// Gets and sets the property Arn.
///
/// The ARN of the Recovery Instance.
///
///
[AWSProperty(Min=20, Max=2048)]
public string Arn
{
get { return this._arn; }
set { this._arn = value; }
}
// Check to see if Arn property is set
internal bool IsSetArn()
{
return this._arn != null;
}
///
/// Gets and sets the property DataReplicationInfo.
///
/// The Data Replication Info of the Recovery Instance.
///
///
public RecoveryInstanceDataReplicationInfo DataReplicationInfo
{
get { return this._dataReplicationInfo; }
set { this._dataReplicationInfo = value; }
}
// Check to see if DataReplicationInfo property is set
internal bool IsSetDataReplicationInfo()
{
return this._dataReplicationInfo != null;
}
///
/// Gets and sets the property Ec2InstanceID.
///
/// The EC2 instance ID of the Recovery Instance.
///
///
[AWSProperty(Min=0, Max=255)]
public string Ec2InstanceID
{
get { return this._ec2InstanceID; }
set { this._ec2InstanceID = value; }
}
// Check to see if Ec2InstanceID property is set
internal bool IsSetEc2InstanceID()
{
return this._ec2InstanceID != null;
}
///
/// Gets and sets the property Ec2InstanceState.
///
/// The state of the EC2 instance for this Recovery Instance.
///
///
public EC2InstanceState Ec2InstanceState
{
get { return this._ec2InstanceState; }
set { this._ec2InstanceState = value; }
}
// Check to see if Ec2InstanceState property is set
internal bool IsSetEc2InstanceState()
{
return this._ec2InstanceState != null;
}
///
/// Gets and sets the property Failback.
///
/// An object representing failback related information of the Recovery Instance.
///
///
public RecoveryInstanceFailback Failback
{
get { return this._failback; }
set { this._failback = value; }
}
// Check to see if Failback property is set
internal bool IsSetFailback()
{
return this._failback != null;
}
///
/// Gets and sets the property IsDrill.
///
/// Whether this Recovery Instance was created for a drill or for an actual Recovery event.
///
///
public bool IsDrill
{
get { return this._isDrill.GetValueOrDefault(); }
set { this._isDrill = value; }
}
// Check to see if IsDrill property is set
internal bool IsSetIsDrill()
{
return this._isDrill.HasValue;
}
///
/// Gets and sets the property JobID.
///
/// The ID of the Job that created the Recovery Instance.
///
///
[AWSProperty(Min=24, Max=24)]
public string JobID
{
get { return this._jobid; }
set { this._jobid = value; }
}
// Check to see if JobID property is set
internal bool IsSetJobID()
{
return this._jobid != null;
}
///
/// Gets and sets the property OriginAvailabilityZone.
///
/// AWS availability zone associated with the recovery instance.
///
///
[AWSProperty(Min=0, Max=255)]
public string OriginAvailabilityZone
{
get { return this._originAvailabilityZone; }
set { this._originAvailabilityZone = value; }
}
// Check to see if OriginAvailabilityZone property is set
internal bool IsSetOriginAvailabilityZone()
{
return this._originAvailabilityZone != null;
}
///
/// Gets and sets the property OriginEnvironment.
///
/// Environment (On Premises / AWS) of the instance that the recovery instance originated
/// from.
///
///
public OriginEnvironment OriginEnvironment
{
get { return this._originEnvironment; }
set { this._originEnvironment = value; }
}
// Check to see if OriginEnvironment property is set
internal bool IsSetOriginEnvironment()
{
return this._originEnvironment != null;
}
///
/// Gets and sets the property PointInTimeSnapshotDateTime.
///
/// The date and time of the Point in Time (PIT) snapshot that this Recovery Instance
/// was launched from.
///
///
[AWSProperty(Min=19, Max=32)]
public string PointInTimeSnapshotDateTime
{
get { return this._pointInTimeSnapshotDateTime; }
set { this._pointInTimeSnapshotDateTime = value; }
}
// Check to see if PointInTimeSnapshotDateTime property is set
internal bool IsSetPointInTimeSnapshotDateTime()
{
return this._pointInTimeSnapshotDateTime != null;
}
///
/// Gets and sets the property RecoveryInstanceID.
///
/// The ID of the Recovery Instance.
///
///
[AWSProperty(Min=10, Max=19)]
public string RecoveryInstanceID
{
get { return this._recoveryInstanceID; }
set { this._recoveryInstanceID = value; }
}
// Check to see if RecoveryInstanceID property is set
internal bool IsSetRecoveryInstanceID()
{
return this._recoveryInstanceID != null;
}
///
/// Gets and sets the property RecoveryInstanceProperties.
///
/// Properties of the Recovery Instance machine.
///
///
public RecoveryInstanceProperties RecoveryInstanceProperties
{
get { return this._recoveryInstanceProperties; }
set { this._recoveryInstanceProperties = value; }
}
// Check to see if RecoveryInstanceProperties property is set
internal bool IsSetRecoveryInstanceProperties()
{
return this._recoveryInstanceProperties != null;
}
///
/// Gets and sets the property SourceServerID.
///
/// The Source Server ID that this Recovery Instance is associated with.
///
///
[AWSProperty(Min=19, Max=19)]
public string SourceServerID
{
get { return this._sourceServerID; }
set { this._sourceServerID = value; }
}
// Check to see if SourceServerID property is set
internal bool IsSetSourceServerID()
{
return this._sourceServerID != null;
}
///
/// Gets and sets the property Tags.
///
/// An array of tags that are associated with the Recovery Instance.
///
///
[AWSProperty(Sensitive=true)]
public Dictionary 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;
}
}
}