/** * 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 SecurityHub { namespace Model { /** *

Specifies the method used to encrypt the user’s data stores in the Athena * workgroup.

See Also:

AWS * API Reference

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

Indicates whether Amazon Simple Storage Service (Amazon S3) server-side * encryption with Amazon S3 managed keys (SSE_S3), server-side encryption with KMS * keys (SSE_KMS), or client-side encryption with KMS customer managed keys * (CSE_KMS) is used.

*/ inline const Aws::String& GetEncryptionOption() const{ return m_encryptionOption; } /** *

Indicates whether Amazon Simple Storage Service (Amazon S3) server-side * encryption with Amazon S3 managed keys (SSE_S3), server-side encryption with KMS * keys (SSE_KMS), or client-side encryption with KMS customer managed keys * (CSE_KMS) is used.

*/ inline bool EncryptionOptionHasBeenSet() const { return m_encryptionOptionHasBeenSet; } /** *

Indicates whether Amazon Simple Storage Service (Amazon S3) server-side * encryption with Amazon S3 managed keys (SSE_S3), server-side encryption with KMS * keys (SSE_KMS), or client-side encryption with KMS customer managed keys * (CSE_KMS) is used.

*/ inline void SetEncryptionOption(const Aws::String& value) { m_encryptionOptionHasBeenSet = true; m_encryptionOption = value; } /** *

Indicates whether Amazon Simple Storage Service (Amazon S3) server-side * encryption with Amazon S3 managed keys (SSE_S3), server-side encryption with KMS * keys (SSE_KMS), or client-side encryption with KMS customer managed keys * (CSE_KMS) is used.

*/ inline void SetEncryptionOption(Aws::String&& value) { m_encryptionOptionHasBeenSet = true; m_encryptionOption = std::move(value); } /** *

Indicates whether Amazon Simple Storage Service (Amazon S3) server-side * encryption with Amazon S3 managed keys (SSE_S3), server-side encryption with KMS * keys (SSE_KMS), or client-side encryption with KMS customer managed keys * (CSE_KMS) is used.

*/ inline void SetEncryptionOption(const char* value) { m_encryptionOptionHasBeenSet = true; m_encryptionOption.assign(value); } /** *

Indicates whether Amazon Simple Storage Service (Amazon S3) server-side * encryption with Amazon S3 managed keys (SSE_S3), server-side encryption with KMS * keys (SSE_KMS), or client-side encryption with KMS customer managed keys * (CSE_KMS) is used.

*/ inline AwsAthenaWorkGroupConfigurationResultConfigurationEncryptionConfigurationDetails& WithEncryptionOption(const Aws::String& value) { SetEncryptionOption(value); return *this;} /** *

Indicates whether Amazon Simple Storage Service (Amazon S3) server-side * encryption with Amazon S3 managed keys (SSE_S3), server-side encryption with KMS * keys (SSE_KMS), or client-side encryption with KMS customer managed keys * (CSE_KMS) is used.

*/ inline AwsAthenaWorkGroupConfigurationResultConfigurationEncryptionConfigurationDetails& WithEncryptionOption(Aws::String&& value) { SetEncryptionOption(std::move(value)); return *this;} /** *

Indicates whether Amazon Simple Storage Service (Amazon S3) server-side * encryption with Amazon S3 managed keys (SSE_S3), server-side encryption with KMS * keys (SSE_KMS), or client-side encryption with KMS customer managed keys * (CSE_KMS) is used.

*/ inline AwsAthenaWorkGroupConfigurationResultConfigurationEncryptionConfigurationDetails& WithEncryptionOption(const char* value) { SetEncryptionOption(value); return *this;} /** *

For SSE_KMS and CSE_KMS, this is the KMS key * Amazon Resource Name (ARN) or ID.

*/ inline const Aws::String& GetKmsKey() const{ return m_kmsKey; } /** *

For SSE_KMS and CSE_KMS, this is the KMS key * Amazon Resource Name (ARN) or ID.

*/ inline bool KmsKeyHasBeenSet() const { return m_kmsKeyHasBeenSet; } /** *

For SSE_KMS and CSE_KMS, this is the KMS key * Amazon Resource Name (ARN) or ID.

*/ inline void SetKmsKey(const Aws::String& value) { m_kmsKeyHasBeenSet = true; m_kmsKey = value; } /** *

For SSE_KMS and CSE_KMS, this is the KMS key * Amazon Resource Name (ARN) or ID.

*/ inline void SetKmsKey(Aws::String&& value) { m_kmsKeyHasBeenSet = true; m_kmsKey = std::move(value); } /** *

For SSE_KMS and CSE_KMS, this is the KMS key * Amazon Resource Name (ARN) or ID.

*/ inline void SetKmsKey(const char* value) { m_kmsKeyHasBeenSet = true; m_kmsKey.assign(value); } /** *

For SSE_KMS and CSE_KMS, this is the KMS key * Amazon Resource Name (ARN) or ID.

*/ inline AwsAthenaWorkGroupConfigurationResultConfigurationEncryptionConfigurationDetails& WithKmsKey(const Aws::String& value) { SetKmsKey(value); return *this;} /** *

For SSE_KMS and CSE_KMS, this is the KMS key * Amazon Resource Name (ARN) or ID.

*/ inline AwsAthenaWorkGroupConfigurationResultConfigurationEncryptionConfigurationDetails& WithKmsKey(Aws::String&& value) { SetKmsKey(std::move(value)); return *this;} /** *

For SSE_KMS and CSE_KMS, this is the KMS key * Amazon Resource Name (ARN) or ID.

*/ inline AwsAthenaWorkGroupConfigurationResultConfigurationEncryptionConfigurationDetails& WithKmsKey(const char* value) { SetKmsKey(value); return *this;} private: Aws::String m_encryptionOption; bool m_encryptionOptionHasBeenSet = false; Aws::String m_kmsKey; bool m_kmsKeyHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws