/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Represents the settings used to enable server-side encryption.See
* Also:
AWS
* API Reference
Indicates whether server-side encryption is done using an AWS managed CMK or
* an AWS owned CMK. If enabled (true), server-side encryption type is set to
* KMS and an AWS managed CMK is used (AWS KMS charges apply). If
* disabled (false) or not specified, server-side encryption is set to AWS owned
* CMK.
Indicates whether server-side encryption is done using an AWS managed CMK or
* an AWS owned CMK. If enabled (true), server-side encryption type is set to
* KMS and an AWS managed CMK is used (AWS KMS charges apply). If
* disabled (false) or not specified, server-side encryption is set to AWS owned
* CMK.
Indicates whether server-side encryption is done using an AWS managed CMK or
* an AWS owned CMK. If enabled (true), server-side encryption type is set to
* KMS and an AWS managed CMK is used (AWS KMS charges apply). If
* disabled (false) or not specified, server-side encryption is set to AWS owned
* CMK.
Indicates whether server-side encryption is done using an AWS managed CMK or
* an AWS owned CMK. If enabled (true), server-side encryption type is set to
* KMS and an AWS managed CMK is used (AWS KMS charges apply). If
* disabled (false) or not specified, server-side encryption is set to AWS owned
* CMK.
Server-side encryption type. The only supported value is:
* KMS - Server-side encryption that uses AWS Key Management Service.
* The key is stored in your account and is managed by AWS KMS (AWS KMS charges
* apply).
Server-side encryption type. The only supported value is:
* KMS - Server-side encryption that uses AWS Key Management Service.
* The key is stored in your account and is managed by AWS KMS (AWS KMS charges
* apply).
Server-side encryption type. The only supported value is:
* KMS - Server-side encryption that uses AWS Key Management Service.
* The key is stored in your account and is managed by AWS KMS (AWS KMS charges
* apply).
Server-side encryption type. The only supported value is:
* KMS - Server-side encryption that uses AWS Key Management Service.
* The key is stored in your account and is managed by AWS KMS (AWS KMS charges
* apply).
Server-side encryption type. The only supported value is:
* KMS - Server-side encryption that uses AWS Key Management Service.
* The key is stored in your account and is managed by AWS KMS (AWS KMS charges
* apply).
Server-side encryption type. The only supported value is:
* KMS - Server-side encryption that uses AWS Key Management Service.
* The key is stored in your account and is managed by AWS KMS (AWS KMS charges
* apply).
The AWS KMS customer master key (CMK) that should be used for the AWS KMS * encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias * name, or alias ARN. Note that you should only provide this parameter if the key * is different from the default DynamoDB customer master key * alias/aws/dynamodb.
*/ inline const Aws::String& GetKMSMasterKeyId() const{ return m_kMSMasterKeyId; } /** *The AWS KMS customer master key (CMK) that should be used for the AWS KMS * encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias * name, or alias ARN. Note that you should only provide this parameter if the key * is different from the default DynamoDB customer master key * alias/aws/dynamodb.
*/ inline bool KMSMasterKeyIdHasBeenSet() const { return m_kMSMasterKeyIdHasBeenSet; } /** *The AWS KMS customer master key (CMK) that should be used for the AWS KMS * encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias * name, or alias ARN. Note that you should only provide this parameter if the key * is different from the default DynamoDB customer master key * alias/aws/dynamodb.
*/ inline void SetKMSMasterKeyId(const Aws::String& value) { m_kMSMasterKeyIdHasBeenSet = true; m_kMSMasterKeyId = value; } /** *The AWS KMS customer master key (CMK) that should be used for the AWS KMS * encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias * name, or alias ARN. Note that you should only provide this parameter if the key * is different from the default DynamoDB customer master key * alias/aws/dynamodb.
*/ inline void SetKMSMasterKeyId(Aws::String&& value) { m_kMSMasterKeyIdHasBeenSet = true; m_kMSMasterKeyId = std::move(value); } /** *The AWS KMS customer master key (CMK) that should be used for the AWS KMS * encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias * name, or alias ARN. Note that you should only provide this parameter if the key * is different from the default DynamoDB customer master key * alias/aws/dynamodb.
*/ inline void SetKMSMasterKeyId(const char* value) { m_kMSMasterKeyIdHasBeenSet = true; m_kMSMasterKeyId.assign(value); } /** *The AWS KMS customer master key (CMK) that should be used for the AWS KMS * encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias * name, or alias ARN. Note that you should only provide this parameter if the key * is different from the default DynamoDB customer master key * alias/aws/dynamodb.
*/ inline SSESpecification& WithKMSMasterKeyId(const Aws::String& value) { SetKMSMasterKeyId(value); return *this;} /** *The AWS KMS customer master key (CMK) that should be used for the AWS KMS * encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias * name, or alias ARN. Note that you should only provide this parameter if the key * is different from the default DynamoDB customer master key * alias/aws/dynamodb.
*/ inline SSESpecification& WithKMSMasterKeyId(Aws::String&& value) { SetKMSMasterKeyId(std::move(value)); return *this;} /** *The AWS KMS customer master key (CMK) that should be used for the AWS KMS * encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias * name, or alias ARN. Note that you should only provide this parameter if the key * is different from the default DynamoDB customer master key * alias/aws/dynamodb.
*/ inline SSESpecification& WithKMSMasterKeyId(const char* value) { SetKMSMasterKeyId(value); return *this;} private: bool m_enabled; bool m_enabledHasBeenSet; SSEType m_sSEType; bool m_sSETypeHasBeenSet; Aws::String m_kMSMasterKeyId; bool m_kMSMasterKeyIdHasBeenSet; }; } // namespace Model } // namespace DynamoDB } // namespace Aws