/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace KMS { namespace Model { /** */ class AWS_KMS_API ReEncryptRequest : public KMSRequest { public: ReEncryptRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "ReEncrypt"; } Aws::String SerializePayload() const override; Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

Ciphertext of the data to reencrypt.

*/ inline const Aws::Utils::ByteBuffer& GetCiphertextBlob() const{ return m_ciphertextBlob; } /** *

Ciphertext of the data to reencrypt.

*/ inline bool CiphertextBlobHasBeenSet() const { return m_ciphertextBlobHasBeenSet; } /** *

Ciphertext of the data to reencrypt.

*/ inline void SetCiphertextBlob(const Aws::Utils::ByteBuffer& value) { m_ciphertextBlobHasBeenSet = true; m_ciphertextBlob = value; } /** *

Ciphertext of the data to reencrypt.

*/ inline void SetCiphertextBlob(Aws::Utils::ByteBuffer&& value) { m_ciphertextBlobHasBeenSet = true; m_ciphertextBlob = std::move(value); } /** *

Ciphertext of the data to reencrypt.

*/ inline ReEncryptRequest& WithCiphertextBlob(const Aws::Utils::ByteBuffer& value) { SetCiphertextBlob(value); return *this;} /** *

Ciphertext of the data to reencrypt.

*/ inline ReEncryptRequest& WithCiphertextBlob(Aws::Utils::ByteBuffer&& value) { SetCiphertextBlob(std::move(value)); return *this;} /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline const Aws::Map& GetSourceEncryptionContext() const{ return m_sourceEncryptionContext; } /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline bool SourceEncryptionContextHasBeenSet() const { return m_sourceEncryptionContextHasBeenSet; } /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline void SetSourceEncryptionContext(const Aws::Map& value) { m_sourceEncryptionContextHasBeenSet = true; m_sourceEncryptionContext = value; } /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline void SetSourceEncryptionContext(Aws::Map&& value) { m_sourceEncryptionContextHasBeenSet = true; m_sourceEncryptionContext = std::move(value); } /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& WithSourceEncryptionContext(const Aws::Map& value) { SetSourceEncryptionContext(value); return *this;} /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& WithSourceEncryptionContext(Aws::Map&& value) { SetSourceEncryptionContext(std::move(value)); return *this;} /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddSourceEncryptionContext(const Aws::String& key, const Aws::String& value) { m_sourceEncryptionContextHasBeenSet = true; m_sourceEncryptionContext.emplace(key, value); return *this; } /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddSourceEncryptionContext(Aws::String&& key, const Aws::String& value) { m_sourceEncryptionContextHasBeenSet = true; m_sourceEncryptionContext.emplace(std::move(key), value); return *this; } /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddSourceEncryptionContext(const Aws::String& key, Aws::String&& value) { m_sourceEncryptionContextHasBeenSet = true; m_sourceEncryptionContext.emplace(key, std::move(value)); return *this; } /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddSourceEncryptionContext(Aws::String&& key, Aws::String&& value) { m_sourceEncryptionContextHasBeenSet = true; m_sourceEncryptionContext.emplace(std::move(key), std::move(value)); return *this; } /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddSourceEncryptionContext(const char* key, Aws::String&& value) { m_sourceEncryptionContextHasBeenSet = true; m_sourceEncryptionContext.emplace(key, std::move(value)); return *this; } /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddSourceEncryptionContext(Aws::String&& key, const char* value) { m_sourceEncryptionContextHasBeenSet = true; m_sourceEncryptionContext.emplace(std::move(key), value); return *this; } /** *

Specifies the encryption context to use to decrypt the ciphertext. Enter the * same encryption context that was used to encrypt the ciphertext.

An * encryption context is a collection of non-secret key-value pairs that * represents additional authenticated data. When you use an encryption context to * encrypt data, you must specify the same (an exact case-sensitive match) * encryption context to decrypt the data. An encryption context is optional when * encrypting with a symmetric CMK, but it is highly recommended.

For more * information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddSourceEncryptionContext(const char* key, const char* value) { m_sourceEncryptionContextHasBeenSet = true; m_sourceEncryptionContext.emplace(key, value); return *this; } /** *

A unique identifier for the CMK that is used to decrypt the ciphertext before * it reencrypts it using the destination CMK.

This parameter is required * only when the ciphertext was encrypted under an asymmetric CMK. Otherwise, AWS * KMS uses the metadata that it adds to the ciphertext blob to determine which CMK * was used to encrypt the ciphertext. However, you can use this parameter to * ensure that a particular CMK (of any kind) is used to decrypt the ciphertext * before it is reencrypted.

If you specify a KeyId value, the * decrypt part of the ReEncrypt operation succeeds only if the * specified CMK was used to encrypt the ciphertext.

To specify a CMK, use * its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an * alias name, prefix it with "alias/".

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline const Aws::String& GetSourceKeyId() const{ return m_sourceKeyId; } /** *

A unique identifier for the CMK that is used to decrypt the ciphertext before * it reencrypts it using the destination CMK.

This parameter is required * only when the ciphertext was encrypted under an asymmetric CMK. Otherwise, AWS * KMS uses the metadata that it adds to the ciphertext blob to determine which CMK * was used to encrypt the ciphertext. However, you can use this parameter to * ensure that a particular CMK (of any kind) is used to decrypt the ciphertext * before it is reencrypted.

If you specify a KeyId value, the * decrypt part of the ReEncrypt operation succeeds only if the * specified CMK was used to encrypt the ciphertext.

To specify a CMK, use * its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an * alias name, prefix it with "alias/".

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline bool SourceKeyIdHasBeenSet() const { return m_sourceKeyIdHasBeenSet; } /** *

A unique identifier for the CMK that is used to decrypt the ciphertext before * it reencrypts it using the destination CMK.

This parameter is required * only when the ciphertext was encrypted under an asymmetric CMK. Otherwise, AWS * KMS uses the metadata that it adds to the ciphertext blob to determine which CMK * was used to encrypt the ciphertext. However, you can use this parameter to * ensure that a particular CMK (of any kind) is used to decrypt the ciphertext * before it is reencrypted.

If you specify a KeyId value, the * decrypt part of the ReEncrypt operation succeeds only if the * specified CMK was used to encrypt the ciphertext.

To specify a CMK, use * its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an * alias name, prefix it with "alias/".

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline void SetSourceKeyId(const Aws::String& value) { m_sourceKeyIdHasBeenSet = true; m_sourceKeyId = value; } /** *

A unique identifier for the CMK that is used to decrypt the ciphertext before * it reencrypts it using the destination CMK.

This parameter is required * only when the ciphertext was encrypted under an asymmetric CMK. Otherwise, AWS * KMS uses the metadata that it adds to the ciphertext blob to determine which CMK * was used to encrypt the ciphertext. However, you can use this parameter to * ensure that a particular CMK (of any kind) is used to decrypt the ciphertext * before it is reencrypted.

If you specify a KeyId value, the * decrypt part of the ReEncrypt operation succeeds only if the * specified CMK was used to encrypt the ciphertext.

To specify a CMK, use * its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an * alias name, prefix it with "alias/".

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline void SetSourceKeyId(Aws::String&& value) { m_sourceKeyIdHasBeenSet = true; m_sourceKeyId = std::move(value); } /** *

A unique identifier for the CMK that is used to decrypt the ciphertext before * it reencrypts it using the destination CMK.

This parameter is required * only when the ciphertext was encrypted under an asymmetric CMK. Otherwise, AWS * KMS uses the metadata that it adds to the ciphertext blob to determine which CMK * was used to encrypt the ciphertext. However, you can use this parameter to * ensure that a particular CMK (of any kind) is used to decrypt the ciphertext * before it is reencrypted.

If you specify a KeyId value, the * decrypt part of the ReEncrypt operation succeeds only if the * specified CMK was used to encrypt the ciphertext.

To specify a CMK, use * its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an * alias name, prefix it with "alias/".

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline void SetSourceKeyId(const char* value) { m_sourceKeyIdHasBeenSet = true; m_sourceKeyId.assign(value); } /** *

A unique identifier for the CMK that is used to decrypt the ciphertext before * it reencrypts it using the destination CMK.

This parameter is required * only when the ciphertext was encrypted under an asymmetric CMK. Otherwise, AWS * KMS uses the metadata that it adds to the ciphertext blob to determine which CMK * was used to encrypt the ciphertext. However, you can use this parameter to * ensure that a particular CMK (of any kind) is used to decrypt the ciphertext * before it is reencrypted.

If you specify a KeyId value, the * decrypt part of the ReEncrypt operation succeeds only if the * specified CMK was used to encrypt the ciphertext.

To specify a CMK, use * its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an * alias name, prefix it with "alias/".

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline ReEncryptRequest& WithSourceKeyId(const Aws::String& value) { SetSourceKeyId(value); return *this;} /** *

A unique identifier for the CMK that is used to decrypt the ciphertext before * it reencrypts it using the destination CMK.

This parameter is required * only when the ciphertext was encrypted under an asymmetric CMK. Otherwise, AWS * KMS uses the metadata that it adds to the ciphertext blob to determine which CMK * was used to encrypt the ciphertext. However, you can use this parameter to * ensure that a particular CMK (of any kind) is used to decrypt the ciphertext * before it is reencrypted.

If you specify a KeyId value, the * decrypt part of the ReEncrypt operation succeeds only if the * specified CMK was used to encrypt the ciphertext.

To specify a CMK, use * its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an * alias name, prefix it with "alias/".

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline ReEncryptRequest& WithSourceKeyId(Aws::String&& value) { SetSourceKeyId(std::move(value)); return *this;} /** *

A unique identifier for the CMK that is used to decrypt the ciphertext before * it reencrypts it using the destination CMK.

This parameter is required * only when the ciphertext was encrypted under an asymmetric CMK. Otherwise, AWS * KMS uses the metadata that it adds to the ciphertext blob to determine which CMK * was used to encrypt the ciphertext. However, you can use this parameter to * ensure that a particular CMK (of any kind) is used to decrypt the ciphertext * before it is reencrypted.

If you specify a KeyId value, the * decrypt part of the ReEncrypt operation succeeds only if the * specified CMK was used to encrypt the ciphertext.

To specify a CMK, use * its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an * alias name, prefix it with "alias/".

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline ReEncryptRequest& WithSourceKeyId(const char* value) { SetSourceKeyId(value); return *this;} /** *

A unique identifier for the CMK that is used to reencrypt the data. Specify a * symmetric or asymmetric CMK with a KeyUsage value of * ENCRYPT_DECRYPT. To find the KeyUsage value of a CMK, * use the DescribeKey operation.

To specify a CMK, use its key ID, * Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, * prefix it with "alias/". To specify a CMK in a different AWS * account, you must use the key ARN or alias ARN.

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline const Aws::String& GetDestinationKeyId() const{ return m_destinationKeyId; } /** *

A unique identifier for the CMK that is used to reencrypt the data. Specify a * symmetric or asymmetric CMK with a KeyUsage value of * ENCRYPT_DECRYPT. To find the KeyUsage value of a CMK, * use the DescribeKey operation.

To specify a CMK, use its key ID, * Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, * prefix it with "alias/". To specify a CMK in a different AWS * account, you must use the key ARN or alias ARN.

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline bool DestinationKeyIdHasBeenSet() const { return m_destinationKeyIdHasBeenSet; } /** *

A unique identifier for the CMK that is used to reencrypt the data. Specify a * symmetric or asymmetric CMK with a KeyUsage value of * ENCRYPT_DECRYPT. To find the KeyUsage value of a CMK, * use the DescribeKey operation.

To specify a CMK, use its key ID, * Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, * prefix it with "alias/". To specify a CMK in a different AWS * account, you must use the key ARN or alias ARN.

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline void SetDestinationKeyId(const Aws::String& value) { m_destinationKeyIdHasBeenSet = true; m_destinationKeyId = value; } /** *

A unique identifier for the CMK that is used to reencrypt the data. Specify a * symmetric or asymmetric CMK with a KeyUsage value of * ENCRYPT_DECRYPT. To find the KeyUsage value of a CMK, * use the DescribeKey operation.

To specify a CMK, use its key ID, * Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, * prefix it with "alias/". To specify a CMK in a different AWS * account, you must use the key ARN or alias ARN.

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline void SetDestinationKeyId(Aws::String&& value) { m_destinationKeyIdHasBeenSet = true; m_destinationKeyId = std::move(value); } /** *

A unique identifier for the CMK that is used to reencrypt the data. Specify a * symmetric or asymmetric CMK with a KeyUsage value of * ENCRYPT_DECRYPT. To find the KeyUsage value of a CMK, * use the DescribeKey operation.

To specify a CMK, use its key ID, * Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, * prefix it with "alias/". To specify a CMK in a different AWS * account, you must use the key ARN or alias ARN.

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline void SetDestinationKeyId(const char* value) { m_destinationKeyIdHasBeenSet = true; m_destinationKeyId.assign(value); } /** *

A unique identifier for the CMK that is used to reencrypt the data. Specify a * symmetric or asymmetric CMK with a KeyUsage value of * ENCRYPT_DECRYPT. To find the KeyUsage value of a CMK, * use the DescribeKey operation.

To specify a CMK, use its key ID, * Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, * prefix it with "alias/". To specify a CMK in a different AWS * account, you must use the key ARN or alias ARN.

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline ReEncryptRequest& WithDestinationKeyId(const Aws::String& value) { SetDestinationKeyId(value); return *this;} /** *

A unique identifier for the CMK that is used to reencrypt the data. Specify a * symmetric or asymmetric CMK with a KeyUsage value of * ENCRYPT_DECRYPT. To find the KeyUsage value of a CMK, * use the DescribeKey operation.

To specify a CMK, use its key ID, * Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, * prefix it with "alias/". To specify a CMK in a different AWS * account, you must use the key ARN or alias ARN.

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline ReEncryptRequest& WithDestinationKeyId(Aws::String&& value) { SetDestinationKeyId(std::move(value)); return *this;} /** *

A unique identifier for the CMK that is used to reencrypt the data. Specify a * symmetric or asymmetric CMK with a KeyUsage value of * ENCRYPT_DECRYPT. To find the KeyUsage value of a CMK, * use the DescribeKey operation.

To specify a CMK, use its key ID, * Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, * prefix it with "alias/". To specify a CMK in a different AWS * account, you must use the key ARN or alias ARN.

For example:

    *
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • *
  • Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab *

  • Alias name: alias/ExampleAlias

  • *

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias *

To get the key ID and key ARN for a CMK, use ListKeys * or DescribeKey. To get the alias name and alias ARN, use * ListAliases.

*/ inline ReEncryptRequest& WithDestinationKeyId(const char* value) { SetDestinationKeyId(value); return *this;} /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline const Aws::Map& GetDestinationEncryptionContext() const{ return m_destinationEncryptionContext; } /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline bool DestinationEncryptionContextHasBeenSet() const { return m_destinationEncryptionContextHasBeenSet; } /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline void SetDestinationEncryptionContext(const Aws::Map& value) { m_destinationEncryptionContextHasBeenSet = true; m_destinationEncryptionContext = value; } /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline void SetDestinationEncryptionContext(Aws::Map&& value) { m_destinationEncryptionContextHasBeenSet = true; m_destinationEncryptionContext = std::move(value); } /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& WithDestinationEncryptionContext(const Aws::Map& value) { SetDestinationEncryptionContext(value); return *this;} /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& WithDestinationEncryptionContext(Aws::Map&& value) { SetDestinationEncryptionContext(std::move(value)); return *this;} /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddDestinationEncryptionContext(const Aws::String& key, const Aws::String& value) { m_destinationEncryptionContextHasBeenSet = true; m_destinationEncryptionContext.emplace(key, value); return *this; } /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddDestinationEncryptionContext(Aws::String&& key, const Aws::String& value) { m_destinationEncryptionContextHasBeenSet = true; m_destinationEncryptionContext.emplace(std::move(key), value); return *this; } /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddDestinationEncryptionContext(const Aws::String& key, Aws::String&& value) { m_destinationEncryptionContextHasBeenSet = true; m_destinationEncryptionContext.emplace(key, std::move(value)); return *this; } /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddDestinationEncryptionContext(Aws::String&& key, Aws::String&& value) { m_destinationEncryptionContextHasBeenSet = true; m_destinationEncryptionContext.emplace(std::move(key), std::move(value)); return *this; } /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddDestinationEncryptionContext(const char* key, Aws::String&& value) { m_destinationEncryptionContextHasBeenSet = true; m_destinationEncryptionContext.emplace(key, std::move(value)); return *this; } /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddDestinationEncryptionContext(Aws::String&& key, const char* value) { m_destinationEncryptionContextHasBeenSet = true; m_destinationEncryptionContext.emplace(std::move(key), value); return *this; } /** *

Specifies that encryption context to use when the reencrypting the data.

*

A destination encryption context is valid only when the destination CMK is a * symmetric CMK. The standard ciphertext format for asymmetric CMKs does not * include fields for metadata.

An encryption context is a collection * of non-secret key-value pairs that represents additional authenticated data. * When you use an encryption context to encrypt data, you must specify the same * (an exact case-sensitive match) encryption context to decrypt the data. An * encryption context is optional when encrypting with a symmetric CMK, but it is * highly recommended.

For more information, see Encryption * Context in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddDestinationEncryptionContext(const char* key, const char* value) { m_destinationEncryptionContextHasBeenSet = true; m_destinationEncryptionContext.emplace(key, value); return *this; } /** *

Specifies the encryption algorithm that AWS KMS will use to decrypt the * ciphertext before it is reencrypted. The default value, * SYMMETRIC_DEFAULT, represents the algorithm used for symmetric * CMKs.

Specify the same algorithm that was used to encrypt the ciphertext. * If you specify a different algorithm, the decrypt attempt fails.

This * parameter is required only when the ciphertext was encrypted under an asymmetric * CMK.

*/ inline const EncryptionAlgorithmSpec& GetSourceEncryptionAlgorithm() const{ return m_sourceEncryptionAlgorithm; } /** *

Specifies the encryption algorithm that AWS KMS will use to decrypt the * ciphertext before it is reencrypted. The default value, * SYMMETRIC_DEFAULT, represents the algorithm used for symmetric * CMKs.

Specify the same algorithm that was used to encrypt the ciphertext. * If you specify a different algorithm, the decrypt attempt fails.

This * parameter is required only when the ciphertext was encrypted under an asymmetric * CMK.

*/ inline bool SourceEncryptionAlgorithmHasBeenSet() const { return m_sourceEncryptionAlgorithmHasBeenSet; } /** *

Specifies the encryption algorithm that AWS KMS will use to decrypt the * ciphertext before it is reencrypted. The default value, * SYMMETRIC_DEFAULT, represents the algorithm used for symmetric * CMKs.

Specify the same algorithm that was used to encrypt the ciphertext. * If you specify a different algorithm, the decrypt attempt fails.

This * parameter is required only when the ciphertext was encrypted under an asymmetric * CMK.

*/ inline void SetSourceEncryptionAlgorithm(const EncryptionAlgorithmSpec& value) { m_sourceEncryptionAlgorithmHasBeenSet = true; m_sourceEncryptionAlgorithm = value; } /** *

Specifies the encryption algorithm that AWS KMS will use to decrypt the * ciphertext before it is reencrypted. The default value, * SYMMETRIC_DEFAULT, represents the algorithm used for symmetric * CMKs.

Specify the same algorithm that was used to encrypt the ciphertext. * If you specify a different algorithm, the decrypt attempt fails.

This * parameter is required only when the ciphertext was encrypted under an asymmetric * CMK.

*/ inline void SetSourceEncryptionAlgorithm(EncryptionAlgorithmSpec&& value) { m_sourceEncryptionAlgorithmHasBeenSet = true; m_sourceEncryptionAlgorithm = std::move(value); } /** *

Specifies the encryption algorithm that AWS KMS will use to decrypt the * ciphertext before it is reencrypted. The default value, * SYMMETRIC_DEFAULT, represents the algorithm used for symmetric * CMKs.

Specify the same algorithm that was used to encrypt the ciphertext. * If you specify a different algorithm, the decrypt attempt fails.

This * parameter is required only when the ciphertext was encrypted under an asymmetric * CMK.

*/ inline ReEncryptRequest& WithSourceEncryptionAlgorithm(const EncryptionAlgorithmSpec& value) { SetSourceEncryptionAlgorithm(value); return *this;} /** *

Specifies the encryption algorithm that AWS KMS will use to decrypt the * ciphertext before it is reencrypted. The default value, * SYMMETRIC_DEFAULT, represents the algorithm used for symmetric * CMKs.

Specify the same algorithm that was used to encrypt the ciphertext. * If you specify a different algorithm, the decrypt attempt fails.

This * parameter is required only when the ciphertext was encrypted under an asymmetric * CMK.

*/ inline ReEncryptRequest& WithSourceEncryptionAlgorithm(EncryptionAlgorithmSpec&& value) { SetSourceEncryptionAlgorithm(std::move(value)); return *this;} /** *

Specifies the encryption algorithm that AWS KMS will use to reecrypt the data * after it has decrypted it. The default value, SYMMETRIC_DEFAULT, * represents the encryption algorithm used for symmetric CMKs.

This * parameter is required only when the destination CMK is an asymmetric CMK.

*/ inline const EncryptionAlgorithmSpec& GetDestinationEncryptionAlgorithm() const{ return m_destinationEncryptionAlgorithm; } /** *

Specifies the encryption algorithm that AWS KMS will use to reecrypt the data * after it has decrypted it. The default value, SYMMETRIC_DEFAULT, * represents the encryption algorithm used for symmetric CMKs.

This * parameter is required only when the destination CMK is an asymmetric CMK.

*/ inline bool DestinationEncryptionAlgorithmHasBeenSet() const { return m_destinationEncryptionAlgorithmHasBeenSet; } /** *

Specifies the encryption algorithm that AWS KMS will use to reecrypt the data * after it has decrypted it. The default value, SYMMETRIC_DEFAULT, * represents the encryption algorithm used for symmetric CMKs.

This * parameter is required only when the destination CMK is an asymmetric CMK.

*/ inline void SetDestinationEncryptionAlgorithm(const EncryptionAlgorithmSpec& value) { m_destinationEncryptionAlgorithmHasBeenSet = true; m_destinationEncryptionAlgorithm = value; } /** *

Specifies the encryption algorithm that AWS KMS will use to reecrypt the data * after it has decrypted it. The default value, SYMMETRIC_DEFAULT, * represents the encryption algorithm used for symmetric CMKs.

This * parameter is required only when the destination CMK is an asymmetric CMK.

*/ inline void SetDestinationEncryptionAlgorithm(EncryptionAlgorithmSpec&& value) { m_destinationEncryptionAlgorithmHasBeenSet = true; m_destinationEncryptionAlgorithm = std::move(value); } /** *

Specifies the encryption algorithm that AWS KMS will use to reecrypt the data * after it has decrypted it. The default value, SYMMETRIC_DEFAULT, * represents the encryption algorithm used for symmetric CMKs.

This * parameter is required only when the destination CMK is an asymmetric CMK.

*/ inline ReEncryptRequest& WithDestinationEncryptionAlgorithm(const EncryptionAlgorithmSpec& value) { SetDestinationEncryptionAlgorithm(value); return *this;} /** *

Specifies the encryption algorithm that AWS KMS will use to reecrypt the data * after it has decrypted it. The default value, SYMMETRIC_DEFAULT, * represents the encryption algorithm used for symmetric CMKs.

This * parameter is required only when the destination CMK is an asymmetric CMK.

*/ inline ReEncryptRequest& WithDestinationEncryptionAlgorithm(EncryptionAlgorithmSpec&& value) { SetDestinationEncryptionAlgorithm(std::move(value)); return *this;} /** *

A list of grant tokens.

For more information, see Grant * Tokens in the AWS Key Management Service Developer Guide.

*/ inline const Aws::Vector& GetGrantTokens() const{ return m_grantTokens; } /** *

A list of grant tokens.

For more information, see Grant * Tokens in the AWS Key Management Service Developer Guide.

*/ inline bool GrantTokensHasBeenSet() const { return m_grantTokensHasBeenSet; } /** *

A list of grant tokens.

For more information, see Grant * Tokens in the AWS Key Management Service Developer Guide.

*/ inline void SetGrantTokens(const Aws::Vector& value) { m_grantTokensHasBeenSet = true; m_grantTokens = value; } /** *

A list of grant tokens.

For more information, see Grant * Tokens in the AWS Key Management Service Developer Guide.

*/ inline void SetGrantTokens(Aws::Vector&& value) { m_grantTokensHasBeenSet = true; m_grantTokens = std::move(value); } /** *

A list of grant tokens.

For more information, see Grant * Tokens in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& WithGrantTokens(const Aws::Vector& value) { SetGrantTokens(value); return *this;} /** *

A list of grant tokens.

For more information, see Grant * Tokens in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& WithGrantTokens(Aws::Vector&& value) { SetGrantTokens(std::move(value)); return *this;} /** *

A list of grant tokens.

For more information, see Grant * Tokens in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddGrantTokens(const Aws::String& value) { m_grantTokensHasBeenSet = true; m_grantTokens.push_back(value); return *this; } /** *

A list of grant tokens.

For more information, see Grant * Tokens in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddGrantTokens(Aws::String&& value) { m_grantTokensHasBeenSet = true; m_grantTokens.push_back(std::move(value)); return *this; } /** *

A list of grant tokens.

For more information, see Grant * Tokens in the AWS Key Management Service Developer Guide.

*/ inline ReEncryptRequest& AddGrantTokens(const char* value) { m_grantTokensHasBeenSet = true; m_grantTokens.push_back(value); return *this; } private: Aws::Utils::ByteBuffer m_ciphertextBlob; bool m_ciphertextBlobHasBeenSet; Aws::Map m_sourceEncryptionContext; bool m_sourceEncryptionContextHasBeenSet; Aws::String m_sourceKeyId; bool m_sourceKeyIdHasBeenSet; Aws::String m_destinationKeyId; bool m_destinationKeyIdHasBeenSet; Aws::Map m_destinationEncryptionContext; bool m_destinationEncryptionContextHasBeenSet; EncryptionAlgorithmSpec m_sourceEncryptionAlgorithm; bool m_sourceEncryptionAlgorithmHasBeenSet; EncryptionAlgorithmSpec m_destinationEncryptionAlgorithm; bool m_destinationEncryptionAlgorithmHasBeenSet; Aws::Vector m_grantTokens; bool m_grantTokensHasBeenSet; }; } // namespace Model } // namespace KMS } // namespace Aws