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

The replication parameters for replicating a server.

See Also:

* AWS * API Reference

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

The seed time for creating a replication job for the server.

*/ inline const Aws::Utils::DateTime& GetSeedTime() const{ return m_seedTime; } /** *

The seed time for creating a replication job for the server.

*/ inline bool SeedTimeHasBeenSet() const { return m_seedTimeHasBeenSet; } /** *

The seed time for creating a replication job for the server.

*/ inline void SetSeedTime(const Aws::Utils::DateTime& value) { m_seedTimeHasBeenSet = true; m_seedTime = value; } /** *

The seed time for creating a replication job for the server.

*/ inline void SetSeedTime(Aws::Utils::DateTime&& value) { m_seedTimeHasBeenSet = true; m_seedTime = std::move(value); } /** *

The seed time for creating a replication job for the server.

*/ inline ServerReplicationParameters& WithSeedTime(const Aws::Utils::DateTime& value) { SetSeedTime(value); return *this;} /** *

The seed time for creating a replication job for the server.

*/ inline ServerReplicationParameters& WithSeedTime(Aws::Utils::DateTime&& value) { SetSeedTime(std::move(value)); return *this;} /** *

The frequency of creating replication jobs for the server.

*/ inline int GetFrequency() const{ return m_frequency; } /** *

The frequency of creating replication jobs for the server.

*/ inline bool FrequencyHasBeenSet() const { return m_frequencyHasBeenSet; } /** *

The frequency of creating replication jobs for the server.

*/ inline void SetFrequency(int value) { m_frequencyHasBeenSet = true; m_frequency = value; } /** *

The frequency of creating replication jobs for the server.

*/ inline ServerReplicationParameters& WithFrequency(int value) { SetFrequency(value); return *this;} /** *

Indicates whether to run the replication job one time.

*/ inline bool GetRunOnce() const{ return m_runOnce; } /** *

Indicates whether to run the replication job one time.

*/ inline bool RunOnceHasBeenSet() const { return m_runOnceHasBeenSet; } /** *

Indicates whether to run the replication job one time.

*/ inline void SetRunOnce(bool value) { m_runOnceHasBeenSet = true; m_runOnce = value; } /** *

Indicates whether to run the replication job one time.

*/ inline ServerReplicationParameters& WithRunOnce(bool value) { SetRunOnce(value); return *this;} /** *

The license type for creating a replication job for the server.

*/ inline const LicenseType& GetLicenseType() const{ return m_licenseType; } /** *

The license type for creating a replication job for the server.

*/ inline bool LicenseTypeHasBeenSet() const { return m_licenseTypeHasBeenSet; } /** *

The license type for creating a replication job for the server.

*/ inline void SetLicenseType(const LicenseType& value) { m_licenseTypeHasBeenSet = true; m_licenseType = value; } /** *

The license type for creating a replication job for the server.

*/ inline void SetLicenseType(LicenseType&& value) { m_licenseTypeHasBeenSet = true; m_licenseType = std::move(value); } /** *

The license type for creating a replication job for the server.

*/ inline ServerReplicationParameters& WithLicenseType(const LicenseType& value) { SetLicenseType(value); return *this;} /** *

The license type for creating a replication job for the server.

*/ inline ServerReplicationParameters& WithLicenseType(LicenseType&& value) { SetLicenseType(std::move(value)); return *this;} /** *

The number of recent AMIs to keep when creating a replication job for this * server.

*/ inline int GetNumberOfRecentAmisToKeep() const{ return m_numberOfRecentAmisToKeep; } /** *

The number of recent AMIs to keep when creating a replication job for this * server.

*/ inline bool NumberOfRecentAmisToKeepHasBeenSet() const { return m_numberOfRecentAmisToKeepHasBeenSet; } /** *

The number of recent AMIs to keep when creating a replication job for this * server.

*/ inline void SetNumberOfRecentAmisToKeep(int value) { m_numberOfRecentAmisToKeepHasBeenSet = true; m_numberOfRecentAmisToKeep = value; } /** *

The number of recent AMIs to keep when creating a replication job for this * server.

*/ inline ServerReplicationParameters& WithNumberOfRecentAmisToKeep(int value) { SetNumberOfRecentAmisToKeep(value); return *this;} /** *

Indicates whether the replication job produces encrypted AMIs.

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

Indicates whether the replication job produces encrypted AMIs.

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

Indicates whether the replication job produces encrypted AMIs.

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

Indicates whether the replication job produces encrypted AMIs.

*/ inline ServerReplicationParameters& 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 * enabled 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 * enabled 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 * enabled 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 * enabled 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 * enabled 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 * enabled but a KMS key ID is not specified, the customer's default KMS key for * Amazon EBS is used.

*/ inline ServerReplicationParameters& 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 * enabled but a KMS key ID is not specified, the customer's default KMS key for * Amazon EBS is used.

*/ inline ServerReplicationParameters& 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 * enabled but a KMS key ID is not specified, the customer's default KMS key for * Amazon EBS is used.

*/ inline ServerReplicationParameters& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} private: Aws::Utils::DateTime m_seedTime; bool m_seedTimeHasBeenSet = false; int m_frequency; bool m_frequencyHasBeenSet = false; bool m_runOnce; bool m_runOnceHasBeenSet = false; LicenseType m_licenseType; bool m_licenseTypeHasBeenSet = false; int m_numberOfRecentAmisToKeep; bool m_numberOfRecentAmisToKeepHasBeenSet = false; bool m_encrypted; bool m_encryptedHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; }; } // namespace Model } // namespace SMS } // namespace Aws