@aws-sdk/client-kms 3.72.0 → 3.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +4 -1
  3. package/dist-cjs/KMS.js +30 -0
  4. package/dist-cjs/commands/GenerateMacCommand.js +36 -0
  5. package/dist-cjs/commands/VerifyMacCommand.js +36 -0
  6. package/dist-cjs/commands/index.js +2 -0
  7. package/dist-cjs/models/models_0.js +60 -3
  8. package/dist-cjs/protocols/Aws_json1_1.js +194 -2
  9. package/dist-es/KMS.js +30 -0
  10. package/dist-es/commands/GenerateMacCommand.js +39 -0
  11. package/dist-es/commands/VerifyMacCommand.js +39 -0
  12. package/dist-es/commands/index.js +2 -0
  13. package/dist-es/models/models_0.js +46 -0
  14. package/dist-es/protocols/Aws_json1_1.js +225 -1
  15. package/dist-types/KMS.d.ts +256 -219
  16. package/dist-types/KMSClient.d.ts +8 -3
  17. package/dist-types/commands/CancelKeyDeletionCommand.d.ts +1 -1
  18. package/dist-types/commands/CreateAliasCommand.d.ts +2 -2
  19. package/dist-types/commands/CreateGrantCommand.d.ts +2 -2
  20. package/dist-types/commands/CreateKeyCommand.d.ts +44 -40
  21. package/dist-types/commands/DecryptCommand.d.ts +7 -7
  22. package/dist-types/commands/DeleteAliasCommand.d.ts +1 -1
  23. package/dist-types/commands/DeleteImportedKeyMaterialCommand.d.ts +1 -1
  24. package/dist-types/commands/DescribeKeyCommand.d.ts +6 -8
  25. package/dist-types/commands/DisableKeyCommand.d.ts +2 -3
  26. package/dist-types/commands/DisableKeyRotationCommand.d.ts +3 -3
  27. package/dist-types/commands/EnableKeyCommand.d.ts +1 -1
  28. package/dist-types/commands/EnableKeyRotationCommand.d.ts +3 -3
  29. package/dist-types/commands/EncryptCommand.d.ts +8 -26
  30. package/dist-types/commands/GenerateDataKeyCommand.d.ts +13 -15
  31. package/dist-types/commands/GenerateDataKeyPairCommand.d.ts +12 -11
  32. package/dist-types/commands/GenerateDataKeyPairWithoutPlaintextCommand.d.ts +10 -11
  33. package/dist-types/commands/GenerateDataKeyWithoutPlaintextCommand.d.ts +21 -24
  34. package/dist-types/commands/GenerateMacCommand.d.ts +55 -0
  35. package/dist-types/commands/GetKeyRotationStatusCommand.d.ts +2 -2
  36. package/dist-types/commands/GetParametersForImportCommand.d.ts +7 -7
  37. package/dist-types/commands/GetPublicKeyCommand.d.ts +2 -2
  38. package/dist-types/commands/ImportKeyMaterialCommand.d.ts +8 -8
  39. package/dist-types/commands/ListGrantsCommand.d.ts +1 -1
  40. package/dist-types/commands/ListRetirableGrantsCommand.d.ts +1 -1
  41. package/dist-types/commands/ReEncryptCommand.d.ts +8 -9
  42. package/dist-types/commands/ReplicateKeyCommand.d.ts +8 -4
  43. package/dist-types/commands/RetireGrantCommand.d.ts +4 -5
  44. package/dist-types/commands/RevokeGrantCommand.d.ts +1 -1
  45. package/dist-types/commands/ScheduleKeyDeletionCommand.d.ts +1 -1
  46. package/dist-types/commands/SignCommand.d.ts +3 -3
  47. package/dist-types/commands/TagResourceCommand.d.ts +2 -2
  48. package/dist-types/commands/UntagResourceCommand.d.ts +2 -2
  49. package/dist-types/commands/UpdateAliasCommand.d.ts +2 -2
  50. package/dist-types/commands/UpdateKeyDescriptionCommand.d.ts +1 -1
  51. package/dist-types/commands/UpdatePrimaryRegionCommand.d.ts +2 -3
  52. package/dist-types/commands/VerifyCommand.d.ts +2 -2
  53. package/dist-types/commands/VerifyMacCommand.d.ts +56 -0
  54. package/dist-types/commands/index.d.ts +2 -0
  55. package/dist-types/models/models_0.d.ts +323 -114
  56. package/dist-types/protocols/Aws_json1_1.d.ts +6 -0
  57. package/dist-types/ts3.4/KMS.d.ts +10 -0
  58. package/dist-types/ts3.4/KMSClient.d.ts +4 -2
  59. package/dist-types/ts3.4/commands/GenerateMacCommand.d.ts +17 -0
  60. package/dist-types/ts3.4/commands/VerifyMacCommand.d.ts +17 -0
  61. package/dist-types/ts3.4/commands/index.d.ts +2 -0
  62. package/dist-types/ts3.4/models/models_0.d.ts +81 -1
  63. package/dist-types/ts3.4/protocols/Aws_json1_1.d.ts +6 -0
  64. package/package.json +9 -9
@@ -127,8 +127,7 @@ export declare class KMSInternalException extends __BaseException {
127
127
  /**
128
128
  * <p>The request was rejected because the state of the specified resource is not valid for this
129
129
  * request.</p>
130
- * <p>For more information about how key state affects the use of a KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your KMS
131
- * key</a> in the <i>
130
+ * <p>For more information about how key state affects the use of a KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a> in the <i>
132
131
  * <i>Key Management Service Developer Guide</i>
133
132
  * </i>.</p>
134
133
  */
@@ -477,9 +476,9 @@ export declare class IncorrectTrustAnchorException extends __BaseException {
477
476
  * <p>Use this structure to allow <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> in the grant only when the operation request
478
477
  * includes the specified <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">encryption context</a>. </p>
479
478
  * <p>KMS applies the grant constraints only to cryptographic operations that support an
480
- * encryption context, that is, all cryptographic operations with a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#symmetric-cmks">symmetric KMS key</a>. Grant
479
+ * encryption context, that is, all cryptographic operations with a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#symmetric-cmks">symmetric encryption KMS key</a>. Grant
481
480
  * constraints are not applied to operations that do not support an encryption context, such as
482
- * cryptographic operations with asymmetric KMS keys and management operations, such as <a>DescribeKey</a> or <a>RetireGrant</a>.</p>
481
+ * cryptographic operations with HMAC KMS keys or asymmetric KMS keys, and management operations, such as <a>DescribeKey</a> or <a>RetireGrant</a>.</p>
483
482
  * <important>
484
483
  * <p>In a cryptographic operation, the encryption context in the decryption operation must be
485
484
  * an exact, case-sensitive match for the keys and values in the encryption context of the
@@ -528,12 +527,14 @@ export declare enum GrantOperation {
528
527
  GenerateDataKeyPair = "GenerateDataKeyPair",
529
528
  GenerateDataKeyPairWithoutPlaintext = "GenerateDataKeyPairWithoutPlaintext",
530
529
  GenerateDataKeyWithoutPlaintext = "GenerateDataKeyWithoutPlaintext",
530
+ GenerateMac = "GenerateMac",
531
531
  GetPublicKey = "GetPublicKey",
532
532
  ReEncryptFrom = "ReEncryptFrom",
533
533
  ReEncryptTo = "ReEncryptTo",
534
534
  RetireGrant = "RetireGrant",
535
535
  Sign = "Sign",
536
- Verify = "Verify"
536
+ Verify = "Verify",
537
+ VerifyMac = "VerifyMac"
537
538
  }
538
539
  export interface CreateGrantRequest {
539
540
  /**
@@ -582,11 +583,11 @@ export interface CreateGrantRequest {
582
583
  RetiringPrincipal?: string;
583
584
  /**
584
585
  * <p>A list of operations that the grant permits. </p>
585
- * <p>The operation must be supported on the KMS key. For example, you cannot create a grant for
586
- * a symmetric KMS key that allows the <a>Sign</a> operation, or a grant for an
587
- * asymmetric KMS key that allows the <a>GenerateDataKey</a> operation. If you try,
588
- * KMS returns a <code>ValidationError</code> exception. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations">Grant
589
- * operations</a> in the <i>Key Management Service Developer Guide</i>.</p>
586
+ * <p>This list must include only operations that are permitted in a grant. Also, the operation
587
+ * must be supported on the KMS key. For example, you cannot create a grant for a symmetric encryption KMS key that allows the <a>Sign</a> operation, or a grant for an asymmetric KMS key
588
+ * that allows the <a>GenerateDataKey</a> operation. If you try, KMS returns a
589
+ * <code>ValidationError</code> exception. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations">Grant operations</a> in the
590
+ * <i>Key Management Service Developer Guide</i>.</p>
590
591
  */
591
592
  Operations: (GrantOperation | string)[] | undefined;
592
593
  /**
@@ -594,19 +595,25 @@ export interface CreateGrantRequest {
594
595
  * <p>KMS supports the <code>EncryptionContextEquals</code> and
595
596
  * <code>EncryptionContextSubset</code> grant constraints. Each constraint value can include up
596
597
  * to 8 encryption context pairs. The encryption context value in each constraint cannot exceed
597
- * 384 characters.</p>
598
- * <p>These grant constraints allow the permissions in the grant only when the encryption
599
- * context in the request matches (<code>EncryptionContextEquals</code>) or includes
600
- * (<code>EncryptionContextSubset</code>) the encryption context specified in this structure.
601
- * For information about grant constraints, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints">Using grant
598
+ * 384 characters. For information about grant constraints, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints">Using grant
602
599
  * constraints</a> in the <i>Key Management Service Developer Guide</i>. For more information about encryption context,
603
600
  * see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption
604
- * Context</a> in the <i>
601
+ * context</a> in the <i>
605
602
  * <i>Key Management Service Developer Guide</i>
606
603
  * </i>. </p>
607
- * <p>The encryption context grant constraints are supported only on operations that include an
608
- * encryption context. You cannot use an encryption context grant constraint for cryptographic
609
- * operations with asymmetric KMS keys or for management operations, such as <a>DescribeKey</a> or <a>RetireGrant</a>.</p>
604
+ * <p>The encryption context grant constraints allow the permissions in the grant only when the
605
+ * encryption context in the request matches (<code>EncryptionContextEquals</code>) or includes
606
+ * (<code>EncryptionContextSubset</code>) the encryption context specified in this structure. </p>
607
+ * <p>The encryption context grant constraints are supported only on <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations">grant operations</a> that
608
+ * include an <code>EncryptionContext</code> parameter, such as cryptographic operations on
609
+ * symmetric encryption KMS keys. Grants with grant constraints can include the <a>DescribeKey</a> and <a>RetireGrant</a> operations, but the constraint
610
+ * doesn't apply to these operations. If a grant with a grant constraint includes the
611
+ * <code>CreateGrant</code> operation, the constraint requires that any grants created with the
612
+ * <code>CreateGrant</code> permission have an equally strict or stricter encryption context
613
+ * constraint.</p>
614
+ * <p>You cannot use an encryption context grant constraint for cryptographic operations with
615
+ * asymmetric KMS keys or HMAC KMS keys. These keys don't support an encryption context. </p>
616
+ * <p></p>
610
617
  */
611
618
  Constraints?: GrantConstraints;
612
619
  /**
@@ -681,6 +688,10 @@ export declare enum CustomerMasterKeySpec {
681
688
  ECC_NIST_P384 = "ECC_NIST_P384",
682
689
  ECC_NIST_P521 = "ECC_NIST_P521",
683
690
  ECC_SECG_P256K1 = "ECC_SECG_P256K1",
691
+ HMAC_224 = "HMAC_224",
692
+ HMAC_256 = "HMAC_256",
693
+ HMAC_384 = "HMAC_384",
694
+ HMAC_512 = "HMAC_512",
684
695
  RSA_2048 = "RSA_2048",
685
696
  RSA_3072 = "RSA_3072",
686
697
  RSA_4096 = "RSA_4096",
@@ -691,6 +702,10 @@ export declare enum KeySpec {
691
702
  ECC_NIST_P384 = "ECC_NIST_P384",
692
703
  ECC_NIST_P521 = "ECC_NIST_P521",
693
704
  ECC_SECG_P256K1 = "ECC_SECG_P256K1",
705
+ HMAC_224 = "HMAC_224",
706
+ HMAC_256 = "HMAC_256",
707
+ HMAC_384 = "HMAC_384",
708
+ HMAC_512 = "HMAC_512",
694
709
  RSA_2048 = "RSA_2048",
695
710
  RSA_3072 = "RSA_3072",
696
711
  RSA_4096 = "RSA_4096",
@@ -698,6 +713,7 @@ export declare enum KeySpec {
698
713
  }
699
714
  export declare enum KeyUsageType {
700
715
  ENCRYPT_DECRYPT = "ENCRYPT_DECRYPT",
716
+ GENERATE_VERIFY_MAC = "GENERATE_VERIFY_MAC",
701
717
  SIGN_VERIFY = "SIGN_VERIFY"
702
718
  }
703
719
  export declare enum OriginType {
@@ -768,15 +784,19 @@ export interface CreateKeyRequest {
768
784
  Description?: string;
769
785
  /**
770
786
  * <p>Determines the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> for which you can use the KMS key. The default value is
771
- * <code>ENCRYPT_DECRYPT</code>. This parameter is required only for asymmetric KMS keys. You
787
+ * <code>ENCRYPT_DECRYPT</code>. This parameter is optional when you are creating a symmetric
788
+ * encryption KMS key; otherwise, it is required. You
772
789
  * can't change the <code>KeyUsage</code> value after the KMS key is created.</p>
773
790
  * <p>Select only one valid value.</p>
774
791
  * <ul>
775
792
  * <li>
776
- * <p>For symmetric KMS keys, omit the parameter or specify
793
+ * <p>For symmetric encryption KMS keys, omit the parameter or specify
777
794
  * <code>ENCRYPT_DECRYPT</code>.</p>
778
795
  * </li>
779
796
  * <li>
797
+ * <p>For HMAC KMS keys (symmetric), specify <code>GENERATE_VERIFY_MAC</code>.</p>
798
+ * </li>
799
+ * <li>
780
800
  * <p>For asymmetric KMS keys with RSA key material, specify <code>ENCRYPT_DECRYPT</code> or
781
801
  * <code>SIGN_VERIFY</code>.</p>
782
802
  * </li>
@@ -799,29 +819,27 @@ export interface CreateKeyRequest {
799
819
  /**
800
820
  * <p>Specifies the type of KMS key to create. The default value,
801
821
  * <code>SYMMETRIC_DEFAULT</code>, creates a KMS key with a 256-bit symmetric key for encryption
802
- * and decryption. For help choosing a key spec for your KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html">How to Choose Your KMS key
803
- * Configuration</a> in the <i>
822
+ * and decryption. For help choosing a key spec for your KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-types.html#symm-asymm-choose">Choosing a KMS key type</a> in
823
+ * the <i>
804
824
  * <i>Key Management Service Developer Guide</i>
805
825
  * </i>.</p>
806
826
  * <p>The <code>KeySpec</code> determines whether the KMS key contains a symmetric key or an
807
- * asymmetric key pair. It also determines the encryption algorithms or signing algorithms that
808
- * the KMS key supports. You can't change the <code>KeySpec</code> after the KMS key is created.
809
- * To further restrict the algorithms that can be used with the KMS key, use a condition key in
810
- * its key policy or IAM policy. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm">kms:EncryptionAlgorithm</a> or <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm">kms:Signing Algorithm</a> in the <i>
827
+ * asymmetric key pair. It also determines the algorithms that the KMS key supports. You can't
828
+ * change the <code>KeySpec</code> after the KMS key is created. To further restrict the
829
+ * algorithms that can be used with the KMS key, use a condition key in its key policy or IAM
830
+ * policy. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm">kms:EncryptionAlgorithm</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-mac-algorithm">kms:MacAlgorithm</a> or <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm">kms:Signing Algorithm</a> in the <i>
811
831
  * <i>Key Management Service Developer Guide</i>
812
832
  * </i>.</p>
813
833
  * <important>
814
834
  * <p>
815
835
  * <a href="http://aws.amazon.com/kms/features/#AWS_Service_Integration">Amazon Web Services services that
816
- * are integrated with KMS</a> use symmetric KMS keys to protect your data. These
817
- * services do not support asymmetric KMS keys. For help determining whether a KMS key is
818
- * symmetric or asymmetric, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html">Identifying Symmetric and Asymmetric
819
- * KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>
836
+ * are integrated with KMS</a> use symmetric encryption KMS keys to protect your data.
837
+ * These services do not support asymmetric KMS keys or HMAC KMS keys.</p>
820
838
  * </important>
821
839
  * <p>KMS supports the following key specs for KMS keys:</p>
822
840
  * <ul>
823
841
  * <li>
824
- * <p>Symmetric key (default)</p>
842
+ * <p>Symmetric encryption key (default)</p>
825
843
  * <ul>
826
844
  * <li>
827
845
  * <p>
@@ -830,6 +848,31 @@ export interface CreateKeyRequest {
830
848
  * </ul>
831
849
  * </li>
832
850
  * <li>
851
+ * <p>HMAC keys (symmetric)</p>
852
+ * <ul>
853
+ * <li>
854
+ * <p>
855
+ * <code>HMAC_224</code>
856
+ * </p>
857
+ * </li>
858
+ * <li>
859
+ * <p>
860
+ * <code>HMAC_256</code>
861
+ * </p>
862
+ * </li>
863
+ * <li>
864
+ * <p>
865
+ * <code>HMAC_384</code>
866
+ * </p>
867
+ * </li>
868
+ * <li>
869
+ * <p>
870
+ * <code>HMAC_512</code>
871
+ * </p>
872
+ * </li>
873
+ * </ul>
874
+ * </li>
875
+ * <li>
833
876
  * <p>Asymmetric RSA key pairs</p>
834
877
  * <ul>
835
878
  * <li>
@@ -886,12 +929,11 @@ export interface CreateKeyRequest {
886
929
  * <p>To create a KMS key with no key material (for imported key material), set the value to
887
930
  * <code>EXTERNAL</code>. For more information about importing key material into KMS, see
888
931
  * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">Importing Key
889
- * Material</a> in the <i>Key Management Service Developer Guide</i>. This value is valid only for symmetric KMS
890
- * keys.</p>
932
+ * Material</a> in the <i>Key Management Service Developer Guide</i>. This value is valid only for symmetric encryption KMS keys.</p>
891
933
  * <p>To create a KMS key in an KMS <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> and create its key material in the
892
934
  * associated CloudHSM cluster, set this value to <code>AWS_CLOUDHSM</code>. You must also use the
893
935
  * <code>CustomKeyStoreId</code> parameter to identify the custom key store. This value is
894
- * valid only for symmetric KMS keys.</p>
936
+ * valid only for symmetric encryption KMS keys.</p>
895
937
  */
896
938
  Origin?: OriginType | string;
897
939
  /**
@@ -900,8 +942,8 @@ export interface CreateKeyRequest {
900
942
  * <code>Origin</code> parameter with a value of <code>AWS_CLOUDHSM</code>. The CloudHSM cluster
901
943
  * that is associated with the custom key store must have at least two active HSMs, each in a
902
944
  * different Availability Zone in the Region.</p>
903
- * <p>This parameter is valid only for symmetric KMS keys and regional KMS keys. You cannot
904
- * create an asymmetric KMS key or a multi-Region key in a custom key store.</p>
945
+ * <p>This parameter is valid only for symmetric encryption KMS keys in a single Region. You
946
+ * cannot create any other type of KMS key in a custom key store.</p>
905
947
  * <p>To find the ID of a custom key store, use the <a>DescribeCustomKeyStores</a> operation.</p>
906
948
  * <p>The response includes the custom key store ID and the ID of the CloudHSM cluster.</p>
907
949
  * <p>This operation is part of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">Custom Key Store feature</a> feature in KMS, which
@@ -927,7 +969,7 @@ export interface CreateKeyRequest {
927
969
  * <p>Assigns one or more tags to the KMS key. Use this parameter to tag the KMS key when it is
928
970
  * created. To tag an existing KMS key, use the <a>TagResource</a> operation.</p>
929
971
  * <note>
930
- * <p>Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">Using ABAC in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
972
+ * <p>Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">ABAC in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
931
973
  * </note>
932
974
  * <p>To use this parameter, you must have <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:TagResource</a> permission in an IAM policy.</p>
933
975
  * <p>Each tag consists of a tag key and a tag value. Both the tag key and the tag value are
@@ -948,7 +990,7 @@ export interface CreateKeyRequest {
948
990
  * <p>This operation supports <i>multi-Region keys</i>, an KMS feature that lets you create multiple
949
991
  * interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key
950
992
  * material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt
951
- * it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Using multi-Region keys</a> in the <i>Key Management Service Developer Guide</i>.</p>
993
+ * it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Multi-Region keys in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
952
994
  * <p>This value creates a <i>primary key</i>, not a replica. To create a
953
995
  * <i>replica key</i>, use the <a>ReplicateKey</a> operation. </p>
954
996
  * <p>You can create a symmetric or asymmetric multi-Region key, and you can create a
@@ -986,6 +1028,12 @@ export declare enum KeyState {
986
1028
  Unavailable = "Unavailable",
987
1029
  Updating = "Updating"
988
1030
  }
1031
+ export declare enum MacAlgorithmSpec {
1032
+ HMAC_SHA_224 = "HMAC_SHA_224",
1033
+ HMAC_SHA_256 = "HMAC_SHA_256",
1034
+ HMAC_SHA_384 = "HMAC_SHA_384",
1035
+ HMAC_SHA_512 = "HMAC_SHA_512"
1036
+ }
989
1037
  export declare enum MultiRegionKeyType {
990
1038
  PRIMARY = "PRIMARY",
991
1039
  REPLICA = "REPLICA"
@@ -1086,8 +1134,7 @@ export interface KeyMetadata {
1086
1134
  KeyUsage?: KeyUsageType | string;
1087
1135
  /**
1088
1136
  * <p>The current status of the KMS key.</p>
1089
- * <p>For more information about how key state affects the use of a KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your KMS
1090
- * key</a> in the <i>Key Management Service Developer Guide</i>.</p>
1137
+ * <p>For more information about how key state affects the use of a KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>
1091
1138
  */
1092
1139
  KeyState?: KeyState | string;
1093
1140
  /**
@@ -1167,7 +1214,7 @@ export interface KeyMetadata {
1167
1214
  * <p>Indicates whether the KMS key is a multi-Region (<code>True</code>) or regional
1168
1215
  * (<code>False</code>) key. This value is <code>True</code> for multi-Region primary and
1169
1216
  * replica keys and <code>False</code> for regional KMS keys.</p>
1170
- * <p>For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Using multi-Region keys</a> in the <i>Key Management Service Developer Guide</i>.</p>
1217
+ * <p>For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Multi-Region keys in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
1171
1218
  */
1172
1219
  MultiRegion?: boolean;
1173
1220
  /**
@@ -1209,6 +1256,12 @@ export interface KeyMetadata {
1209
1256
  * and the deletion date appears in the <code>DeletionDate</code> field.</p>
1210
1257
  */
1211
1258
  PendingDeletionWindowInDays?: number;
1259
+ /**
1260
+ * <p>The message authentication code (MAC) algorithm that the HMAC KMS key supports.</p>
1261
+ * <p>This value is present only when the <code>KeyUsage</code> of the KMS key is
1262
+ * <code>GENERATE_VERIFY_MAC</code>.</p>
1263
+ */
1264
+ MacAlgorithms?: (MacAlgorithmSpec | string)[];
1212
1265
  }
1213
1266
  export declare namespace KeyMetadata {
1214
1267
  /**
@@ -1419,11 +1472,12 @@ export interface DecryptRequest {
1419
1472
  CiphertextBlob: Uint8Array | undefined;
1420
1473
  /**
1421
1474
  * <p>Specifies the encryption context to use when decrypting the data.
1422
- * An encryption context is valid only for <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> with a symmetric KMS key. The standard asymmetric encryption algorithms that KMS uses do not support an encryption context.</p>
1423
- * <p>An <i>encryption context</i> 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 KMS key, but it is highly recommended.</p>
1475
+ * An encryption context is valid only for <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> with a symmetric encryption KMS key. The standard asymmetric encryption algorithms and HMAC algorithms that KMS uses do not support an encryption context.</p>
1476
+ * <p>An <i>encryption context</i> is a collection of non-secret key-value pairs that represent additional authenticated data.
1477
+ * 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 supported
1478
+ * only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.</p>
1424
1479
  * <p>For more information, see
1425
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption
1426
- * Context</a> in the <i>Key Management Service Developer Guide</i>.</p>
1480
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
1427
1481
  */
1428
1482
  EncryptionContext?: {
1429
1483
  [key: string]: string;
@@ -1435,11 +1489,13 @@ export interface DecryptRequest {
1435
1489
  */
1436
1490
  GrantTokens?: string[];
1437
1491
  /**
1438
- * <p>Specifies the KMS key that KMS uses to decrypt the ciphertext. Enter a key ID of the KMS
1439
- * key that was used to encrypt the ciphertext. </p>
1492
+ * <p>Specifies the KMS key that KMS uses to decrypt the ciphertext.</p>
1493
+ *
1494
+ * <p>Enter a key ID of the KMS
1495
+ * key that was used to encrypt the ciphertext. If you identify a different KMS key, the <code>Decrypt</code> operation throws an <code>IncorrectKeyException</code>.</p>
1440
1496
  *
1441
1497
  * <p>This parameter is required only when the ciphertext was encrypted under an asymmetric KMS
1442
- * key. If you used a symmetric KMS key, KMS can get the KMS key from metadata that it adds to
1498
+ * key. If you used a symmetric encryption KMS key, KMS can get the KMS key from metadata that it adds to
1443
1499
  * the symmetric ciphertext blob. However, it is always recommended as a best practice. This
1444
1500
  * practice ensures that you use the KMS key that you intend.</p>
1445
1501
  *
@@ -1472,7 +1528,7 @@ export interface DecryptRequest {
1472
1528
  * the <code>Decrypt</code> operation fails.</p>
1473
1529
  * <p>This parameter is required only when the ciphertext was encrypted under an asymmetric KMS
1474
1530
  * key. The default value, <code>SYMMETRIC_DEFAULT</code>, represents the only supported
1475
- * algorithm that is valid for symmetric KMS keys.</p>
1531
+ * algorithm that is valid for symmetric encryption KMS keys.</p>
1476
1532
  */
1477
1533
  EncryptionAlgorithm?: EncryptionAlgorithmSpec | string;
1478
1534
  }
@@ -1504,8 +1560,8 @@ export declare namespace DecryptResponse {
1504
1560
  }
1505
1561
  /**
1506
1562
  * <p>The request was rejected because the specified KMS key cannot decrypt the data. The
1507
- * <code>KeyId</code> in a <a>Decrypt</a> request and the <code>SourceKeyId</code>
1508
- * in a <a>ReEncrypt</a> request must identify the same KMS key that was used to
1563
+ * <code>KeyId</code> in a <code>Decrypt</code> request and the <code>SourceKeyId</code>
1564
+ * in a <code>ReEncrypt</code> request must identify the same KMS key that was used to
1509
1565
  * encrypt the ciphertext.</p>
1510
1566
  */
1511
1567
  export declare class IncorrectKeyException extends __BaseException {
@@ -1545,9 +1601,11 @@ export declare class InvalidCiphertextException extends __BaseException {
1545
1601
  * </li>
1546
1602
  * </ul>
1547
1603
  * <p>For encrypting, decrypting, re-encrypting, and generating data keys, the
1548
- * <code>KeyUsage</code> must be <code>ENCRYPT_DECRYPT</code>. For signing and verifying, the
1549
- * <code>KeyUsage</code> must be <code>SIGN_VERIFY</code>. To find the <code>KeyUsage</code> of
1550
- * a KMS key, use the <a>DescribeKey</a> operation.</p>
1604
+ * <code>KeyUsage</code> must be <code>ENCRYPT_DECRYPT</code>. For signing and verifying
1605
+ * messages, the <code>KeyUsage</code> must be <code>SIGN_VERIFY</code>. For generating and
1606
+ * verifying message authentication codes (MACs), the <code>KeyUsage</code> must be
1607
+ * <code>GENERATE_VERIFY_MAC</code>. To find the <code>KeyUsage</code> of a KMS key, use the
1608
+ * <a>DescribeKey</a> operation.</p>
1551
1609
  * <p>To find the encryption or signing algorithms supported for a particular KMS key, use the
1552
1610
  * <a>DescribeKey</a> operation.</p>
1553
1611
  */
@@ -1786,8 +1844,8 @@ export declare namespace DisableKeyRequest {
1786
1844
  }
1787
1845
  export interface DisableKeyRotationRequest {
1788
1846
  /**
1789
- * <p>Identifies a symmetric KMS key. You cannot enable or disable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks">asymmetric
1790
- * KMS keys</a>, KMS keys with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or KMS keys in a
1847
+ * <p>Identifies a symmetric encryption KMS key. You cannot enable or disable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks">asymmetric
1848
+ * KMS keys</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html">HMAC KMS keys</a>, KMS keys with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or KMS keys in a
1791
1849
  * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>.</p>
1792
1850
  * <p>Specify the key ID or key ARN of the KMS key.</p>
1793
1851
  * <p>For example:</p>
@@ -1858,7 +1916,7 @@ export declare namespace EnableKeyRequest {
1858
1916
  }
1859
1917
  export interface EnableKeyRotationRequest {
1860
1918
  /**
1861
- * <p>Identifies a symmetric KMS key. You cannot enable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks">asymmetric KMS keys</a>, KMS keys with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or KMS keys in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. To enable or disable automatic rotation of a set of related <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-replica-key">multi-Region keys</a>, set the property on the primary key.</p>
1919
+ * <p>Identifies a symmetric encryption KMS key. You cannot enable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">asymmetric KMS keys</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html">HMAC KMS keys</a>, KMS keys with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or KMS keys in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. To enable or disable automatic rotation of a set of related <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate">multi-Region keys</a>, set the property on the primary key.</p>
1862
1920
  * <p>Specify the key ID or key ARN of the KMS key.</p>
1863
1921
  * <p>For example:</p>
1864
1922
  * <ul>
@@ -1883,7 +1941,9 @@ export declare namespace EnableKeyRotationRequest {
1883
1941
  }
1884
1942
  export interface EncryptRequest {
1885
1943
  /**
1886
- * <p>Identifies the KMS key to use in the encryption operation.</p>
1944
+ * <p>Identifies the KMS key to use in the encryption operation. The KMS key must have a
1945
+ * <code>KeyUsage</code> of <code>ENCRYPT_DECRYPT</code>. To find the <code>KeyUsage</code> of
1946
+ * a KMS key, use the <a>DescribeKey</a> operation.</p>
1887
1947
  *
1888
1948
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
1889
1949
  * <p>For example:</p>
@@ -1914,11 +1974,12 @@ export interface EncryptRequest {
1914
1974
  Plaintext: Uint8Array | undefined;
1915
1975
  /**
1916
1976
  * <p>Specifies the encryption context that will be used to encrypt the data.
1917
- * An encryption context is valid only for <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> with a symmetric KMS key. The standard asymmetric encryption algorithms that KMS uses do not support an encryption context. </p>
1918
- * <p>An <i>encryption context</i> 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 KMS key, but it is highly recommended.</p>
1977
+ * An encryption context is valid only for <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> with a symmetric encryption KMS key. The standard asymmetric encryption algorithms and HMAC algorithms that KMS uses do not support an encryption context. </p>
1978
+ * <p>An <i>encryption context</i> is a collection of non-secret key-value pairs that represent additional authenticated data.
1979
+ * 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 supported
1980
+ * only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.</p>
1919
1981
  * <p>For more information, see
1920
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption
1921
- * Context</a> in the <i>Key Management Service Developer Guide</i>.</p>
1982
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
1922
1983
  */
1923
1984
  EncryptionContext?: {
1924
1985
  [key: string]: string;
@@ -1933,7 +1994,7 @@ export interface EncryptRequest {
1933
1994
  * <p>Specifies the encryption algorithm that KMS will use to encrypt the plaintext message.
1934
1995
  * The algorithm must be compatible with the KMS key that you specify.</p>
1935
1996
  * <p>This parameter is required only for asymmetric KMS keys. The default value,
1936
- * <code>SYMMETRIC_DEFAULT</code>, is the algorithm used for symmetric KMS keys. If you are
1997
+ * <code>SYMMETRIC_DEFAULT</code>, is the algorithm used for symmetric encryption KMS keys. If you are
1937
1998
  * using an asymmetric KMS key, we recommend RSAES_OAEP_SHA_256.</p>
1938
1999
  */
1939
2000
  EncryptionAlgorithm?: EncryptionAlgorithmSpec | string;
@@ -1978,7 +2039,9 @@ export declare class ExpiredImportTokenException extends __BaseException {
1978
2039
  }
1979
2040
  export interface GenerateDataKeyRequest {
1980
2041
  /**
1981
- * <p>Identifies the symmetric KMS key that encrypts the data key.</p>
2042
+ * <p>Specifies the symmetric encryption KMS key that encrypts the data key. You cannot specify
2043
+ * an asymmetric KMS key or a KMS key in a custom key store. To get the type and origin of your
2044
+ * KMS key, use the <a>DescribeKey</a> operation.</p>
1982
2045
  *
1983
2046
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
1984
2047
  * <p>For example:</p>
@@ -2005,10 +2068,11 @@ export interface GenerateDataKeyRequest {
2005
2068
  KeyId: string | undefined;
2006
2069
  /**
2007
2070
  * <p>Specifies the encryption context that will be used when encrypting the data key.</p>
2008
- * <p>An <i>encryption context</i> 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 KMS key, but it is highly recommended.</p>
2071
+ * <p>An <i>encryption context</i> is a collection of non-secret key-value pairs that represent additional authenticated data.
2072
+ * 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 supported
2073
+ * only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.</p>
2009
2074
  * <p>For more information, see
2010
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption
2011
- * Context</a> in the <i>Key Management Service Developer Guide</i>.</p>
2075
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
2012
2076
  */
2013
2077
  EncryptionContext?: {
2014
2078
  [key: string]: string;
@@ -2066,18 +2130,19 @@ export interface GenerateDataKeyPairRequest {
2066
2130
  /**
2067
2131
  * <p>Specifies the encryption context that will be used when encrypting the private key in the
2068
2132
  * data key pair.</p>
2069
- * <p>An <i>encryption context</i> 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 KMS key, but it is highly recommended.</p>
2133
+ * <p>An <i>encryption context</i> is a collection of non-secret key-value pairs that represent additional authenticated data.
2134
+ * 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 supported
2135
+ * only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.</p>
2070
2136
  * <p>For more information, see
2071
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption
2072
- * Context</a> in the <i>Key Management Service Developer Guide</i>.</p>
2137
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
2073
2138
  */
2074
2139
  EncryptionContext?: {
2075
2140
  [key: string]: string;
2076
2141
  };
2077
2142
  /**
2078
- * <p>Specifies the symmetric KMS key that encrypts the private key in the data key pair. You
2079
- * cannot specify an asymmetric KMS key or a KMS key in a custom key store. To get the type and
2080
- * origin of your KMS key, use the <a>DescribeKey</a> operation.</p>
2143
+ * <p>Specifies the symmetric encryption KMS key that encrypts the private key in the data key
2144
+ * pair. You cannot specify an asymmetric KMS key or a KMS key in a custom key store. To get the
2145
+ * type and origin of your KMS key, use the <a>DescribeKey</a> operation.</p>
2081
2146
  *
2082
2147
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
2083
2148
  * <p>For example:</p>
@@ -2130,7 +2195,7 @@ export interface GenerateDataKeyPairResponse {
2130
2195
  */
2131
2196
  PrivateKeyPlaintext?: Uint8Array;
2132
2197
  /**
2133
- * <p>The public key (in plaintext).</p>
2198
+ * <p>The public key (in plaintext). When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.</p>
2134
2199
  */
2135
2200
  PublicKey?: Uint8Array;
2136
2201
  /**
@@ -2152,19 +2217,19 @@ export interface GenerateDataKeyPairWithoutPlaintextRequest {
2152
2217
  /**
2153
2218
  * <p>Specifies the encryption context that will be used when encrypting the private key in the
2154
2219
  * data key pair.</p>
2155
- * <p>An <i>encryption context</i> 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 KMS key, but it is highly recommended.</p>
2220
+ * <p>An <i>encryption context</i> is a collection of non-secret key-value pairs that represent additional authenticated data.
2221
+ * 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 supported
2222
+ * only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.</p>
2156
2223
  * <p>For more information, see
2157
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption
2158
- * Context</a> in the <i>Key Management Service Developer Guide</i>.</p>
2224
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
2159
2225
  */
2160
2226
  EncryptionContext?: {
2161
2227
  [key: string]: string;
2162
2228
  };
2163
2229
  /**
2164
- * <p>Specifies the KMS key that encrypts the private key in the data key pair. You must specify
2165
- * a symmetric KMS key. You cannot use an asymmetric KMS key or a KMS key in a custom key store.
2166
- * To get the type and origin of your KMS key, use the <a>DescribeKey</a> operation.
2167
- * </p>
2230
+ * <p>Specifies the symmetric encryption KMS key that encrypts the private key in the data key
2231
+ * pair. You cannot specify an asymmetric KMS key or a KMS key in a custom key store. To get the
2232
+ * type and origin of your KMS key, use the <a>DescribeKey</a> operation.</p>
2168
2233
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
2169
2234
  * <p>For example:</p>
2170
2235
  * <ul>
@@ -2212,7 +2277,7 @@ export interface GenerateDataKeyPairWithoutPlaintextResponse {
2212
2277
  */
2213
2278
  PrivateKeyCiphertextBlob?: Uint8Array;
2214
2279
  /**
2215
- * <p>The public key (in plaintext).</p>
2280
+ * <p>The public key (in plaintext). When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.</p>
2216
2281
  */
2217
2282
  PublicKey?: Uint8Array;
2218
2283
  /**
@@ -2232,7 +2297,9 @@ export declare namespace GenerateDataKeyPairWithoutPlaintextResponse {
2232
2297
  }
2233
2298
  export interface GenerateDataKeyWithoutPlaintextRequest {
2234
2299
  /**
2235
- * <p>The identifier of the symmetric KMS key that encrypts the data key.</p>
2300
+ * <p>Specifies the symmetric encryption KMS key that encrypts the data key. You cannot specify
2301
+ * an asymmetric KMS key or a KMS key in a custom key store. To get the type and origin of your
2302
+ * KMS key, use the <a>DescribeKey</a> operation.</p>
2236
2303
  *
2237
2304
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
2238
2305
  * <p>For example:</p>
@@ -2259,10 +2326,11 @@ export interface GenerateDataKeyWithoutPlaintextRequest {
2259
2326
  KeyId: string | undefined;
2260
2327
  /**
2261
2328
  * <p>Specifies the encryption context that will be used when encrypting the data key.</p>
2262
- * <p>An <i>encryption context</i> 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 KMS key, but it is highly recommended.</p>
2329
+ * <p>An <i>encryption context</i> is a collection of non-secret key-value pairs that represent additional authenticated data.
2330
+ * 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 supported
2331
+ * only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.</p>
2263
2332
  * <p>For more information, see
2264
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption
2265
- * Context</a> in the <i>Key Management Service Developer Guide</i>.</p>
2333
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
2266
2334
  */
2267
2335
  EncryptionContext?: {
2268
2336
  [key: string]: string;
@@ -2307,6 +2375,62 @@ export declare namespace GenerateDataKeyWithoutPlaintextResponse {
2307
2375
  */
2308
2376
  const filterSensitiveLog: (obj: GenerateDataKeyWithoutPlaintextResponse) => any;
2309
2377
  }
2378
+ export interface GenerateMacRequest {
2379
+ /**
2380
+ * <p>The message to be hashed. Specify a message of up to 4,096 bytes. </p>
2381
+ * <p>
2382
+ * <code>GenerateMac</code> and <a>VerifyMac</a> do not provide special handling
2383
+ * for message digests. If you generate an HMAC for a hash digest of a message, you must verify
2384
+ * the HMAC of the same hash digest.</p>
2385
+ */
2386
+ Message: Uint8Array | undefined;
2387
+ /**
2388
+ * <p>The HMAC KMS key to use in the operation. The MAC algorithm computes the HMAC for the message and the key as described in <a href="https://datatracker.ietf.org/doc/html/rfc2104">RFC 2104</a>.</p>
2389
+ * <p>To identify an HMAC KMS key, use the <a>DescribeKey</a> operation and see the
2390
+ * <code>KeySpec</code> field in the response.</p>
2391
+ */
2392
+ KeyId: string | undefined;
2393
+ /**
2394
+ * <p>The MAC algorithm used in the operation.</p>
2395
+ * <p> The algorithm must be compatible with the HMAC KMS key that you specify. To find the MAC
2396
+ * algorithms that your HMAC KMS key supports, use the <a>DescribeKey</a> operation
2397
+ * and see the <code>MacAlgorithms</code> field in the <code>DescribeKey</code> response.</p>
2398
+ */
2399
+ MacAlgorithm: MacAlgorithmSpec | string | undefined;
2400
+ /**
2401
+ * <p>A list of grant tokens.</p>
2402
+ * <p>Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token">Grant token</a> and <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token">Using a grant token</a> in the
2403
+ * <i>Key Management Service Developer Guide</i>.</p>
2404
+ */
2405
+ GrantTokens?: string[];
2406
+ }
2407
+ export declare namespace GenerateMacRequest {
2408
+ /**
2409
+ * @internal
2410
+ */
2411
+ const filterSensitiveLog: (obj: GenerateMacRequest) => any;
2412
+ }
2413
+ export interface GenerateMacResponse {
2414
+ /**
2415
+ * <p>The hash-based message authentication code (HMAC) for the given message, key, and MAC
2416
+ * algorithm.</p>
2417
+ */
2418
+ Mac?: Uint8Array;
2419
+ /**
2420
+ * <p>The MAC algorithm that was used to generate the HMAC.</p>
2421
+ */
2422
+ MacAlgorithm?: MacAlgorithmSpec | string;
2423
+ /**
2424
+ * <p>The HMAC KMS key used in the operation.</p>
2425
+ */
2426
+ KeyId?: string;
2427
+ }
2428
+ export declare namespace GenerateMacResponse {
2429
+ /**
2430
+ * @internal
2431
+ */
2432
+ const filterSensitiveLog: (obj: GenerateMacResponse) => any;
2433
+ }
2310
2434
  export interface GenerateRandomRequest {
2311
2435
  /**
2312
2436
  * <p>The length of the byte string.</p>
@@ -2422,7 +2546,7 @@ export declare enum WrappingKeySpec {
2422
2546
  }
2423
2547
  export interface GetParametersForImportRequest {
2424
2548
  /**
2425
- * <p>The identifier of the symmetric KMS key into which you will import key material. The
2549
+ * <p>The identifier of the symmetric encryption KMS key into which you will import key material. The
2426
2550
  * <code>Origin</code> of the KMS key must be <code>EXTERNAL</code>.</p>
2427
2551
  *
2428
2552
  * <p>Specify the key ID or key ARN of the KMS key.</p>
@@ -2635,9 +2759,12 @@ export declare namespace GrantListEntry {
2635
2759
  }
2636
2760
  export interface ImportKeyMaterialRequest {
2637
2761
  /**
2638
- * <p>The identifier of the symmetric KMS key that receives the imported key material. The KMS
2639
- * key's <code>Origin</code> must be <code>EXTERNAL</code>. This must be the same KMS key
2640
- * specified in the <code>KeyID</code> parameter of the corresponding <a>GetParametersForImport</a> request.</p>
2762
+ * <p>The identifier of the symmetric encryption KMS key that receives the imported key
2763
+ * material. This must be the same KMS key specified in the <code>KeyID</code> parameter of the
2764
+ * corresponding <a>GetParametersForImport</a> request. The <code>Origin</code> of the
2765
+ * KMS key must be <code>EXTERNAL</code>. You cannot perform this operation on an asymmetric KMS
2766
+ * key, an HMAC KMS key, a KMS key in a custom key store, or on a KMS key in a different
2767
+ * Amazon Web Services account</p>
2641
2768
  * <p>Specify the key ID or key ARN of the KMS key.</p>
2642
2769
  * <p>For example:</p>
2643
2770
  * <ul>
@@ -2747,6 +2874,18 @@ export declare namespace KeyListEntry {
2747
2874
  */
2748
2875
  const filterSensitiveLog: (obj: KeyListEntry) => any;
2749
2876
  }
2877
+ /**
2878
+ * <p>The request was rejected because the HMAC verification failed. HMAC verification
2879
+ * fails when the HMAC computed by using the specified message, HMAC KMS key, and MAC algorithm does not match the HMAC specified in the request.</p>
2880
+ */
2881
+ export declare class KMSInvalidMacException extends __BaseException {
2882
+ readonly name: "KMSInvalidMacException";
2883
+ readonly $fault: "client";
2884
+ /**
2885
+ * @internal
2886
+ */
2887
+ constructor(opts: __ExceptionOptionType<KMSInvalidMacException, __BaseException>);
2888
+ }
2750
2889
  /**
2751
2890
  * <p>The request was rejected because the signature verification failed. Signature verification
2752
2891
  * fails when it cannot confirm that signature was produced by signing the specified message with
@@ -3056,7 +3195,7 @@ export interface ListResourceTagsResponse {
3056
3195
  /**
3057
3196
  * <p>A list of tags. Each tag consists of a tag key and a tag value.</p>
3058
3197
  * <note>
3059
- * <p>Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">Using ABAC in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
3198
+ * <p>Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">ABAC in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
3060
3199
  * </note>
3061
3200
  */
3062
3201
  Tags?: Tag[];
@@ -3189,21 +3328,23 @@ export interface ReEncryptRequest {
3189
3328
  /**
3190
3329
  * <p>Specifies the encryption context to use to decrypt the ciphertext. Enter the same
3191
3330
  * encryption context that was used to encrypt the ciphertext.</p>
3192
- * <p>An <i>encryption context</i> 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 KMS key, but it is highly recommended.</p>
3331
+ * <p>An <i>encryption context</i> is a collection of non-secret key-value pairs that represent additional authenticated data.
3332
+ * 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 supported
3333
+ * only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.</p>
3193
3334
  * <p>For more information, see
3194
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption
3195
- * Context</a> in the <i>Key Management Service Developer Guide</i>.</p>
3335
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
3196
3336
  */
3197
3337
  SourceEncryptionContext?: {
3198
3338
  [key: string]: string;
3199
3339
  };
3200
3340
  /**
3201
3341
  * <p>Specifies the KMS key that KMS will use to decrypt the ciphertext before it is
3202
- * re-encrypted. Enter a key ID of the KMS key that was used to encrypt the ciphertext.</p>
3342
+ * re-encrypted.</p>
3343
+ * <p>Enter a key ID of the KMS key that was used to encrypt the ciphertext. If you identify a different KMS key, the <code>ReEncrypt</code> operation throws an <code>IncorrectKeyException</code>.</p>
3203
3344
  * <p>This parameter is required only when the ciphertext was encrypted under an asymmetric KMS
3204
- * key. If you used a symmetric KMS key, KMS can get the KMS key from metadata that it adds to
3205
- * the symmetric ciphertext blob. However, it is always recommended as a best practice. This
3206
- * practice ensures that you use the KMS key that you intend.</p>
3345
+ * key. If you used a symmetric encryption KMS key, KMS can get the KMS key from metadata that
3346
+ * it adds to the symmetric ciphertext blob. However, it is always recommended as a best
3347
+ * practice. This practice ensures that you use the KMS key that you intend.</p>
3207
3348
  *
3208
3349
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
3209
3350
  * <p>For example:</p>
@@ -3230,7 +3371,7 @@ export interface ReEncryptRequest {
3230
3371
  SourceKeyId?: string;
3231
3372
  /**
3232
3373
  * <p>A unique identifier for the KMS key that is used to reencrypt the data. Specify a
3233
- * symmetric or asymmetric KMS key with a <code>KeyUsage</code> value of
3374
+ * symmetric encryption KMS key or an asymmetric KMS key with a <code>KeyUsage</code> value of
3234
3375
  * <code>ENCRYPT_DECRYPT</code>. To find the <code>KeyUsage</code> value of a KMS key, use the
3235
3376
  * <a>DescribeKey</a> operation.</p>
3236
3377
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
@@ -3258,13 +3399,13 @@ export interface ReEncryptRequest {
3258
3399
  DestinationKeyId: string | undefined;
3259
3400
  /**
3260
3401
  * <p>Specifies that encryption context to use when the reencrypting the data.</p>
3261
- * <p>A destination encryption context is valid only when the destination KMS key is a symmetric
3262
- * KMS key. The standard ciphertext format for asymmetric KMS keys does not include fields for
3402
+ * <p>A destination encryption context is valid only when the destination KMS key is a symmetric encryption KMS key. The standard ciphertext format for asymmetric KMS keys does not include fields for
3263
3403
  * metadata.</p>
3264
- * <p>An <i>encryption context</i> 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 KMS key, but it is highly recommended.</p>
3404
+ * <p>An <i>encryption context</i> is a collection of non-secret key-value pairs that represent additional authenticated data.
3405
+ * 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 supported
3406
+ * only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.</p>
3265
3407
  * <p>For more information, see
3266
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption
3267
- * Context</a> in the <i>Key Management Service Developer Guide</i>.</p>
3408
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
3268
3409
  */
3269
3410
  DestinationEncryptionContext?: {
3270
3411
  [key: string]: string;
@@ -3272,7 +3413,7 @@ export interface ReEncryptRequest {
3272
3413
  /**
3273
3414
  * <p>Specifies the encryption algorithm that KMS will use to decrypt the ciphertext before it
3274
3415
  * is reencrypted. The default value, <code>SYMMETRIC_DEFAULT</code>, represents the algorithm
3275
- * used for symmetric KMS keys.</p>
3416
+ * used for symmetric encryption KMS keys.</p>
3276
3417
  * <p>Specify the same algorithm that was used to encrypt the ciphertext. If you specify a
3277
3418
  * different algorithm, the decrypt attempt fails.</p>
3278
3419
  * <p>This parameter is required only when the ciphertext was encrypted under an asymmetric KMS
@@ -3282,7 +3423,7 @@ export interface ReEncryptRequest {
3282
3423
  /**
3283
3424
  * <p>Specifies the encryption algorithm that KMS will use to reecrypt the data after it has
3284
3425
  * decrypted it. The default value, <code>SYMMETRIC_DEFAULT</code>, represents the encryption
3285
- * algorithm used for symmetric KMS keys.</p>
3426
+ * algorithm used for symmetric encryption KMS keys.</p>
3286
3427
  * <p>This parameter is required only when the destination KMS key is an asymmetric KMS
3287
3428
  * key.</p>
3288
3429
  */
@@ -3355,12 +3496,17 @@ export interface ReplicateKeyRequest {
3355
3496
  * <p>Enter the Region ID, such as <code>us-east-1</code> or <code>ap-southeast-2</code>. For a
3356
3497
  * list of Amazon Web Services Regions in which KMS is supported, see <a href="https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region">KMS service endpoints</a> in the
3357
3498
  * <i>Amazon Web Services General Reference</i>.</p>
3499
+ * <note>
3500
+ * <p>HMAC KMS keys are not supported in all Amazon Web Services Regions. If you try to replicate an HMAC
3501
+ * KMS key in an Amazon Web Services Region in which HMAC keys are not supported, the
3502
+ * <code>ReplicateKey</code> operation returns an <code>UnsupportedOperationException</code>.
3503
+ * For a list of Regions in which HMAC KMS keys are supported, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html">HMAC keys in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
3504
+ * </note>
3358
3505
  * <p>The replica must be in a different Amazon Web Services Region than its primary key and other replicas of
3359
3506
  * that primary key, but in the same Amazon Web Services partition. KMS must be available in the replica
3360
3507
  * Region. If the Region is not enabled by default, the Amazon Web Services account must be enabled in the
3361
- * Region. </p>
3362
- * <p>For information about Amazon Web Services partitions, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) in the
3363
- * <i>Amazon Web Services General Reference</i>.</a> For information about enabling and disabling Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable">Enabling a
3508
+ * Region. For information about Amazon Web Services partitions, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the
3509
+ * <i>Amazon Web Services General Reference</i>. For information about enabling and disabling Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable">Enabling a
3364
3510
  * Region</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable">Disabling a Region</a> in the
3365
3511
  * <i>Amazon Web Services General Reference</i>.</p>
3366
3512
  */
@@ -3423,7 +3569,7 @@ export interface ReplicateKeyRequest {
3423
3569
  * is created. To tag an existing KMS key, use the <a>TagResource</a>
3424
3570
  * operation.</p>
3425
3571
  * <note>
3426
- * <p>Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">Using ABAC in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
3572
+ * <p>Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">ABAC in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
3427
3573
  * </note>
3428
3574
  * <p>To use this parameter, you must have <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:TagResource</a> permission in an IAM policy.</p>
3429
3575
  * <p>Tags are not a shared property of multi-Region keys. You can specify the same tags or
@@ -3448,7 +3594,7 @@ export declare namespace ReplicateKeyRequest {
3448
3594
  export interface ReplicateKeyResponse {
3449
3595
  /**
3450
3596
  * <p>Displays details about the new replica key, including its Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) and
3451
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">key state</a>. It also
3597
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a>. It also
3452
3598
  * includes the ARN and Amazon Web Services Region of its primary key and other replica keys.</p>
3453
3599
  */
3454
3600
  ReplicaKeyMetadata?: KeyMetadata;
@@ -3584,8 +3730,7 @@ export interface ScheduleKeyDeletionResponse {
3584
3730
  DeletionDate?: Date;
3585
3731
  /**
3586
3732
  * <p>The current status of the KMS key.</p>
3587
- * <p>For more information about how key state affects the use of a KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your KMS
3588
- * key</a> in the <i>Key Management Service Developer Guide</i>.</p>
3733
+ * <p>For more information about how key state affects the use of a KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>
3589
3734
  */
3590
3735
  KeyState?: KeyState | string;
3591
3736
  /**
@@ -4000,3 +4145,67 @@ export declare namespace VerifyResponse {
4000
4145
  */
4001
4146
  const filterSensitiveLog: (obj: VerifyResponse) => any;
4002
4147
  }
4148
+ export interface VerifyMacRequest {
4149
+ /**
4150
+ * <p>The message that will be used in the verification. Enter the same message that was used to
4151
+ * generate the HMAC.</p>
4152
+ * <p>
4153
+ * <a>GenerateMac</a> and <code>VerifyMac</code> do not provide special handling
4154
+ * for message digests. If you generated an HMAC for a hash digest of a message, you must verify
4155
+ * the HMAC for the same hash digest.</p>
4156
+ */
4157
+ Message: Uint8Array | undefined;
4158
+ /**
4159
+ * <p>The KMS key that will be used in the verification.</p>
4160
+ *
4161
+ * <p>Enter a key ID of the KMS
4162
+ * key that was used to generate the HMAC. If you identify a different KMS key, the <code>VerifyMac</code> operation fails.</p>
4163
+ */
4164
+ KeyId: string | undefined;
4165
+ /**
4166
+ * <p>The MAC algorithm that will be used in the verification. Enter the same MAC algorithm that was used to compute the HMAC. This algorithm must be supported by the HMAC KMS key identified by the <code>KeyId</code> parameter.</p>
4167
+ */
4168
+ MacAlgorithm: MacAlgorithmSpec | string | undefined;
4169
+ /**
4170
+ * <p>The HMAC to verify. Enter the HMAC that was generated by the <a>GenerateMac</a> operation when you specified the same message, HMAC KMS key, and MAC algorithm as the values specified in this request.</p>
4171
+ */
4172
+ Mac: Uint8Array | undefined;
4173
+ /**
4174
+ * <p>A list of grant tokens.</p>
4175
+ * <p>Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token">Grant token</a> and <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token">Using a grant token</a> in the
4176
+ * <i>Key Management Service Developer Guide</i>.</p>
4177
+ */
4178
+ GrantTokens?: string[];
4179
+ }
4180
+ export declare namespace VerifyMacRequest {
4181
+ /**
4182
+ * @internal
4183
+ */
4184
+ const filterSensitiveLog: (obj: VerifyMacRequest) => any;
4185
+ }
4186
+ export interface VerifyMacResponse {
4187
+ /**
4188
+ * <p>The HMAC KMS key used in the verification.</p>
4189
+ */
4190
+ KeyId?: string;
4191
+ /**
4192
+ * <p>A Boolean value that indicates whether the HMAC was verified. A value of
4193
+ * <code>True</code> indicates that the HMAC (<code>Mac</code>) was generated with the specified
4194
+ * <code>Message</code>, HMAC KMS key (<code>KeyID</code>) and
4195
+ * <code>MacAlgorithm.</code>.</p>
4196
+ * <p>If the HMAC is not verified, the <code>VerifyMac</code> operation fails with a
4197
+ * <code>KMSInvalidMacException</code> exception. This exception indicates that one or more of
4198
+ * the inputs changed since the HMAC was computed.</p>
4199
+ */
4200
+ MacValid?: boolean;
4201
+ /**
4202
+ * <p>The MAC algorithm used in the verification.</p>
4203
+ */
4204
+ MacAlgorithm?: MacAlgorithmSpec | string;
4205
+ }
4206
+ export declare namespace VerifyMacResponse {
4207
+ /**
4208
+ * @internal
4209
+ */
4210
+ const filterSensitiveLog: (obj: VerifyMacResponse) => any;
4211
+ }