/** * 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 #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace drs { namespace Model { class SourceServer { public: AWS_DRS_API SourceServer(); AWS_DRS_API SourceServer(Aws::Utils::Json::JsonView jsonValue); AWS_DRS_API SourceServer& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_DRS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The ARN of the Source Server.

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

The ARN of the Source Server.

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

The ARN of the Source Server.

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

The ARN of the Source Server.

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

The ARN of the Source Server.

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

The ARN of the Source Server.

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

The ARN of the Source Server.

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

The ARN of the Source Server.

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

The Data Replication Info of the Source Server.

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

The Data Replication Info of the Source Server.

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

The Data Replication Info of the Source Server.

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

The Data Replication Info of the Source Server.

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

The Data Replication Info of the Source Server.

*/ inline SourceServer& WithDataReplicationInfo(const DataReplicationInfo& value) { SetDataReplicationInfo(value); return *this;} /** *

The Data Replication Info of the Source Server.

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

The status of the last recovery launch of this Source Server.

*/ inline const LastLaunchResult& GetLastLaunchResult() const{ return m_lastLaunchResult; } /** *

The status of the last recovery launch of this Source Server.

*/ inline bool LastLaunchResultHasBeenSet() const { return m_lastLaunchResultHasBeenSet; } /** *

The status of the last recovery launch of this Source Server.

*/ inline void SetLastLaunchResult(const LastLaunchResult& value) { m_lastLaunchResultHasBeenSet = true; m_lastLaunchResult = value; } /** *

The status of the last recovery launch of this Source Server.

*/ inline void SetLastLaunchResult(LastLaunchResult&& value) { m_lastLaunchResultHasBeenSet = true; m_lastLaunchResult = std::move(value); } /** *

The status of the last recovery launch of this Source Server.

*/ inline SourceServer& WithLastLaunchResult(const LastLaunchResult& value) { SetLastLaunchResult(value); return *this;} /** *

The status of the last recovery launch of this Source Server.

*/ inline SourceServer& WithLastLaunchResult(LastLaunchResult&& value) { SetLastLaunchResult(std::move(value)); return *this;} /** *

The lifecycle information of this Source Server.

*/ inline const LifeCycle& GetLifeCycle() const{ return m_lifeCycle; } /** *

The lifecycle information of this Source Server.

*/ inline bool LifeCycleHasBeenSet() const { return m_lifeCycleHasBeenSet; } /** *

The lifecycle information of this Source Server.

*/ inline void SetLifeCycle(const LifeCycle& value) { m_lifeCycleHasBeenSet = true; m_lifeCycle = value; } /** *

The lifecycle information of this Source Server.

*/ inline void SetLifeCycle(LifeCycle&& value) { m_lifeCycleHasBeenSet = true; m_lifeCycle = std::move(value); } /** *

The lifecycle information of this Source Server.

*/ inline SourceServer& WithLifeCycle(const LifeCycle& value) { SetLifeCycle(value); return *this;} /** *

The lifecycle information of this Source Server.

*/ inline SourceServer& WithLifeCycle(LifeCycle&& value) { SetLifeCycle(std::move(value)); return *this;} /** *

The ID of the Recovery Instance associated with this Source Server.

*/ inline const Aws::String& GetRecoveryInstanceId() const{ return m_recoveryInstanceId; } /** *

The ID of the Recovery Instance associated with this Source Server.

*/ inline bool RecoveryInstanceIdHasBeenSet() const { return m_recoveryInstanceIdHasBeenSet; } /** *

The ID of the Recovery Instance associated with this Source Server.

*/ inline void SetRecoveryInstanceId(const Aws::String& value) { m_recoveryInstanceIdHasBeenSet = true; m_recoveryInstanceId = value; } /** *

The ID of the Recovery Instance associated with this Source Server.

*/ inline void SetRecoveryInstanceId(Aws::String&& value) { m_recoveryInstanceIdHasBeenSet = true; m_recoveryInstanceId = std::move(value); } /** *

The ID of the Recovery Instance associated with this Source Server.

*/ inline void SetRecoveryInstanceId(const char* value) { m_recoveryInstanceIdHasBeenSet = true; m_recoveryInstanceId.assign(value); } /** *

The ID of the Recovery Instance associated with this Source Server.

*/ inline SourceServer& WithRecoveryInstanceId(const Aws::String& value) { SetRecoveryInstanceId(value); return *this;} /** *

The ID of the Recovery Instance associated with this Source Server.

*/ inline SourceServer& WithRecoveryInstanceId(Aws::String&& value) { SetRecoveryInstanceId(std::move(value)); return *this;} /** *

The ID of the Recovery Instance associated with this Source Server.

*/ inline SourceServer& WithRecoveryInstanceId(const char* value) { SetRecoveryInstanceId(value); return *this;} /** *

Replication direction of the Source Server.

*/ inline const ReplicationDirection& GetReplicationDirection() const{ return m_replicationDirection; } /** *

Replication direction of the Source Server.

*/ inline bool ReplicationDirectionHasBeenSet() const { return m_replicationDirectionHasBeenSet; } /** *

Replication direction of the Source Server.

*/ inline void SetReplicationDirection(const ReplicationDirection& value) { m_replicationDirectionHasBeenSet = true; m_replicationDirection = value; } /** *

Replication direction of the Source Server.

*/ inline void SetReplicationDirection(ReplicationDirection&& value) { m_replicationDirectionHasBeenSet = true; m_replicationDirection = std::move(value); } /** *

Replication direction of the Source Server.

*/ inline SourceServer& WithReplicationDirection(const ReplicationDirection& value) { SetReplicationDirection(value); return *this;} /** *

Replication direction of the Source Server.

*/ inline SourceServer& WithReplicationDirection(ReplicationDirection&& value) { SetReplicationDirection(std::move(value)); return *this;} /** *

For EC2-originated Source Servers which have been failed over and then failed * back, this value will mean the ARN of the Source Server on the opposite * replication direction.

*/ inline const Aws::String& GetReversedDirectionSourceServerArn() const{ return m_reversedDirectionSourceServerArn; } /** *

For EC2-originated Source Servers which have been failed over and then failed * back, this value will mean the ARN of the Source Server on the opposite * replication direction.

*/ inline bool ReversedDirectionSourceServerArnHasBeenSet() const { return m_reversedDirectionSourceServerArnHasBeenSet; } /** *

For EC2-originated Source Servers which have been failed over and then failed * back, this value will mean the ARN of the Source Server on the opposite * replication direction.

*/ inline void SetReversedDirectionSourceServerArn(const Aws::String& value) { m_reversedDirectionSourceServerArnHasBeenSet = true; m_reversedDirectionSourceServerArn = value; } /** *

For EC2-originated Source Servers which have been failed over and then failed * back, this value will mean the ARN of the Source Server on the opposite * replication direction.

*/ inline void SetReversedDirectionSourceServerArn(Aws::String&& value) { m_reversedDirectionSourceServerArnHasBeenSet = true; m_reversedDirectionSourceServerArn = std::move(value); } /** *

For EC2-originated Source Servers which have been failed over and then failed * back, this value will mean the ARN of the Source Server on the opposite * replication direction.

*/ inline void SetReversedDirectionSourceServerArn(const char* value) { m_reversedDirectionSourceServerArnHasBeenSet = true; m_reversedDirectionSourceServerArn.assign(value); } /** *

For EC2-originated Source Servers which have been failed over and then failed * back, this value will mean the ARN of the Source Server on the opposite * replication direction.

*/ inline SourceServer& WithReversedDirectionSourceServerArn(const Aws::String& value) { SetReversedDirectionSourceServerArn(value); return *this;} /** *

For EC2-originated Source Servers which have been failed over and then failed * back, this value will mean the ARN of the Source Server on the opposite * replication direction.

*/ inline SourceServer& WithReversedDirectionSourceServerArn(Aws::String&& value) { SetReversedDirectionSourceServerArn(std::move(value)); return *this;} /** *

For EC2-originated Source Servers which have been failed over and then failed * back, this value will mean the ARN of the Source Server on the opposite * replication direction.

*/ inline SourceServer& WithReversedDirectionSourceServerArn(const char* value) { SetReversedDirectionSourceServerArn(value); return *this;} /** *

Source cloud properties of the Source Server.

*/ inline const SourceCloudProperties& GetSourceCloudProperties() const{ return m_sourceCloudProperties; } /** *

Source cloud properties of the Source Server.

*/ inline bool SourceCloudPropertiesHasBeenSet() const { return m_sourceCloudPropertiesHasBeenSet; } /** *

Source cloud properties of the Source Server.

*/ inline void SetSourceCloudProperties(const SourceCloudProperties& value) { m_sourceCloudPropertiesHasBeenSet = true; m_sourceCloudProperties = value; } /** *

Source cloud properties of the Source Server.

*/ inline void SetSourceCloudProperties(SourceCloudProperties&& value) { m_sourceCloudPropertiesHasBeenSet = true; m_sourceCloudProperties = std::move(value); } /** *

Source cloud properties of the Source Server.

*/ inline SourceServer& WithSourceCloudProperties(const SourceCloudProperties& value) { SetSourceCloudProperties(value); return *this;} /** *

Source cloud properties of the Source Server.

*/ inline SourceServer& WithSourceCloudProperties(SourceCloudProperties&& value) { SetSourceCloudProperties(std::move(value)); return *this;} /** *

ID of the Source Network which is protecting this Source Server's * network.

*/ inline const Aws::String& GetSourceNetworkID() const{ return m_sourceNetworkID; } /** *

ID of the Source Network which is protecting this Source Server's * network.

*/ inline bool SourceNetworkIDHasBeenSet() const { return m_sourceNetworkIDHasBeenSet; } /** *

ID of the Source Network which is protecting this Source Server's * network.

*/ inline void SetSourceNetworkID(const Aws::String& value) { m_sourceNetworkIDHasBeenSet = true; m_sourceNetworkID = value; } /** *

ID of the Source Network which is protecting this Source Server's * network.

*/ inline void SetSourceNetworkID(Aws::String&& value) { m_sourceNetworkIDHasBeenSet = true; m_sourceNetworkID = std::move(value); } /** *

ID of the Source Network which is protecting this Source Server's * network.

*/ inline void SetSourceNetworkID(const char* value) { m_sourceNetworkIDHasBeenSet = true; m_sourceNetworkID.assign(value); } /** *

ID of the Source Network which is protecting this Source Server's * network.

*/ inline SourceServer& WithSourceNetworkID(const Aws::String& value) { SetSourceNetworkID(value); return *this;} /** *

ID of the Source Network which is protecting this Source Server's * network.

*/ inline SourceServer& WithSourceNetworkID(Aws::String&& value) { SetSourceNetworkID(std::move(value)); return *this;} /** *

ID of the Source Network which is protecting this Source Server's * network.

*/ inline SourceServer& WithSourceNetworkID(const char* value) { SetSourceNetworkID(value); return *this;} /** *

The source properties of the Source Server.

*/ inline const SourceProperties& GetSourceProperties() const{ return m_sourceProperties; } /** *

The source properties of the Source Server.

*/ inline bool SourcePropertiesHasBeenSet() const { return m_sourcePropertiesHasBeenSet; } /** *

The source properties of the Source Server.

*/ inline void SetSourceProperties(const SourceProperties& value) { m_sourcePropertiesHasBeenSet = true; m_sourceProperties = value; } /** *

The source properties of the Source Server.

*/ inline void SetSourceProperties(SourceProperties&& value) { m_sourcePropertiesHasBeenSet = true; m_sourceProperties = std::move(value); } /** *

The source properties of the Source Server.

*/ inline SourceServer& WithSourceProperties(const SourceProperties& value) { SetSourceProperties(value); return *this;} /** *

The source properties of the Source Server.

*/ inline SourceServer& WithSourceProperties(SourceProperties&& value) { SetSourceProperties(std::move(value)); return *this;} /** *

The ID of the Source Server.

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

The ID of the Source Server.

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

The ID of the Source Server.

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

The ID of the Source Server.

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

The ID of the Source Server.

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

The ID of the Source Server.

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

The ID of the Source Server.

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

The ID of the Source Server.

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

The staging area of the source server.

*/ inline const StagingArea& GetStagingArea() const{ return m_stagingArea; } /** *

The staging area of the source server.

*/ inline bool StagingAreaHasBeenSet() const { return m_stagingAreaHasBeenSet; } /** *

The staging area of the source server.

*/ inline void SetStagingArea(const StagingArea& value) { m_stagingAreaHasBeenSet = true; m_stagingArea = value; } /** *

The staging area of the source server.

*/ inline void SetStagingArea(StagingArea&& value) { m_stagingAreaHasBeenSet = true; m_stagingArea = std::move(value); } /** *

The staging area of the source server.

*/ inline SourceServer& WithStagingArea(const StagingArea& value) { SetStagingArea(value); return *this;} /** *

The staging area of the source server.

*/ inline SourceServer& WithStagingArea(StagingArea&& value) { SetStagingArea(std::move(value)); return *this;} /** *

The tags associated with the Source Server.

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

The tags associated with the Source Server.

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

The tags associated with the Source Server.

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

The tags associated with the Source Server.

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

The tags associated with the Source Server.

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

The tags associated with the Source Server.

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

The tags associated with the Source Server.

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

The tags associated with the Source Server.

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

The tags associated with the Source Server.

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

The tags associated with the Source Server.

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

The tags associated with the Source Server.

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

The tags associated with the Source Server.

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

The tags associated with the Source Server.

*/ inline SourceServer& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } inline const Aws::String& GetRequestId() const{ return m_requestId; } inline bool RequestIdHasBeenSet() const { return m_requestIdHasBeenSet; } inline void SetRequestId(const Aws::String& value) { m_requestIdHasBeenSet = true; m_requestId = value; } inline void SetRequestId(Aws::String&& value) { m_requestIdHasBeenSet = true; m_requestId = std::move(value); } inline void SetRequestId(const char* value) { m_requestIdHasBeenSet = true; m_requestId.assign(value); } inline SourceServer& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} inline SourceServer& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} inline SourceServer& WithRequestId(const char* value) { SetRequestId(value); return *this;} private: Aws::String m_arn; bool m_arnHasBeenSet = false; DataReplicationInfo m_dataReplicationInfo; bool m_dataReplicationInfoHasBeenSet = false; LastLaunchResult m_lastLaunchResult; bool m_lastLaunchResultHasBeenSet = false; LifeCycle m_lifeCycle; bool m_lifeCycleHasBeenSet = false; Aws::String m_recoveryInstanceId; bool m_recoveryInstanceIdHasBeenSet = false; ReplicationDirection m_replicationDirection; bool m_replicationDirectionHasBeenSet = false; Aws::String m_reversedDirectionSourceServerArn; bool m_reversedDirectionSourceServerArnHasBeenSet = false; SourceCloudProperties m_sourceCloudProperties; bool m_sourceCloudPropertiesHasBeenSet = false; Aws::String m_sourceNetworkID; bool m_sourceNetworkIDHasBeenSet = false; SourceProperties m_sourceProperties; bool m_sourcePropertiesHasBeenSet = false; Aws::String m_sourceServerID; bool m_sourceServerIDHasBeenSet = false; StagingArea m_stagingArea; bool m_stagingAreaHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Aws::String m_requestId; bool m_requestIdHasBeenSet = false; }; } // namespace Model } // namespace drs } // namespace Aws