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

The description of the server-side encryption status on the specified * table.

See Also:

AWS * API Reference

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

Represents the current state of server-side encryption. The only supported * values are:

  • ENABLED - Server-side encryption is * enabled.

  • UPDATING - Server-side encryption is * being updated.

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

Represents the current state of server-side encryption. The only supported * values are:

  • ENABLED - Server-side encryption is * enabled.

  • UPDATING - Server-side encryption is * being updated.

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

Represents the current state of server-side encryption. The only supported * values are:

  • ENABLED - Server-side encryption is * enabled.

  • UPDATING - Server-side encryption is * being updated.

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

Represents the current state of server-side encryption. The only supported * values are:

  • ENABLED - Server-side encryption is * enabled.

  • UPDATING - Server-side encryption is * being updated.

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

Represents the current state of server-side encryption. The only supported * values are:

  • ENABLED - Server-side encryption is * enabled.

  • UPDATING - Server-side encryption is * being updated.

*/ inline SSEDescription& WithStatus(const SSEStatus& value) { SetStatus(value); return *this;} /** *

Represents the current state of server-side encryption. The only supported * values are:

  • ENABLED - Server-side encryption is * enabled.

  • UPDATING - Server-side encryption is * being updated.

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

Server-side encryption type. The only supported value is:

  • * KMS - Server-side encryption that uses Key Management Service. The * key is stored in your account and is managed by KMS (KMS charges apply).

    *
*/ inline const SSEType& GetSSEType() const{ return m_sSEType; } /** *

Server-side encryption type. The only supported value is:

  • * KMS - Server-side encryption that uses Key Management Service. The * key is stored in your account and is managed by KMS (KMS charges apply).

    *
*/ inline bool SSETypeHasBeenSet() const { return m_sSETypeHasBeenSet; } /** *

Server-side encryption type. The only supported value is:

  • * KMS - Server-side encryption that uses Key Management Service. The * key is stored in your account and is managed by KMS (KMS charges apply).

    *
*/ inline void SetSSEType(const SSEType& value) { m_sSETypeHasBeenSet = true; m_sSEType = value; } /** *

Server-side encryption type. The only supported value is:

  • * KMS - Server-side encryption that uses Key Management Service. The * key is stored in your account and is managed by KMS (KMS charges apply).

    *
*/ inline void SetSSEType(SSEType&& value) { m_sSETypeHasBeenSet = true; m_sSEType = std::move(value); } /** *

Server-side encryption type. The only supported value is:

  • * KMS - Server-side encryption that uses Key Management Service. The * key is stored in your account and is managed by KMS (KMS charges apply).

    *
*/ inline SSEDescription& WithSSEType(const SSEType& value) { SetSSEType(value); return *this;} /** *

Server-side encryption type. The only supported value is:

  • * KMS - Server-side encryption that uses Key Management Service. The * key is stored in your account and is managed by KMS (KMS charges apply).

    *
*/ inline SSEDescription& WithSSEType(SSEType&& value) { SetSSEType(std::move(value)); return *this;} /** *

The KMS key ARN used for the KMS encryption.

*/ inline const Aws::String& GetKMSMasterKeyArn() const{ return m_kMSMasterKeyArn; } /** *

The KMS key ARN used for the KMS encryption.

*/ inline bool KMSMasterKeyArnHasBeenSet() const { return m_kMSMasterKeyArnHasBeenSet; } /** *

The KMS key ARN used for the KMS encryption.

*/ inline void SetKMSMasterKeyArn(const Aws::String& value) { m_kMSMasterKeyArnHasBeenSet = true; m_kMSMasterKeyArn = value; } /** *

The KMS key ARN used for the KMS encryption.

*/ inline void SetKMSMasterKeyArn(Aws::String&& value) { m_kMSMasterKeyArnHasBeenSet = true; m_kMSMasterKeyArn = std::move(value); } /** *

The KMS key ARN used for the KMS encryption.

*/ inline void SetKMSMasterKeyArn(const char* value) { m_kMSMasterKeyArnHasBeenSet = true; m_kMSMasterKeyArn.assign(value); } /** *

The KMS key ARN used for the KMS encryption.

*/ inline SSEDescription& WithKMSMasterKeyArn(const Aws::String& value) { SetKMSMasterKeyArn(value); return *this;} /** *

The KMS key ARN used for the KMS encryption.

*/ inline SSEDescription& WithKMSMasterKeyArn(Aws::String&& value) { SetKMSMasterKeyArn(std::move(value)); return *this;} /** *

The KMS key ARN used for the KMS encryption.

*/ inline SSEDescription& WithKMSMasterKeyArn(const char* value) { SetKMSMasterKeyArn(value); return *this;} /** *

Indicates the time, in UNIX epoch date format, when DynamoDB detected that * the table's KMS key was inaccessible. This attribute will automatically be * cleared when DynamoDB detects that the table's KMS key is accessible again. * DynamoDB will initiate the table archival process when table's KMS key remains * inaccessible for more than seven days from this date.

*/ inline const Aws::Utils::DateTime& GetInaccessibleEncryptionDateTime() const{ return m_inaccessibleEncryptionDateTime; } /** *

Indicates the time, in UNIX epoch date format, when DynamoDB detected that * the table's KMS key was inaccessible. This attribute will automatically be * cleared when DynamoDB detects that the table's KMS key is accessible again. * DynamoDB will initiate the table archival process when table's KMS key remains * inaccessible for more than seven days from this date.

*/ inline bool InaccessibleEncryptionDateTimeHasBeenSet() const { return m_inaccessibleEncryptionDateTimeHasBeenSet; } /** *

Indicates the time, in UNIX epoch date format, when DynamoDB detected that * the table's KMS key was inaccessible. This attribute will automatically be * cleared when DynamoDB detects that the table's KMS key is accessible again. * DynamoDB will initiate the table archival process when table's KMS key remains * inaccessible for more than seven days from this date.

*/ inline void SetInaccessibleEncryptionDateTime(const Aws::Utils::DateTime& value) { m_inaccessibleEncryptionDateTimeHasBeenSet = true; m_inaccessibleEncryptionDateTime = value; } /** *

Indicates the time, in UNIX epoch date format, when DynamoDB detected that * the table's KMS key was inaccessible. This attribute will automatically be * cleared when DynamoDB detects that the table's KMS key is accessible again. * DynamoDB will initiate the table archival process when table's KMS key remains * inaccessible for more than seven days from this date.

*/ inline void SetInaccessibleEncryptionDateTime(Aws::Utils::DateTime&& value) { m_inaccessibleEncryptionDateTimeHasBeenSet = true; m_inaccessibleEncryptionDateTime = std::move(value); } /** *

Indicates the time, in UNIX epoch date format, when DynamoDB detected that * the table's KMS key was inaccessible. This attribute will automatically be * cleared when DynamoDB detects that the table's KMS key is accessible again. * DynamoDB will initiate the table archival process when table's KMS key remains * inaccessible for more than seven days from this date.

*/ inline SSEDescription& WithInaccessibleEncryptionDateTime(const Aws::Utils::DateTime& value) { SetInaccessibleEncryptionDateTime(value); return *this;} /** *

Indicates the time, in UNIX epoch date format, when DynamoDB detected that * the table's KMS key was inaccessible. This attribute will automatically be * cleared when DynamoDB detects that the table's KMS key is accessible again. * DynamoDB will initiate the table archival process when table's KMS key remains * inaccessible for more than seven days from this date.

*/ inline SSEDescription& WithInaccessibleEncryptionDateTime(Aws::Utils::DateTime&& value) { SetInaccessibleEncryptionDateTime(std::move(value)); return *this;} private: SSEStatus m_status; bool m_statusHasBeenSet = false; SSEType m_sSEType; bool m_sSETypeHasBeenSet = false; Aws::String m_kMSMasterKeyArn; bool m_kMSMasterKeyArnHasBeenSet = false; Aws::Utils::DateTime m_inaccessibleEncryptionDateTime; bool m_inaccessibleEncryptionDateTimeHasBeenSet = false; }; } // namespace Model } // namespace DynamoDB } // namespace Aws