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

[Event-based policies only] Specifies the encryption settings for * cross-Region snapshot copies created by event-based policies.

See * Also:

AWS * API Reference

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

To encrypt a copy of an unencrypted snapshot when encryption by default is * not enabled, enable encryption using this parameter. Copies of encrypted * snapshots are encrypted, even if this parameter is false or when encryption by * default is not enabled.

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

To encrypt a copy of an unencrypted snapshot when encryption by default is * not enabled, enable encryption using this parameter. Copies of encrypted * snapshots are encrypted, even if this parameter is false or when encryption by * default is not enabled.

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

To encrypt a copy of an unencrypted snapshot when encryption by default is * not enabled, enable encryption using this parameter. Copies of encrypted * snapshots are encrypted, even if this parameter is false or when encryption by * default is not enabled.

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

To encrypt a copy of an unencrypted snapshot when encryption by default is * not enabled, enable encryption using this parameter. Copies of encrypted * snapshots are encrypted, even if this parameter is false or when encryption by * default is not enabled.

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

The Amazon Resource Name (ARN) of the KMS key to use for EBS encryption. If * this parameter is not specified, the default KMS key for the account is * used.

*/ inline const Aws::String& GetCmkArn() const{ return m_cmkArn; } /** *

The Amazon Resource Name (ARN) of the KMS key to use for EBS encryption. If * this parameter is not specified, the default KMS key for the account is * used.

*/ inline bool CmkArnHasBeenSet() const { return m_cmkArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the KMS key to use for EBS encryption. If * this parameter is not specified, the default KMS key for the account is * used.

*/ inline void SetCmkArn(const Aws::String& value) { m_cmkArnHasBeenSet = true; m_cmkArn = value; } /** *

The Amazon Resource Name (ARN) of the KMS key to use for EBS encryption. If * this parameter is not specified, the default KMS key for the account is * used.

*/ inline void SetCmkArn(Aws::String&& value) { m_cmkArnHasBeenSet = true; m_cmkArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the KMS key to use for EBS encryption. If * this parameter is not specified, the default KMS key for the account is * used.

*/ inline void SetCmkArn(const char* value) { m_cmkArnHasBeenSet = true; m_cmkArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the KMS key to use for EBS encryption. If * this parameter is not specified, the default KMS key for the account is * used.

*/ inline EncryptionConfiguration& WithCmkArn(const Aws::String& value) { SetCmkArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the KMS key to use for EBS encryption. If * this parameter is not specified, the default KMS key for the account is * used.

*/ inline EncryptionConfiguration& WithCmkArn(Aws::String&& value) { SetCmkArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the KMS key to use for EBS encryption. If * this parameter is not specified, the default KMS key for the account is * used.

*/ inline EncryptionConfiguration& WithCmkArn(const char* value) { SetCmkArn(value); return *this;} private: bool m_encrypted; bool m_encryptedHasBeenSet = false; Aws::String m_cmkArn; bool m_cmkArnHasBeenSet = false; }; } // namespace Model } // namespace DLM } // namespace Aws