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

A structure that contains the configuration of encryption-at-rest settings * for canary artifacts that the canary uploads to Amazon S3.

For more * information, see Encrypting * canary artifacts

See Also:

AWS * API Reference

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

The encryption method to use for artifacts created by this canary. Specify * SSE_S3 to use server-side encryption (SSE) with an Amazon * S3-managed key. Specify SSE-KMS to use server-side encryption with * a customer-managed KMS key.

If you omit this parameter, an Amazon Web * Services-managed KMS key is used.

*/ inline const EncryptionMode& GetEncryptionMode() const{ return m_encryptionMode; } /** *

The encryption method to use for artifacts created by this canary. Specify * SSE_S3 to use server-side encryption (SSE) with an Amazon * S3-managed key. Specify SSE-KMS to use server-side encryption with * a customer-managed KMS key.

If you omit this parameter, an Amazon Web * Services-managed KMS key is used.

*/ inline bool EncryptionModeHasBeenSet() const { return m_encryptionModeHasBeenSet; } /** *

The encryption method to use for artifacts created by this canary. Specify * SSE_S3 to use server-side encryption (SSE) with an Amazon * S3-managed key. Specify SSE-KMS to use server-side encryption with * a customer-managed KMS key.

If you omit this parameter, an Amazon Web * Services-managed KMS key is used.

*/ inline void SetEncryptionMode(const EncryptionMode& value) { m_encryptionModeHasBeenSet = true; m_encryptionMode = value; } /** *

The encryption method to use for artifacts created by this canary. Specify * SSE_S3 to use server-side encryption (SSE) with an Amazon * S3-managed key. Specify SSE-KMS to use server-side encryption with * a customer-managed KMS key.

If you omit this parameter, an Amazon Web * Services-managed KMS key is used.

*/ inline void SetEncryptionMode(EncryptionMode&& value) { m_encryptionModeHasBeenSet = true; m_encryptionMode = std::move(value); } /** *

The encryption method to use for artifacts created by this canary. Specify * SSE_S3 to use server-side encryption (SSE) with an Amazon * S3-managed key. Specify SSE-KMS to use server-side encryption with * a customer-managed KMS key.

If you omit this parameter, an Amazon Web * Services-managed KMS key is used.

*/ inline S3EncryptionConfig& WithEncryptionMode(const EncryptionMode& value) { SetEncryptionMode(value); return *this;} /** *

The encryption method to use for artifacts created by this canary. Specify * SSE_S3 to use server-side encryption (SSE) with an Amazon * S3-managed key. Specify SSE-KMS to use server-side encryption with * a customer-managed KMS key.

If you omit this parameter, an Amazon Web * Services-managed KMS key is used.

*/ inline S3EncryptionConfig& WithEncryptionMode(EncryptionMode&& value) { SetEncryptionMode(std::move(value)); return *this;} /** *

The ARN of the customer-managed KMS key to use, if you specify * SSE-KMS for EncryptionMode

*/ inline const Aws::String& GetKmsKeyArn() const{ return m_kmsKeyArn; } /** *

The ARN of the customer-managed KMS key to use, if you specify * SSE-KMS for EncryptionMode

*/ inline bool KmsKeyArnHasBeenSet() const { return m_kmsKeyArnHasBeenSet; } /** *

The ARN of the customer-managed KMS key to use, if you specify * SSE-KMS for EncryptionMode

*/ inline void SetKmsKeyArn(const Aws::String& value) { m_kmsKeyArnHasBeenSet = true; m_kmsKeyArn = value; } /** *

The ARN of the customer-managed KMS key to use, if you specify * SSE-KMS for EncryptionMode

*/ inline void SetKmsKeyArn(Aws::String&& value) { m_kmsKeyArnHasBeenSet = true; m_kmsKeyArn = std::move(value); } /** *

The ARN of the customer-managed KMS key to use, if you specify * SSE-KMS for EncryptionMode

*/ inline void SetKmsKeyArn(const char* value) { m_kmsKeyArnHasBeenSet = true; m_kmsKeyArn.assign(value); } /** *

The ARN of the customer-managed KMS key to use, if you specify * SSE-KMS for EncryptionMode

*/ inline S3EncryptionConfig& WithKmsKeyArn(const Aws::String& value) { SetKmsKeyArn(value); return *this;} /** *

The ARN of the customer-managed KMS key to use, if you specify * SSE-KMS for EncryptionMode

*/ inline S3EncryptionConfig& WithKmsKeyArn(Aws::String&& value) { SetKmsKeyArn(std::move(value)); return *this;} /** *

The ARN of the customer-managed KMS key to use, if you specify * SSE-KMS for EncryptionMode

*/ inline S3EncryptionConfig& WithKmsKeyArn(const char* value) { SetKmsKeyArn(value); return *this;} private: EncryptionMode m_encryptionMode; bool m_encryptionModeHasBeenSet = false; Aws::String m_kmsKeyArn; bool m_kmsKeyArnHasBeenSet = false; }; } // namespace Model } // namespace Synthetics } // namespace Aws