/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Contains metadata about a KMS key. This data type is used as a
* response element for the CreateKey, DescribeKey, and
* ReplicateKey operations.See Also:
AWS API
* Reference
The twelve-digit account ID of the Amazon Web Services account that owns the * KMS key.
*/ inline const Aws::String& GetAWSAccountId() const{ return m_aWSAccountId; } /** *The twelve-digit account ID of the Amazon Web Services account that owns the * KMS key.
*/ inline bool AWSAccountIdHasBeenSet() const { return m_aWSAccountIdHasBeenSet; } /** *The twelve-digit account ID of the Amazon Web Services account that owns the * KMS key.
*/ inline void SetAWSAccountId(const Aws::String& value) { m_aWSAccountIdHasBeenSet = true; m_aWSAccountId = value; } /** *The twelve-digit account ID of the Amazon Web Services account that owns the * KMS key.
*/ inline void SetAWSAccountId(Aws::String&& value) { m_aWSAccountIdHasBeenSet = true; m_aWSAccountId = std::move(value); } /** *The twelve-digit account ID of the Amazon Web Services account that owns the * KMS key.
*/ inline void SetAWSAccountId(const char* value) { m_aWSAccountIdHasBeenSet = true; m_aWSAccountId.assign(value); } /** *The twelve-digit account ID of the Amazon Web Services account that owns the * KMS key.
*/ inline KeyMetadata& WithAWSAccountId(const Aws::String& value) { SetAWSAccountId(value); return *this;} /** *The twelve-digit account ID of the Amazon Web Services account that owns the * KMS key.
*/ inline KeyMetadata& WithAWSAccountId(Aws::String&& value) { SetAWSAccountId(std::move(value)); return *this;} /** *The twelve-digit account ID of the Amazon Web Services account that owns the * KMS key.
*/ inline KeyMetadata& WithAWSAccountId(const char* value) { SetAWSAccountId(value); return *this;} /** *The globally unique identifier for the KMS key.
*/ inline const Aws::String& GetKeyId() const{ return m_keyId; } /** *The globally unique identifier for the KMS key.
*/ inline bool KeyIdHasBeenSet() const { return m_keyIdHasBeenSet; } /** *The globally unique identifier for the KMS key.
*/ inline void SetKeyId(const Aws::String& value) { m_keyIdHasBeenSet = true; m_keyId = value; } /** *The globally unique identifier for the KMS key.
*/ inline void SetKeyId(Aws::String&& value) { m_keyIdHasBeenSet = true; m_keyId = std::move(value); } /** *The globally unique identifier for the KMS key.
*/ inline void SetKeyId(const char* value) { m_keyIdHasBeenSet = true; m_keyId.assign(value); } /** *The globally unique identifier for the KMS key.
*/ inline KeyMetadata& WithKeyId(const Aws::String& value) { SetKeyId(value); return *this;} /** *The globally unique identifier for the KMS key.
*/ inline KeyMetadata& WithKeyId(Aws::String&& value) { SetKeyId(std::move(value)); return *this;} /** *The globally unique identifier for the KMS key.
*/ inline KeyMetadata& WithKeyId(const char* value) { SetKeyId(value); return *this;} /** *The Amazon Resource Name (ARN) of the KMS key. For examples, see Key * Management Service (KMS) in the Example ARNs section of the Amazon Web * Services General Reference.
*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *The Amazon Resource Name (ARN) of the KMS key. For examples, see Key * Management Service (KMS) in the Example ARNs section of the Amazon Web * Services General Reference.
*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *The Amazon Resource Name (ARN) of the KMS key. For examples, see Key * Management Service (KMS) in the Example ARNs section of the Amazon Web * Services General Reference.
*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *The Amazon Resource Name (ARN) of the KMS key. For examples, see Key * Management Service (KMS) in the Example ARNs section of the Amazon Web * Services General Reference.
*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *The Amazon Resource Name (ARN) of the KMS key. For examples, see Key * Management Service (KMS) in the Example ARNs section of the Amazon Web * Services General Reference.
*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *The Amazon Resource Name (ARN) of the KMS key. For examples, see Key * Management Service (KMS) in the Example ARNs section of the Amazon Web * Services General Reference.
*/ inline KeyMetadata& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *The Amazon Resource Name (ARN) of the KMS key. For examples, see Key * Management Service (KMS) in the Example ARNs section of the Amazon Web * Services General Reference.
*/ inline KeyMetadata& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *The Amazon Resource Name (ARN) of the KMS key. For examples, see Key * Management Service (KMS) in the Example ARNs section of the Amazon Web * Services General Reference.
*/ inline KeyMetadata& WithArn(const char* value) { SetArn(value); return *this;} /** *The date and time when the KMS key was created.
*/ inline const Aws::Utils::DateTime& GetCreationDate() const{ return m_creationDate; } /** *The date and time when the KMS key was created.
*/ inline bool CreationDateHasBeenSet() const { return m_creationDateHasBeenSet; } /** *The date and time when the KMS key was created.
*/ inline void SetCreationDate(const Aws::Utils::DateTime& value) { m_creationDateHasBeenSet = true; m_creationDate = value; } /** *The date and time when the KMS key was created.
*/ inline void SetCreationDate(Aws::Utils::DateTime&& value) { m_creationDateHasBeenSet = true; m_creationDate = std::move(value); } /** *The date and time when the KMS key was created.
*/ inline KeyMetadata& WithCreationDate(const Aws::Utils::DateTime& value) { SetCreationDate(value); return *this;} /** *The date and time when the KMS key was created.
*/ inline KeyMetadata& WithCreationDate(Aws::Utils::DateTime&& value) { SetCreationDate(std::move(value)); return *this;} /** *Specifies whether the KMS key is enabled. When KeyState
is
* Enabled
this value is true, otherwise it is false.
Specifies whether the KMS key is enabled. When KeyState
is
* Enabled
this value is true, otherwise it is false.
Specifies whether the KMS key is enabled. When KeyState
is
* Enabled
this value is true, otherwise it is false.
Specifies whether the KMS key is enabled. When KeyState
is
* Enabled
this value is true, otherwise it is false.
The description of the KMS key.
*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *The description of the KMS key.
*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *The description of the KMS key.
*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *The description of the KMS key.
*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *The description of the KMS key.
*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *The description of the KMS key.
*/ inline KeyMetadata& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *The description of the KMS key.
*/ inline KeyMetadata& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *The description of the KMS key.
*/ inline KeyMetadata& WithDescription(const char* value) { SetDescription(value); return *this;} /** *The cryptographic * operations for which you can use the KMS key.
*/ inline const KeyUsageType& GetKeyUsage() const{ return m_keyUsage; } /** *The cryptographic * operations for which you can use the KMS key.
*/ inline bool KeyUsageHasBeenSet() const { return m_keyUsageHasBeenSet; } /** *The cryptographic * operations for which you can use the KMS key.
*/ inline void SetKeyUsage(const KeyUsageType& value) { m_keyUsageHasBeenSet = true; m_keyUsage = value; } /** *The cryptographic * operations for which you can use the KMS key.
*/ inline void SetKeyUsage(KeyUsageType&& value) { m_keyUsageHasBeenSet = true; m_keyUsage = std::move(value); } /** *The cryptographic * operations for which you can use the KMS key.
*/ inline KeyMetadata& WithKeyUsage(const KeyUsageType& value) { SetKeyUsage(value); return *this;} /** *The cryptographic * operations for which you can use the KMS key.
*/ inline KeyMetadata& WithKeyUsage(KeyUsageType&& value) { SetKeyUsage(std::move(value)); return *this;} /** *The current status of the KMS key.
For more information about how key * state affects the use of a KMS key, see Key * states of KMS keys in the Key Management Service Developer Guide.
*/ inline const KeyState& GetKeyState() const{ return m_keyState; } /** *The current status of the KMS key.
For more information about how key * state affects the use of a KMS key, see Key * states of KMS keys in the Key Management Service Developer Guide.
*/ inline bool KeyStateHasBeenSet() const { return m_keyStateHasBeenSet; } /** *The current status of the KMS key.
For more information about how key * state affects the use of a KMS key, see Key * states of KMS keys in the Key Management Service Developer Guide.
*/ inline void SetKeyState(const KeyState& value) { m_keyStateHasBeenSet = true; m_keyState = value; } /** *The current status of the KMS key.
For more information about how key * state affects the use of a KMS key, see Key * states of KMS keys in the Key Management Service Developer Guide.
*/ inline void SetKeyState(KeyState&& value) { m_keyStateHasBeenSet = true; m_keyState = std::move(value); } /** *The current status of the KMS key.
For more information about how key * state affects the use of a KMS key, see Key * states of KMS keys in the Key Management Service Developer Guide.
*/ inline KeyMetadata& WithKeyState(const KeyState& value) { SetKeyState(value); return *this;} /** *The current status of the KMS key.
For more information about how key * state affects the use of a KMS key, see Key * states of KMS keys in the Key Management Service Developer Guide.
*/ inline KeyMetadata& WithKeyState(KeyState&& value) { SetKeyState(std::move(value)); return *this;} /** *The date and time after which KMS deletes this KMS key. This value is present
* only when the KMS key is scheduled for deletion, that is, when its
* KeyState
is PendingDeletion
.
When the primary
* key in a multi-Region key is scheduled for deletion but still has replica keys,
* its key state is PendingReplicaDeletion
and the length of its
* waiting period is displayed in the PendingDeletionWindowInDays
* field.
The date and time after which KMS deletes this KMS key. This value is present
* only when the KMS key is scheduled for deletion, that is, when its
* KeyState
is PendingDeletion
.
When the primary
* key in a multi-Region key is scheduled for deletion but still has replica keys,
* its key state is PendingReplicaDeletion
and the length of its
* waiting period is displayed in the PendingDeletionWindowInDays
* field.
The date and time after which KMS deletes this KMS key. This value is present
* only when the KMS key is scheduled for deletion, that is, when its
* KeyState
is PendingDeletion
.
When the primary
* key in a multi-Region key is scheduled for deletion but still has replica keys,
* its key state is PendingReplicaDeletion
and the length of its
* waiting period is displayed in the PendingDeletionWindowInDays
* field.
The date and time after which KMS deletes this KMS key. This value is present
* only when the KMS key is scheduled for deletion, that is, when its
* KeyState
is PendingDeletion
.
When the primary
* key in a multi-Region key is scheduled for deletion but still has replica keys,
* its key state is PendingReplicaDeletion
and the length of its
* waiting period is displayed in the PendingDeletionWindowInDays
* field.
The date and time after which KMS deletes this KMS key. This value is present
* only when the KMS key is scheduled for deletion, that is, when its
* KeyState
is PendingDeletion
.
When the primary
* key in a multi-Region key is scheduled for deletion but still has replica keys,
* its key state is PendingReplicaDeletion
and the length of its
* waiting period is displayed in the PendingDeletionWindowInDays
* field.
The date and time after which KMS deletes this KMS key. This value is present
* only when the KMS key is scheduled for deletion, that is, when its
* KeyState
is PendingDeletion
.
When the primary
* key in a multi-Region key is scheduled for deletion but still has replica keys,
* its key state is PendingReplicaDeletion
and the length of its
* waiting period is displayed in the PendingDeletionWindowInDays
* field.
The time at which the imported key material expires. When the key material
* expires, KMS deletes the key material and the KMS key becomes unusable. This
* value is present only for KMS keys whose Origin
is
* EXTERNAL
and whose ExpirationModel
is
* KEY_MATERIAL_EXPIRES
, otherwise this value is omitted.
The time at which the imported key material expires. When the key material
* expires, KMS deletes the key material and the KMS key becomes unusable. This
* value is present only for KMS keys whose Origin
is
* EXTERNAL
and whose ExpirationModel
is
* KEY_MATERIAL_EXPIRES
, otherwise this value is omitted.
The time at which the imported key material expires. When the key material
* expires, KMS deletes the key material and the KMS key becomes unusable. This
* value is present only for KMS keys whose Origin
is
* EXTERNAL
and whose ExpirationModel
is
* KEY_MATERIAL_EXPIRES
, otherwise this value is omitted.
The time at which the imported key material expires. When the key material
* expires, KMS deletes the key material and the KMS key becomes unusable. This
* value is present only for KMS keys whose Origin
is
* EXTERNAL
and whose ExpirationModel
is
* KEY_MATERIAL_EXPIRES
, otherwise this value is omitted.
The time at which the imported key material expires. When the key material
* expires, KMS deletes the key material and the KMS key becomes unusable. This
* value is present only for KMS keys whose Origin
is
* EXTERNAL
and whose ExpirationModel
is
* KEY_MATERIAL_EXPIRES
, otherwise this value is omitted.
The time at which the imported key material expires. When the key material
* expires, KMS deletes the key material and the KMS key becomes unusable. This
* value is present only for KMS keys whose Origin
is
* EXTERNAL
and whose ExpirationModel
is
* KEY_MATERIAL_EXPIRES
, otherwise this value is omitted.
The source of the key material for the KMS key. When this value is
* AWS_KMS
, KMS created the key material. When this value is
* EXTERNAL
, the key material was imported or the KMS key doesn't have
* any key material. When this value is AWS_CLOUDHSM
, the key material
* was created in the CloudHSM cluster associated with a custom key store.
The source of the key material for the KMS key. When this value is
* AWS_KMS
, KMS created the key material. When this value is
* EXTERNAL
, the key material was imported or the KMS key doesn't have
* any key material. When this value is AWS_CLOUDHSM
, the key material
* was created in the CloudHSM cluster associated with a custom key store.
The source of the key material for the KMS key. When this value is
* AWS_KMS
, KMS created the key material. When this value is
* EXTERNAL
, the key material was imported or the KMS key doesn't have
* any key material. When this value is AWS_CLOUDHSM
, the key material
* was created in the CloudHSM cluster associated with a custom key store.
The source of the key material for the KMS key. When this value is
* AWS_KMS
, KMS created the key material. When this value is
* EXTERNAL
, the key material was imported or the KMS key doesn't have
* any key material. When this value is AWS_CLOUDHSM
, the key material
* was created in the CloudHSM cluster associated with a custom key store.
The source of the key material for the KMS key. When this value is
* AWS_KMS
, KMS created the key material. When this value is
* EXTERNAL
, the key material was imported or the KMS key doesn't have
* any key material. When this value is AWS_CLOUDHSM
, the key material
* was created in the CloudHSM cluster associated with a custom key store.
The source of the key material for the KMS key. When this value is
* AWS_KMS
, KMS created the key material. When this value is
* EXTERNAL
, the key material was imported or the KMS key doesn't have
* any key material. When this value is AWS_CLOUDHSM
, the key material
* was created in the CloudHSM cluster associated with a custom key store.
A unique identifier for the custom * key store that contains the KMS key. This field is present only when the KMS * key is created in a custom key store.
*/ inline const Aws::String& GetCustomKeyStoreId() const{ return m_customKeyStoreId; } /** *A unique identifier for the custom * key store that contains the KMS key. This field is present only when the KMS * key is created in a custom key store.
*/ inline bool CustomKeyStoreIdHasBeenSet() const { return m_customKeyStoreIdHasBeenSet; } /** *A unique identifier for the custom * key store that contains the KMS key. This field is present only when the KMS * key is created in a custom key store.
*/ inline void SetCustomKeyStoreId(const Aws::String& value) { m_customKeyStoreIdHasBeenSet = true; m_customKeyStoreId = value; } /** *A unique identifier for the custom * key store that contains the KMS key. This field is present only when the KMS * key is created in a custom key store.
*/ inline void SetCustomKeyStoreId(Aws::String&& value) { m_customKeyStoreIdHasBeenSet = true; m_customKeyStoreId = std::move(value); } /** *A unique identifier for the custom * key store that contains the KMS key. This field is present only when the KMS * key is created in a custom key store.
*/ inline void SetCustomKeyStoreId(const char* value) { m_customKeyStoreIdHasBeenSet = true; m_customKeyStoreId.assign(value); } /** *A unique identifier for the custom * key store that contains the KMS key. This field is present only when the KMS * key is created in a custom key store.
*/ inline KeyMetadata& WithCustomKeyStoreId(const Aws::String& value) { SetCustomKeyStoreId(value); return *this;} /** *A unique identifier for the custom * key store that contains the KMS key. This field is present only when the KMS * key is created in a custom key store.
*/ inline KeyMetadata& WithCustomKeyStoreId(Aws::String&& value) { SetCustomKeyStoreId(std::move(value)); return *this;} /** *A unique identifier for the custom * key store that contains the KMS key. This field is present only when the KMS * key is created in a custom key store.
*/ inline KeyMetadata& WithCustomKeyStoreId(const char* value) { SetCustomKeyStoreId(value); return *this;} /** *The cluster ID of the CloudHSM cluster that contains the key material for the * KMS key. When you create a KMS key in an CloudHSM custom * key store, KMS creates the key material for the KMS key in the associated * CloudHSM cluster. This field is present only when the KMS key is created in an * CloudHSM key store.
*/ inline const Aws::String& GetCloudHsmClusterId() const{ return m_cloudHsmClusterId; } /** *The cluster ID of the CloudHSM cluster that contains the key material for the * KMS key. When you create a KMS key in an CloudHSM custom * key store, KMS creates the key material for the KMS key in the associated * CloudHSM cluster. This field is present only when the KMS key is created in an * CloudHSM key store.
*/ inline bool CloudHsmClusterIdHasBeenSet() const { return m_cloudHsmClusterIdHasBeenSet; } /** *The cluster ID of the CloudHSM cluster that contains the key material for the * KMS key. When you create a KMS key in an CloudHSM custom * key store, KMS creates the key material for the KMS key in the associated * CloudHSM cluster. This field is present only when the KMS key is created in an * CloudHSM key store.
*/ inline void SetCloudHsmClusterId(const Aws::String& value) { m_cloudHsmClusterIdHasBeenSet = true; m_cloudHsmClusterId = value; } /** *The cluster ID of the CloudHSM cluster that contains the key material for the * KMS key. When you create a KMS key in an CloudHSM custom * key store, KMS creates the key material for the KMS key in the associated * CloudHSM cluster. This field is present only when the KMS key is created in an * CloudHSM key store.
*/ inline void SetCloudHsmClusterId(Aws::String&& value) { m_cloudHsmClusterIdHasBeenSet = true; m_cloudHsmClusterId = std::move(value); } /** *The cluster ID of the CloudHSM cluster that contains the key material for the * KMS key. When you create a KMS key in an CloudHSM custom * key store, KMS creates the key material for the KMS key in the associated * CloudHSM cluster. This field is present only when the KMS key is created in an * CloudHSM key store.
*/ inline void SetCloudHsmClusterId(const char* value) { m_cloudHsmClusterIdHasBeenSet = true; m_cloudHsmClusterId.assign(value); } /** *The cluster ID of the CloudHSM cluster that contains the key material for the * KMS key. When you create a KMS key in an CloudHSM custom * key store, KMS creates the key material for the KMS key in the associated * CloudHSM cluster. This field is present only when the KMS key is created in an * CloudHSM key store.
*/ inline KeyMetadata& WithCloudHsmClusterId(const Aws::String& value) { SetCloudHsmClusterId(value); return *this;} /** *The cluster ID of the CloudHSM cluster that contains the key material for the * KMS key. When you create a KMS key in an CloudHSM custom * key store, KMS creates the key material for the KMS key in the associated * CloudHSM cluster. This field is present only when the KMS key is created in an * CloudHSM key store.
*/ inline KeyMetadata& WithCloudHsmClusterId(Aws::String&& value) { SetCloudHsmClusterId(std::move(value)); return *this;} /** *The cluster ID of the CloudHSM cluster that contains the key material for the * KMS key. When you create a KMS key in an CloudHSM custom * key store, KMS creates the key material for the KMS key in the associated * CloudHSM cluster. This field is present only when the KMS key is created in an * CloudHSM key store.
*/ inline KeyMetadata& WithCloudHsmClusterId(const char* value) { SetCloudHsmClusterId(value); return *this;} /** *Specifies whether the KMS key's key material expires. This value is present
* only when Origin
is EXTERNAL
, otherwise this value is
* omitted.
Specifies whether the KMS key's key material expires. This value is present
* only when Origin
is EXTERNAL
, otherwise this value is
* omitted.
Specifies whether the KMS key's key material expires. This value is present
* only when Origin
is EXTERNAL
, otherwise this value is
* omitted.
Specifies whether the KMS key's key material expires. This value is present
* only when Origin
is EXTERNAL
, otherwise this value is
* omitted.
Specifies whether the KMS key's key material expires. This value is present
* only when Origin
is EXTERNAL
, otherwise this value is
* omitted.
Specifies whether the KMS key's key material expires. This value is present
* only when Origin
is EXTERNAL
, otherwise this value is
* omitted.
The manager of the KMS key. KMS keys in your Amazon Web Services account are * either customer managed or Amazon Web Services managed. For more information * about the difference, see KMS * keys in the Key Management Service Developer Guide.
*/ inline const KeyManagerType& GetKeyManager() const{ return m_keyManager; } /** *The manager of the KMS key. KMS keys in your Amazon Web Services account are * either customer managed or Amazon Web Services managed. For more information * about the difference, see KMS * keys in the Key Management Service Developer Guide.
*/ inline bool KeyManagerHasBeenSet() const { return m_keyManagerHasBeenSet; } /** *The manager of the KMS key. KMS keys in your Amazon Web Services account are * either customer managed or Amazon Web Services managed. For more information * about the difference, see KMS * keys in the Key Management Service Developer Guide.
*/ inline void SetKeyManager(const KeyManagerType& value) { m_keyManagerHasBeenSet = true; m_keyManager = value; } /** *The manager of the KMS key. KMS keys in your Amazon Web Services account are * either customer managed or Amazon Web Services managed. For more information * about the difference, see KMS * keys in the Key Management Service Developer Guide.
*/ inline void SetKeyManager(KeyManagerType&& value) { m_keyManagerHasBeenSet = true; m_keyManager = std::move(value); } /** *The manager of the KMS key. KMS keys in your Amazon Web Services account are * either customer managed or Amazon Web Services managed. For more information * about the difference, see KMS * keys in the Key Management Service Developer Guide.
*/ inline KeyMetadata& WithKeyManager(const KeyManagerType& value) { SetKeyManager(value); return *this;} /** *The manager of the KMS key. KMS keys in your Amazon Web Services account are * either customer managed or Amazon Web Services managed. For more information * about the difference, see KMS * keys in the Key Management Service Developer Guide.
*/ inline KeyMetadata& WithKeyManager(KeyManagerType&& value) { SetKeyManager(std::move(value)); return *this;} /** *Describes the type of key material in the KMS key.
*/ inline const KeySpec& GetKeySpec() const{ return m_keySpec; } /** *Describes the type of key material in the KMS key.
*/ inline bool KeySpecHasBeenSet() const { return m_keySpecHasBeenSet; } /** *Describes the type of key material in the KMS key.
*/ inline void SetKeySpec(const KeySpec& value) { m_keySpecHasBeenSet = true; m_keySpec = value; } /** *Describes the type of key material in the KMS key.
*/ inline void SetKeySpec(KeySpec&& value) { m_keySpecHasBeenSet = true; m_keySpec = std::move(value); } /** *Describes the type of key material in the KMS key.
*/ inline KeyMetadata& WithKeySpec(const KeySpec& value) { SetKeySpec(value); return *this;} /** *Describes the type of key material in the KMS key.
*/ inline KeyMetadata& WithKeySpec(KeySpec&& value) { SetKeySpec(std::move(value)); return *this;} /** *The encryption algorithms that the KMS key supports. You cannot use the KMS * key with other encryption algorithms within KMS.
This value is present
* only when the KeyUsage
of the KMS key is
* ENCRYPT_DECRYPT
.
The encryption algorithms that the KMS key supports. You cannot use the KMS * key with other encryption algorithms within KMS.
This value is present
* only when the KeyUsage
of the KMS key is
* ENCRYPT_DECRYPT
.
The encryption algorithms that the KMS key supports. You cannot use the KMS * key with other encryption algorithms within KMS.
This value is present
* only when the KeyUsage
of the KMS key is
* ENCRYPT_DECRYPT
.
The encryption algorithms that the KMS key supports. You cannot use the KMS * key with other encryption algorithms within KMS.
This value is present
* only when the KeyUsage
of the KMS key is
* ENCRYPT_DECRYPT
.
The encryption algorithms that the KMS key supports. You cannot use the KMS * key with other encryption algorithms within KMS.
This value is present
* only when the KeyUsage
of the KMS key is
* ENCRYPT_DECRYPT
.
The encryption algorithms that the KMS key supports. You cannot use the KMS * key with other encryption algorithms within KMS.
This value is present
* only when the KeyUsage
of the KMS key is
* ENCRYPT_DECRYPT
.
The encryption algorithms that the KMS key supports. You cannot use the KMS * key with other encryption algorithms within KMS.
This value is present
* only when the KeyUsage
of the KMS key is
* ENCRYPT_DECRYPT
.
The encryption algorithms that the KMS key supports. You cannot use the KMS * key with other encryption algorithms within KMS.
This value is present
* only when the KeyUsage
of the KMS key is
* ENCRYPT_DECRYPT
.
The signing algorithms that the KMS key supports. You cannot use the KMS key * with other signing algorithms within KMS.
This field appears only when
* the KeyUsage
of the KMS key is SIGN_VERIFY
.
The signing algorithms that the KMS key supports. You cannot use the KMS key * with other signing algorithms within KMS.
This field appears only when
* the KeyUsage
of the KMS key is SIGN_VERIFY
.
The signing algorithms that the KMS key supports. You cannot use the KMS key * with other signing algorithms within KMS.
This field appears only when
* the KeyUsage
of the KMS key is SIGN_VERIFY
.
The signing algorithms that the KMS key supports. You cannot use the KMS key * with other signing algorithms within KMS.
This field appears only when
* the KeyUsage
of the KMS key is SIGN_VERIFY
.
The signing algorithms that the KMS key supports. You cannot use the KMS key * with other signing algorithms within KMS.
This field appears only when
* the KeyUsage
of the KMS key is SIGN_VERIFY
.
The signing algorithms that the KMS key supports. You cannot use the KMS key * with other signing algorithms within KMS.
This field appears only when
* the KeyUsage
of the KMS key is SIGN_VERIFY
.
The signing algorithms that the KMS key supports. You cannot use the KMS key * with other signing algorithms within KMS.
This field appears only when
* the KeyUsage
of the KMS key is SIGN_VERIFY
.
The signing algorithms that the KMS key supports. You cannot use the KMS key * with other signing algorithms within KMS.
This field appears only when
* the KeyUsage
of the KMS key is SIGN_VERIFY
.
Indicates whether the KMS key is a multi-Region (True
) or
* regional (False
) key. This value is True
for
* multi-Region primary and replica keys and False
for regional KMS
* keys.
For more information about multi-Region keys, see Multi-Region * keys in KMS in the Key Management Service Developer Guide.
*/ inline bool GetMultiRegion() const{ return m_multiRegion; } /** *Indicates whether the KMS key is a multi-Region (True
) or
* regional (False
) key. This value is True
for
* multi-Region primary and replica keys and False
for regional KMS
* keys.
For more information about multi-Region keys, see Multi-Region * keys in KMS in the Key Management Service Developer Guide.
*/ inline bool MultiRegionHasBeenSet() const { return m_multiRegionHasBeenSet; } /** *Indicates whether the KMS key is a multi-Region (True
) or
* regional (False
) key. This value is True
for
* multi-Region primary and replica keys and False
for regional KMS
* keys.
For more information about multi-Region keys, see Multi-Region * keys in KMS in the Key Management Service Developer Guide.
*/ inline void SetMultiRegion(bool value) { m_multiRegionHasBeenSet = true; m_multiRegion = value; } /** *Indicates whether the KMS key is a multi-Region (True
) or
* regional (False
) key. This value is True
for
* multi-Region primary and replica keys and False
for regional KMS
* keys.
For more information about multi-Region keys, see Multi-Region * keys in KMS in the Key Management Service Developer Guide.
*/ inline KeyMetadata& WithMultiRegion(bool value) { SetMultiRegion(value); return *this;} /** *Lists the primary and replica keys in same multi-Region key. This field is
* present only when the value of the MultiRegion
field is
* True
.
For more information about any listed KMS key, use the * DescribeKey operation.
MultiRegionKeyType
* indicates whether the KMS key is a PRIMARY
or REPLICA
* key.
PrimaryKey
displays the key ARN and Region
* of the primary key. This field displays the current KMS key if it is the primary
* key.
ReplicaKeys
displays the key ARNs and
* Regions of all replica keys. This field includes the current KMS key if it is a
* replica key.
Lists the primary and replica keys in same multi-Region key. This field is
* present only when the value of the MultiRegion
field is
* True
.
For more information about any listed KMS key, use the * DescribeKey operation.
MultiRegionKeyType
* indicates whether the KMS key is a PRIMARY
or REPLICA
* key.
PrimaryKey
displays the key ARN and Region
* of the primary key. This field displays the current KMS key if it is the primary
* key.
ReplicaKeys
displays the key ARNs and
* Regions of all replica keys. This field includes the current KMS key if it is a
* replica key.
Lists the primary and replica keys in same multi-Region key. This field is
* present only when the value of the MultiRegion
field is
* True
.
For more information about any listed KMS key, use the * DescribeKey operation.
MultiRegionKeyType
* indicates whether the KMS key is a PRIMARY
or REPLICA
* key.
PrimaryKey
displays the key ARN and Region
* of the primary key. This field displays the current KMS key if it is the primary
* key.
ReplicaKeys
displays the key ARNs and
* Regions of all replica keys. This field includes the current KMS key if it is a
* replica key.
Lists the primary and replica keys in same multi-Region key. This field is
* present only when the value of the MultiRegion
field is
* True
.
For more information about any listed KMS key, use the * DescribeKey operation.
MultiRegionKeyType
* indicates whether the KMS key is a PRIMARY
or REPLICA
* key.
PrimaryKey
displays the key ARN and Region
* of the primary key. This field displays the current KMS key if it is the primary
* key.
ReplicaKeys
displays the key ARNs and
* Regions of all replica keys. This field includes the current KMS key if it is a
* replica key.
Lists the primary and replica keys in same multi-Region key. This field is
* present only when the value of the MultiRegion
field is
* True
.
For more information about any listed KMS key, use the * DescribeKey operation.
MultiRegionKeyType
* indicates whether the KMS key is a PRIMARY
or REPLICA
* key.
PrimaryKey
displays the key ARN and Region
* of the primary key. This field displays the current KMS key if it is the primary
* key.
ReplicaKeys
displays the key ARNs and
* Regions of all replica keys. This field includes the current KMS key if it is a
* replica key.
Lists the primary and replica keys in same multi-Region key. This field is
* present only when the value of the MultiRegion
field is
* True
.
For more information about any listed KMS key, use the * DescribeKey operation.
MultiRegionKeyType
* indicates whether the KMS key is a PRIMARY
or REPLICA
* key.
PrimaryKey
displays the key ARN and Region
* of the primary key. This field displays the current KMS key if it is the primary
* key.
ReplicaKeys
displays the key ARNs and
* Regions of all replica keys. This field includes the current KMS key if it is a
* replica key.
The waiting period before the primary key in a multi-Region key is deleted.
* This waiting period begins when the last of its replica keys is deleted. This
* value is present only when the KeyState
of the KMS key is
* PendingReplicaDeletion
. That indicates that the KMS key is the
* primary key in a multi-Region key, it is scheduled for deletion, and it still
* has existing replica keys.
When a single-Region KMS key or a multi-Region
* replica key is scheduled for deletion, its deletion date is displayed in the
* DeletionDate
field. However, when the primary key in a multi-Region
* key is scheduled for deletion, its waiting period doesn't begin until all of its
* replica keys are deleted. This value displays that waiting period. When the last
* replica key in the multi-Region key is deleted, the KeyState
of the
* scheduled primary key changes from PendingReplicaDeletion
to
* PendingDeletion
and the deletion date appears in the
* DeletionDate
field.
The waiting period before the primary key in a multi-Region key is deleted.
* This waiting period begins when the last of its replica keys is deleted. This
* value is present only when the KeyState
of the KMS key is
* PendingReplicaDeletion
. That indicates that the KMS key is the
* primary key in a multi-Region key, it is scheduled for deletion, and it still
* has existing replica keys.
When a single-Region KMS key or a multi-Region
* replica key is scheduled for deletion, its deletion date is displayed in the
* DeletionDate
field. However, when the primary key in a multi-Region
* key is scheduled for deletion, its waiting period doesn't begin until all of its
* replica keys are deleted. This value displays that waiting period. When the last
* replica key in the multi-Region key is deleted, the KeyState
of the
* scheduled primary key changes from PendingReplicaDeletion
to
* PendingDeletion
and the deletion date appears in the
* DeletionDate
field.
The waiting period before the primary key in a multi-Region key is deleted.
* This waiting period begins when the last of its replica keys is deleted. This
* value is present only when the KeyState
of the KMS key is
* PendingReplicaDeletion
. That indicates that the KMS key is the
* primary key in a multi-Region key, it is scheduled for deletion, and it still
* has existing replica keys.
When a single-Region KMS key or a multi-Region
* replica key is scheduled for deletion, its deletion date is displayed in the
* DeletionDate
field. However, when the primary key in a multi-Region
* key is scheduled for deletion, its waiting period doesn't begin until all of its
* replica keys are deleted. This value displays that waiting period. When the last
* replica key in the multi-Region key is deleted, the KeyState
of the
* scheduled primary key changes from PendingReplicaDeletion
to
* PendingDeletion
and the deletion date appears in the
* DeletionDate
field.
The waiting period before the primary key in a multi-Region key is deleted.
* This waiting period begins when the last of its replica keys is deleted. This
* value is present only when the KeyState
of the KMS key is
* PendingReplicaDeletion
. That indicates that the KMS key is the
* primary key in a multi-Region key, it is scheduled for deletion, and it still
* has existing replica keys.
When a single-Region KMS key or a multi-Region
* replica key is scheduled for deletion, its deletion date is displayed in the
* DeletionDate
field. However, when the primary key in a multi-Region
* key is scheduled for deletion, its waiting period doesn't begin until all of its
* replica keys are deleted. This value displays that waiting period. When the last
* replica key in the multi-Region key is deleted, the KeyState
of the
* scheduled primary key changes from PendingReplicaDeletion
to
* PendingDeletion
and the deletion date appears in the
* DeletionDate
field.
The message authentication code (MAC) algorithm that the HMAC KMS key * supports.
This value is present only when the KeyUsage
of
* the KMS key is GENERATE_VERIFY_MAC
.
The message authentication code (MAC) algorithm that the HMAC KMS key * supports.
This value is present only when the KeyUsage
of
* the KMS key is GENERATE_VERIFY_MAC
.
The message authentication code (MAC) algorithm that the HMAC KMS key * supports.
This value is present only when the KeyUsage
of
* the KMS key is GENERATE_VERIFY_MAC
.
The message authentication code (MAC) algorithm that the HMAC KMS key * supports.
This value is present only when the KeyUsage
of
* the KMS key is GENERATE_VERIFY_MAC
.
The message authentication code (MAC) algorithm that the HMAC KMS key * supports.
This value is present only when the KeyUsage
of
* the KMS key is GENERATE_VERIFY_MAC
.
The message authentication code (MAC) algorithm that the HMAC KMS key * supports.
This value is present only when the KeyUsage
of
* the KMS key is GENERATE_VERIFY_MAC
.
The message authentication code (MAC) algorithm that the HMAC KMS key * supports.
This value is present only when the KeyUsage
of
* the KMS key is GENERATE_VERIFY_MAC
.
The message authentication code (MAC) algorithm that the HMAC KMS key * supports.
This value is present only when the KeyUsage
of
* the KMS key is GENERATE_VERIFY_MAC
.
Information about the external key that is associated with a KMS key in an * external key store.
For more information, see External * key in the Key Management Service Developer Guide.
*/ inline const XksKeyConfigurationType& GetXksKeyConfiguration() const{ return m_xksKeyConfiguration; } /** *Information about the external key that is associated with a KMS key in an * external key store.
For more information, see External * key in the Key Management Service Developer Guide.
*/ inline bool XksKeyConfigurationHasBeenSet() const { return m_xksKeyConfigurationHasBeenSet; } /** *Information about the external key that is associated with a KMS key in an * external key store.
For more information, see External * key in the Key Management Service Developer Guide.
*/ inline void SetXksKeyConfiguration(const XksKeyConfigurationType& value) { m_xksKeyConfigurationHasBeenSet = true; m_xksKeyConfiguration = value; } /** *Information about the external key that is associated with a KMS key in an * external key store.
For more information, see External * key in the Key Management Service Developer Guide.
*/ inline void SetXksKeyConfiguration(XksKeyConfigurationType&& value) { m_xksKeyConfigurationHasBeenSet = true; m_xksKeyConfiguration = std::move(value); } /** *Information about the external key that is associated with a KMS key in an * external key store.
For more information, see External * key in the Key Management Service Developer Guide.
*/ inline KeyMetadata& WithXksKeyConfiguration(const XksKeyConfigurationType& value) { SetXksKeyConfiguration(value); return *this;} /** *Information about the external key that is associated with a KMS key in an * external key store.
For more information, see External * key in the Key Management Service Developer Guide.
*/ inline KeyMetadata& WithXksKeyConfiguration(XksKeyConfigurationType&& value) { SetXksKeyConfiguration(std::move(value)); return *this;} private: Aws::String m_aWSAccountId; bool m_aWSAccountIdHasBeenSet = false; Aws::String m_keyId; bool m_keyIdHasBeenSet = false; Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::Utils::DateTime m_creationDate; bool m_creationDateHasBeenSet = false; bool m_enabled; bool m_enabledHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; KeyUsageType m_keyUsage; bool m_keyUsageHasBeenSet = false; KeyState m_keyState; bool m_keyStateHasBeenSet = false; Aws::Utils::DateTime m_deletionDate; bool m_deletionDateHasBeenSet = false; Aws::Utils::DateTime m_validTo; bool m_validToHasBeenSet = false; OriginType m_origin; bool m_originHasBeenSet = false; Aws::String m_customKeyStoreId; bool m_customKeyStoreIdHasBeenSet = false; Aws::String m_cloudHsmClusterId; bool m_cloudHsmClusterIdHasBeenSet = false; ExpirationModelType m_expirationModel; bool m_expirationModelHasBeenSet = false; KeyManagerType m_keyManager; bool m_keyManagerHasBeenSet = false; KeySpec m_keySpec; bool m_keySpecHasBeenSet = false; Aws::Vector