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

The customer-managed-key(CMK) used when creating a data store. If a customer * owned key is not specified, an AWS owned key will be used for encryption. *

See Also:

AWS * API Reference

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

The type of customer-managed-key(CMK) used for encryption. The two types of * supported CMKs are customer owned CMKs and AWS owned CMKs.

*/ inline const CmkType& GetCmkType() const{ return m_cmkType; } /** *

The type of customer-managed-key(CMK) used for encryption. The two types of * supported CMKs are customer owned CMKs and AWS owned CMKs.

*/ inline bool CmkTypeHasBeenSet() const { return m_cmkTypeHasBeenSet; } /** *

The type of customer-managed-key(CMK) used for encryption. The two types of * supported CMKs are customer owned CMKs and AWS owned CMKs.

*/ inline void SetCmkType(const CmkType& value) { m_cmkTypeHasBeenSet = true; m_cmkType = value; } /** *

The type of customer-managed-key(CMK) used for encryption. The two types of * supported CMKs are customer owned CMKs and AWS owned CMKs.

*/ inline void SetCmkType(CmkType&& value) { m_cmkTypeHasBeenSet = true; m_cmkType = std::move(value); } /** *

The type of customer-managed-key(CMK) used for encryption. The two types of * supported CMKs are customer owned CMKs and AWS owned CMKs.

*/ inline KmsEncryptionConfig& WithCmkType(const CmkType& value) { SetCmkType(value); return *this;} /** *

The type of customer-managed-key(CMK) used for encryption. The two types of * supported CMKs are customer owned CMKs and AWS owned CMKs.

*/ inline KmsEncryptionConfig& WithCmkType(CmkType&& value) { SetCmkType(std::move(value)); return *this;} /** *

The KMS encryption key id/alias used to encrypt the data store contents at * rest.

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

The KMS encryption key id/alias used to encrypt the data store contents at * rest.

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

The KMS encryption key id/alias used to encrypt the data store contents at * rest.

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

The KMS encryption key id/alias used to encrypt the data store contents at * rest.

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

The KMS encryption key id/alias used to encrypt the data store contents at * rest.

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

The KMS encryption key id/alias used to encrypt the data store contents at * rest.

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

The KMS encryption key id/alias used to encrypt the data store contents at * rest.

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

The KMS encryption key id/alias used to encrypt the data store contents at * rest.

*/ inline KmsEncryptionConfig& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} private: CmkType m_cmkType; bool m_cmkTypeHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; }; } // namespace Model } // namespace HealthLake } // namespace Aws