@aws-sdk/client-kms 3.821.0 → 3.825.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 (61) hide show
  1. package/dist-cjs/index.js +52 -6
  2. package/dist-es/models/models_0.js +17 -0
  3. package/dist-es/protocols/Aws_json1_1.js +22 -1
  4. package/dist-types/commands/CancelKeyDeletionCommand.d.ts +1 -1
  5. package/dist-types/commands/ConnectCustomKeyStoreCommand.d.ts +4 -4
  6. package/dist-types/commands/CreateAliasCommand.d.ts +7 -7
  7. package/dist-types/commands/CreateCustomKeyStoreCommand.d.ts +6 -7
  8. package/dist-types/commands/CreateGrantCommand.d.ts +8 -7
  9. package/dist-types/commands/CreateKeyCommand.d.ts +21 -20
  10. package/dist-types/commands/DecryptCommand.d.ts +17 -16
  11. package/dist-types/commands/DeleteAliasCommand.d.ts +1 -1
  12. package/dist-types/commands/DeleteCustomKeyStoreCommand.d.ts +4 -4
  13. package/dist-types/commands/DeleteImportedKeyMaterialCommand.d.ts +14 -5
  14. package/dist-types/commands/DeriveSharedSecretCommand.d.ts +40 -33
  15. package/dist-types/commands/DescribeCustomKeyStoresCommand.d.ts +3 -3
  16. package/dist-types/commands/DescribeKeyCommand.d.ts +79 -78
  17. package/dist-types/commands/DisableKeyCommand.d.ts +5 -6
  18. package/dist-types/commands/DisableKeyRotationCommand.d.ts +4 -4
  19. package/dist-types/commands/DisconnectCustomKeyStoreCommand.d.ts +4 -4
  20. package/dist-types/commands/EnableKeyCommand.d.ts +5 -4
  21. package/dist-types/commands/EnableKeyRotationCommand.d.ts +12 -14
  22. package/dist-types/commands/EncryptCommand.d.ts +5 -4
  23. package/dist-types/commands/GenerateDataKeyCommand.d.ts +5 -4
  24. package/dist-types/commands/GenerateDataKeyPairCommand.d.ts +5 -4
  25. package/dist-types/commands/GenerateDataKeyPairWithoutPlaintextCommand.d.ts +5 -4
  26. package/dist-types/commands/GenerateDataKeyWithoutPlaintextCommand.d.ts +5 -4
  27. package/dist-types/commands/GenerateMacCommand.d.ts +3 -3
  28. package/dist-types/commands/GenerateRandomCommand.d.ts +2 -3
  29. package/dist-types/commands/GetKeyPolicyCommand.d.ts +1 -1
  30. package/dist-types/commands/GetKeyRotationStatusCommand.d.ts +12 -11
  31. package/dist-types/commands/GetParametersForImportCommand.d.ts +7 -7
  32. package/dist-types/commands/GetPublicKeyCommand.d.ts +8 -8
  33. package/dist-types/commands/ImportKeyMaterialCommand.d.ts +54 -38
  34. package/dist-types/commands/ListAliasesCommand.d.ts +4 -5
  35. package/dist-types/commands/ListGrantsCommand.d.ts +3 -3
  36. package/dist-types/commands/ListKeyPoliciesCommand.d.ts +1 -1
  37. package/dist-types/commands/ListKeyRotationsCommand.d.ts +22 -4
  38. package/dist-types/commands/ListKeysCommand.d.ts +1 -1
  39. package/dist-types/commands/ListResourceTagsCommand.d.ts +3 -3
  40. package/dist-types/commands/ListRetirableGrantsCommand.d.ts +3 -3
  41. package/dist-types/commands/PutKeyPolicyCommand.d.ts +6 -4
  42. package/dist-types/commands/ReEncryptCommand.d.ts +12 -13
  43. package/dist-types/commands/ReplicateKeyCommand.d.ts +10 -13
  44. package/dist-types/commands/RetireGrantCommand.d.ts +6 -7
  45. package/dist-types/commands/RevokeGrantCommand.d.ts +5 -5
  46. package/dist-types/commands/RotateKeyOnDemandCommand.d.ts +33 -23
  47. package/dist-types/commands/ScheduleKeyDeletionCommand.d.ts +15 -15
  48. package/dist-types/commands/SignCommand.d.ts +19 -19
  49. package/dist-types/commands/TagResourceCommand.d.ts +6 -5
  50. package/dist-types/commands/UntagResourceCommand.d.ts +1 -1
  51. package/dist-types/commands/UpdateAliasCommand.d.ts +4 -3
  52. package/dist-types/commands/UpdateCustomKeyStoreCommand.d.ts +12 -12
  53. package/dist-types/commands/UpdateKeyDescriptionCommand.d.ts +1 -1
  54. package/dist-types/commands/UpdatePrimaryRegionCommand.d.ts +2 -2
  55. package/dist-types/commands/VerifyCommand.d.ts +4 -4
  56. package/dist-types/commands/VerifyMacCommand.d.ts +3 -3
  57. package/dist-types/models/models_0.d.ts +423 -150
  58. package/dist-types/ts3.4/commands/DeleteImportedKeyMaterialCommand.d.ts +7 -3
  59. package/dist-types/ts3.4/commands/ImportKeyMaterialCommand.d.ts +1 -1
  60. package/dist-types/ts3.4/models/models_0.d.ts +51 -1
  61. package/package.json +11 -11
@@ -436,8 +436,8 @@ export interface CreateAliasRequest {
436
436
  * be in the same Amazon Web Services Region. </p>
437
437
  * <p>A valid key ID is required. If you supply a null or empty string value, this operation
438
438
  * returns an error.</p>
439
- * <p>For help finding the key ID and ARN, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn">Finding the Key ID and
440
- * ARN</a> in the <i>
439
+ * <p>For help finding the key ID and ARN, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html">Find the key ID and key ARN</a> in
440
+ * the <i>
441
441
  * <i>Key Management Service Developer Guide</i>
442
442
  * </i>.</p>
443
443
  * <p>Specify the key ID or key ARN of the KMS key.</p>
@@ -470,8 +470,9 @@ export declare class InvalidAliasNameException extends __BaseException {
470
470
  constructor(opts: __ExceptionOptionType<InvalidAliasNameException, __BaseException>);
471
471
  }
472
472
  /**
473
- * <p>The request was rejected because a quota was exceeded. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/limits.html">Quotas</a> in the
474
- * <i>Key Management Service Developer Guide</i>.</p>
473
+ * <p>The request was rejected because a length constraint or quota was exceeded. For more
474
+ * information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/limits.html">Quotas</a> in
475
+ * the <i>Key Management Service Developer Guide</i>.</p>
475
476
  * @public
476
477
  */
477
478
  export declare class LimitExceededException extends __BaseException {
@@ -560,7 +561,7 @@ export interface CreateCustomKeyStoreRequest {
560
561
  * <p>Specifies the <code>kmsuser</code> password for an CloudHSM key store. This parameter is
561
562
  * required for custom key stores with a <code>CustomKeyStoreType</code> of
562
563
  * <code>AWS_CLOUDHSM</code>.</p>
563
- * <p>Enter the password of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser">
564
+ * <p>Enter the password of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html#concept-kmsuser">
564
565
  * <code>kmsuser</code> crypto user
565
566
  * (CU) account</a> in the specified CloudHSM cluster. KMS logs into the cluster as this
566
567
  * user to manage key material on your behalf.</p>
@@ -667,7 +668,7 @@ export interface CreateCustomKeyStoreRequest {
667
668
  * <code>EXTERNAL_KEY_STORE</code>.</p>
668
669
  * <p>The <code>XksProxyAuthenticationCredential</code> has two required elements:
669
670
  * <code>RawSecretAccessKey</code>, a secret key, and <code>AccessKeyId</code>, a unique
670
- * identifier for the <code>RawSecretAccessKey</code>. For character requirements, see <a href="kms/latest/APIReference/API_XksProxyAuthenticationCredentialType.html">XksProxyAuthenticationCredentialType</a>.</p>
671
+ * identifier for the <code>RawSecretAccessKey</code>. For character requirements, see <a href="API_XksProxyAuthenticationCredentialType.html">XksProxyAuthenticationCredentialType</a>.</p>
671
672
  * <p>KMS uses this authentication credential to sign requests to the external key store proxy
672
673
  * on your behalf. This credential is unrelated to Identity and Access Management (IAM) and Amazon Web Services credentials.</p>
673
674
  * <p>This parameter doesn't set or change the authentication credentials on the XKS proxy. It
@@ -684,8 +685,8 @@ export interface CreateCustomKeyStoreRequest {
684
685
  * <p>If the external key store proxy uses a public endpoint, specify
685
686
  * <code>PUBLIC_ENDPOINT</code>. If the external key store proxy uses a Amazon VPC
686
687
  * endpoint service for communication with KMS, specify <code>VPC_ENDPOINT_SERVICE</code>. For
687
- * help making this choice, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/plan-xks-keystore.html#choose-xks-connectivity">Choosing a connectivity
688
- * option</a> in the <i>Key Management Service Developer Guide</i>.</p>
688
+ * help making this choice, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/choose-xks-connectivity.html">Choosing a connectivity option</a> in
689
+ * the <i>Key Management Service Developer Guide</i>.</p>
689
690
  * <p>An Amazon VPC endpoint service keeps your communication with KMS in a private address space
690
691
  * entirely within Amazon Web Services, but it requires more configuration, including establishing a Amazon VPC with multiple subnets, a VPC endpoint service, a network load balancer, and a
691
692
  * verified private DNS name. A public endpoint is simpler to set up, but it might be slower and
@@ -872,10 +873,10 @@ export declare class XksProxyVpcEndpointServiceNotFoundException extends __BaseE
872
873
  constructor(opts: __ExceptionOptionType<XksProxyVpcEndpointServiceNotFoundException, __BaseException>);
873
874
  }
874
875
  /**
875
- * <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
876
- * includes the specified <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">encryption context</a>. </p>
876
+ * <p>Use this structure to allow <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations">cryptographic operations</a> in the grant only when the operation request
877
+ * includes the specified <a href="https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html">encryption context</a>. </p>
877
878
  * <p>KMS applies the grant constraints only to cryptographic operations that support an
878
- * 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
879
+ * encryption context, that is, all cryptographic operations with a symmetric KMS key. Grant
879
880
  * constraints are not applied to operations that do not support an encryption context, such as
880
881
  * cryptographic operations with asymmetric KMS keys and management operations, such as <a>DescribeKey</a> or <a>RetireGrant</a>.</p>
881
882
  * <important>
@@ -887,7 +888,8 @@ export declare class XksProxyVpcEndpointServiceNotFoundException extends __BaseE
887
888
  * <p>To avoid confusion, do not use multiple encryption context pairs that differ only by
888
889
  * case. To require a fully case-sensitive encryption context, use the
889
890
  * <code>kms:EncryptionContext:</code> and <code>kms:EncryptionContextKeys</code> conditions
890
- * in an IAM or key policy. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context">kms:EncryptionContext:</a> in the <i>
891
+ * in an IAM or key policy. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-encryption-context">kms:EncryptionContext:context-key</a> in the
892
+ * <i>
891
893
  * <i>Key Management Service Developer Guide</i>
892
894
  * </i>.</p>
893
895
  * </important>
@@ -896,14 +898,14 @@ export declare class XksProxyVpcEndpointServiceNotFoundException extends __BaseE
896
898
  export interface GrantConstraints {
897
899
  /**
898
900
  * <p>A list of key-value pairs that must be included in the encryption context of the
899
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operation</a> request. The grant allows the cryptographic operation only when the encryption
901
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations">cryptographic operation</a> request. The grant allows the cryptographic operation only when the encryption
900
902
  * context in the request includes the key-value pairs specified in this constraint, although it
901
903
  * can include additional key-value pairs.</p>
902
904
  * @public
903
905
  */
904
906
  EncryptionContextSubset?: Record<string, string> | undefined;
905
907
  /**
906
- * <p>A list of key-value pairs that must match the encryption context in the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operation</a>
908
+ * <p>A list of key-value pairs that must match the encryption context in the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations">cryptographic operation</a>
907
909
  * request. The grant allows the operation only when the encryption context in the request is the
908
910
  * same as the encryption context specified in this constraint.</p>
909
911
  * @public
@@ -983,8 +985,8 @@ export interface CreateGrantRequest {
983
985
  * </i>.</p>
984
986
  * <p>The grant determines the retiring principal. Other principals might have permission to
985
987
  * retire the grant or revoke the grant. For details, see <a>RevokeGrant</a> and
986
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete">Retiring and
987
- * revoking grants</a> in the <i>Key Management Service Developer Guide</i>. </p>
988
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grant-delete.html">Retiring and revoking
989
+ * grants</a> in the <i>Key Management Service Developer Guide</i>. </p>
988
990
  * @public
989
991
  */
990
992
  RetiringPrincipal?: string | undefined;
@@ -1031,7 +1033,7 @@ export interface CreateGrantRequest {
1031
1033
  Constraints?: GrantConstraints | undefined;
1032
1034
  /**
1033
1035
  * <p>A list of grant tokens. </p>
1034
- * <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
1036
+ * <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/using-grant-token.html">Using a grant token</a> in the
1035
1037
  * <i>Key Management Service Developer Guide</i>.</p>
1036
1038
  * @public
1037
1039
  */
@@ -1055,7 +1057,7 @@ export interface CreateGrantRequest {
1055
1057
  Name?: string | undefined;
1056
1058
  /**
1057
1059
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
1058
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
1060
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
1059
1061
  * @public
1060
1062
  */
1061
1063
  DryRun?: boolean | undefined;
@@ -1066,7 +1068,7 @@ export interface CreateGrantRequest {
1066
1068
  export interface CreateGrantResponse {
1067
1069
  /**
1068
1070
  * <p>The grant token.</p>
1069
- * <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
1071
+ * <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/using-grant-token.html">Using a grant token</a> in the
1070
1072
  * <i>Key Management Service Developer Guide</i>.</p>
1071
1073
  * @public
1072
1074
  */
@@ -1233,10 +1235,22 @@ export interface CreateKeyRequest {
1233
1235
  * Identity and Access Management User Guide</i>.</p>
1234
1236
  * </li>
1235
1237
  * </ul>
1238
+ * <note>
1239
+ * <p>If either of the required <code>Resource</code> or <code>Action</code>
1240
+ * elements are missing from a key policy statement, the policy statement has
1241
+ * no effect. When a key policy statement is missing one of these elements,
1242
+ * the KMS console correctly reports an error, but the
1243
+ * <code>CreateKey</code> and <code>PutKeyPolicy</code> API requests succeed, even though the policy
1244
+ * statement is ineffective.</p>
1245
+ * <p>For more information on required key policy elements, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html#key-policy-elements">Elements in a key policy</a> in the <i>Key Management Service Developer Guide</i>.</p>
1246
+ * </note>
1236
1247
  * <p>If you do not provide a key policy, KMS attaches a default key policy to the KMS key.
1237
- * For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default">Default key policy</a> in the
1248
+ * For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html">Default key policy</a> in the
1238
1249
  * <i>Key Management Service Developer Guide</i>. </p>
1239
- * <p>The key policy size quota is 32 kilobytes (32768 bytes).</p>
1250
+ * <note>
1251
+ * <p>If the key policy exceeds the length constraint, KMS returns a
1252
+ * <code>LimitExceededException</code>.</p>
1253
+ * </note>
1240
1254
  * <p>For help writing and formatting a JSON policy document, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html">IAM JSON Policy Reference</a> in the <i>
1241
1255
  * <i>Identity and Access Management User Guide</i>
1242
1256
  * </i>.</p>
@@ -1254,7 +1268,7 @@ export interface CreateKeyRequest {
1254
1268
  */
1255
1269
  Description?: string | undefined;
1256
1270
  /**
1257
- * <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
1271
+ * <p>Determines the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations">cryptographic operations</a> for which you can use the KMS key. The default value is
1258
1272
  * <code>ENCRYPT_DECRYPT</code>. This parameter is optional when you are creating a symmetric
1259
1273
  * encryption KMS key; otherwise, it is required. You can't change the <code>KeyUsage</code>
1260
1274
  * value after the KMS key is created.</p>
@@ -1273,15 +1287,16 @@ export interface CreateKeyRequest {
1273
1287
  * </li>
1274
1288
  * <li>
1275
1289
  * <p>For asymmetric KMS keys with NIST-recommended elliptic curve key pairs, specify
1276
- * <code>SIGN_VERIFY</code> or <code>KEY_AGREEMENT</code>.</p>
1290
+ * <code>SIGN_VERIFY</code> or <code>KEY_AGREEMENT</code>.</p>
1277
1291
  * </li>
1278
1292
  * <li>
1279
1293
  * <p>For asymmetric KMS keys with <code>ECC_SECG_P256K1</code> key pairs specify
1280
- * <code>SIGN_VERIFY</code>.</p>
1294
+ * <code>SIGN_VERIFY</code>.</p>
1281
1295
  * </li>
1282
1296
  * <li>
1283
1297
  * <p>For asymmetric KMS keys with SM2 key pairs (China Regions only), specify
1284
- * <code>ENCRYPT_DECRYPT</code>, <code>SIGN_VERIFY</code>, or <code>KEY_AGREEMENT</code>.</p>
1298
+ * <code>ENCRYPT_DECRYPT</code>, <code>SIGN_VERIFY</code>, or
1299
+ * <code>KEY_AGREEMENT</code>.</p>
1285
1300
  * </li>
1286
1301
  * </ul>
1287
1302
  * @public
@@ -1301,14 +1316,15 @@ export interface CreateKeyRequest {
1301
1316
  * <p>Specifies the type of KMS key to create. The default value,
1302
1317
  * <code>SYMMETRIC_DEFAULT</code>, creates a KMS key with a 256-bit AES-GCM key that is used for
1303
1318
  * encryption and decryption, except in China Regions, where it creates a 128-bit symmetric key
1304
- * that uses SM4 encryption. 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 the <i>
1319
+ * that uses SM4 encryption. For a detailed description of all supported key specs, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html">Key spec
1320
+ * reference</a> in the <i>
1305
1321
  * <i>Key Management Service Developer Guide</i>
1306
1322
  * </i>.</p>
1307
1323
  * <p>The <code>KeySpec</code> determines whether the KMS key contains a symmetric key or an
1308
1324
  * asymmetric key pair. It also determines the algorithms that the KMS key supports. You can't
1309
1325
  * change the <code>KeySpec</code> after the KMS key is created. To further restrict the
1310
1326
  * algorithms that can be used with the KMS key, use a condition key in its key policy or IAM
1311
- * 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>
1327
+ * policy. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-encryption-algorithm">kms:EncryptionAlgorithm</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-mac-algorithm">kms:MacAlgorithm</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-key-agreement-algorithm">kms:KeyAgreementAlgorithm</a>, or <a href="https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-signing-algorithm">kms:SigningAlgorithm</a> in the <i>
1312
1328
  * <i>Key Management Service Developer Guide</i>
1313
1329
  * </i>.</p>
1314
1330
  * <important>
@@ -1355,7 +1371,8 @@ export interface CreateKeyRequest {
1355
1371
  * </ul>
1356
1372
  * </li>
1357
1373
  * <li>
1358
- * <p>Asymmetric RSA key pairs (encryption and decryption -or- signing and verification)</p>
1374
+ * <p>Asymmetric RSA key pairs (encryption and decryption -or- signing and
1375
+ * verification)</p>
1359
1376
  * <ul>
1360
1377
  * <li>
1361
1378
  * <p>
@@ -1375,7 +1392,8 @@ export interface CreateKeyRequest {
1375
1392
  * </ul>
1376
1393
  * </li>
1377
1394
  * <li>
1378
- * <p>Asymmetric NIST-recommended elliptic curve key pairs (signing and verification -or- deriving shared secrets)</p>
1395
+ * <p>Asymmetric NIST-recommended elliptic curve key pairs (signing and verification -or-
1396
+ * deriving shared secrets)</p>
1379
1397
  * <ul>
1380
1398
  * <li>
1381
1399
  * <p>
@@ -1402,7 +1420,8 @@ export interface CreateKeyRequest {
1402
1420
  * </ul>
1403
1421
  * </li>
1404
1422
  * <li>
1405
- * <p>SM2 key pairs (encryption and decryption -or- signing and verification -or- deriving shared secrets)</p>
1423
+ * <p>SM2 key pairs (encryption and decryption -or- signing and verification -or- deriving
1424
+ * shared secrets)</p>
1406
1425
  * <ul>
1407
1426
  * <li>
1408
1427
  * <p>
@@ -1438,7 +1457,7 @@ export interface CreateKeyRequest {
1438
1457
  */
1439
1458
  Origin?: OriginType | undefined;
1440
1459
  /**
1441
- * <p>Creates the KMS key in the specified <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. The <code>ConnectionState</code> of
1460
+ * <p>Creates the KMS key in the specified <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html">custom key store</a>. The <code>ConnectionState</code> of
1442
1461
  * the custom key store must be <code>CONNECTED</code>. To find the CustomKeyStoreID and
1443
1462
  * ConnectionState use the <a>DescribeCustomKeyStores</a> operation.</p>
1444
1463
  * <p>This parameter is valid only for symmetric encryption KMS keys in a single Region. You
@@ -1479,7 +1498,7 @@ export interface CreateKeyRequest {
1479
1498
  * value, KMS replaces the current tag value with the specified one.</p>
1480
1499
  * <p>When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation
1481
1500
  * report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details,
1482
- * see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html">Tagging Keys</a>.</p>
1501
+ * see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html">Tags in KMS</a>.</p>
1483
1502
  * @public
1484
1503
  */
1485
1504
  Tags?: Tag[] | undefined;
@@ -1513,8 +1532,8 @@ export interface CreateKeyRequest {
1513
1532
  * of Amazon Web Services in an external key manager associated with the external key store specified by the
1514
1533
  * <code>CustomKeyStoreId</code> parameter. This key must be enabled and configured to perform
1515
1534
  * encryption and decryption. Each KMS key in an external key store must use a different external
1516
- * key. For details, see <a href="https://docs.aws.amazon.com/create-xks-keys.html#xks-key-requirements">Requirements for a KMS key in an external
1517
- * key store</a> in the <i>Key Management Service Developer Guide</i>.</p>
1535
+ * key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html#xks-key-requirements">Requirements for a KMS key in
1536
+ * an external key store</a> in the <i>Key Management Service Developer Guide</i>.</p>
1518
1537
  * <p>Each KMS key in an external key store is associated two backing keys. One is key material
1519
1538
  * that KMS generates. The other is the external key specified by this parameter. When you use
1520
1539
  * the KMS key in an external key store to encrypt data, the encryption operation is performed
@@ -1741,7 +1760,7 @@ export interface KeyMetadata {
1741
1760
  */
1742
1761
  Description?: string | undefined;
1743
1762
  /**
1744
- * <p>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.</p>
1763
+ * <p>The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations">cryptographic operations</a> for which you can use the KMS key.</p>
1745
1764
  * @public
1746
1765
  */
1747
1766
  KeyUsage?: KeyUsageType | undefined;
@@ -1763,9 +1782,9 @@ export interface KeyMetadata {
1763
1782
  */
1764
1783
  DeletionDate?: Date | undefined;
1765
1784
  /**
1766
- * <p>The time at which the imported key material expires. When the key material expires, KMS
1767
- * deletes the key material and the KMS key becomes unusable. This value is present only for KMS
1768
- * keys whose <code>Origin</code> is <code>EXTERNAL</code> and whose <code>ExpirationModel</code>
1785
+ * <p>The earliest time at which any imported key material permanently associated with this KMS key expires. When
1786
+ * a key material expires, KMS deletes the key material and the KMS key becomes unusable. This value is present
1787
+ * only for KMS keys whose <code>Origin</code> is <code>EXTERNAL</code> and the <code>ExpirationModel</code>
1769
1788
  * is <code>KEY_MATERIAL_EXPIRES</code>, otherwise this value is omitted.</p>
1770
1789
  * @public
1771
1790
  */
@@ -1780,14 +1799,14 @@ export interface KeyMetadata {
1780
1799
  */
1781
1800
  Origin?: OriginType | undefined;
1782
1801
  /**
1783
- * <p>A unique identifier for the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> that contains the KMS key. This field is
1802
+ * <p>A unique identifier for the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html">custom key store</a> that contains the KMS key. This field is
1784
1803
  * present only when the KMS key is created in a custom key store.</p>
1785
1804
  * @public
1786
1805
  */
1787
1806
  CustomKeyStoreId?: string | undefined;
1788
1807
  /**
1789
1808
  * <p>The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When
1790
- * you create a KMS key in an CloudHSM <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>, KMS creates the key material for the KMS
1809
+ * you create a KMS key in an CloudHSM <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html">custom key store</a>, KMS creates the key material for the KMS
1791
1810
  * key in the associated CloudHSM cluster. This field is present only when the KMS key is created in
1792
1811
  * an CloudHSM key store.</p>
1793
1812
  * @public
@@ -1905,6 +1924,15 @@ export interface KeyMetadata {
1905
1924
  * @public
1906
1925
  */
1907
1926
  XksKeyConfiguration?: XksKeyConfigurationType | undefined;
1927
+ /**
1928
+ * <p>Identifies the current key material. This value is present for symmetric encryption keys with
1929
+ * <code>AWS_KMS</code> origin and single-Region, symmetric encryption keys with <code>EXTERNAL</code>
1930
+ * origin. These KMS keys support automatic or on-demand key rotation and can have multiple key materials
1931
+ * associated with them. KMS uses the current key material for both encryption and decryption, and the non-current
1932
+ * key material for decryption operations only.</p>
1933
+ * @public
1934
+ */
1935
+ CurrentKeyMaterialId?: string | undefined;
1908
1936
  }
1909
1937
  /**
1910
1938
  * @public
@@ -2395,18 +2423,18 @@ export interface DecryptRequest {
2395
2423
  CiphertextBlob: Uint8Array | undefined;
2396
2424
  /**
2397
2425
  * <p>Specifies the encryption context to use when decrypting the data.
2398
- * 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>
2426
+ * An encryption context is valid only for <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.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>
2399
2427
  * <p>An <i>encryption context</i> is a collection of non-secret key-value pairs that represent additional authenticated data.
2400
2428
  * 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
2401
2429
  * 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>
2402
2430
  * <p>For more information, see
2403
- * <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>
2431
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
2404
2432
  * @public
2405
2433
  */
2406
2434
  EncryptionContext?: Record<string, string> | undefined;
2407
2435
  /**
2408
2436
  * <p>A list of grant tokens. </p>
2409
- * <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
2437
+ * <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/using-grant-token.html">Using a grant token</a> in the
2410
2438
  * <i>Key Management Service Developer Guide</i>.</p>
2411
2439
  * @public
2412
2440
  */
@@ -2471,7 +2499,7 @@ export interface DecryptRequest {
2471
2499
  Recipient?: RecipientInfo | undefined;
2472
2500
  /**
2473
2501
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
2474
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
2502
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
2475
2503
  * @public
2476
2504
  */
2477
2505
  DryRun?: boolean | undefined;
@@ -2505,6 +2533,12 @@ export interface DecryptResponse {
2505
2533
  * @public
2506
2534
  */
2507
2535
  CiphertextForRecipient?: Uint8Array | undefined;
2536
+ /**
2537
+ * <p>The identifier of the key material used to decrypt the ciphertext. This field is present only when
2538
+ * the operation uses a symmetric encryption KMS key.</p>
2539
+ * @public
2540
+ */
2541
+ KeyMaterialId?: string | undefined;
2508
2542
  }
2509
2543
  /**
2510
2544
  * <p>The request was rejected because the specified KMS key cannot decrypt the data. The
@@ -2555,8 +2589,8 @@ export declare class InvalidCiphertextException extends __BaseException {
2555
2589
  * messages, the <code>KeyUsage</code> must be <code>SIGN_VERIFY</code>. For generating and
2556
2590
  * verifying message authentication codes (MACs), the <code>KeyUsage</code> must be
2557
2591
  * <code>GENERATE_VERIFY_MAC</code>. For deriving key agreement secrets, the
2558
- * <code>KeyUsage</code> must be <code>KEY_AGREEMENT</code>. To find the <code>KeyUsage</code> of a KMS key, use the
2559
- * <a>DescribeKey</a> operation.</p>
2592
+ * <code>KeyUsage</code> must be <code>KEY_AGREEMENT</code>. To find the <code>KeyUsage</code>
2593
+ * of a KMS key, use the <a>DescribeKey</a> operation.</p>
2560
2594
  * <p>To find the encryption or signing algorithms supported for a particular KMS key, use the
2561
2595
  * <a>DescribeKey</a> operation.</p>
2562
2596
  * @public
@@ -2631,6 +2665,31 @@ export interface DeleteImportedKeyMaterialRequest {
2631
2665
  * @public
2632
2666
  */
2633
2667
  KeyId: string | undefined;
2668
+ /**
2669
+ * <p>Identifies the imported key material you are deleting. </p>
2670
+ * <important>
2671
+ * <p>If no KeyMaterialId is specified, KMS
2672
+ * deletes the current key material.</p>
2673
+ * </important>
2674
+ * <p>To get the list of key material IDs associated with a KMS key, use <a>ListKeyRotations</a>.</p>
2675
+ * @public
2676
+ */
2677
+ KeyMaterialId?: string | undefined;
2678
+ }
2679
+ /**
2680
+ * @public
2681
+ */
2682
+ export interface DeleteImportedKeyMaterialResponse {
2683
+ /**
2684
+ * <p>The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the KMS key from which the key material was deleted.</p>
2685
+ * @public
2686
+ */
2687
+ KeyId?: string | undefined;
2688
+ /**
2689
+ * <p>Identifies the deleted key material.</p>
2690
+ * @public
2691
+ */
2692
+ KeyMaterialId?: string | undefined;
2634
2693
  }
2635
2694
  /**
2636
2695
  * @public
@@ -2639,8 +2698,8 @@ export interface DeriveSharedSecretRequest {
2639
2698
  /**
2640
2699
  * <p>Identifies an asymmetric NIST-recommended ECC or SM2 (China Regions only) KMS key. KMS
2641
2700
  * uses the private key in the specified key pair to derive the shared secret. The key usage of
2642
- * the KMS key must be <code>KEY_AGREEMENT</code>. To find the
2643
- * <code>KeyUsage</code> of a KMS key, use the <a>DescribeKey</a> operation.</p>
2701
+ * the KMS key must be <code>KEY_AGREEMENT</code>. To find the <code>KeyUsage</code> of a KMS
2702
+ * key, use the <a>DescribeKey</a> operation.</p>
2644
2703
  * <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>
2645
2704
  * <p>For example:</p>
2646
2705
  * <ul>
@@ -2666,35 +2725,39 @@ export interface DeriveSharedSecretRequest {
2666
2725
  */
2667
2726
  KeyId: string | undefined;
2668
2727
  /**
2669
- * <p>Specifies the key agreement algorithm used to derive the shared secret. The only valid value is <code>ECDH</code>.</p>
2728
+ * <p>Specifies the key agreement algorithm used to derive the shared secret. The only valid
2729
+ * value is <code>ECDH</code>.</p>
2670
2730
  * @public
2671
2731
  */
2672
2732
  KeyAgreementAlgorithm: KeyAgreementAlgorithmSpec | undefined;
2673
2733
  /**
2674
- * <p>Specifies the public key in your peer's NIST-recommended elliptic curve (ECC) or SM2 (China Regions only) key pair.</p>
2675
- * <p>The public key must be a DER-encoded X.509 public key, also known as <code>SubjectPublicKeyInfo</code> (SPKI), as defined in <a href="https://tools.ietf.org/html/rfc5280">RFC 5280</a>.</p>
2734
+ * <p>Specifies the public key in your peer's NIST-recommended elliptic curve (ECC) or SM2
2735
+ * (China Regions only) key pair.</p>
2736
+ * <p>The public key must be a DER-encoded X.509 public key, also known as
2737
+ * <code>SubjectPublicKeyInfo</code> (SPKI), as defined in <a href="https://tools.ietf.org/html/rfc5280">RFC 5280</a>.</p>
2676
2738
  * <p>
2677
- * <a>GetPublicKey</a> returns the public key of an asymmetric KMS key pair in the required DER-encoded format.</p>
2739
+ * <a>GetPublicKey</a> returns the public key of an asymmetric KMS key pair in the
2740
+ * required DER-encoded format.</p>
2678
2741
  * <note>
2679
- * <p>If you use <a href="https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html">Amazon Web Services CLI version 1</a>,
2680
- * you must provide the DER-encoded X.509 public key in a file. Otherwise, the Amazon Web Services CLI Base64-encodes the public key a
2681
- * second time, resulting in a <code>ValidationException</code>.</p>
2742
+ * <p>If you use <a href="https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html">Amazon Web Services CLI version 1</a>, you must provide the DER-encoded X.509 public key in a file.
2743
+ * Otherwise, the Amazon Web Services CLI Base64-encodes the public key a second time, resulting in a
2744
+ * <code>ValidationException</code>.</p>
2682
2745
  * </note>
2683
- * <p>You can specify the public key as binary data in a file using fileb (<code>fileb://<path-to-file></code>) or
2684
- * in-line using a Base64 encoded string.</p>
2746
+ * <p>You can specify the public key as binary data in a file using fileb
2747
+ * (<code>fileb://<path-to-file></code>) or in-line using a Base64 encoded string.</p>
2685
2748
  * @public
2686
2749
  */
2687
2750
  PublicKey: Uint8Array | undefined;
2688
2751
  /**
2689
2752
  * <p>A list of grant tokens.</p>
2690
- * <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
2753
+ * <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/using-grant-token.html">Using a grant token</a> in the
2691
2754
  * <i>Key Management Service Developer Guide</i>.</p>
2692
2755
  * @public
2693
2756
  */
2694
2757
  GrantTokens?: string[] | undefined;
2695
2758
  /**
2696
2759
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
2697
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
2760
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
2698
2761
  * @public
2699
2762
  */
2700
2763
  DryRun?: boolean | undefined;
@@ -2703,17 +2766,17 @@ export interface DeriveSharedSecretRequest {
2703
2766
  * an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key. The
2704
2767
  * only valid encryption algorithm is <code>RSAES_OAEP_SHA_256</code>. </p>
2705
2768
  * <p>This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To call
2706
- * DeriveSharedSecret for an Amazon Web Services Nitro Enclaves, use the <a href="https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk">Amazon Web Services Nitro Enclaves SDK</a> to generate the attestation
2707
- * document and then use the Recipient parameter from any Amazon Web Services SDK to provide the attestation
2708
- * document for the enclave.</p>
2769
+ * DeriveSharedSecret for an Amazon Web Services Nitro Enclaves, use the <a href="https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk">Amazon Web Services Nitro Enclaves SDK</a> to generate the
2770
+ * attestation document and then use the Recipient parameter from any Amazon Web Services SDK to provide the
2771
+ * attestation document for the enclave.</p>
2709
2772
  * <p>When you use this parameter, instead of returning a plaintext copy of the shared secret,
2710
- * KMS encrypts the plaintext shared secret under the public key in the attestation
2711
- * document, and returns the resulting ciphertext in the <code>CiphertextForRecipient</code>
2712
- * field in the response. This ciphertext can be decrypted only with the private key in the
2713
- * enclave. The <code>CiphertextBlob</code> field in the response contains the encrypted shared
2714
- * secret derived from the KMS key specified by the <code>KeyId</code> parameter and public key
2715
- * specified by the <code>PublicKey</code> parameter. The <code>SharedSecret</code> field in
2716
- * the response is null or empty.</p>
2773
+ * KMS encrypts the plaintext shared secret under the public key in the attestation document,
2774
+ * and returns the resulting ciphertext in the <code>CiphertextForRecipient</code> field in the
2775
+ * response. This ciphertext can be decrypted only with the private key in the enclave. The
2776
+ * <code>CiphertextBlob</code> field in the response contains the encrypted shared secret
2777
+ * derived from the KMS key specified by the <code>KeyId</code> parameter and public key
2778
+ * specified by the <code>PublicKey</code> parameter. The <code>SharedSecret</code> field in the
2779
+ * response is null or empty.</p>
2717
2780
  * <p>For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
2718
2781
  * @public
2719
2782
  */
@@ -2731,13 +2794,14 @@ export interface DeriveSharedSecretResponse {
2731
2794
  /**
2732
2795
  * <p>The raw secret derived from the specified key agreement algorithm, private key in the
2733
2796
  * asymmetric KMS key, and your peer's public key.</p>
2734
- * <p>If the response includes the <code>CiphertextForRecipient</code> field, the <code>SharedSecret</code> field is null or
2735
- * empty.</p>
2797
+ * <p>If the response includes the <code>CiphertextForRecipient</code> field, the
2798
+ * <code>SharedSecret</code> field is null or empty.</p>
2736
2799
  * @public
2737
2800
  */
2738
2801
  SharedSecret?: Uint8Array | undefined;
2739
2802
  /**
2740
- * <p>The plaintext shared secret encrypted with the public key in the attestation document.</p>
2803
+ * <p>The plaintext shared secret encrypted with the public key in the attestation
2804
+ * document.</p>
2741
2805
  * <p>This field is included in the response only when the <code>Recipient</code> parameter in
2742
2806
  * the request includes a valid attestation document from an Amazon Web Services Nitro enclave.
2743
2807
  * For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
@@ -2751,10 +2815,12 @@ export interface DeriveSharedSecretResponse {
2751
2815
  KeyAgreementAlgorithm?: KeyAgreementAlgorithmSpec | undefined;
2752
2816
  /**
2753
2817
  * <p>The source of the key material for the specified KMS key.</p>
2754
- * <p>When this value is <code>AWS_KMS</code>, KMS created the key material. When this value is <code>EXTERNAL</code>,
2755
- * the key material was imported or the KMS key doesn't have any key material.</p>
2756
- * <p>The only valid values for DeriveSharedSecret are <code>AWS_KMS</code> and <code>EXTERNAL</code>. DeriveSharedSecret
2757
- * does not support KMS keys with a <code>KeyOrigin</code> value of <code>AWS_CLOUDHSM</code> or
2818
+ * <p>When this value is <code>AWS_KMS</code>, KMS created the key material. When this value
2819
+ * is <code>EXTERNAL</code>, the key material was imported or the KMS key doesn't have any key
2820
+ * material.</p>
2821
+ * <p>The only valid values for DeriveSharedSecret are <code>AWS_KMS</code> and
2822
+ * <code>EXTERNAL</code>. DeriveSharedSecret does not support KMS keys with a
2823
+ * <code>KeyOrigin</code> value of <code>AWS_CLOUDHSM</code> or
2758
2824
  * <code>EXTERNAL_KEY_STORE</code>.</p>
2759
2825
  * @public
2760
2826
  */
@@ -2870,7 +2936,7 @@ export interface DescribeKeyRequest {
2870
2936
  KeyId: string | undefined;
2871
2937
  /**
2872
2938
  * <p>A list of grant tokens.</p>
2873
- * <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
2939
+ * <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/using-grant-token.html">Using a grant token</a> in the
2874
2940
  * <i>Key Management Service Developer Guide</i>.</p>
2875
2941
  * @public
2876
2942
  */
@@ -2917,7 +2983,7 @@ export interface DisableKeyRotationRequest {
2917
2983
  * <p>Identifies a symmetric encryption KMS key. You cannot enable or disable automatic rotation
2918
2984
  * of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks">asymmetric KMS keys</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html">HMAC
2919
2985
  * 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
2920
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>.</p>
2986
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html">custom key store</a>.</p>
2921
2987
  * <p>Specify the key ID or key ARN of the KMS key.</p>
2922
2988
  * <p>For example:</p>
2923
2989
  * <ul>
@@ -2978,7 +3044,7 @@ export interface EnableKeyRequest {
2978
3044
  */
2979
3045
  export interface EnableKeyRotationRequest {
2980
3046
  /**
2981
- * <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>
3047
+ * <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/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/rotate-keys.html#multi-region-rotate">multi-Region keys</a>, set the property on the primary key.</p>
2982
3048
  * <p>Specify the key ID or key ARN of the KMS key.</p>
2983
3049
  * <p>For example:</p>
2984
3050
  * <ul>
@@ -3049,7 +3115,7 @@ export interface EncryptRequest {
3049
3115
  Plaintext: Uint8Array | undefined;
3050
3116
  /**
3051
3117
  * <p>Specifies the encryption context that will be used to encrypt the data.
3052
- * 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>
3118
+ * An encryption context is valid only for <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.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>
3053
3119
  * <important>
3054
3120
  * <p>Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.</p>
3055
3121
  * </important>
@@ -3057,13 +3123,13 @@ export interface EncryptRequest {
3057
3123
  * 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
3058
3124
  * 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>
3059
3125
  * <p>For more information, see
3060
- * <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>
3126
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
3061
3127
  * @public
3062
3128
  */
3063
3129
  EncryptionContext?: Record<string, string> | undefined;
3064
3130
  /**
3065
3131
  * <p>A list of grant tokens.</p>
3066
- * <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
3132
+ * <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/using-grant-token.html">Using a grant token</a> in the
3067
3133
  * <i>Key Management Service Developer Guide</i>.</p>
3068
3134
  * @public
3069
3135
  */
@@ -3080,7 +3146,7 @@ export interface EncryptRequest {
3080
3146
  EncryptionAlgorithm?: EncryptionAlgorithmSpec | undefined;
3081
3147
  /**
3082
3148
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
3083
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
3149
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
3084
3150
  * @public
3085
3151
  */
3086
3152
  DryRun?: boolean | undefined;
@@ -3104,6 +3170,12 @@ export interface EncryptResponse {
3104
3170
  * @public
3105
3171
  */
3106
3172
  EncryptionAlgorithm?: EncryptionAlgorithmSpec | undefined;
3173
+ /**
3174
+ * <p>The identifier of the key material used to encrypt the ciphertext. This field is present only when
3175
+ * the operation uses a symmetric encryption KMS key.</p>
3176
+ * @public
3177
+ */
3178
+ KeyMaterialId?: string | undefined;
3107
3179
  }
3108
3180
  /**
3109
3181
  * <p>The request was rejected because the specified import token is expired. Use <a>GetParametersForImport</a> to get a new import token and public key, use the new
@@ -3159,7 +3231,7 @@ export interface GenerateDataKeyRequest {
3159
3231
  * 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
3160
3232
  * 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>
3161
3233
  * <p>For more information, see
3162
- * <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>
3234
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
3163
3235
  * @public
3164
3236
  */
3165
3237
  EncryptionContext?: Record<string, string> | undefined;
@@ -3182,7 +3254,7 @@ export interface GenerateDataKeyRequest {
3182
3254
  KeySpec?: DataKeySpec | undefined;
3183
3255
  /**
3184
3256
  * <p>A list of grant tokens.</p>
3185
- * <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
3257
+ * <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/using-grant-token.html">Using a grant token</a> in the
3186
3258
  * <i>Key Management Service Developer Guide</i>.</p>
3187
3259
  * @public
3188
3260
  */
@@ -3206,7 +3278,7 @@ export interface GenerateDataKeyRequest {
3206
3278
  Recipient?: RecipientInfo | undefined;
3207
3279
  /**
3208
3280
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
3209
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
3281
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
3210
3282
  * @public
3211
3283
  */
3212
3284
  DryRun?: boolean | undefined;
@@ -3242,6 +3314,11 @@ export interface GenerateDataKeyResponse {
3242
3314
  * @public
3243
3315
  */
3244
3316
  CiphertextForRecipient?: Uint8Array | undefined;
3317
+ /**
3318
+ * <p>The identifier of the key material used to encrypt the data key.</p>
3319
+ * @public
3320
+ */
3321
+ KeyMaterialId?: string | undefined;
3245
3322
  }
3246
3323
  /**
3247
3324
  * @public
@@ -3257,7 +3334,7 @@ export interface GenerateDataKeyPairRequest {
3257
3334
  * 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
3258
3335
  * 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>
3259
3336
  * <p>For more information, see
3260
- * <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>
3337
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
3261
3338
  * @public
3262
3339
  */
3263
3340
  EncryptionContext?: Record<string, string> | undefined;
@@ -3297,7 +3374,7 @@ export interface GenerateDataKeyPairRequest {
3297
3374
  KeyPairSpec: DataKeyPairSpec | undefined;
3298
3375
  /**
3299
3376
  * <p>A list of grant tokens.</p>
3300
- * <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
3377
+ * <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/using-grant-token.html">Using a grant token</a> in the
3301
3378
  * <i>Key Management Service Developer Guide</i>.</p>
3302
3379
  * @public
3303
3380
  */
@@ -3307,9 +3384,9 @@ export interface GenerateDataKeyPairRequest {
3307
3384
  * an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key. The
3308
3385
  * only valid encryption algorithm is <code>RSAES_OAEP_SHA_256</code>. </p>
3309
3386
  * <p>This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To call
3310
- * DeriveSharedSecret for an Amazon Web Services Nitro Enclaves, use the <a href="https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk">Amazon Web Services Nitro Enclaves SDK</a> to generate the attestation
3311
- * document and then use the Recipient parameter from any Amazon Web Services SDK to provide the attestation
3312
- * document for the enclave.</p>
3387
+ * DeriveSharedSecret for an Amazon Web Services Nitro Enclaves, use the <a href="https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk">Amazon Web Services Nitro Enclaves SDK</a> to generate the
3388
+ * attestation document and then use the Recipient parameter from any Amazon Web Services SDK to provide the
3389
+ * attestation document for the enclave.</p>
3313
3390
  * <p>When you use this parameter, instead of returning a plaintext copy of the private data
3314
3391
  * key, KMS encrypts the plaintext private data key under the public key in the attestation
3315
3392
  * document, and returns the resulting ciphertext in the <code>CiphertextForRecipient</code>
@@ -3323,7 +3400,7 @@ export interface GenerateDataKeyPairRequest {
3323
3400
  Recipient?: RecipientInfo | undefined;
3324
3401
  /**
3325
3402
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
3326
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
3403
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
3327
3404
  * @public
3328
3405
  */
3329
3406
  DryRun?: boolean | undefined;
@@ -3368,6 +3445,11 @@ export interface GenerateDataKeyPairResponse {
3368
3445
  * @public
3369
3446
  */
3370
3447
  CiphertextForRecipient?: Uint8Array | undefined;
3448
+ /**
3449
+ * <p>The identifier of the key material used to encrypt the private key.</p>
3450
+ * @public
3451
+ */
3452
+ KeyMaterialId?: string | undefined;
3371
3453
  }
3372
3454
  /**
3373
3455
  * @public
@@ -3383,7 +3465,7 @@ export interface GenerateDataKeyPairWithoutPlaintextRequest {
3383
3465
  * 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
3384
3466
  * 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>
3385
3467
  * <p>For more information, see
3386
- * <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>
3468
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
3387
3469
  * @public
3388
3470
  */
3389
3471
  EncryptionContext?: Record<string, string> | undefined;
@@ -3423,14 +3505,14 @@ export interface GenerateDataKeyPairWithoutPlaintextRequest {
3423
3505
  KeyPairSpec: DataKeyPairSpec | undefined;
3424
3506
  /**
3425
3507
  * <p>A list of grant tokens.</p>
3426
- * <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
3508
+ * <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/using-grant-token.html">Using a grant token</a> in the
3427
3509
  * <i>Key Management Service Developer Guide</i>.</p>
3428
3510
  * @public
3429
3511
  */
3430
3512
  GrantTokens?: string[] | undefined;
3431
3513
  /**
3432
3514
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
3433
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
3515
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
3434
3516
  * @public
3435
3517
  */
3436
3518
  DryRun?: boolean | undefined;
@@ -3459,6 +3541,11 @@ export interface GenerateDataKeyPairWithoutPlaintextResponse {
3459
3541
  * @public
3460
3542
  */
3461
3543
  KeyPairSpec?: DataKeyPairSpec | undefined;
3544
+ /**
3545
+ * <p>The identifier of the key material used to encrypt the private key.</p>
3546
+ * @public
3547
+ */
3548
+ KeyMaterialId?: string | undefined;
3462
3549
  }
3463
3550
  /**
3464
3551
  * @public
@@ -3501,7 +3588,7 @@ export interface GenerateDataKeyWithoutPlaintextRequest {
3501
3588
  * 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
3502
3589
  * 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>
3503
3590
  * <p>For more information, see
3504
- * <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>
3591
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
3505
3592
  * @public
3506
3593
  */
3507
3594
  EncryptionContext?: Record<string, string> | undefined;
@@ -3520,14 +3607,14 @@ export interface GenerateDataKeyWithoutPlaintextRequest {
3520
3607
  NumberOfBytes?: number | undefined;
3521
3608
  /**
3522
3609
  * <p>A list of grant tokens.</p>
3523
- * <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
3610
+ * <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/using-grant-token.html">Using a grant token</a> in the
3524
3611
  * <i>Key Management Service Developer Guide</i>.</p>
3525
3612
  * @public
3526
3613
  */
3527
3614
  GrantTokens?: string[] | undefined;
3528
3615
  /**
3529
3616
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
3530
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
3617
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
3531
3618
  * @public
3532
3619
  */
3533
3620
  DryRun?: boolean | undefined;
@@ -3546,6 +3633,11 @@ export interface GenerateDataKeyWithoutPlaintextResponse {
3546
3633
  * @public
3547
3634
  */
3548
3635
  KeyId?: string | undefined;
3636
+ /**
3637
+ * <p>The identifier of the key material used to encrypt the data key.</p>
3638
+ * @public
3639
+ */
3640
+ KeyMaterialId?: string | undefined;
3549
3641
  }
3550
3642
  /**
3551
3643
  * @public
@@ -3578,14 +3670,14 @@ export interface GenerateMacRequest {
3578
3670
  MacAlgorithm: MacAlgorithmSpec | undefined;
3579
3671
  /**
3580
3672
  * <p>A list of grant tokens.</p>
3581
- * <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
3673
+ * <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/using-grant-token.html">Using a grant token</a> in the
3582
3674
  * <i>Key Management Service Developer Guide</i>.</p>
3583
3675
  * @public
3584
3676
  */
3585
3677
  GrantTokens?: string[] | undefined;
3586
3678
  /**
3587
3679
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
3588
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
3680
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
3589
3681
  * @public
3590
3682
  */
3591
3683
  DryRun?: boolean | undefined;
@@ -3690,8 +3782,9 @@ export interface GetKeyPolicyRequest {
3690
3782
  */
3691
3783
  KeyId: string | undefined;
3692
3784
  /**
3693
- * <p>Specifies the name of the key policy. If no policy name is specified, the default value is <code>default</code>. The only valid name is <code>default</code>. To get
3694
- * the names of key policies, use <a>ListKeyPolicies</a>.</p>
3785
+ * <p>Specifies the name of the key policy. If no policy name is specified, the default value is
3786
+ * <code>default</code>. The only valid name is <code>default</code>. To get the names of key
3787
+ * policies, use <a>ListKeyPolicies</a>.</p>
3695
3788
  * @public
3696
3789
  */
3697
3790
  PolicyName?: string | undefined;
@@ -3761,11 +3854,10 @@ export interface GetKeyRotationStatusResponse {
3761
3854
  NextRotationDate?: Date | undefined;
3762
3855
  /**
3763
3856
  * <p>Identifies the date and time that an in progress on-demand rotation was initiated.</p>
3764
- * <p>The KMS API follows an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html">eventual consistency</a> model
3765
- * due to the distributed nature of the system. As a result, there might be a slight delay
3766
- * between initiating on-demand key rotation and the rotation's completion. Once the on-demand
3767
- * rotation is complete, use <a>ListKeyRotations</a> to view the details of the
3768
- * on-demand rotation.</p>
3857
+ * <p>KMS uses a background process to perform rotations. As a result, there
3858
+ * might be a slight delay between initiating on-demand key rotation and the rotation's
3859
+ * completion. Once the on-demand rotation is complete, KMS removes this field from the response. You can
3860
+ * use <a>ListKeyRotations</a> to view the details of the completed on-demand rotation.</p>
3769
3861
  * @public
3770
3862
  */
3771
3863
  OnDemandRotationStartDate?: Date | undefined;
@@ -3811,7 +3903,7 @@ export interface GetParametersForImportRequest {
3811
3903
  KeyId: string | undefined;
3812
3904
  /**
3813
3905
  * <p>The algorithm you will use with the RSA public key (<code>PublicKey</code>) in the
3814
- * response to protect your key material during import. For more information, see <a href="kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm">Select a wrapping algorithm</a> in the <i>Key Management Service Developer Guide</i>.</p>
3906
+ * response to protect your key material during import. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm">Select a wrapping algorithm</a> in the <i>Key Management Service Developer Guide</i>.</p>
3815
3907
  * <p>For RSA_AES wrapping algorithms, you encrypt your key material with an AES key that you
3816
3908
  * generate, then encrypt your AES key with the RSA public key from KMS. For RSAES wrapping
3817
3909
  * algorithms, you encrypt your key material directly with the RSA public key from KMS.</p>
@@ -3922,7 +4014,7 @@ export interface GetPublicKeyRequest {
3922
4014
  KeyId: string | undefined;
3923
4015
  /**
3924
4016
  * <p>A list of grant tokens.</p>
3925
- * <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
4017
+ * <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/using-grant-token.html">Using a grant token</a> in the
3926
4018
  * <i>Key Management Service Developer Guide</i>.</p>
3927
4019
  * @public
3928
4020
  */
@@ -3963,10 +4055,10 @@ export interface GetPublicKeyResponse {
3963
4055
  */
3964
4056
  KeySpec?: KeySpec | undefined;
3965
4057
  /**
3966
- * <p>The permitted use of the public key. Valid values for asymmetric key pairs are <code>ENCRYPT_DECRYPT</code>,
3967
- * <code>SIGN_VERIFY</code>, and <code>KEY_AGREEMENT</code>. </p>
3968
- * <p>This information is critical. For example, if a public key with <code>SIGN_VERIFY</code> key usage
3969
- * encrypts data outside of KMS, the ciphertext cannot be decrypted. </p>
4058
+ * <p>The permitted use of the public key. Valid values for asymmetric key pairs are
4059
+ * <code>ENCRYPT_DECRYPT</code>, <code>SIGN_VERIFY</code>, and <code>KEY_AGREEMENT</code>. </p>
4060
+ * <p>This information is critical. For example, if a public key with <code>SIGN_VERIFY</code>
4061
+ * key usage encrypts data outside of KMS, the ciphertext cannot be decrypted. </p>
3970
4062
  * @public
3971
4063
  */
3972
4064
  KeyUsage?: KeyUsageType | undefined;
@@ -3987,7 +4079,8 @@ export interface GetPublicKeyResponse {
3987
4079
  */
3988
4080
  SigningAlgorithms?: SigningAlgorithmSpec[] | undefined;
3989
4081
  /**
3990
- * <p>The key agreement algorithm used to derive a shared secret. This field is present only when the KMS key has a <code>KeyUsage</code> value of <code>KEY_AGREEMENT</code>.</p>
4082
+ * <p>The key agreement algorithm used to derive a shared secret. This field is present only
4083
+ * when the KMS key has a <code>KeyUsage</code> value of <code>KEY_AGREEMENT</code>.</p>
3991
4084
  * @public
3992
4085
  */
3993
4086
  KeyAgreementAlgorithms?: KeyAgreementAlgorithmSpec[] | undefined;
@@ -4049,6 +4142,18 @@ export interface GrantListEntry {
4049
4142
  */
4050
4143
  Constraints?: GrantConstraints | undefined;
4051
4144
  }
4145
+ /**
4146
+ * @public
4147
+ * @enum
4148
+ */
4149
+ export declare const ImportType: {
4150
+ readonly EXISTING_KEY_MATERIAL: "EXISTING_KEY_MATERIAL";
4151
+ readonly NEW_KEY_MATERIAL: "NEW_KEY_MATERIAL";
4152
+ };
4153
+ /**
4154
+ * @public
4155
+ */
4156
+ export type ImportType = (typeof ImportType)[keyof typeof ImportType];
4052
4157
  /**
4053
4158
  * @public
4054
4159
  */
@@ -4060,7 +4165,7 @@ export interface ImportKeyMaterialRequest {
4060
4165
  * must be <code>EXTERNAL</code> and its <code>KeyState</code> must be
4061
4166
  * <code>PendingImport</code>. </p>
4062
4167
  * <p>The KMS key can be a symmetric encryption KMS key, HMAC KMS key, asymmetric encryption KMS
4063
- * key, or asymmetric signing KMS key, including a <a href="kms/latest/developerguide/multi-region-keys-overview.html">multi-Region key</a> of any supported
4168
+ * key, or asymmetric signing KMS key, including a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">multi-Region key</a> of any supported
4064
4169
  * type. You cannot perform this operation on a KMS key in a custom key store, or on a KMS key in
4065
4170
  * a different Amazon Web Services account.</p>
4066
4171
  * <p>Specify the key ID or key ARN of the KMS key.</p>
@@ -4108,7 +4213,8 @@ export interface ImportKeyMaterialRequest {
4108
4213
  ValidTo?: Date | undefined;
4109
4214
  /**
4110
4215
  * <p>Specifies whether the key material expires. The default is
4111
- * <code>KEY_MATERIAL_EXPIRES</code>. For help with this choice, see <a href="https://docs.aws.amazon.com/en_us/kms/latest/developerguide/importing-keys.html#importing-keys-expiration">Setting an expiration time</a> in the <i>Key Management Service Developer Guide</i>.</p>
4216
+ * <code>KEY_MATERIAL_EXPIRES</code>. For help with this choice, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-expiration">Setting
4217
+ * an expiration time</a> in the <i>Key Management Service Developer Guide</i>.</p>
4112
4218
  * <p>When the value of <code>ExpirationModel</code> is <code>KEY_MATERIAL_EXPIRES</code>, you
4113
4219
  * must specify a value for the <code>ValidTo</code> parameter. When value is
4114
4220
  * <code>KEY_MATERIAL_DOES_NOT_EXPIRE</code>, you must omit the <code>ValidTo</code>
@@ -4119,15 +4225,63 @@ export interface ImportKeyMaterialRequest {
4119
4225
  * @public
4120
4226
  */
4121
4227
  ExpirationModel?: ExpirationModelType | undefined;
4228
+ /**
4229
+ * <p>Indicates whether the key material being imported is previously associated with this KMS key or not.
4230
+ * This parameter is optional and only usable with symmetric encryption keys. The default is
4231
+ * <code>EXISTING_KEY_MATERIAL</code>. If no key material has ever been imported into the KMS key,
4232
+ * and this parameter is omitted, the parameter defaults to <code>NEW_KEY_MATERIAL</code>.</p>
4233
+ * @public
4234
+ */
4235
+ ImportType?: ImportType | undefined;
4236
+ /**
4237
+ * <p>Description for the key material being imported. This parameter is optional and only usable
4238
+ * with symmetric encryption keys. If you do not specify a key material description, KMS retains
4239
+ * the value you specified when you last imported the same key material into this KMS key.</p>
4240
+ * @public
4241
+ */
4242
+ KeyMaterialDescription?: string | undefined;
4243
+ /**
4244
+ * <p>Identifies the key material being imported. This parameter is optional and only usable with
4245
+ * symmetric encryption keys. You cannot specify a key material ID with <code>ImportType</code> set
4246
+ * to <code>NEW_KEY_MATERIAL</code>. Whenever you import key material into a symmetric encryption key,
4247
+ * KMS assigns a unique identifier to the key material based on the KMS key ID and
4248
+ * the imported key material. When you re-import key material with a specified key material ID, KMS:</p>
4249
+ * <ul>
4250
+ * <li>
4251
+ * <p>Computes the identifier for the key material</p>
4252
+ * </li>
4253
+ * <li>
4254
+ * <p>Matches the computed identifier against the specified key material ID</p>
4255
+ * </li>
4256
+ * <li>
4257
+ * <p>Verifies that the key material ID is already associated with the KMS key</p>
4258
+ * </li>
4259
+ * </ul>
4260
+ * <p>To get the list of key material IDs associated with a KMS key, use <a>ListKeyRotations</a>.</p>
4261
+ * @public
4262
+ */
4263
+ KeyMaterialId?: string | undefined;
4122
4264
  }
4123
4265
  /**
4124
4266
  * @public
4125
4267
  */
4126
4268
  export interface ImportKeyMaterialResponse {
4269
+ /**
4270
+ * <p>The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the KMS key into which key material was imported.</p>
4271
+ * @public
4272
+ */
4273
+ KeyId?: string | undefined;
4274
+ /**
4275
+ * <p>Identifies the imported key material.</p>
4276
+ * @public
4277
+ */
4278
+ KeyMaterialId?: string | undefined;
4127
4279
  }
4128
4280
  /**
4129
4281
  * <p>The request was rejected because the key material in the request is, expired, invalid, or
4130
- * is not the same key material that was previously imported into this KMS key.</p>
4282
+ * does not meet expectations. For example, it is not the same key material that was previously imported or
4283
+ * KMS expected new key material but the key material being imported is already associated with
4284
+ * the KMS key.</p>
4131
4285
  * @public
4132
4286
  */
4133
4287
  export declare class IncorrectKeyMaterialException extends __BaseException {
@@ -4151,6 +4305,30 @@ export declare class InvalidImportTokenException extends __BaseException {
4151
4305
  */
4152
4306
  constructor(opts: __ExceptionOptionType<InvalidImportTokenException, __BaseException>);
4153
4307
  }
4308
+ /**
4309
+ * @public
4310
+ * @enum
4311
+ */
4312
+ export declare const ImportState: {
4313
+ readonly IMPORTED: "IMPORTED";
4314
+ readonly PENDING_IMPORT: "PENDING_IMPORT";
4315
+ };
4316
+ /**
4317
+ * @public
4318
+ */
4319
+ export type ImportState = (typeof ImportState)[keyof typeof ImportState];
4320
+ /**
4321
+ * @public
4322
+ * @enum
4323
+ */
4324
+ export declare const IncludeKeyMaterial: {
4325
+ readonly ALL_KEY_MATERIAL: "ALL_KEY_MATERIAL";
4326
+ readonly ROTATIONS_ONLY: "ROTATIONS_ONLY";
4327
+ };
4328
+ /**
4329
+ * @public
4330
+ */
4331
+ export type IncludeKeyMaterial = (typeof IncludeKeyMaterial)[keyof typeof IncludeKeyMaterial];
4154
4332
  /**
4155
4333
  * <p>The request was rejected because the specified <code>GrantId</code> is not valid.</p>
4156
4334
  * @public
@@ -4179,6 +4357,19 @@ export interface KeyListEntry {
4179
4357
  */
4180
4358
  KeyArn?: string | undefined;
4181
4359
  }
4360
+ /**
4361
+ * @public
4362
+ * @enum
4363
+ */
4364
+ export declare const KeyMaterialState: {
4365
+ readonly CURRENT: "CURRENT";
4366
+ readonly NON_CURRENT: "NON_CURRENT";
4367
+ readonly PENDING_ROTATION: "PENDING_ROTATION";
4368
+ };
4369
+ /**
4370
+ * @public
4371
+ */
4372
+ export type KeyMaterialState = (typeof KeyMaterialState)[keyof typeof KeyMaterialState];
4182
4373
  /**
4183
4374
  * <p>The request was rejected because the HMAC verification failed. HMAC verification fails
4184
4375
  * when the HMAC computed by using the specified message, HMAC KMS key, and MAC algorithm does
@@ -4435,6 +4626,17 @@ export interface ListKeyRotationsRequest {
4435
4626
  * @public
4436
4627
  */
4437
4628
  KeyId: string | undefined;
4629
+ /**
4630
+ * <p>Use this optional parameter to control which key materials associated with this key are
4631
+ * listed in the response. The default value of this parameter is <code>ROTATIONS_ONLY</code>. If you omit this
4632
+ * parameter, KMS returns information on the key materials created by automatic or on-demand key rotation. When you
4633
+ * specify a value of <code>ALL_KEY_MATERIAL</code>, KMS adds the first key material and any imported key material
4634
+ * pending rotation to the response. This parameter can only be used with KMS keys that support
4635
+ * automatic or on-demand key rotation.
4636
+ * </p>
4637
+ * @public
4638
+ */
4639
+ IncludeKeyMaterial?: IncludeKeyMaterial | undefined;
4438
4640
  /**
4439
4641
  * <p>Use this parameter to specify the maximum number of items to return. When this
4440
4642
  * value is present, KMS does not return more than the specified number of items, but it might
@@ -4465,7 +4667,7 @@ export declare const RotationType: {
4465
4667
  */
4466
4668
  export type RotationType = (typeof RotationType)[keyof typeof RotationType];
4467
4669
  /**
4468
- * <p>Contains information about completed key material rotations.</p>
4670
+ * <p>Each entry contains information about one of the key materials associated with a KMS key.</p>
4469
4671
  * @public
4470
4672
  */
4471
4673
  export interface RotationsListEntry {
@@ -4475,12 +4677,61 @@ export interface RotationsListEntry {
4475
4677
  */
4476
4678
  KeyId?: string | undefined;
4477
4679
  /**
4478
- * <p>Date and time that the key material rotation completed. Formatted as Unix time.</p>
4680
+ * <p>Unique identifier of the key material. </p>
4681
+ * @public
4682
+ */
4683
+ KeyMaterialId?: string | undefined;
4684
+ /**
4685
+ * <p>User-specified description of the key material. This field is only present for symmetric
4686
+ * encryption KMS keys with <code>EXTERNAL</code> origin.</p>
4687
+ * @public
4688
+ */
4689
+ KeyMaterialDescription?: string | undefined;
4690
+ /**
4691
+ * <p>Indicates if the key material is currently imported into KMS. It has two possible
4692
+ * values: <code>IMPORTED</code> or <code>PENDING_IMPORT</code>. This field is only present
4693
+ * for symmetric encryption KMS keys with <code>EXTERNAL</code> origin.</p>
4694
+ * @public
4695
+ */
4696
+ ImportState?: ImportState | undefined;
4697
+ /**
4698
+ * <p>There are three possible values for this field: <code>CURRENT</code>, <code>NON_CURRENT</code>
4699
+ * and <code>PENDING_ROTATION</code>. KMS uses <code>CURRENT</code> key material for both encryption
4700
+ * and decryption and <code>NON_CURRENT</code> key material only for decryption. <code>PENDING_ROTATION</code>
4701
+ * identifies key material that has been imported for on-demand key rotation but the rotation hasn't completed.
4702
+ * Key material in <code>PENDING_ROTATION</code> is not permanently associated with the KMS key. You can
4703
+ * delete this key material and import different key material in its place. The <code>PENDING_ROTATION</code>
4704
+ * value is only used in symmetric encryption keys with imported key material. The other values,
4705
+ * <code>CURRENT</code> and <code>NON_CURRENT</code>, are used for all KMS keys that support automatic or
4706
+ * on-demand key rotation.</p>
4707
+ * @public
4708
+ */
4709
+ KeyMaterialState?: KeyMaterialState | undefined;
4710
+ /**
4711
+ * <p>Indicates if the key material is configured to automatically expire. There are two possible values for
4712
+ * this field: <code>KEY_MATERIAL_EXPIRES</code> and <code>KEY_MATERIAL_DOES_NOT_EXPIRE</code>. For any key
4713
+ * material that expires, the expiration date and time is indicated in <code>ValidTo</code>. This field
4714
+ * is only present for symmetric encryption KMS keys with <code>EXTERNAL</code> origin.</p>
4715
+ * @public
4716
+ */
4717
+ ExpirationModel?: ExpirationModelType | undefined;
4718
+ /**
4719
+ * <p>Date and time at which the key material expires. This field is only present for symmetric encryption KMS
4720
+ * keys with <code>EXTERNAL</code> origin in rotation list entries with an <code>ExpirationModel</code>
4721
+ * value of <code>KEY_MATERIAL_EXPIRES</code>.</p>
4722
+ * @public
4723
+ */
4724
+ ValidTo?: Date | undefined;
4725
+ /**
4726
+ * <p>Date and time that the key material rotation completed. Formatted as Unix time. This field is not present
4727
+ * for the first key material or an imported key material in <code>PENDING_ROTATION</code> state.</p>
4479
4728
  * @public
4480
4729
  */
4481
4730
  RotationDate?: Date | undefined;
4482
4731
  /**
4483
- * <p>Identifies whether the key material rotation was a scheduled <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-enable-disable">automatic rotation</a> or an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-on-demand">on-demand rotation</a>.</p>
4732
+ * <p>Identifies whether the key material rotation was a scheduled <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html">automatic rotation</a> or an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-on-demand.html">on-demand
4733
+ * rotation</a>. This field is not present for the first key material or an imported key material
4734
+ * in <code>PENDING_ROTATION</code> state.</p>
4484
4735
  * @public
4485
4736
  */
4486
4737
  RotationType?: RotationType | undefined;
@@ -4490,7 +4741,10 @@ export interface RotationsListEntry {
4490
4741
  */
4491
4742
  export interface ListKeyRotationsResponse {
4492
4743
  /**
4493
- * <p>A list of completed key material rotations.</p>
4744
+ * <p>A list of completed key material rotations. When the optional input
4745
+ * parameter <code>IncludeKeyMaterial</code> is specified with a value of
4746
+ * <code>ALL_KEY_MATERIAL</code>, this list includes the first key material
4747
+ * and any imported key material pending rotation.</p>
4494
4748
  * @public
4495
4749
  */
4496
4750
  Rotations?: RotationsListEntry[] | undefined;
@@ -4691,7 +4945,8 @@ export interface PutKeyPolicyRequest {
4691
4945
  */
4692
4946
  KeyId: string | undefined;
4693
4947
  /**
4694
- * <p>The name of the key policy. If no policy name is specified, the default value is <code>default</code>. The only valid value is <code>default</code>.</p>
4948
+ * <p>The name of the key policy. If no policy name is specified, the default value is
4949
+ * <code>default</code>. The only valid value is <code>default</code>.</p>
4695
4950
  * @public
4696
4951
  */
4697
4952
  PolicyName?: string | undefined;
@@ -4714,6 +4969,15 @@ export interface PutKeyPolicyRequest {
4714
4969
  * Identity and Access Management User Guide</i>.</p>
4715
4970
  * </li>
4716
4971
  * </ul>
4972
+ * <note>
4973
+ * <p>If either of the required <code>Resource</code> or <code>Action</code>
4974
+ * elements are missing from a key policy statement, the policy statement has
4975
+ * no effect. When a key policy statement is missing one of these elements,
4976
+ * the KMS console correctly reports an error, but the
4977
+ * <code>PutKeyPolicy</code> API request succeeds, even though the policy
4978
+ * statement is ineffective.</p>
4979
+ * <p>For more information on required key policy elements, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html#key-policy-elements">Elements in a key policy</a> in the <i>Key Management Service Developer Guide</i>.</p>
4980
+ * </note>
4717
4981
  * <p>A key policy document can include only the following characters:</p>
4718
4982
  * <ul>
4719
4983
  * <li>
@@ -4726,6 +4990,10 @@ export interface PutKeyPolicyRequest {
4726
4990
  * <p>The tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) special characters</p>
4727
4991
  * </li>
4728
4992
  * </ul>
4993
+ * <note>
4994
+ * <p>If the key policy exceeds the length constraint, KMS returns a
4995
+ * <code>LimitExceededException</code>.</p>
4996
+ * </note>
4729
4997
  * <p>For information about key policies, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">Key policies in KMS</a> in the
4730
4998
  * <i>Key Management Service Developer Guide</i>.For help writing and formatting a JSON policy document, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html">IAM JSON Policy Reference</a> in the <i>
4731
4999
  * <i>Identity and Access Management User Guide</i>
@@ -4763,7 +5031,7 @@ export interface ReEncryptRequest {
4763
5031
  * 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
4764
5032
  * 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>
4765
5033
  * <p>For more information, see
4766
- * <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>
5034
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
4767
5035
  * @public
4768
5036
  */
4769
5037
  SourceEncryptionContext?: Record<string, string> | undefined;
@@ -4842,7 +5110,7 @@ export interface ReEncryptRequest {
4842
5110
  * 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
4843
5111
  * 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>
4844
5112
  * <p>For more information, see
4845
- * <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>
5113
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html">Encryption context</a> in the <i>Key Management Service Developer Guide</i>.</p>
4846
5114
  * @public
4847
5115
  */
4848
5116
  DestinationEncryptionContext?: Record<string, string> | undefined;
@@ -4868,14 +5136,14 @@ export interface ReEncryptRequest {
4868
5136
  DestinationEncryptionAlgorithm?: EncryptionAlgorithmSpec | undefined;
4869
5137
  /**
4870
5138
  * <p>A list of grant tokens.</p>
4871
- * <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
5139
+ * <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/using-grant-token.html">Using a grant token</a> in the
4872
5140
  * <i>Key Management Service Developer Guide</i>.</p>
4873
5141
  * @public
4874
5142
  */
4875
5143
  GrantTokens?: string[] | undefined;
4876
5144
  /**
4877
5145
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
4878
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
5146
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
4879
5147
  * @public
4880
5148
  */
4881
5149
  DryRun?: boolean | undefined;
@@ -4910,6 +5178,18 @@ export interface ReEncryptResponse {
4910
5178
  * @public
4911
5179
  */
4912
5180
  DestinationEncryptionAlgorithm?: EncryptionAlgorithmSpec | undefined;
5181
+ /**
5182
+ * <p>The identifier of the key material used to originally encrypt the data. This field is present only when
5183
+ * the original encryption used a symmetric encryption KMS key.</p>
5184
+ * @public
5185
+ */
5186
+ SourceKeyMaterialId?: string | undefined;
5187
+ /**
5188
+ * <p>The identifier of the key material used to reencrypt the data. This field is present only when
5189
+ * data is reencrypted using a symmetric encryption KMS key.</p>
5190
+ * @public
5191
+ */
5192
+ DestinationKeyMaterialId?: string | undefined;
4913
5193
  }
4914
5194
  /**
4915
5195
  * @public
@@ -4940,12 +5220,6 @@ export interface ReplicateKeyRequest {
4940
5220
  * <p>Enter the Region ID, such as <code>us-east-1</code> or <code>ap-southeast-2</code>. For a
4941
5221
  * 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
4942
5222
  * <i>Amazon Web Services General Reference</i>.</p>
4943
- * <note>
4944
- * <p>HMAC KMS keys are not supported in all Amazon Web Services Regions. If you try to replicate an HMAC
4945
- * KMS key in an Amazon Web Services Region in which HMAC keys are not supported, the
4946
- * <code>ReplicateKey</code> operation returns an <code>UnsupportedOperationException</code>.
4947
- * 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>
4948
- * </note>
4949
5223
  * <p>The replica must be in a different Amazon Web Services Region than its primary key and other replicas of
4950
5224
  * that primary key, but in the same Amazon Web Services partition. KMS must be available in the replica
4951
5225
  * Region. If the Region is not enabled by default, the Amazon Web Services account must be enabled in the
@@ -4958,8 +5232,7 @@ export interface ReplicateKeyRequest {
4958
5232
  ReplicaRegion: string | undefined;
4959
5233
  /**
4960
5234
  * <p>The key policy to attach to the KMS key. This parameter is optional. If you do not provide
4961
- * a key policy, KMS attaches the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default">default key policy</a> to the
4962
- * KMS key.</p>
5235
+ * a key policy, KMS attaches the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html">default key policy</a> to the KMS key.</p>
4963
5236
  * <p>The key policy is not a shared property of multi-Region keys. You can specify the same key
4964
5237
  * policy or a different key policy for each key in a set of related multi-Region keys. KMS
4965
5238
  * does not synchronize this property.</p>
@@ -5044,7 +5317,7 @@ export interface ReplicateKeyRequest {
5044
5317
  * value, KMS replaces the current tag value with the specified one.</p>
5045
5318
  * <p>When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation
5046
5319
  * report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details,
5047
- * see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html">Tagging Keys</a>.</p>
5320
+ * see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html">Tags in KMS</a>.</p>
5048
5321
  * @public
5049
5322
  */
5050
5323
  Tags?: Tag[] | undefined;
@@ -5107,7 +5380,7 @@ export interface RetireGrantRequest {
5107
5380
  GrantId?: string | undefined;
5108
5381
  /**
5109
5382
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
5110
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
5383
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
5111
5384
  * @public
5112
5385
  */
5113
5386
  DryRun?: boolean | undefined;
@@ -5144,7 +5417,7 @@ export interface RevokeGrantRequest {
5144
5417
  GrantId: string | undefined;
5145
5418
  /**
5146
5419
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
5147
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
5420
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
5148
5421
  * @public
5149
5422
  */
5150
5423
  DryRun?: boolean | undefined;
@@ -5154,11 +5427,11 @@ export interface RevokeGrantRequest {
5154
5427
  */
5155
5428
  export interface RotateKeyOnDemandRequest {
5156
5429
  /**
5157
- * <p>Identifies a symmetric encryption KMS key. You cannot perform on-demand rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">asymmetric KMS keys</a>,
5158
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html">HMAC KMS keys</a>,
5159
- * 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 perform
5160
- * on-demand 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>,
5161
- * invoke the on-demand rotation on the primary key.</p>
5430
+ * <p>Identifies a symmetric encryption KMS key. You cannot perform on-demand rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">asymmetric KMS
5431
+ * keys</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html">HMAC KMS
5432
+ * keys</a>, multi-Region 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/key-store-overview.html">custom key store</a>. To perform on-demand
5433
+ * rotation of a set of related <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate">multi-Region keys</a>, invoke
5434
+ * the on-demand rotation on the primary key.</p>
5162
5435
  * <p>Specify the key ID or key ARN of the KMS key.</p>
5163
5436
  * <p>For example:</p>
5164
5437
  * <ul>
@@ -5329,7 +5602,7 @@ export interface SignRequest {
5329
5602
  * <p>Signing algorithms that end in SHA_512 use the SHA_512 hashing algorithm.</p>
5330
5603
  * </li>
5331
5604
  * <li>
5332
- * <p>SM2DSA uses the SM3 hashing algorithm. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification">Offline
5605
+ * <p>SM2DSA uses the SM3 hashing algorithm. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification">Offline
5333
5606
  * verification with SM2 key pairs</a>.</p>
5334
5607
  * </li>
5335
5608
  * </ul>
@@ -5338,7 +5611,7 @@ export interface SignRequest {
5338
5611
  MessageType?: MessageType | undefined;
5339
5612
  /**
5340
5613
  * <p>A list of grant tokens.</p>
5341
- * <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
5614
+ * <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/using-grant-token.html">Using a grant token</a> in the
5342
5615
  * <i>Key Management Service Developer Guide</i>.</p>
5343
5616
  * @public
5344
5617
  */
@@ -5353,7 +5626,7 @@ export interface SignRequest {
5353
5626
  SigningAlgorithm: SigningAlgorithmSpec | undefined;
5354
5627
  /**
5355
5628
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
5356
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
5629
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
5357
5630
  * @public
5358
5631
  */
5359
5632
  DryRun?: boolean | undefined;
@@ -5751,7 +6024,7 @@ export interface VerifyRequest {
5751
6024
  * <p>Signing algorithms that end in SHA_512 use the SHA_512 hashing algorithm.</p>
5752
6025
  * </li>
5753
6026
  * <li>
5754
- * <p>SM2DSA uses the SM3 hashing algorithm. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification">Offline
6027
+ * <p>SM2DSA uses the SM3 hashing algorithm. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification">Offline
5755
6028
  * verification with SM2 key pairs</a>.</p>
5756
6029
  * </li>
5757
6030
  * </ul>
@@ -5771,14 +6044,14 @@ export interface VerifyRequest {
5771
6044
  SigningAlgorithm: SigningAlgorithmSpec | undefined;
5772
6045
  /**
5773
6046
  * <p>A list of grant tokens.</p>
5774
- * <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
6047
+ * <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/using-grant-token.html">Using a grant token</a> in the
5775
6048
  * <i>Key Management Service Developer Guide</i>.</p>
5776
6049
  * @public
5777
6050
  */
5778
6051
  GrantTokens?: string[] | undefined;
5779
6052
  /**
5780
6053
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
5781
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
6054
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
5782
6055
  * @public
5783
6056
  */
5784
6057
  DryRun?: boolean | undefined;
@@ -5844,14 +6117,14 @@ export interface VerifyMacRequest {
5844
6117
  Mac: Uint8Array | undefined;
5845
6118
  /**
5846
6119
  * <p>A list of grant tokens.</p>
5847
- * <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
6120
+ * <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/using-grant-token.html">Using a grant token</a> in the
5848
6121
  * <i>Key Management Service Developer Guide</i>.</p>
5849
6122
  * @public
5850
6123
  */
5851
6124
  GrantTokens?: string[] | undefined;
5852
6125
  /**
5853
6126
  * <p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>
5854
- * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>
6127
+ * <p>To learn more about how to use this parameter, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html">Testing your permissions</a> in the <i>Key Management Service Developer Guide</i>.</p>
5855
6128
  * @public
5856
6129
  */
5857
6130
  DryRun?: boolean | undefined;