/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace drs { namespace Model { /** *

A Recovery Instance is a replica of a Source Server running on * EC2.

See Also:

AWS * API Reference

*/ class RecoveryInstance { public: AWS_DRS_API RecoveryInstance(); AWS_DRS_API RecoveryInstance(Aws::Utils::Json::JsonView jsonValue); AWS_DRS_API RecoveryInstance& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_DRS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The ARN of the Recovery Instance.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The ARN of the Recovery Instance.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The ARN of the Recovery Instance.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The ARN of the Recovery Instance.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The ARN of the Recovery Instance.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The ARN of the Recovery Instance.

*/ inline RecoveryInstance& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The ARN of the Recovery Instance.

*/ inline RecoveryInstance& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The ARN of the Recovery Instance.

*/ inline RecoveryInstance& WithArn(const char* value) { SetArn(value); return *this;} /** *

The Data Replication Info of the Recovery Instance.

*/ inline const RecoveryInstanceDataReplicationInfo& GetDataReplicationInfo() const{ return m_dataReplicationInfo; } /** *

The Data Replication Info of the Recovery Instance.

*/ inline bool DataReplicationInfoHasBeenSet() const { return m_dataReplicationInfoHasBeenSet; } /** *

The Data Replication Info of the Recovery Instance.

*/ inline void SetDataReplicationInfo(const RecoveryInstanceDataReplicationInfo& value) { m_dataReplicationInfoHasBeenSet = true; m_dataReplicationInfo = value; } /** *

The Data Replication Info of the Recovery Instance.

*/ inline void SetDataReplicationInfo(RecoveryInstanceDataReplicationInfo&& value) { m_dataReplicationInfoHasBeenSet = true; m_dataReplicationInfo = std::move(value); } /** *

The Data Replication Info of the Recovery Instance.

*/ inline RecoveryInstance& WithDataReplicationInfo(const RecoveryInstanceDataReplicationInfo& value) { SetDataReplicationInfo(value); return *this;} /** *

The Data Replication Info of the Recovery Instance.

*/ inline RecoveryInstance& WithDataReplicationInfo(RecoveryInstanceDataReplicationInfo&& value) { SetDataReplicationInfo(std::move(value)); return *this;} /** *

The EC2 instance ID of the Recovery Instance.

*/ inline const Aws::String& GetEc2InstanceID() const{ return m_ec2InstanceID; } /** *

The EC2 instance ID of the Recovery Instance.

*/ inline bool Ec2InstanceIDHasBeenSet() const { return m_ec2InstanceIDHasBeenSet; } /** *

The EC2 instance ID of the Recovery Instance.

*/ inline void SetEc2InstanceID(const Aws::String& value) { m_ec2InstanceIDHasBeenSet = true; m_ec2InstanceID = value; } /** *

The EC2 instance ID of the Recovery Instance.

*/ inline void SetEc2InstanceID(Aws::String&& value) { m_ec2InstanceIDHasBeenSet = true; m_ec2InstanceID = std::move(value); } /** *

The EC2 instance ID of the Recovery Instance.

*/ inline void SetEc2InstanceID(const char* value) { m_ec2InstanceIDHasBeenSet = true; m_ec2InstanceID.assign(value); } /** *

The EC2 instance ID of the Recovery Instance.

*/ inline RecoveryInstance& WithEc2InstanceID(const Aws::String& value) { SetEc2InstanceID(value); return *this;} /** *

The EC2 instance ID of the Recovery Instance.

*/ inline RecoveryInstance& WithEc2InstanceID(Aws::String&& value) { SetEc2InstanceID(std::move(value)); return *this;} /** *

The EC2 instance ID of the Recovery Instance.

*/ inline RecoveryInstance& WithEc2InstanceID(const char* value) { SetEc2InstanceID(value); return *this;} /** *

The state of the EC2 instance for this Recovery Instance.

*/ inline const EC2InstanceState& GetEc2InstanceState() const{ return m_ec2InstanceState; } /** *

The state of the EC2 instance for this Recovery Instance.

*/ inline bool Ec2InstanceStateHasBeenSet() const { return m_ec2InstanceStateHasBeenSet; } /** *

The state of the EC2 instance for this Recovery Instance.

*/ inline void SetEc2InstanceState(const EC2InstanceState& value) { m_ec2InstanceStateHasBeenSet = true; m_ec2InstanceState = value; } /** *

The state of the EC2 instance for this Recovery Instance.

*/ inline void SetEc2InstanceState(EC2InstanceState&& value) { m_ec2InstanceStateHasBeenSet = true; m_ec2InstanceState = std::move(value); } /** *

The state of the EC2 instance for this Recovery Instance.

*/ inline RecoveryInstance& WithEc2InstanceState(const EC2InstanceState& value) { SetEc2InstanceState(value); return *this;} /** *

The state of the EC2 instance for this Recovery Instance.

*/ inline RecoveryInstance& WithEc2InstanceState(EC2InstanceState&& value) { SetEc2InstanceState(std::move(value)); return *this;} /** *

An object representing failback related information of the Recovery * Instance.

*/ inline const RecoveryInstanceFailback& GetFailback() const{ return m_failback; } /** *

An object representing failback related information of the Recovery * Instance.

*/ inline bool FailbackHasBeenSet() const { return m_failbackHasBeenSet; } /** *

An object representing failback related information of the Recovery * Instance.

*/ inline void SetFailback(const RecoveryInstanceFailback& value) { m_failbackHasBeenSet = true; m_failback = value; } /** *

An object representing failback related information of the Recovery * Instance.

*/ inline void SetFailback(RecoveryInstanceFailback&& value) { m_failbackHasBeenSet = true; m_failback = std::move(value); } /** *

An object representing failback related information of the Recovery * Instance.

*/ inline RecoveryInstance& WithFailback(const RecoveryInstanceFailback& value) { SetFailback(value); return *this;} /** *

An object representing failback related information of the Recovery * Instance.

*/ inline RecoveryInstance& WithFailback(RecoveryInstanceFailback&& value) { SetFailback(std::move(value)); return *this;} /** *

Whether this Recovery Instance was created for a drill or for an actual * Recovery event.

*/ inline bool GetIsDrill() const{ return m_isDrill; } /** *

Whether this Recovery Instance was created for a drill or for an actual * Recovery event.

*/ inline bool IsDrillHasBeenSet() const { return m_isDrillHasBeenSet; } /** *

Whether this Recovery Instance was created for a drill or for an actual * Recovery event.

*/ inline void SetIsDrill(bool value) { m_isDrillHasBeenSet = true; m_isDrill = value; } /** *

Whether this Recovery Instance was created for a drill or for an actual * Recovery event.

*/ inline RecoveryInstance& WithIsDrill(bool value) { SetIsDrill(value); return *this;} /** *

The ID of the Job that created the Recovery Instance.

*/ inline const Aws::String& GetJobID() const{ return m_jobID; } /** *

The ID of the Job that created the Recovery Instance.

*/ inline bool JobIDHasBeenSet() const { return m_jobIDHasBeenSet; } /** *

The ID of the Job that created the Recovery Instance.

*/ inline void SetJobID(const Aws::String& value) { m_jobIDHasBeenSet = true; m_jobID = value; } /** *

The ID of the Job that created the Recovery Instance.

*/ inline void SetJobID(Aws::String&& value) { m_jobIDHasBeenSet = true; m_jobID = std::move(value); } /** *

The ID of the Job that created the Recovery Instance.

*/ inline void SetJobID(const char* value) { m_jobIDHasBeenSet = true; m_jobID.assign(value); } /** *

The ID of the Job that created the Recovery Instance.

*/ inline RecoveryInstance& WithJobID(const Aws::String& value) { SetJobID(value); return *this;} /** *

The ID of the Job that created the Recovery Instance.

*/ inline RecoveryInstance& WithJobID(Aws::String&& value) { SetJobID(std::move(value)); return *this;} /** *

The ID of the Job that created the Recovery Instance.

*/ inline RecoveryInstance& WithJobID(const char* value) { SetJobID(value); return *this;} /** *

AWS availability zone associated with the recovery instance.

*/ inline const Aws::String& GetOriginAvailabilityZone() const{ return m_originAvailabilityZone; } /** *

AWS availability zone associated with the recovery instance.

*/ inline bool OriginAvailabilityZoneHasBeenSet() const { return m_originAvailabilityZoneHasBeenSet; } /** *

AWS availability zone associated with the recovery instance.

*/ inline void SetOriginAvailabilityZone(const Aws::String& value) { m_originAvailabilityZoneHasBeenSet = true; m_originAvailabilityZone = value; } /** *

AWS availability zone associated with the recovery instance.

*/ inline void SetOriginAvailabilityZone(Aws::String&& value) { m_originAvailabilityZoneHasBeenSet = true; m_originAvailabilityZone = std::move(value); } /** *

AWS availability zone associated with the recovery instance.

*/ inline void SetOriginAvailabilityZone(const char* value) { m_originAvailabilityZoneHasBeenSet = true; m_originAvailabilityZone.assign(value); } /** *

AWS availability zone associated with the recovery instance.

*/ inline RecoveryInstance& WithOriginAvailabilityZone(const Aws::String& value) { SetOriginAvailabilityZone(value); return *this;} /** *

AWS availability zone associated with the recovery instance.

*/ inline RecoveryInstance& WithOriginAvailabilityZone(Aws::String&& value) { SetOriginAvailabilityZone(std::move(value)); return *this;} /** *

AWS availability zone associated with the recovery instance.

*/ inline RecoveryInstance& WithOriginAvailabilityZone(const char* value) { SetOriginAvailabilityZone(value); return *this;} /** *

Environment (On Premises / AWS) of the instance that the recovery instance * originated from.

*/ inline const OriginEnvironment& GetOriginEnvironment() const{ return m_originEnvironment; } /** *

Environment (On Premises / AWS) of the instance that the recovery instance * originated from.

*/ inline bool OriginEnvironmentHasBeenSet() const { return m_originEnvironmentHasBeenSet; } /** *

Environment (On Premises / AWS) of the instance that the recovery instance * originated from.

*/ inline void SetOriginEnvironment(const OriginEnvironment& value) { m_originEnvironmentHasBeenSet = true; m_originEnvironment = value; } /** *

Environment (On Premises / AWS) of the instance that the recovery instance * originated from.

*/ inline void SetOriginEnvironment(OriginEnvironment&& value) { m_originEnvironmentHasBeenSet = true; m_originEnvironment = std::move(value); } /** *

Environment (On Premises / AWS) of the instance that the recovery instance * originated from.

*/ inline RecoveryInstance& WithOriginEnvironment(const OriginEnvironment& value) { SetOriginEnvironment(value); return *this;} /** *

Environment (On Premises / AWS) of the instance that the recovery instance * originated from.

*/ inline RecoveryInstance& WithOriginEnvironment(OriginEnvironment&& value) { SetOriginEnvironment(std::move(value)); return *this;} /** *

The date and time of the Point in Time (PIT) snapshot that this Recovery * Instance was launched from.

*/ inline const Aws::String& GetPointInTimeSnapshotDateTime() const{ return m_pointInTimeSnapshotDateTime; } /** *

The date and time of the Point in Time (PIT) snapshot that this Recovery * Instance was launched from.

*/ inline bool PointInTimeSnapshotDateTimeHasBeenSet() const { return m_pointInTimeSnapshotDateTimeHasBeenSet; } /** *

The date and time of the Point in Time (PIT) snapshot that this Recovery * Instance was launched from.

*/ inline void SetPointInTimeSnapshotDateTime(const Aws::String& value) { m_pointInTimeSnapshotDateTimeHasBeenSet = true; m_pointInTimeSnapshotDateTime = value; } /** *

The date and time of the Point in Time (PIT) snapshot that this Recovery * Instance was launched from.

*/ inline void SetPointInTimeSnapshotDateTime(Aws::String&& value) { m_pointInTimeSnapshotDateTimeHasBeenSet = true; m_pointInTimeSnapshotDateTime = std::move(value); } /** *

The date and time of the Point in Time (PIT) snapshot that this Recovery * Instance was launched from.

*/ inline void SetPointInTimeSnapshotDateTime(const char* value) { m_pointInTimeSnapshotDateTimeHasBeenSet = true; m_pointInTimeSnapshotDateTime.assign(value); } /** *

The date and time of the Point in Time (PIT) snapshot that this Recovery * Instance was launched from.

*/ inline RecoveryInstance& WithPointInTimeSnapshotDateTime(const Aws::String& value) { SetPointInTimeSnapshotDateTime(value); return *this;} /** *

The date and time of the Point in Time (PIT) snapshot that this Recovery * Instance was launched from.

*/ inline RecoveryInstance& WithPointInTimeSnapshotDateTime(Aws::String&& value) { SetPointInTimeSnapshotDateTime(std::move(value)); return *this;} /** *

The date and time of the Point in Time (PIT) snapshot that this Recovery * Instance was launched from.

*/ inline RecoveryInstance& WithPointInTimeSnapshotDateTime(const char* value) { SetPointInTimeSnapshotDateTime(value); return *this;} /** *

The ID of the Recovery Instance.

*/ inline const Aws::String& GetRecoveryInstanceID() const{ return m_recoveryInstanceID; } /** *

The ID of the Recovery Instance.

*/ inline bool RecoveryInstanceIDHasBeenSet() const { return m_recoveryInstanceIDHasBeenSet; } /** *

The ID of the Recovery Instance.

*/ inline void SetRecoveryInstanceID(const Aws::String& value) { m_recoveryInstanceIDHasBeenSet = true; m_recoveryInstanceID = value; } /** *

The ID of the Recovery Instance.

*/ inline void SetRecoveryInstanceID(Aws::String&& value) { m_recoveryInstanceIDHasBeenSet = true; m_recoveryInstanceID = std::move(value); } /** *

The ID of the Recovery Instance.

*/ inline void SetRecoveryInstanceID(const char* value) { m_recoveryInstanceIDHasBeenSet = true; m_recoveryInstanceID.assign(value); } /** *

The ID of the Recovery Instance.

*/ inline RecoveryInstance& WithRecoveryInstanceID(const Aws::String& value) { SetRecoveryInstanceID(value); return *this;} /** *

The ID of the Recovery Instance.

*/ inline RecoveryInstance& WithRecoveryInstanceID(Aws::String&& value) { SetRecoveryInstanceID(std::move(value)); return *this;} /** *

The ID of the Recovery Instance.

*/ inline RecoveryInstance& WithRecoveryInstanceID(const char* value) { SetRecoveryInstanceID(value); return *this;} /** *

Properties of the Recovery Instance machine.

*/ inline const RecoveryInstanceProperties& GetRecoveryInstanceProperties() const{ return m_recoveryInstanceProperties; } /** *

Properties of the Recovery Instance machine.

*/ inline bool RecoveryInstancePropertiesHasBeenSet() const { return m_recoveryInstancePropertiesHasBeenSet; } /** *

Properties of the Recovery Instance machine.

*/ inline void SetRecoveryInstanceProperties(const RecoveryInstanceProperties& value) { m_recoveryInstancePropertiesHasBeenSet = true; m_recoveryInstanceProperties = value; } /** *

Properties of the Recovery Instance machine.

*/ inline void SetRecoveryInstanceProperties(RecoveryInstanceProperties&& value) { m_recoveryInstancePropertiesHasBeenSet = true; m_recoveryInstanceProperties = std::move(value); } /** *

Properties of the Recovery Instance machine.

*/ inline RecoveryInstance& WithRecoveryInstanceProperties(const RecoveryInstanceProperties& value) { SetRecoveryInstanceProperties(value); return *this;} /** *

Properties of the Recovery Instance machine.

*/ inline RecoveryInstance& WithRecoveryInstanceProperties(RecoveryInstanceProperties&& value) { SetRecoveryInstanceProperties(std::move(value)); return *this;} /** *

The Source Server ID that this Recovery Instance is associated with.

*/ inline const Aws::String& GetSourceServerID() const{ return m_sourceServerID; } /** *

The Source Server ID that this Recovery Instance is associated with.

*/ inline bool SourceServerIDHasBeenSet() const { return m_sourceServerIDHasBeenSet; } /** *

The Source Server ID that this Recovery Instance is associated with.

*/ inline void SetSourceServerID(const Aws::String& value) { m_sourceServerIDHasBeenSet = true; m_sourceServerID = value; } /** *

The Source Server ID that this Recovery Instance is associated with.

*/ inline void SetSourceServerID(Aws::String&& value) { m_sourceServerIDHasBeenSet = true; m_sourceServerID = std::move(value); } /** *

The Source Server ID that this Recovery Instance is associated with.

*/ inline void SetSourceServerID(const char* value) { m_sourceServerIDHasBeenSet = true; m_sourceServerID.assign(value); } /** *

The Source Server ID that this Recovery Instance is associated with.

*/ inline RecoveryInstance& WithSourceServerID(const Aws::String& value) { SetSourceServerID(value); return *this;} /** *

The Source Server ID that this Recovery Instance is associated with.

*/ inline RecoveryInstance& WithSourceServerID(Aws::String&& value) { SetSourceServerID(std::move(value)); return *this;} /** *

The Source Server ID that this Recovery Instance is associated with.

*/ inline RecoveryInstance& WithSourceServerID(const char* value) { SetSourceServerID(value); return *this;} /** *

An array of tags that are associated with the Recovery Instance.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

An array of tags that are associated with the Recovery Instance.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

An array of tags that are associated with the Recovery Instance.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

An array of tags that are associated with the Recovery Instance.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

An array of tags that are associated with the Recovery Instance.

*/ inline RecoveryInstance& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

An array of tags that are associated with the Recovery Instance.

*/ inline RecoveryInstance& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

An array of tags that are associated with the Recovery Instance.

*/ inline RecoveryInstance& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

An array of tags that are associated with the Recovery Instance.

*/ inline RecoveryInstance& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

An array of tags that are associated with the Recovery Instance.

*/ inline RecoveryInstance& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

An array of tags that are associated with the Recovery Instance.

*/ inline RecoveryInstance& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

An array of tags that are associated with the Recovery Instance.

*/ inline RecoveryInstance& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

An array of tags that are associated with the Recovery Instance.

*/ inline RecoveryInstance& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

An array of tags that are associated with the Recovery Instance.

*/ inline RecoveryInstance& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } private: Aws::String m_arn; bool m_arnHasBeenSet = false; RecoveryInstanceDataReplicationInfo m_dataReplicationInfo; bool m_dataReplicationInfoHasBeenSet = false; Aws::String m_ec2InstanceID; bool m_ec2InstanceIDHasBeenSet = false; EC2InstanceState m_ec2InstanceState; bool m_ec2InstanceStateHasBeenSet = false; RecoveryInstanceFailback m_failback; bool m_failbackHasBeenSet = false; bool m_isDrill; bool m_isDrillHasBeenSet = false; Aws::String m_jobID; bool m_jobIDHasBeenSet = false; Aws::String m_originAvailabilityZone; bool m_originAvailabilityZoneHasBeenSet = false; OriginEnvironment m_originEnvironment; bool m_originEnvironmentHasBeenSet = false; Aws::String m_pointInTimeSnapshotDateTime; bool m_pointInTimeSnapshotDateTimeHasBeenSet = false; Aws::String m_recoveryInstanceID; bool m_recoveryInstanceIDHasBeenSet = false; RecoveryInstanceProperties m_recoveryInstanceProperties; bool m_recoveryInstancePropertiesHasBeenSet = false; Aws::String m_sourceServerID; bool m_sourceServerIDHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace drs } // namespace Aws