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

If query results are encrypted in Amazon S3, indicates the encryption option * used (for example, SSE-KMS or CSE-KMS) and key * information.

See Also:

AWS * API Reference

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

Indicates whether Amazon S3 server-side encryption with Amazon S3-managed * keys (SSE-S3), server-side encryption with KMS-managed keys * (SSE-KMS), or client-side encryption with KMS-managed keys * (CSE-KMS) is used.

If a query runs in a workgroup and the workgroup * overrides client-side settings, then the workgroup's setting for encryption is * used. It specifies whether query results must be encrypted, for all queries that * run in this workgroup.

*/ inline const EncryptionOption& GetEncryptionOption() const{ return m_encryptionOption; } /** *

Indicates whether Amazon S3 server-side encryption with Amazon S3-managed * keys (SSE-S3), server-side encryption with KMS-managed keys * (SSE-KMS), or client-side encryption with KMS-managed keys * (CSE-KMS) is used.

If a query runs in a workgroup and the workgroup * overrides client-side settings, then the workgroup's setting for encryption is * used. It specifies whether query results must be encrypted, for all queries that * run in this workgroup.

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

Indicates whether Amazon S3 server-side encryption with Amazon S3-managed * keys (SSE-S3), server-side encryption with KMS-managed keys * (SSE-KMS), or client-side encryption with KMS-managed keys * (CSE-KMS) is used.

If a query runs in a workgroup and the workgroup * overrides client-side settings, then the workgroup's setting for encryption is * used. It specifies whether query results must be encrypted, for all queries that * run in this workgroup.

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

Indicates whether Amazon S3 server-side encryption with Amazon S3-managed * keys (SSE-S3), server-side encryption with KMS-managed keys * (SSE-KMS), or client-side encryption with KMS-managed keys * (CSE-KMS) is used.

If a query runs in a workgroup and the workgroup * overrides client-side settings, then the workgroup's setting for encryption is * used. It specifies whether query results must be encrypted, for all queries that * run in this workgroup.

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

Indicates whether Amazon S3 server-side encryption with Amazon S3-managed * keys (SSE-S3), server-side encryption with KMS-managed keys * (SSE-KMS), or client-side encryption with KMS-managed keys * (CSE-KMS) is used.

If a query runs in a workgroup and the workgroup * overrides client-side settings, then the workgroup's setting for encryption is * used. It specifies whether query results must be encrypted, for all queries that * run in this workgroup.

*/ inline EncryptionConfiguration& WithEncryptionOption(const EncryptionOption& value) { SetEncryptionOption(value); return *this;} /** *

Indicates whether Amazon S3 server-side encryption with Amazon S3-managed * keys (SSE-S3), server-side encryption with KMS-managed keys * (SSE-KMS), or client-side encryption with KMS-managed keys * (CSE-KMS) is used.

If a query runs in a workgroup and the workgroup * overrides client-side settings, then the workgroup's setting for encryption is * used. It specifies whether query results must be encrypted, for all queries that * run in this workgroup.

*/ inline EncryptionConfiguration& WithEncryptionOption(EncryptionOption&& value) { SetEncryptionOption(std::move(value)); return *this;} /** *

For SSE-KMS and CSE-KMS, this is the KMS key ARN or * ID.

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

For SSE-KMS and CSE-KMS, this is the KMS key ARN or * ID.

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

For SSE-KMS and CSE-KMS, this is the KMS key 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 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 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 ARN or * ID.

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

For SSE-KMS and CSE-KMS, this is the KMS key ARN or * ID.

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

For SSE-KMS and CSE-KMS, this is the KMS key ARN or * ID.

*/ inline EncryptionConfiguration& WithKmsKey(const char* value) { SetKmsKey(value); return *this;} private: EncryptionOption m_encryptionOption; bool m_encryptionOptionHasBeenSet; Aws::String m_kmsKey; bool m_kmsKeyHasBeenSet; }; } // namespace Model } // namespace Athena } // namespace Aws