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

Contains information about the server-side encryption (SSE) status for the * delivery stream, the type customer master key (CMK) in use, if any, and the ARN * of the CMK. You can get DeliveryStreamEncryptionConfiguration by * invoking the DescribeDeliveryStream operation.

See Also:

* AWS * API Reference

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

If KeyType is CUSTOMER_MANAGED_CMK, this field * contains the ARN of the customer managed CMK. If KeyType is * AWS_OWNED_CMK, DeliveryStreamEncryptionConfiguration * doesn't contain a value for KeyARN.

*/ inline const Aws::String& GetKeyARN() const{ return m_keyARN; } /** *

If KeyType is CUSTOMER_MANAGED_CMK, this field * contains the ARN of the customer managed CMK. If KeyType is * AWS_OWNED_CMK, DeliveryStreamEncryptionConfiguration * doesn't contain a value for KeyARN.

*/ inline bool KeyARNHasBeenSet() const { return m_keyARNHasBeenSet; } /** *

If KeyType is CUSTOMER_MANAGED_CMK, this field * contains the ARN of the customer managed CMK. If KeyType is * AWS_OWNED_CMK, DeliveryStreamEncryptionConfiguration * doesn't contain a value for KeyARN.

*/ inline void SetKeyARN(const Aws::String& value) { m_keyARNHasBeenSet = true; m_keyARN = value; } /** *

If KeyType is CUSTOMER_MANAGED_CMK, this field * contains the ARN of the customer managed CMK. If KeyType is * AWS_OWNED_CMK, DeliveryStreamEncryptionConfiguration * doesn't contain a value for KeyARN.

*/ inline void SetKeyARN(Aws::String&& value) { m_keyARNHasBeenSet = true; m_keyARN = std::move(value); } /** *

If KeyType is CUSTOMER_MANAGED_CMK, this field * contains the ARN of the customer managed CMK. If KeyType is * AWS_OWNED_CMK, DeliveryStreamEncryptionConfiguration * doesn't contain a value for KeyARN.

*/ inline void SetKeyARN(const char* value) { m_keyARNHasBeenSet = true; m_keyARN.assign(value); } /** *

If KeyType is CUSTOMER_MANAGED_CMK, this field * contains the ARN of the customer managed CMK. If KeyType is * AWS_OWNED_CMK, DeliveryStreamEncryptionConfiguration * doesn't contain a value for KeyARN.

*/ inline DeliveryStreamEncryptionConfiguration& WithKeyARN(const Aws::String& value) { SetKeyARN(value); return *this;} /** *

If KeyType is CUSTOMER_MANAGED_CMK, this field * contains the ARN of the customer managed CMK. If KeyType is * AWS_OWNED_CMK, DeliveryStreamEncryptionConfiguration * doesn't contain a value for KeyARN.

*/ inline DeliveryStreamEncryptionConfiguration& WithKeyARN(Aws::String&& value) { SetKeyARN(std::move(value)); return *this;} /** *

If KeyType is CUSTOMER_MANAGED_CMK, this field * contains the ARN of the customer managed CMK. If KeyType is * AWS_OWNED_CMK, DeliveryStreamEncryptionConfiguration * doesn't contain a value for KeyARN.

*/ inline DeliveryStreamEncryptionConfiguration& WithKeyARN(const char* value) { SetKeyARN(value); return *this;} /** *

Indicates the type of customer master key (CMK) that is used for encryption. * The default setting is AWS_OWNED_CMK. For more information about * CMKs, see Customer * Master Keys (CMKs).

*/ inline const KeyType& GetKeyType() const{ return m_keyType; } /** *

Indicates the type of customer master key (CMK) that is used for encryption. * The default setting is AWS_OWNED_CMK. For more information about * CMKs, see Customer * Master Keys (CMKs).

*/ inline bool KeyTypeHasBeenSet() const { return m_keyTypeHasBeenSet; } /** *

Indicates the type of customer master key (CMK) that is used for encryption. * The default setting is AWS_OWNED_CMK. For more information about * CMKs, see Customer * Master Keys (CMKs).

*/ inline void SetKeyType(const KeyType& value) { m_keyTypeHasBeenSet = true; m_keyType = value; } /** *

Indicates the type of customer master key (CMK) that is used for encryption. * The default setting is AWS_OWNED_CMK. For more information about * CMKs, see Customer * Master Keys (CMKs).

*/ inline void SetKeyType(KeyType&& value) { m_keyTypeHasBeenSet = true; m_keyType = std::move(value); } /** *

Indicates the type of customer master key (CMK) that is used for encryption. * The default setting is AWS_OWNED_CMK. For more information about * CMKs, see Customer * Master Keys (CMKs).

*/ inline DeliveryStreamEncryptionConfiguration& WithKeyType(const KeyType& value) { SetKeyType(value); return *this;} /** *

Indicates the type of customer master key (CMK) that is used for encryption. * The default setting is AWS_OWNED_CMK. For more information about * CMKs, see Customer * Master Keys (CMKs).

*/ inline DeliveryStreamEncryptionConfiguration& WithKeyType(KeyType&& value) { SetKeyType(std::move(value)); return *this;} /** *

This is the server-side encryption (SSE) status for the delivery stream. For * a full description of the different values of this status, see * StartDeliveryStreamEncryption and StopDeliveryStreamEncryption. If * this status is ENABLING_FAILED or DISABLING_FAILED, it * is the status of the most recent attempt to enable or disable SSE, * respectively.

*/ inline const DeliveryStreamEncryptionStatus& GetStatus() const{ return m_status; } /** *

This is the server-side encryption (SSE) status for the delivery stream. For * a full description of the different values of this status, see * StartDeliveryStreamEncryption and StopDeliveryStreamEncryption. If * this status is ENABLING_FAILED or DISABLING_FAILED, it * is the status of the most recent attempt to enable or disable SSE, * respectively.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

This is the server-side encryption (SSE) status for the delivery stream. For * a full description of the different values of this status, see * StartDeliveryStreamEncryption and StopDeliveryStreamEncryption. If * this status is ENABLING_FAILED or DISABLING_FAILED, it * is the status of the most recent attempt to enable or disable SSE, * respectively.

*/ inline void SetStatus(const DeliveryStreamEncryptionStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

This is the server-side encryption (SSE) status for the delivery stream. For * a full description of the different values of this status, see * StartDeliveryStreamEncryption and StopDeliveryStreamEncryption. If * this status is ENABLING_FAILED or DISABLING_FAILED, it * is the status of the most recent attempt to enable or disable SSE, * respectively.

*/ inline void SetStatus(DeliveryStreamEncryptionStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

This is the server-side encryption (SSE) status for the delivery stream. For * a full description of the different values of this status, see * StartDeliveryStreamEncryption and StopDeliveryStreamEncryption. If * this status is ENABLING_FAILED or DISABLING_FAILED, it * is the status of the most recent attempt to enable or disable SSE, * respectively.

*/ inline DeliveryStreamEncryptionConfiguration& WithStatus(const DeliveryStreamEncryptionStatus& value) { SetStatus(value); return *this;} /** *

This is the server-side encryption (SSE) status for the delivery stream. For * a full description of the different values of this status, see * StartDeliveryStreamEncryption and StopDeliveryStreamEncryption. If * this status is ENABLING_FAILED or DISABLING_FAILED, it * is the status of the most recent attempt to enable or disable SSE, * respectively.

*/ inline DeliveryStreamEncryptionConfiguration& WithStatus(DeliveryStreamEncryptionStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

Provides details in case one of the following operations fails due to an * error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, * StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

*/ inline const FailureDescription& GetFailureDescription() const{ return m_failureDescription; } /** *

Provides details in case one of the following operations fails due to an * error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, * StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

*/ inline bool FailureDescriptionHasBeenSet() const { return m_failureDescriptionHasBeenSet; } /** *

Provides details in case one of the following operations fails due to an * error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, * StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

*/ inline void SetFailureDescription(const FailureDescription& value) { m_failureDescriptionHasBeenSet = true; m_failureDescription = value; } /** *

Provides details in case one of the following operations fails due to an * error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, * StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

*/ inline void SetFailureDescription(FailureDescription&& value) { m_failureDescriptionHasBeenSet = true; m_failureDescription = std::move(value); } /** *

Provides details in case one of the following operations fails due to an * error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, * StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

*/ inline DeliveryStreamEncryptionConfiguration& WithFailureDescription(const FailureDescription& value) { SetFailureDescription(value); return *this;} /** *

Provides details in case one of the following operations fails due to an * error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, * StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

*/ inline DeliveryStreamEncryptionConfiguration& WithFailureDescription(FailureDescription&& value) { SetFailureDescription(std::move(value)); return *this;} private: Aws::String m_keyARN; bool m_keyARNHasBeenSet; KeyType m_keyType; bool m_keyTypeHasBeenSet; DeliveryStreamEncryptionStatus m_status; bool m_statusHasBeenSet; FailureDescription m_failureDescription; bool m_failureDescriptionHasBeenSet; }; } // namespace Model } // namespace Firehose } // namespace Aws