/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SMS { namespace Model { /** *

Represents a replication run.

See Also:

AWS * API Reference

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

The ID of the replication run.

*/ inline const Aws::String& GetReplicationRunId() const{ return m_replicationRunId; } /** *

The ID of the replication run.

*/ inline bool ReplicationRunIdHasBeenSet() const { return m_replicationRunIdHasBeenSet; } /** *

The ID of the replication run.

*/ inline void SetReplicationRunId(const Aws::String& value) { m_replicationRunIdHasBeenSet = true; m_replicationRunId = value; } /** *

The ID of the replication run.

*/ inline void SetReplicationRunId(Aws::String&& value) { m_replicationRunIdHasBeenSet = true; m_replicationRunId = std::move(value); } /** *

The ID of the replication run.

*/ inline void SetReplicationRunId(const char* value) { m_replicationRunIdHasBeenSet = true; m_replicationRunId.assign(value); } /** *

The ID of the replication run.

*/ inline ReplicationRun& WithReplicationRunId(const Aws::String& value) { SetReplicationRunId(value); return *this;} /** *

The ID of the replication run.

*/ inline ReplicationRun& WithReplicationRunId(Aws::String&& value) { SetReplicationRunId(std::move(value)); return *this;} /** *

The ID of the replication run.

*/ inline ReplicationRun& WithReplicationRunId(const char* value) { SetReplicationRunId(value); return *this;} /** *

The state of the replication run.

*/ inline const ReplicationRunState& GetState() const{ return m_state; } /** *

The state of the replication run.

*/ inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } /** *

The state of the replication run.

*/ inline void SetState(const ReplicationRunState& value) { m_stateHasBeenSet = true; m_state = value; } /** *

The state of the replication run.

*/ inline void SetState(ReplicationRunState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } /** *

The state of the replication run.

*/ inline ReplicationRun& WithState(const ReplicationRunState& value) { SetState(value); return *this;} /** *

The state of the replication run.

*/ inline ReplicationRun& WithState(ReplicationRunState&& value) { SetState(std::move(value)); return *this;} /** *

The type of replication run.

*/ inline const ReplicationRunType& GetType() const{ return m_type; } /** *

The type of replication run.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of replication run.

*/ inline void SetType(const ReplicationRunType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of replication run.

*/ inline void SetType(ReplicationRunType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of replication run.

*/ inline ReplicationRun& WithType(const ReplicationRunType& value) { SetType(value); return *this;} /** *

The type of replication run.

*/ inline ReplicationRun& WithType(ReplicationRunType&& value) { SetType(std::move(value)); return *this;} /** *

Details about the current stage of the replication run.

*/ inline const ReplicationRunStageDetails& GetStageDetails() const{ return m_stageDetails; } /** *

Details about the current stage of the replication run.

*/ inline bool StageDetailsHasBeenSet() const { return m_stageDetailsHasBeenSet; } /** *

Details about the current stage of the replication run.

*/ inline void SetStageDetails(const ReplicationRunStageDetails& value) { m_stageDetailsHasBeenSet = true; m_stageDetails = value; } /** *

Details about the current stage of the replication run.

*/ inline void SetStageDetails(ReplicationRunStageDetails&& value) { m_stageDetailsHasBeenSet = true; m_stageDetails = std::move(value); } /** *

Details about the current stage of the replication run.

*/ inline ReplicationRun& WithStageDetails(const ReplicationRunStageDetails& value) { SetStageDetails(value); return *this;} /** *

Details about the current stage of the replication run.

*/ inline ReplicationRun& WithStageDetails(ReplicationRunStageDetails&& value) { SetStageDetails(std::move(value)); return *this;} /** *

The description of the current status of the replication job.

*/ inline const Aws::String& GetStatusMessage() const{ return m_statusMessage; } /** *

The description of the current status of the replication job.

*/ inline bool StatusMessageHasBeenSet() const { return m_statusMessageHasBeenSet; } /** *

The description of the current status of the replication job.

*/ inline void SetStatusMessage(const Aws::String& value) { m_statusMessageHasBeenSet = true; m_statusMessage = value; } /** *

The description of the current status of the replication job.

*/ inline void SetStatusMessage(Aws::String&& value) { m_statusMessageHasBeenSet = true; m_statusMessage = std::move(value); } /** *

The description of the current status of the replication job.

*/ inline void SetStatusMessage(const char* value) { m_statusMessageHasBeenSet = true; m_statusMessage.assign(value); } /** *

The description of the current status of the replication job.

*/ inline ReplicationRun& WithStatusMessage(const Aws::String& value) { SetStatusMessage(value); return *this;} /** *

The description of the current status of the replication job.

*/ inline ReplicationRun& WithStatusMessage(Aws::String&& value) { SetStatusMessage(std::move(value)); return *this;} /** *

The description of the current status of the replication job.

*/ inline ReplicationRun& WithStatusMessage(const char* value) { SetStatusMessage(value); return *this;} /** *

The ID of the Amazon Machine Image (AMI) from the replication run.

*/ inline const Aws::String& GetAmiId() const{ return m_amiId; } /** *

The ID of the Amazon Machine Image (AMI) from the replication run.

*/ inline bool AmiIdHasBeenSet() const { return m_amiIdHasBeenSet; } /** *

The ID of the Amazon Machine Image (AMI) from the replication run.

*/ inline void SetAmiId(const Aws::String& value) { m_amiIdHasBeenSet = true; m_amiId = value; } /** *

The ID of the Amazon Machine Image (AMI) from the replication run.

*/ inline void SetAmiId(Aws::String&& value) { m_amiIdHasBeenSet = true; m_amiId = std::move(value); } /** *

The ID of the Amazon Machine Image (AMI) from the replication run.

*/ inline void SetAmiId(const char* value) { m_amiIdHasBeenSet = true; m_amiId.assign(value); } /** *

The ID of the Amazon Machine Image (AMI) from the replication run.

*/ inline ReplicationRun& WithAmiId(const Aws::String& value) { SetAmiId(value); return *this;} /** *

The ID of the Amazon Machine Image (AMI) from the replication run.

*/ inline ReplicationRun& WithAmiId(Aws::String&& value) { SetAmiId(std::move(value)); return *this;} /** *

The ID of the Amazon Machine Image (AMI) from the replication run.

*/ inline ReplicationRun& WithAmiId(const char* value) { SetAmiId(value); return *this;} /** *

The start time of the next replication run.

*/ inline const Aws::Utils::DateTime& GetScheduledStartTime() const{ return m_scheduledStartTime; } /** *

The start time of the next replication run.

*/ inline bool ScheduledStartTimeHasBeenSet() const { return m_scheduledStartTimeHasBeenSet; } /** *

The start time of the next replication run.

*/ inline void SetScheduledStartTime(const Aws::Utils::DateTime& value) { m_scheduledStartTimeHasBeenSet = true; m_scheduledStartTime = value; } /** *

The start time of the next replication run.

*/ inline void SetScheduledStartTime(Aws::Utils::DateTime&& value) { m_scheduledStartTimeHasBeenSet = true; m_scheduledStartTime = std::move(value); } /** *

The start time of the next replication run.

*/ inline ReplicationRun& WithScheduledStartTime(const Aws::Utils::DateTime& value) { SetScheduledStartTime(value); return *this;} /** *

The start time of the next replication run.

*/ inline ReplicationRun& WithScheduledStartTime(Aws::Utils::DateTime&& value) { SetScheduledStartTime(std::move(value)); return *this;} /** *

The completion time of the last replication run.

*/ inline const Aws::Utils::DateTime& GetCompletedTime() const{ return m_completedTime; } /** *

The completion time of the last replication run.

*/ inline bool CompletedTimeHasBeenSet() const { return m_completedTimeHasBeenSet; } /** *

The completion time of the last replication run.

*/ inline void SetCompletedTime(const Aws::Utils::DateTime& value) { m_completedTimeHasBeenSet = true; m_completedTime = value; } /** *

The completion time of the last replication run.

*/ inline void SetCompletedTime(Aws::Utils::DateTime&& value) { m_completedTimeHasBeenSet = true; m_completedTime = std::move(value); } /** *

The completion time of the last replication run.

*/ inline ReplicationRun& WithCompletedTime(const Aws::Utils::DateTime& value) { SetCompletedTime(value); return *this;} /** *

The completion time of the last replication run.

*/ inline ReplicationRun& WithCompletedTime(Aws::Utils::DateTime&& value) { SetCompletedTime(std::move(value)); return *this;} /** *

The description of the replication run.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description of the replication run.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description of the replication run.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description of the replication run.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description of the replication run.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description of the replication run.

*/ inline ReplicationRun& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description of the replication run.

*/ inline ReplicationRun& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The description of the replication run.

*/ inline ReplicationRun& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

Indicates whether the replication run should produce an encrypted AMI.

*/ inline bool GetEncrypted() const{ return m_encrypted; } /** *

Indicates whether the replication run should produce an encrypted AMI.

*/ inline bool EncryptedHasBeenSet() const { return m_encryptedHasBeenSet; } /** *

Indicates whether the replication run should produce an encrypted AMI.

*/ inline void SetEncrypted(bool value) { m_encryptedHasBeenSet = true; m_encrypted = value; } /** *

Indicates whether the replication run should produce an encrypted AMI.

*/ inline ReplicationRun& WithEncrypted(bool value) { SetEncrypted(value); return *this;} /** *

The ID of the KMS key for replication jobs that produce encrypted AMIs. This * value can be any of the following:

  • KMS key ID

  • *

    KMS key alias

  • ARN referring to the KMS key ID

  • *
  • ARN referring to the KMS key alias

If encrypted is * true but a KMS key ID is not specified, the customer's default KMS key * for Amazon EBS is used.

*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

The ID of the KMS key for replication jobs that produce encrypted AMIs. This * value can be any of the following:

  • KMS key ID

  • *

    KMS key alias

  • ARN referring to the KMS key ID

  • *
  • ARN referring to the KMS key alias

If encrypted is * true but a KMS key ID is not specified, the customer's default KMS key * for Amazon EBS is used.

*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

The ID of the KMS key for replication jobs that produce encrypted AMIs. This * value can be any of the following:

  • KMS key ID

  • *

    KMS key alias

  • ARN referring to the KMS key ID

  • *
  • ARN referring to the KMS key alias

If encrypted is * true but a KMS key ID is not specified, the customer's default KMS key * for Amazon EBS is used.

*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

The ID of the KMS key for replication jobs that produce encrypted AMIs. This * value can be any of the following:

  • KMS key ID

  • *

    KMS key alias

  • ARN referring to the KMS key ID

  • *
  • ARN referring to the KMS key alias

If encrypted is * true but a KMS key ID is not specified, the customer's default KMS key * for Amazon EBS is used.

*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

The ID of the KMS key for replication jobs that produce encrypted AMIs. This * value can be any of the following:

  • KMS key ID

  • *

    KMS key alias

  • ARN referring to the KMS key ID

  • *
  • ARN referring to the KMS key alias

If encrypted is * true but a KMS key ID is not specified, the customer's default KMS key * for Amazon EBS is used.

*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

The ID of the KMS key for replication jobs that produce encrypted AMIs. This * value can be any of the following:

  • KMS key ID

  • *

    KMS key alias

  • ARN referring to the KMS key ID

  • *
  • ARN referring to the KMS key alias

If encrypted is * true but a KMS key ID is not specified, the customer's default KMS key * for Amazon EBS is used.

*/ inline ReplicationRun& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

The ID of the KMS key for replication jobs that produce encrypted AMIs. This * value can be any of the following:

  • KMS key ID

  • *

    KMS key alias

  • ARN referring to the KMS key ID

  • *
  • ARN referring to the KMS key alias

If encrypted is * true but a KMS key ID is not specified, the customer's default KMS key * for Amazon EBS is used.

*/ inline ReplicationRun& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

The ID of the KMS key for replication jobs that produce encrypted AMIs. This * value can be any of the following:

  • KMS key ID

  • *

    KMS key alias

  • ARN referring to the KMS key ID

  • *
  • ARN referring to the KMS key alias

If encrypted is * true but a KMS key ID is not specified, the customer's default KMS key * for Amazon EBS is used.

*/ inline ReplicationRun& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} private: Aws::String m_replicationRunId; bool m_replicationRunIdHasBeenSet = false; ReplicationRunState m_state; bool m_stateHasBeenSet = false; ReplicationRunType m_type; bool m_typeHasBeenSet = false; ReplicationRunStageDetails m_stageDetails; bool m_stageDetailsHasBeenSet = false; Aws::String m_statusMessage; bool m_statusMessageHasBeenSet = false; Aws::String m_amiId; bool m_amiIdHasBeenSet = false; Aws::Utils::DateTime m_scheduledStartTime; bool m_scheduledStartTimeHasBeenSet = false; Aws::Utils::DateTime m_completedTime; bool m_completedTimeHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; bool m_encrypted; bool m_encryptedHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; }; } // namespace Model } // namespace SMS } // namespace Aws