aws-sdk-kms 1.71.0 → 1.113.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.
@@ -242,6 +242,21 @@ module Aws::KMS
242
242
  include Aws::Structure
243
243
  end
244
244
 
245
+ # The request was rejected because an automatic rotation of this key is
246
+ # currently in progress or scheduled to begin within the next 20
247
+ # minutes.
248
+ #
249
+ # @!attribute [rw] message
250
+ # @return [String]
251
+ #
252
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ConflictException AWS API Documentation
253
+ #
254
+ class ConflictException < Struct.new(
255
+ :message)
256
+ SENSITIVE = []
257
+ include Aws::Structure
258
+ end
259
+
245
260
  # @!attribute [rw] custom_key_store_id
246
261
  # Enter the key store ID of the custom key store that you want to
247
262
  # connect. To find the ID of a custom key store, use the
@@ -276,7 +291,7 @@ module Aws::KMS
276
291
  #
277
292
  #
278
293
  #
279
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
294
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
280
295
  # @return [String]
281
296
  #
282
297
  # @!attribute [rw] target_key_id
@@ -286,7 +301,7 @@ module Aws::KMS
286
301
  # A valid key ID is required. If you supply a null or empty string
287
302
  # value, this operation returns an error.
288
303
  #
289
- # For help finding the key ID and ARN, see [Finding the Key ID and
304
+ # For help finding the key ID and ARN, see [Find the key ID and key
290
305
  # ARN][2] in the <i> <i>Key Management Service Developer Guide</i>
291
306
  # </i>.
292
307
  #
@@ -304,8 +319,8 @@ module Aws::KMS
304
319
  #
305
320
  #
306
321
  #
307
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
308
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn
322
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key
323
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html
309
324
  # @return [String]
310
325
  #
311
326
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateAliasRequest AWS API Documentation
@@ -372,7 +387,7 @@ module Aws::KMS
372
387
  #
373
388
  #
374
389
  #
375
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser
390
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html#concept-kmsuser
376
391
  # @return [String]
377
392
  #
378
393
  # @!attribute [rw] custom_key_store_type
@@ -418,7 +433,7 @@ module Aws::KMS
418
433
  #
419
434
  # * An external key store with `PUBLIC_ENDPOINT` connectivity cannot
420
435
  # use the same `XksProxyUriEndpoint` value as an external key store
421
- # with `VPC_ENDPOINT_SERVICE` connectivity in the same Amazon Web
436
+ # with `VPC_ENDPOINT_SERVICE` connectivity in this Amazon Web
422
437
  # Services Region.
423
438
  #
424
439
  # * Each external key store with `VPC_ENDPOINT_SERVICE` connectivity
@@ -479,7 +494,7 @@ module Aws::KMS
479
494
  # `RawSecretAccessKey`, a secret key, and `AccessKeyId`, a unique
480
495
  # identifier for the `RawSecretAccessKey`. For character requirements,
481
496
  # see
482
- # [XksProxyAuthenticationCredentialType](kms/latest/APIReference/API_XksProxyAuthenticationCredentialType.html).
497
+ # [XksProxyAuthenticationCredentialType](API_XksProxyAuthenticationCredentialType.html).
483
498
  #
484
499
  # KMS uses this authentication credential to sign requests to the
485
500
  # external key store proxy on your behalf. This credential is
@@ -520,7 +535,7 @@ module Aws::KMS
520
535
  #
521
536
  #
522
537
  #
523
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/plan-xks-keystore.html#choose-xks-connectivity
538
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/choose-xks-connectivity.html
524
539
  # @return [String]
525
540
  #
526
541
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateCustomKeyStoreRequest AWS API Documentation
@@ -606,7 +621,7 @@ module Aws::KMS
606
621
  #
607
622
  # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
608
623
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns
609
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete
624
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-delete.html
610
625
  # @return [String]
611
626
  #
612
627
  # @!attribute [rw] operations
@@ -679,7 +694,7 @@ module Aws::KMS
679
694
  #
680
695
  #
681
696
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
682
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
697
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
683
698
  # @return [Array<String>]
684
699
  #
685
700
  # @!attribute [rw] name
@@ -707,12 +722,12 @@ module Aws::KMS
707
722
  # Checks if your request will succeed. `DryRun` is an optional
708
723
  # parameter.
709
724
  #
710
- # To learn more about how to use this parameter, see [Testing your KMS
711
- # API calls][1] in the *Key Management Service Developer Guide*.
725
+ # To learn more about how to use this parameter, see [Testing your
726
+ # permissions][1] in the *Key Management Service Developer Guide*.
712
727
  #
713
728
  #
714
729
  #
715
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
730
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
716
731
  # @return [Boolean]
717
732
  #
718
733
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateGrantRequest AWS API Documentation
@@ -741,7 +756,7 @@ module Aws::KMS
741
756
  #
742
757
  #
743
758
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
744
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
759
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
745
760
  # @return [String]
746
761
  #
747
762
  # @!attribute [rw] grant_id
@@ -781,22 +796,38 @@ module Aws::KMS
781
796
  # that I make are not always immediately visible][2] in the *Amazon
782
797
  # Web Services Identity and Access Management User Guide*.
783
798
  #
799
+ # <note markdown="1"> If either of the required `Resource` or `Action` elements are
800
+ # missing from a key policy statement, the policy statement has no
801
+ # effect. When a key policy statement is missing one of these
802
+ # elements, the KMS console correctly reports an error, but the
803
+ # `CreateKey` and `PutKeyPolicy` API requests succeed, even though the
804
+ # policy statement is ineffective.
805
+ #
806
+ # For more information on required key policy elements, see [Elements
807
+ # in a key policy][3] in the *Key Management Service Developer Guide*.
808
+ #
809
+ # </note>
810
+ #
784
811
  # If you do not provide a key policy, KMS attaches a default key
785
812
  # policy to the KMS key. For more information, see [Default key
786
- # policy][3] in the *Key Management Service Developer Guide*.
813
+ # policy][4] in the *Key Management Service Developer Guide*.
787
814
  #
788
- # The key policy size quota is 32 kilobytes (32768 bytes).
815
+ # <note markdown="1"> If the key policy exceeds the length constraint, KMS returns a
816
+ # `LimitExceededException`.
817
+ #
818
+ # </note>
789
819
  #
790
820
  # For help writing and formatting a JSON policy document, see the [IAM
791
- # JSON Policy Reference][4] in the <i> <i>Identity and Access
821
+ # JSON Policy Reference][5] in the <i> <i>Identity and Access
792
822
  # Management User Guide</i> </i>.
793
823
  #
794
824
  #
795
825
  #
796
826
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
797
827
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
798
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
799
- # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
828
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html#key-policy-elements
829
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html
830
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
800
831
  # @return [String]
801
832
  #
802
833
  # @!attribute [rw] description
@@ -816,8 +847,11 @@ module Aws::KMS
816
847
  # Determines the [cryptographic operations][1] for which you can use
817
848
  # the KMS key. The default value is `ENCRYPT_DECRYPT`. This parameter
818
849
  # is optional when you are creating a symmetric encryption KMS key;
819
- # otherwise, it is required. You can't change the `KeyUsage` value
820
- # after the KMS key is created.
850
+ # otherwise, it is required. You can't change the [ `KeyUsage` ][2]
851
+ # value after the KMS key is created. Each KMS key can have only one
852
+ # key usage. This follows key usage best practices according to [NIST
853
+ # SP 800-57 Recommendations for Key Management][3], section 5.2, Key
854
+ # usage.
821
855
  #
822
856
  # Select only one valid value.
823
857
  #
@@ -826,18 +860,26 @@ module Aws::KMS
826
860
  #
827
861
  # * For HMAC KMS keys (symmetric), specify `GENERATE_VERIFY_MAC`.
828
862
  #
829
- # * For asymmetric KMS keys with RSA key material, specify
863
+ # * For asymmetric KMS keys with RSA key pairs, specify
830
864
  # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
831
865
  #
832
- # * For asymmetric KMS keys with ECC key material, specify
866
+ # * For asymmetric KMS keys with NIST-recommended elliptic curve key
867
+ # pairs, specify `SIGN_VERIFY` or `KEY_AGREEMENT`.
868
+ #
869
+ # * For asymmetric KMS keys with `ECC_SECG_P256K1` key pairs, specify
833
870
  # `SIGN_VERIFY`.
834
871
  #
835
- # * For asymmetric KMS keys with SM2 key material (China Regions
836
- # only), specify `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
872
+ # * For asymmetric KMS keys with ML-DSA key pairs, specify
873
+ # `SIGN_VERIFY`.
874
+ #
875
+ # * For asymmetric KMS keys with SM2 key pairs (China Regions only),
876
+ # specify `ENCRYPT_DECRYPT`, `SIGN_VERIFY`, or `KEY_AGREEMENT`.
837
877
  #
838
878
  #
839
879
  #
840
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
880
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
881
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#key-usage
882
+ # [3]: https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final
841
883
  # @return [String]
842
884
  #
843
885
  # @!attribute [rw] customer_master_key_spec
@@ -854,8 +896,8 @@ module Aws::KMS
854
896
  # `SYMMETRIC_DEFAULT`, creates a KMS key with a 256-bit AES-GCM key
855
897
  # that is used for encryption and decryption, except in China Regions,
856
898
  # where it creates a 128-bit symmetric key that uses SM4 encryption.
857
- # For help choosing a key spec for your KMS key, see [Choosing a KMS
858
- # key type][1] in the <i> <i>Key Management Service Developer
899
+ # For a detailed description of all supported key specs, see [Key spec
900
+ # reference][1] in the <i> <i>Key Management Service Developer
859
901
  # Guide</i> </i>.
860
902
  #
861
903
  # The `KeySpec` determines whether the KMS key contains a symmetric
@@ -864,10 +906,11 @@ module Aws::KMS
864
906
  # KMS key is created. To further restrict the algorithms that can be
865
907
  # used with the KMS key, use a condition key in its key policy or IAM
866
908
  # policy. For more information, see [kms:EncryptionAlgorithm][2],
867
- # [kms:MacAlgorithm][3] or [kms:Signing Algorithm][4] in the <i>
868
- # <i>Key Management Service Developer Guide</i> </i>.
909
+ # [kms:MacAlgorithm][3], [kms:KeyAgreementAlgorithm][4], or
910
+ # [kms:SigningAlgorithm][5] in the <i> <i>Key Management Service
911
+ # Developer Guide</i> </i>.
869
912
  #
870
- # [Amazon Web Services services that are integrated with KMS][5] use
913
+ # [Amazon Web Services services that are integrated with KMS][6] use
871
914
  # symmetric encryption KMS keys to protect your data. These services
872
915
  # do not support asymmetric KMS keys or HMAC KMS keys.
873
916
  #
@@ -878,7 +921,6 @@ module Aws::KMS
878
921
  # * `SYMMETRIC_DEFAULT`
879
922
  #
880
923
  # ^
881
- #
882
924
  # * HMAC keys (symmetric)
883
925
  #
884
926
  # * `HMAC_224`
@@ -888,43 +930,51 @@ module Aws::KMS
888
930
  # * `HMAC_384`
889
931
  #
890
932
  # * `HMAC_512`
891
- #
892
- # * Asymmetric RSA key pairs
933
+ # * Asymmetric RSA key pairs (encryption and decryption -or- signing
934
+ # and verification)
893
935
  #
894
936
  # * `RSA_2048`
895
937
  #
896
938
  # * `RSA_3072`
897
939
  #
898
940
  # * `RSA_4096`
899
- #
900
- # * Asymmetric NIST-recommended elliptic curve key pairs
941
+ # * Asymmetric NIST-recommended elliptic curve key pairs (signing and
942
+ # verification -or- deriving shared secrets)
901
943
  #
902
944
  # * `ECC_NIST_P256` (secp256r1)
903
945
  #
904
946
  # * `ECC_NIST_P384` (secp384r1)
905
947
  #
906
948
  # * `ECC_NIST_P521` (secp521r1)
907
- #
908
- # * Other asymmetric elliptic curve key pairs
949
+ # * Other asymmetric elliptic curve key pairs (signing and
950
+ # verification)
909
951
  #
910
952
  # * `ECC_SECG_P256K1` (secp256k1), commonly used for
911
953
  # cryptocurrencies.
912
954
  #
913
955
  # ^
956
+ # * Asymmetric ML-DSA key pairs (signing and verification)
914
957
  #
915
- # * SM2 key pairs (China Regions only)
958
+ # * `ML_DSA_44`
916
959
  #
917
- # * `SM2`
960
+ # * `ML_DSA_65`
961
+ #
962
+ # * `ML_DSA_87`
963
+ # * SM2 key pairs (encryption and decryption -or- signing and
964
+ # verification -or- deriving shared secrets)
965
+ #
966
+ # * `SM2` (China Regions only)
918
967
  #
919
968
  # ^
920
969
  #
921
970
  #
922
971
  #
923
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-types.html#symm-asymm-choose
924
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm
925
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-mac-algorithm
926
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm
927
- # [5]: http://aws.amazon.com/kms/features/#AWS_Service_Integration
972
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html
973
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-encryption-algorithm
974
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-mac-algorithm
975
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-key-agreement-algorithm
976
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-signing-algorithm
977
+ # [6]: http://aws.amazon.com/kms/features/#AWS_Service_Integration
928
978
  # @return [String]
929
979
  #
930
980
  # @!attribute [rw] origin
@@ -977,7 +1027,7 @@ module Aws::KMS
977
1027
  #
978
1028
  #
979
1029
  #
980
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1030
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
981
1031
  # @return [String]
982
1032
  #
983
1033
  # @!attribute [rw] bypass_policy_lockout_safety_check
@@ -992,12 +1042,13 @@ module Aws::KMS
992
1042
  # Management Service Developer Guide*.
993
1043
  #
994
1044
  # Use this parameter only when you intend to prevent the principal
995
- # that is making the request from making a subsequent PutKeyPolicy
996
- # request on the KMS key.
1045
+ # that is making the request from making a subsequent
1046
+ # [PutKeyPolicy][2] request on the KMS key.
997
1047
  #
998
1048
  #
999
1049
  #
1000
1050
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
1051
+ # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html
1001
1052
  # @return [Boolean]
1002
1053
  #
1003
1054
  # @!attribute [rw] tags
@@ -1027,7 +1078,7 @@ module Aws::KMS
1027
1078
  # When you add tags to an Amazon Web Services resource, Amazon Web
1028
1079
  # Services generates a cost allocation report with usage and costs
1029
1080
  # aggregated by tags. Tags can also be used to control access to a KMS
1030
- # key. For details, see [Tagging Keys][3].
1081
+ # key. For details, see [Tags in KMS][3].
1031
1082
  #
1032
1083
  #
1033
1084
  #
@@ -1100,7 +1151,7 @@ module Aws::KMS
1100
1151
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key
1101
1152
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html
1102
1153
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-xks-proxy
1103
- # [4]: https://docs.aws.amazon.com/create-xks-keys.html#xks-key-requirements
1154
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html#xks-key-requirements
1104
1155
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-double-encryption
1105
1156
  # @return [String]
1106
1157
  #
@@ -1429,7 +1480,6 @@ module Aws::KMS
1429
1480
  #
1430
1481
  # * The [TLS certificate][6] specifies the private DNS hostname at
1431
1482
  # which the endpoint is reachable.
1432
- #
1433
1483
  # * `XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND` — KMS can't find the VPC
1434
1484
  # endpoint service that it uses to communicate with the external key
1435
1485
  # store proxy. Verify that the `XksProxyVpcEndpointServiceName` is
@@ -1509,8 +1559,8 @@ module Aws::KMS
1509
1559
  #
1510
1560
  #
1511
1561
  #
1512
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1513
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
1562
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
1563
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
1514
1564
  # @return [Hash<String,String>]
1515
1565
  #
1516
1566
  # @!attribute [rw] grant_tokens
@@ -1524,7 +1574,7 @@ module Aws::KMS
1524
1574
  #
1525
1575
  #
1526
1576
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1527
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
1577
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
1528
1578
  # @return [Array<String>]
1529
1579
  #
1530
1580
  # @!attribute [rw] key_id
@@ -1575,42 +1625,44 @@ module Aws::KMS
1575
1625
  #
1576
1626
  # @!attribute [rw] recipient
1577
1627
  # A signed [attestation document][1] from an Amazon Web Services Nitro
1578
- # enclave and the encryption algorithm to use with the enclave's
1579
- # public key. The only valid encryption algorithm is
1580
- # `RSAES_OAEP_SHA_256`.
1628
+ # enclave or NitroTPM, and the encryption algorithm to use with the
1629
+ # public key in the attestation document. The only valid encryption
1630
+ # algorithm is `RSAES_OAEP_SHA_256`.
1581
1631
  #
1582
- # This parameter only supports attestation documents for Amazon Web
1583
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
1584
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
1632
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
1633
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
1634
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
1635
+ # Services NitroTPM.
1585
1636
  #
1586
1637
  # When you use this parameter, instead of returning the plaintext
1587
1638
  # data, KMS encrypts the plaintext data with the public key in the
1588
1639
  # attestation document, and returns the resulting ciphertext in the
1589
1640
  # `CiphertextForRecipient` field in the response. This ciphertext can
1590
- # be decrypted only with the private key in the enclave. The
1591
- # `Plaintext` field in the response is null or empty.
1641
+ # be decrypted only with the private key in the attested environment.
1642
+ # The `Plaintext` field in the response is null or empty.
1592
1643
  #
1593
1644
  # For information about the interaction between KMS and Amazon Web
1594
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
1595
- # uses KMS][3] in the *Key Management Service Developer Guide*.
1645
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
1646
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
1647
+ # Service Developer Guide*.
1596
1648
  #
1597
1649
  #
1598
1650
  #
1599
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
1651
+ # [1]: https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-concepts.html#term-attestdoc
1600
1652
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
1601
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
1653
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
1602
1654
  # @return [Types::RecipientInfo]
1603
1655
  #
1604
1656
  # @!attribute [rw] dry_run
1605
1657
  # Checks if your request will succeed. `DryRun` is an optional
1606
1658
  # parameter.
1607
1659
  #
1608
- # To learn more about how to use this parameter, see [Testing your KMS
1609
- # API calls][1] in the *Key Management Service Developer Guide*.
1660
+ # To learn more about how to use this parameter, see [Testing your
1661
+ # permissions][1] in the *Key Management Service Developer Guide*.
1610
1662
  #
1611
1663
  #
1612
1664
  #
1613
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
1665
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
1614
1666
  # @return [Boolean]
1615
1667
  #
1616
1668
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptRequest AWS API Documentation
@@ -1650,19 +1702,28 @@ module Aws::KMS
1650
1702
  # @return [String]
1651
1703
  #
1652
1704
  # @!attribute [rw] ciphertext_for_recipient
1653
- # The plaintext data encrypted with the public key in the attestation
1654
- # document.
1705
+ # The plaintext data encrypted with the public key from the
1706
+ # attestation document. This ciphertext can be decrypted only by using
1707
+ # a private key from the attested environment.
1655
1708
  #
1656
1709
  # This field is included in the response only when the `Recipient`
1657
1710
  # parameter in the request includes a valid attestation document from
1658
- # an Amazon Web Services Nitro enclave. For information about the
1659
- # interaction between KMS and Amazon Web Services Nitro Enclaves, see
1660
- # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
1661
- # Management Service Developer Guide*.
1711
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
1712
+ # about the interaction between KMS and Amazon Web Services Nitro
1713
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
1714
+ # attestation support in KMS][1] in the *Key Management Service
1715
+ # Developer Guide*.
1716
+ #
1662
1717
  #
1663
1718
  #
1719
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
1720
+ # @return [String]
1664
1721
  #
1665
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
1722
+ # @!attribute [rw] key_material_id
1723
+ # The identifier of the key material used to decrypt the ciphertext.
1724
+ # This field is present only when the operation uses a symmetric
1725
+ # encryption KMS key. This field is omitted if the request includes
1726
+ # the `Recipient` parameter.
1666
1727
  # @return [String]
1667
1728
  #
1668
1729
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptResponse AWS API Documentation
@@ -1671,7 +1732,8 @@ module Aws::KMS
1671
1732
  :key_id,
1672
1733
  :plaintext,
1673
1734
  :encryption_algorithm,
1674
- :ciphertext_for_recipient)
1735
+ :ciphertext_for_recipient,
1736
+ :key_material_id)
1675
1737
  SENSITIVE = [:plaintext]
1676
1738
  include Aws::Structure
1677
1739
  end
@@ -1723,10 +1785,43 @@ module Aws::KMS
1723
1785
  # DescribeKey.
1724
1786
  # @return [String]
1725
1787
  #
1788
+ # @!attribute [rw] key_material_id
1789
+ # Identifies the imported key material you are deleting.
1790
+ #
1791
+ # If no KeyMaterialId is specified, KMS deletes the current key
1792
+ # material.
1793
+ #
1794
+ # To get the list of key material IDs associated with a KMS key, use
1795
+ # ListKeyRotations.
1796
+ # @return [String]
1797
+ #
1726
1798
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterialRequest AWS API Documentation
1727
1799
  #
1728
1800
  class DeleteImportedKeyMaterialRequest < Struct.new(
1729
- :key_id)
1801
+ :key_id,
1802
+ :key_material_id)
1803
+ SENSITIVE = []
1804
+ include Aws::Structure
1805
+ end
1806
+
1807
+ # @!attribute [rw] key_id
1808
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key from which
1809
+ # the key material was deleted.
1810
+ #
1811
+ #
1812
+ #
1813
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
1814
+ # @return [String]
1815
+ #
1816
+ # @!attribute [rw] key_material_id
1817
+ # Identifies the deleted key material.
1818
+ # @return [String]
1819
+ #
1820
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterialResponse AWS API Documentation
1821
+ #
1822
+ class DeleteImportedKeyMaterialResponse < Struct.new(
1823
+ :key_id,
1824
+ :key_material_id)
1730
1825
  SENSITIVE = []
1731
1826
  include Aws::Structure
1732
1827
  end
@@ -1745,6 +1840,201 @@ module Aws::KMS
1745
1840
  include Aws::Structure
1746
1841
  end
1747
1842
 
1843
+ # @!attribute [rw] key_id
1844
+ # Identifies an asymmetric NIST-recommended ECC or SM2 (China Regions
1845
+ # only) KMS key. KMS uses the private key in the specified key pair to
1846
+ # derive the shared secret. The key usage of the KMS key must be
1847
+ # `KEY_AGREEMENT`. To find the `KeyUsage` of a KMS key, use the
1848
+ # DescribeKey operation.
1849
+ #
1850
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
1851
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
1852
+ # a KMS key in a different Amazon Web Services account, you must use
1853
+ # the key ARN or alias ARN.
1854
+ #
1855
+ # For example:
1856
+ #
1857
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
1858
+ #
1859
+ # * Key ARN:
1860
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
1861
+ #
1862
+ # * Alias name: `alias/ExampleAlias`
1863
+ #
1864
+ # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
1865
+ #
1866
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1867
+ # DescribeKey. To get the alias name and alias ARN, use ListAliases.
1868
+ # @return [String]
1869
+ #
1870
+ # @!attribute [rw] key_agreement_algorithm
1871
+ # Specifies the key agreement algorithm used to derive the shared
1872
+ # secret. The only valid value is `ECDH`.
1873
+ # @return [String]
1874
+ #
1875
+ # @!attribute [rw] public_key
1876
+ # Specifies the public key in your peer's NIST-recommended elliptic
1877
+ # curve (ECC) or SM2 (China Regions only) key pair.
1878
+ #
1879
+ # The public key must be a DER-encoded X.509 public key, also known as
1880
+ # `SubjectPublicKeyInfo` (SPKI), as defined in [RFC 5280][1].
1881
+ #
1882
+ # GetPublicKey returns the public key of an asymmetric KMS key pair in
1883
+ # the required DER-encoded format.
1884
+ #
1885
+ # <note markdown="1"> If you use [Amazon Web Services CLI version 1][2], you must provide
1886
+ # the DER-encoded X.509 public key in a file. Otherwise, the Amazon
1887
+ # Web Services CLI Base64-encodes the public key a second time,
1888
+ # resulting in a `ValidationException`.
1889
+ #
1890
+ # </note>
1891
+ #
1892
+ # You can specify the public key as binary data in a file using fileb
1893
+ # (`fileb://<path-to-file>`) or in-line using a Base64 encoded string.
1894
+ #
1895
+ #
1896
+ #
1897
+ # [1]: https://tools.ietf.org/html/rfc5280
1898
+ # [2]: https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html
1899
+ # @return [String]
1900
+ #
1901
+ # @!attribute [rw] grant_tokens
1902
+ # A list of grant tokens.
1903
+ #
1904
+ # Use a grant token when your permission to call this operation comes
1905
+ # from a new grant that has not yet achieved *eventual consistency*.
1906
+ # For more information, see [Grant token][1] and [Using a grant
1907
+ # token][2] in the *Key Management Service Developer Guide*.
1908
+ #
1909
+ #
1910
+ #
1911
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1912
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
1913
+ # @return [Array<String>]
1914
+ #
1915
+ # @!attribute [rw] dry_run
1916
+ # Checks if your request will succeed. `DryRun` is an optional
1917
+ # parameter.
1918
+ #
1919
+ # To learn more about how to use this parameter, see [Testing your
1920
+ # permissions][1] in the *Key Management Service Developer Guide*.
1921
+ #
1922
+ #
1923
+ #
1924
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
1925
+ # @return [Boolean]
1926
+ #
1927
+ # @!attribute [rw] recipient
1928
+ # A signed [attestation document][1] from an Amazon Web Services Nitro
1929
+ # enclave or NitroTPM, and the encryption algorithm to use with the
1930
+ # public key in the attestation document. The only valid encryption
1931
+ # algorithm is `RSAES_OAEP_SHA_256`.
1932
+ #
1933
+ # This parameter only supports attestation documents for Amazon Web
1934
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM. To call
1935
+ # DeriveSharedSecret generate an attestation document use either
1936
+ # [Amazon Web Services Nitro Enclaves SDK][2] for an Amazon Web
1937
+ # Services Nitro Enclaves or [Amazon Web Services NitroTPM tools][3]
1938
+ # for Amazon Web Services NitroTPM. Then use the Recipient parameter
1939
+ # from any Amazon Web Services SDK to provide the attestation document
1940
+ # for the attested environment.
1941
+ #
1942
+ # When you use this parameter, instead of returning a plaintext copy
1943
+ # of the shared secret, KMS encrypts the plaintext shared secret under
1944
+ # the public key in the attestation document, and returns the
1945
+ # resulting ciphertext in the `CiphertextForRecipient` field in the
1946
+ # response. This ciphertext can be decrypted only with the private key
1947
+ # in the attested environment. The `CiphertextBlob` field in the
1948
+ # response contains the encrypted shared secret derived from the KMS
1949
+ # key specified by the `KeyId` parameter and public key specified by
1950
+ # the `PublicKey` parameter. The `SharedSecret` field in the response
1951
+ # is null or empty.
1952
+ #
1953
+ # For information about the interaction between KMS and Amazon Web
1954
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
1955
+ # [Cryptographic attestation support in KMS][4] in the *Key Management
1956
+ # Service Developer Guide*.
1957
+ #
1958
+ #
1959
+ #
1960
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
1961
+ # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
1962
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attestation-get-doc.html
1963
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
1964
+ # @return [Types::RecipientInfo]
1965
+ #
1966
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeriveSharedSecretRequest AWS API Documentation
1967
+ #
1968
+ class DeriveSharedSecretRequest < Struct.new(
1969
+ :key_id,
1970
+ :key_agreement_algorithm,
1971
+ :public_key,
1972
+ :grant_tokens,
1973
+ :dry_run,
1974
+ :recipient)
1975
+ SENSITIVE = []
1976
+ include Aws::Structure
1977
+ end
1978
+
1979
+ # @!attribute [rw] key_id
1980
+ # Identifies the KMS key used to derive the shared secret.
1981
+ # @return [String]
1982
+ #
1983
+ # @!attribute [rw] shared_secret
1984
+ # The raw secret derived from the specified key agreement algorithm,
1985
+ # private key in the asymmetric KMS key, and your peer's public key.
1986
+ #
1987
+ # If the response includes the `CiphertextForRecipient` field, the
1988
+ # `SharedSecret` field is null or empty.
1989
+ # @return [String]
1990
+ #
1991
+ # @!attribute [rw] ciphertext_for_recipient
1992
+ # The plaintext shared secret encrypted with the public key from the
1993
+ # attestation document. This ciphertext can be decrypted only by using
1994
+ # a private key from the attested environment.
1995
+ #
1996
+ # This field is included in the response only when the `Recipient`
1997
+ # parameter in the request includes a valid attestation document from
1998
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
1999
+ # about the interaction between KMS and Amazon Web Services Nitro
2000
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
2001
+ # attestation support in KMS][1] in the *Key Management Service
2002
+ # Developer Guide*.
2003
+ #
2004
+ #
2005
+ #
2006
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2007
+ # @return [String]
2008
+ #
2009
+ # @!attribute [rw] key_agreement_algorithm
2010
+ # Identifies the key agreement algorithm used to derive the shared
2011
+ # secret.
2012
+ # @return [String]
2013
+ #
2014
+ # @!attribute [rw] key_origin
2015
+ # The source of the key material for the specified KMS key.
2016
+ #
2017
+ # When this value is `AWS_KMS`, KMS created the key material. When
2018
+ # this value is `EXTERNAL`, the key material was imported or the KMS
2019
+ # key doesn't have any key material.
2020
+ #
2021
+ # The only valid values for DeriveSharedSecret are `AWS_KMS` and
2022
+ # `EXTERNAL`. DeriveSharedSecret does not support KMS keys with a
2023
+ # `KeyOrigin` value of `AWS_CLOUDHSM` or `EXTERNAL_KEY_STORE`.
2024
+ # @return [String]
2025
+ #
2026
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeriveSharedSecretResponse AWS API Documentation
2027
+ #
2028
+ class DeriveSharedSecretResponse < Struct.new(
2029
+ :key_id,
2030
+ :shared_secret,
2031
+ :ciphertext_for_recipient,
2032
+ :key_agreement_algorithm,
2033
+ :key_origin)
2034
+ SENSITIVE = [:shared_secret]
2035
+ include Aws::Structure
2036
+ end
2037
+
1748
2038
  # @!attribute [rw] custom_key_store_id
1749
2039
  # Gets only information about the specified custom key store. Enter
1750
2040
  # the key store ID.
@@ -1800,8 +2090,8 @@ module Aws::KMS
1800
2090
  # @!attribute [rw] truncated
1801
2091
  # A flag that indicates whether there are more items in the list. When
1802
2092
  # this value is true, the list in this response is truncated. To get
1803
- # more items, pass the value of the `NextMarker` element in
1804
- # thisresponse to the `Marker` parameter in a subsequent request.
2093
+ # more items, pass the value of the `NextMarker` element in this
2094
+ # response to the `Marker` parameter in a subsequent request.
1805
2095
  # @return [Boolean]
1806
2096
  #
1807
2097
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeCustomKeyStoresResponse AWS API Documentation
@@ -1843,7 +2133,7 @@ module Aws::KMS
1843
2133
  #
1844
2134
  #
1845
2135
  #
1846
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html##aws-managed-cmk
2136
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
1847
2137
  # @return [String]
1848
2138
  #
1849
2139
  # @!attribute [rw] grant_tokens
@@ -1857,7 +2147,7 @@ module Aws::KMS
1857
2147
  #
1858
2148
  #
1859
2149
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1860
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2150
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
1861
2151
  # @return [Array<String>]
1862
2152
  #
1863
2153
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKeyRequest AWS API Documentation
@@ -1928,7 +2218,7 @@ module Aws::KMS
1928
2218
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks
1929
2219
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
1930
2220
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
1931
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
2221
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
1932
2222
  # @return [String]
1933
2223
  #
1934
2224
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKeyRotationRequest AWS API Documentation
@@ -2031,14 +2321,35 @@ module Aws::KMS
2031
2321
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
2032
2322
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
2033
2323
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
2034
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
2035
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
2324
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
2325
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
2036
2326
  # @return [String]
2037
2327
  #
2328
+ # @!attribute [rw] rotation_period_in_days
2329
+ # Use this parameter to specify a custom period of time between each
2330
+ # rotation date. If no value is specified, the default value is 365
2331
+ # days.
2332
+ #
2333
+ # The rotation period defines the number of days after you enable
2334
+ # automatic key rotation that KMS will rotate your key material, and
2335
+ # the number of days between each automatic rotation thereafter.
2336
+ #
2337
+ # You can use the [ `kms:RotationPeriodInDays` ][1] condition key to
2338
+ # further constrain the values that principals can specify in the
2339
+ # `RotationPeriodInDays` parameter.
2340
+ #
2341
+ #
2342
+ #
2343
+ #
2344
+ #
2345
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-rotation-period-in-days
2346
+ # @return [Integer]
2347
+ #
2038
2348
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRotationRequest AWS API Documentation
2039
2349
  #
2040
2350
  class EnableKeyRotationRequest < Struct.new(
2041
- :key_id)
2351
+ :key_id,
2352
+ :rotation_period_in_days)
2042
2353
  SENSITIVE = []
2043
2354
  include Aws::Structure
2044
2355
  end
@@ -2097,8 +2408,8 @@ module Aws::KMS
2097
2408
  #
2098
2409
  #
2099
2410
  #
2100
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2101
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2411
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
2412
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2102
2413
  # @return [Hash<String,String>]
2103
2414
  #
2104
2415
  # @!attribute [rw] grant_tokens
@@ -2112,7 +2423,7 @@ module Aws::KMS
2112
2423
  #
2113
2424
  #
2114
2425
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2115
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2426
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2116
2427
  # @return [Array<String>]
2117
2428
  #
2118
2429
  # @!attribute [rw] encryption_algorithm
@@ -2132,12 +2443,12 @@ module Aws::KMS
2132
2443
  # Checks if your request will succeed. `DryRun` is an optional
2133
2444
  # parameter.
2134
2445
  #
2135
- # To learn more about how to use this parameter, see [Testing your KMS
2136
- # API calls][1] in the *Key Management Service Developer Guide*.
2446
+ # To learn more about how to use this parameter, see [Testing your
2447
+ # permissions][1] in the *Key Management Service Developer Guide*.
2137
2448
  #
2138
2449
  #
2139
2450
  #
2140
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
2451
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2141
2452
  # @return [Boolean]
2142
2453
  #
2143
2454
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EncryptRequest AWS API Documentation
@@ -2220,7 +2531,7 @@ module Aws::KMS
2220
2531
  #
2221
2532
  #
2222
2533
  #
2223
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2534
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2224
2535
  # @return [Hash<String,String>]
2225
2536
  #
2226
2537
  # @!attribute [rw] key_id
@@ -2254,9 +2565,11 @@ module Aws::KMS
2254
2565
  #
2255
2566
  # The KMS rule that restricts the use of asymmetric RSA and SM2 KMS
2256
2567
  # keys to encrypt and decrypt or to sign and verify (but not both),
2257
- # and the rule that permits you to use ECC KMS keys only to sign and
2258
- # verify, are not effective on data key pairs, which are used outside
2259
- # of KMS. The SM2 key spec is only available in China Regions.
2568
+ # the rule that permits you to use ECC KMS keys only to sign and
2569
+ # verify, and the rule that permits you to use ML-DSA key pairs to
2570
+ # sign and verify only are not effective on data key pairs, which are
2571
+ # used outside of KMS. The SM2 key spec is only available in China
2572
+ # Regions.
2260
2573
  # @return [String]
2261
2574
  #
2262
2575
  # @!attribute [rw] grant_tokens
@@ -2270,50 +2583,57 @@ module Aws::KMS
2270
2583
  #
2271
2584
  #
2272
2585
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2273
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2586
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2274
2587
  # @return [Array<String>]
2275
2588
  #
2276
2589
  # @!attribute [rw] recipient
2277
2590
  # A signed [attestation document][1] from an Amazon Web Services Nitro
2278
- # enclave and the encryption algorithm to use with the enclave's
2279
- # public key. The only valid encryption algorithm is
2280
- # `RSAES_OAEP_SHA_256`.
2591
+ # enclave or NitroTPM, and the encryption algorithm to use with the
2592
+ # public key in the attestation document. The only valid encryption
2593
+ # algorithm is `RSAES_OAEP_SHA_256`.
2281
2594
  #
2282
2595
  # This parameter only supports attestation documents for Amazon Web
2283
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
2284
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
2596
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM. To call
2597
+ # GenerateDataKeyPair generate an attestation document use either
2598
+ # [Amazon Web Services Nitro Enclaves SDK][2] for an Amazon Web
2599
+ # Services Nitro Enclaves or [Amazon Web Services NitroTPM tools][3]
2600
+ # for Amazon Web Services NitroTPM. Then use the Recipient parameter
2601
+ # from any Amazon Web Services SDK to provide the attestation document
2602
+ # for the attested environment.
2285
2603
  #
2286
2604
  # When you use this parameter, instead of returning a plaintext copy
2287
2605
  # of the private data key, KMS encrypts the plaintext private data key
2288
2606
  # under the public key in the attestation document, and returns the
2289
2607
  # resulting ciphertext in the `CiphertextForRecipient` field in the
2290
2608
  # response. This ciphertext can be decrypted only with the private key
2291
- # in the enclave. The `CiphertextBlob` field in the response contains
2292
- # a copy of the private data key encrypted under the KMS key specified
2293
- # by the `KeyId` parameter. The `PrivateKeyPlaintext` field in the
2294
- # response is null or empty.
2609
+ # in the attested environment. The `CiphertextBlob` field in the
2610
+ # response contains a copy of the private data key encrypted under the
2611
+ # KMS key specified by the `KeyId` parameter. The
2612
+ # `PrivateKeyPlaintext` field in the response is null or empty.
2295
2613
  #
2296
2614
  # For information about the interaction between KMS and Amazon Web
2297
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
2298
- # uses KMS][3] in the *Key Management Service Developer Guide*.
2615
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
2616
+ # [Cryptographic attestation support in KMS][4] in the *Key Management
2617
+ # Service Developer Guide*.
2299
2618
  #
2300
2619
  #
2301
2620
  #
2302
2621
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
2303
2622
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2304
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2623
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attestation-get-doc.html
2624
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2305
2625
  # @return [Types::RecipientInfo]
2306
2626
  #
2307
2627
  # @!attribute [rw] dry_run
2308
2628
  # Checks if your request will succeed. `DryRun` is an optional
2309
2629
  # parameter.
2310
2630
  #
2311
- # To learn more about how to use this parameter, see [Testing your KMS
2312
- # API calls][1] in the *Key Management Service Developer Guide*.
2631
+ # To learn more about how to use this parameter, see [Testing your
2632
+ # permissions][1] in the *Key Management Service Developer Guide*.
2313
2633
  #
2314
2634
  #
2315
2635
  #
2316
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
2636
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2317
2637
  # @return [Boolean]
2318
2638
  #
2319
2639
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairRequest AWS API Documentation
@@ -2365,19 +2685,24 @@ module Aws::KMS
2365
2685
  #
2366
2686
  # @!attribute [rw] ciphertext_for_recipient
2367
2687
  # The plaintext private data key encrypted with the public key from
2368
- # the Nitro enclave. This ciphertext can be decrypted only by using a
2369
- # private key in the Nitro enclave.
2688
+ # the attestation document. This ciphertext can be decrypted only by
2689
+ # using a private key from the attested environment.
2370
2690
  #
2371
2691
  # This field is included in the response only when the `Recipient`
2372
2692
  # parameter in the request includes a valid attestation document from
2373
- # an Amazon Web Services Nitro enclave. For information about the
2374
- # interaction between KMS and Amazon Web Services Nitro Enclaves, see
2375
- # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
2376
- # Management Service Developer Guide*.
2693
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
2694
+ # about the interaction between KMS and Amazon Web Services Nitro
2695
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
2696
+ # attestation support in KMS][1] in the *Key Management Service
2697
+ # Developer Guide*.
2698
+ #
2377
2699
  #
2378
2700
  #
2701
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2702
+ # @return [String]
2379
2703
  #
2380
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2704
+ # @!attribute [rw] key_material_id
2705
+ # The identifier of the key material used to encrypt the private key.
2381
2706
  # @return [String]
2382
2707
  #
2383
2708
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairResponse AWS API Documentation
@@ -2388,7 +2713,8 @@ module Aws::KMS
2388
2713
  :public_key,
2389
2714
  :key_id,
2390
2715
  :key_pair_spec,
2391
- :ciphertext_for_recipient)
2716
+ :ciphertext_for_recipient,
2717
+ :key_material_id)
2392
2718
  SENSITIVE = [:private_key_plaintext]
2393
2719
  include Aws::Structure
2394
2720
  end
@@ -2415,7 +2741,7 @@ module Aws::KMS
2415
2741
  #
2416
2742
  #
2417
2743
  #
2418
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2744
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2419
2745
  # @return [Hash<String,String>]
2420
2746
  #
2421
2747
  # @!attribute [rw] key_id
@@ -2449,9 +2775,11 @@ module Aws::KMS
2449
2775
  #
2450
2776
  # The KMS rule that restricts the use of asymmetric RSA and SM2 KMS
2451
2777
  # keys to encrypt and decrypt or to sign and verify (but not both),
2452
- # and the rule that permits you to use ECC KMS keys only to sign and
2453
- # verify, are not effective on data key pairs, which are used outside
2454
- # of KMS. The SM2 key spec is only available in China Regions.
2778
+ # the rule that permits you to use ECC KMS keys only to sign and
2779
+ # verify, and the rule that permits you to use ML-DSA key pairs to
2780
+ # sign and verify only are not effective on data key pairs, which are
2781
+ # used outside of KMS. The SM2 key spec is only available in China
2782
+ # Regions.
2455
2783
  # @return [String]
2456
2784
  #
2457
2785
  # @!attribute [rw] grant_tokens
@@ -2465,19 +2793,19 @@ module Aws::KMS
2465
2793
  #
2466
2794
  #
2467
2795
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2468
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2796
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2469
2797
  # @return [Array<String>]
2470
2798
  #
2471
2799
  # @!attribute [rw] dry_run
2472
2800
  # Checks if your request will succeed. `DryRun` is an optional
2473
2801
  # parameter.
2474
2802
  #
2475
- # To learn more about how to use this parameter, see [Testing your KMS
2476
- # API calls][1] in the *Key Management Service Developer Guide*.
2803
+ # To learn more about how to use this parameter, see [Testing your
2804
+ # permissions][1] in the *Key Management Service Developer Guide*.
2477
2805
  #
2478
2806
  #
2479
2807
  #
2480
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
2808
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2481
2809
  # @return [Boolean]
2482
2810
  #
2483
2811
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintextRequest AWS API Documentation
@@ -2517,13 +2845,18 @@ module Aws::KMS
2517
2845
  # The type of data key pair that was generated.
2518
2846
  # @return [String]
2519
2847
  #
2848
+ # @!attribute [rw] key_material_id
2849
+ # The identifier of the key material used to encrypt the private key.
2850
+ # @return [String]
2851
+ #
2520
2852
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintextResponse AWS API Documentation
2521
2853
  #
2522
2854
  class GenerateDataKeyPairWithoutPlaintextResponse < Struct.new(
2523
2855
  :private_key_ciphertext_blob,
2524
2856
  :public_key,
2525
2857
  :key_id,
2526
- :key_pair_spec)
2858
+ :key_pair_spec,
2859
+ :key_material_id)
2527
2860
  SENSITIVE = []
2528
2861
  include Aws::Structure
2529
2862
  end
@@ -2576,7 +2909,7 @@ module Aws::KMS
2576
2909
  #
2577
2910
  #
2578
2911
  #
2579
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2912
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2580
2913
  # @return [Hash<String,String>]
2581
2914
  #
2582
2915
  # @!attribute [rw] number_of_bytes
@@ -2609,18 +2942,19 @@ module Aws::KMS
2609
2942
  #
2610
2943
  #
2611
2944
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2612
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2945
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2613
2946
  # @return [Array<String>]
2614
2947
  #
2615
2948
  # @!attribute [rw] recipient
2616
2949
  # A signed [attestation document][1] from an Amazon Web Services Nitro
2617
- # enclave and the encryption algorithm to use with the enclave's
2618
- # public key. The only valid encryption algorithm is
2619
- # `RSAES_OAEP_SHA_256`.
2950
+ # enclave or NitroTPM, and the encryption algorithm to use with the
2951
+ # public key in the attestation document. The only valid encryption
2952
+ # algorithm is `RSAES_OAEP_SHA_256`.
2620
2953
  #
2621
- # This parameter only supports attestation documents for Amazon Web
2622
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
2623
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
2954
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
2955
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
2956
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
2957
+ # Services NitroTPM.
2624
2958
  #
2625
2959
  # When you use this parameter, instead of returning the plaintext data
2626
2960
  # key, KMS encrypts the plaintext data key under the public key in the
@@ -2632,26 +2966,27 @@ module Aws::KMS
2632
2966
  # The `Plaintext` field in the response is null or empty.
2633
2967
  #
2634
2968
  # For information about the interaction between KMS and Amazon Web
2635
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
2636
- # uses KMS][3] in the *Key Management Service Developer Guide*.
2969
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
2970
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
2971
+ # Service Developer Guide*.
2637
2972
  #
2638
2973
  #
2639
2974
  #
2640
2975
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
2641
2976
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2642
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2977
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2643
2978
  # @return [Types::RecipientInfo]
2644
2979
  #
2645
2980
  # @!attribute [rw] dry_run
2646
2981
  # Checks if your request will succeed. `DryRun` is an optional
2647
2982
  # parameter.
2648
2983
  #
2649
- # To learn more about how to use this parameter, see [Testing your KMS
2650
- # API calls][1] in the *Key Management Service Developer Guide*.
2984
+ # To learn more about how to use this parameter, see [Testing your
2985
+ # permissions][1] in the *Key Management Service Developer Guide*.
2651
2986
  #
2652
2987
  #
2653
2988
  #
2654
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
2989
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2655
2990
  # @return [Boolean]
2656
2991
  #
2657
2992
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyRequest AWS API Documentation
@@ -2694,20 +3029,27 @@ module Aws::KMS
2694
3029
  # @return [String]
2695
3030
  #
2696
3031
  # @!attribute [rw] ciphertext_for_recipient
2697
- # The plaintext data key encrypted with the public key from the Nitro
2698
- # enclave. This ciphertext can be decrypted only by using a private
2699
- # key in the Nitro enclave.
3032
+ # The plaintext data key encrypted with the public key from the
3033
+ # attestation document. This ciphertext can be decrypted only by using
3034
+ # a private key from the attested environment.
2700
3035
  #
2701
3036
  # This field is included in the response only when the `Recipient`
2702
3037
  # parameter in the request includes a valid attestation document from
2703
- # an Amazon Web Services Nitro enclave. For information about the
2704
- # interaction between KMS and Amazon Web Services Nitro Enclaves, see
2705
- # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
2706
- # Management Service Developer Guide*.
3038
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
3039
+ # about the interaction between KMS and Amazon Web Services Nitro
3040
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
3041
+ # attestation support in KMS][1] in the *Key Management Service
3042
+ # Developer Guide*.
2707
3043
  #
2708
3044
  #
2709
3045
  #
2710
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
3046
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
3047
+ # @return [String]
3048
+ #
3049
+ # @!attribute [rw] key_material_id
3050
+ # The identifier of the key material used to encrypt the data key.
3051
+ # This field is omitted if the request includes the `Recipient`
3052
+ # parameter.
2711
3053
  # @return [String]
2712
3054
  #
2713
3055
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyResponse AWS API Documentation
@@ -2716,7 +3058,8 @@ module Aws::KMS
2716
3058
  :ciphertext_blob,
2717
3059
  :plaintext,
2718
3060
  :key_id,
2719
- :ciphertext_for_recipient)
3061
+ :ciphertext_for_recipient,
3062
+ :key_material_id)
2720
3063
  SENSITIVE = [:plaintext]
2721
3064
  include Aws::Structure
2722
3065
  end
@@ -2769,7 +3112,7 @@ module Aws::KMS
2769
3112
  #
2770
3113
  #
2771
3114
  #
2772
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
3115
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2773
3116
  # @return [Hash<String,String>]
2774
3117
  #
2775
3118
  # @!attribute [rw] key_spec
@@ -2795,19 +3138,19 @@ module Aws::KMS
2795
3138
  #
2796
3139
  #
2797
3140
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2798
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
3141
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2799
3142
  # @return [Array<String>]
2800
3143
  #
2801
3144
  # @!attribute [rw] dry_run
2802
3145
  # Checks if your request will succeed. `DryRun` is an optional
2803
3146
  # parameter.
2804
3147
  #
2805
- # To learn more about how to use this parameter, see [Testing your KMS
2806
- # API calls][1] in the *Key Management Service Developer Guide*.
3148
+ # To learn more about how to use this parameter, see [Testing your
3149
+ # permissions][1] in the *Key Management Service Developer Guide*.
2807
3150
  #
2808
3151
  #
2809
3152
  #
2810
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
3153
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2811
3154
  # @return [Boolean]
2812
3155
  #
2813
3156
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintextRequest AWS API Documentation
@@ -2838,11 +3181,16 @@ module Aws::KMS
2838
3181
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
2839
3182
  # @return [String]
2840
3183
  #
3184
+ # @!attribute [rw] key_material_id
3185
+ # The identifier of the key material used to encrypt the data key.
3186
+ # @return [String]
3187
+ #
2841
3188
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintextResponse AWS API Documentation
2842
3189
  #
2843
3190
  class GenerateDataKeyWithoutPlaintextResponse < Struct.new(
2844
3191
  :ciphertext_blob,
2845
- :key_id)
3192
+ :key_id,
3193
+ :key_material_id)
2846
3194
  SENSITIVE = []
2847
3195
  include Aws::Structure
2848
3196
  end
@@ -2887,19 +3235,19 @@ module Aws::KMS
2887
3235
  #
2888
3236
  #
2889
3237
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2890
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
3238
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2891
3239
  # @return [Array<String>]
2892
3240
  #
2893
3241
  # @!attribute [rw] dry_run
2894
3242
  # Checks if your request will succeed. `DryRun` is an optional
2895
3243
  # parameter.
2896
3244
  #
2897
- # To learn more about how to use this parameter, see [Testing your KMS
2898
- # API calls][1] in the *Key Management Service Developer Guide*.
3245
+ # To learn more about how to use this parameter, see [Testing your
3246
+ # permissions][1] in the *Key Management Service Developer Guide*.
2899
3247
  #
2900
3248
  #
2901
3249
  #
2902
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
3250
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2903
3251
  # @return [Boolean]
2904
3252
  #
2905
3253
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateMacRequest AWS API Documentation
@@ -2959,30 +3307,32 @@ module Aws::KMS
2959
3307
  #
2960
3308
  # @!attribute [rw] recipient
2961
3309
  # A signed [attestation document][1] from an Amazon Web Services Nitro
2962
- # enclave and the encryption algorithm to use with the enclave's
2963
- # public key. The only valid encryption algorithm is
2964
- # `RSAES_OAEP_SHA_256`.
3310
+ # enclave or NitroTPM, and the encryption algorithm to use with the
3311
+ # public key in the attestation document. The only valid encryption
3312
+ # algorithm is `RSAES_OAEP_SHA_256`.
2965
3313
  #
2966
- # This parameter only supports attestation documents for Amazon Web
2967
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
2968
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
3314
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
3315
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
3316
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
3317
+ # Services NitroTPM.
2969
3318
  #
2970
3319
  # When you use this parameter, instead of returning plaintext bytes,
2971
3320
  # KMS encrypts the plaintext bytes under the public key in the
2972
3321
  # attestation document, and returns the resulting ciphertext in the
2973
3322
  # `CiphertextForRecipient` field in the response. This ciphertext can
2974
- # be decrypted only with the private key in the enclave. The
2975
- # `Plaintext` field in the response is null or empty.
3323
+ # be decrypted only with the private key in the attested environment.
3324
+ # The `Plaintext` field in the response is null or empty.
2976
3325
  #
2977
3326
  # For information about the interaction between KMS and Amazon Web
2978
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
2979
- # uses KMS][3] in the *Key Management Service Developer Guide*.
3327
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
3328
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
3329
+ # Service Developer Guide*.
2980
3330
  #
2981
3331
  #
2982
3332
  #
2983
3333
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
2984
3334
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2985
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
3335
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2986
3336
  # @return [Types::RecipientInfo]
2987
3337
  #
2988
3338
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomRequest AWS API Documentation
@@ -3006,19 +3356,20 @@ module Aws::KMS
3006
3356
  #
3007
3357
  # @!attribute [rw] ciphertext_for_recipient
3008
3358
  # The plaintext random bytes encrypted with the public key from the
3009
- # Nitro enclave. This ciphertext can be decrypted only by using a
3010
- # private key in the Nitro enclave.
3359
+ # attestation document. This ciphertext can be decrypted only by using
3360
+ # a private key from the attested environment.
3011
3361
  #
3012
3362
  # This field is included in the response only when the `Recipient`
3013
3363
  # parameter in the request includes a valid attestation document from
3014
- # an Amazon Web Services Nitro enclave. For information about the
3015
- # interaction between KMS and Amazon Web Services Nitro Enclaves, see
3016
- # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
3017
- # Management Service Developer Guide*.
3364
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
3365
+ # about the interaction between KMS and Amazon Web Services Nitro
3366
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
3367
+ # attestation support in KMS][1] in the *Key Management Service
3368
+ # Developer Guide*.
3018
3369
  #
3019
3370
  #
3020
3371
  #
3021
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
3372
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
3022
3373
  # @return [String]
3023
3374
  #
3024
3375
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomResponse AWS API Documentation
@@ -3047,7 +3398,8 @@ module Aws::KMS
3047
3398
  # @return [String]
3048
3399
  #
3049
3400
  # @!attribute [rw] policy_name
3050
- # Specifies the name of the key policy. The only valid name is
3401
+ # Specifies the name of the key policy. If no policy name is
3402
+ # specified, the default value is `default`. The only valid name is
3051
3403
  # `default`. To get the names of key policies, use ListKeyPolicies.
3052
3404
  # @return [String]
3053
3405
  #
@@ -3064,10 +3416,15 @@ module Aws::KMS
3064
3416
  # A key policy document in JSON format.
3065
3417
  # @return [String]
3066
3418
  #
3419
+ # @!attribute [rw] policy_name
3420
+ # The name of the key policy. The only valid value is `default`.
3421
+ # @return [String]
3422
+ #
3067
3423
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyPolicyResponse AWS API Documentation
3068
3424
  #
3069
3425
  class GetKeyPolicyResponse < Struct.new(
3070
- :policy)
3426
+ :policy,
3427
+ :policy_name)
3071
3428
  SENSITIVE = []
3072
3429
  include Aws::Structure
3073
3430
  end
@@ -3102,10 +3459,39 @@ module Aws::KMS
3102
3459
  # A Boolean value that specifies whether key rotation is enabled.
3103
3460
  # @return [Boolean]
3104
3461
  #
3462
+ # @!attribute [rw] key_id
3463
+ # Identifies the specified symmetric encryption KMS key.
3464
+ # @return [String]
3465
+ #
3466
+ # @!attribute [rw] rotation_period_in_days
3467
+ # The number of days between each automatic rotation. The default
3468
+ # value is 365 days.
3469
+ # @return [Integer]
3470
+ #
3471
+ # @!attribute [rw] next_rotation_date
3472
+ # The next date that KMS will automatically rotate the key material.
3473
+ # @return [Time]
3474
+ #
3475
+ # @!attribute [rw] on_demand_rotation_start_date
3476
+ # Identifies the date and time that an in progress on-demand rotation
3477
+ # was initiated.
3478
+ #
3479
+ # KMS uses a background process to perform rotations. As a result,
3480
+ # there might be a slight delay between initiating on-demand key
3481
+ # rotation and the rotation's completion. Once the on-demand rotation
3482
+ # is complete, KMS removes this field from the response. You can use
3483
+ # ListKeyRotations to view the details of the completed on-demand
3484
+ # rotation.
3485
+ # @return [Time]
3486
+ #
3105
3487
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyRotationStatusResponse AWS API Documentation
3106
3488
  #
3107
3489
  class GetKeyRotationStatusResponse < Struct.new(
3108
- :key_rotation_enabled)
3490
+ :key_rotation_enabled,
3491
+ :key_id,
3492
+ :rotation_period_in_days,
3493
+ :next_rotation_date,
3494
+ :on_demand_rotation_start_date)
3109
3495
  SENSITIVE = []
3110
3496
  include Aws::Structure
3111
3497
  end
@@ -3135,9 +3521,8 @@ module Aws::KMS
3135
3521
  # @!attribute [rw] wrapping_algorithm
3136
3522
  # The algorithm you will use with the RSA public key (`PublicKey`) in
3137
3523
  # the response to protect your key material during import. For more
3138
- # information, see [Select a wrapping
3139
- # algorithm](kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm)
3140
- # in the *Key Management Service Developer Guide*.
3524
+ # information, see [Select a wrapping algorithm][1] in the *Key
3525
+ # Management Service Developer Guide*.
3141
3526
  #
3142
3527
  # For RSA\_AES wrapping algorithms, you encrypt your key material with
3143
3528
  # an AES key that you generate, then encrypt your AES key with the RSA
@@ -3167,8 +3552,12 @@ module Aws::KMS
3167
3552
  # You cannot use the RSAES\_OAEP\_SHA\_1 wrapping algorithm with the
3168
3553
  # RSA\_2048 wrapping key spec to wrap ECC\_NIST\_P521 key material.
3169
3554
  #
3170
- # * **RSAES\_PKCS1\_V1\_5** (Deprecated) — Supported only for
3171
- # symmetric encryption key material (and only in legacy mode).
3555
+ # * **RSAES\_PKCS1\_V1\_5** (Deprecated) — As of October 10, 2023, KMS
3556
+ # does not support the RSAES\_PKCS1\_V1\_5 wrapping algorithm.
3557
+ #
3558
+ #
3559
+ #
3560
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm
3172
3561
  # @return [String]
3173
3562
  #
3174
3563
  # @!attribute [rw] wrapping_key_spec
@@ -3264,7 +3653,7 @@ module Aws::KMS
3264
3653
  #
3265
3654
  #
3266
3655
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
3267
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
3656
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
3268
3657
  # @return [Array<String>]
3269
3658
  #
3270
3659
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKeyRequest AWS API Documentation
@@ -3313,12 +3702,12 @@ module Aws::KMS
3313
3702
  # @return [String]
3314
3703
  #
3315
3704
  # @!attribute [rw] key_usage
3316
- # The permitted use of the public key. Valid values are
3317
- # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
3705
+ # The permitted use of the public key. Valid values for asymmetric key
3706
+ # pairs are `ENCRYPT_DECRYPT`, `SIGN_VERIFY`, and `KEY_AGREEMENT`.
3318
3707
  #
3319
- # This information is critical. If a public key with `SIGN_VERIFY` key
3320
- # usage encrypts data outside of KMS, the ciphertext cannot be
3321
- # decrypted.
3708
+ # This information is critical. For example, if a public key with
3709
+ # `SIGN_VERIFY` key usage encrypts data outside of KMS, the ciphertext
3710
+ # cannot be decrypted.
3322
3711
  # @return [String]
3323
3712
  #
3324
3713
  # @!attribute [rw] encryption_algorithms
@@ -3339,6 +3728,12 @@ module Aws::KMS
3339
3728
  # public key is `SIGN_VERIFY`.
3340
3729
  # @return [Array<String>]
3341
3730
  #
3731
+ # @!attribute [rw] key_agreement_algorithms
3732
+ # The key agreement algorithm used to derive a shared secret. This
3733
+ # field is present only when the KMS key has a `KeyUsage` value of
3734
+ # `KEY_AGREEMENT`.
3735
+ # @return [Array<String>]
3736
+ #
3342
3737
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKeyResponse AWS API Documentation
3343
3738
  #
3344
3739
  class GetPublicKeyResponse < Struct.new(
@@ -3348,7 +3743,8 @@ module Aws::KMS
3348
3743
  :key_spec,
3349
3744
  :key_usage,
3350
3745
  :encryption_algorithms,
3351
- :signing_algorithms)
3746
+ :signing_algorithms,
3747
+ :key_agreement_algorithms)
3352
3748
  SENSITIVE = []
3353
3749
  include Aws::Structure
3354
3750
  end
@@ -3359,9 +3755,9 @@ module Aws::KMS
3359
3755
  #
3360
3756
  # KMS applies the grant constraints only to cryptographic operations
3361
3757
  # that support an encryption context, that is, all cryptographic
3362
- # operations with a [symmetric KMS key][3]. Grant constraints are not
3363
- # applied to operations that do not support an encryption context, such
3364
- # as cryptographic operations with asymmetric KMS keys and management
3758
+ # operations with a symmetric KMS key. Grant constraints are not applied
3759
+ # to operations that do not support an encryption context, such as
3760
+ # cryptographic operations with asymmetric KMS keys and management
3365
3761
  # operations, such as DescribeKey or RetireGrant.
3366
3762
  #
3367
3763
  # In a cryptographic operation, the encryption context in the decryption
@@ -3376,15 +3772,14 @@ module Aws::KMS
3376
3772
  # differ only by case. To require a fully case-sensitive encryption
3377
3773
  # context, use the `kms:EncryptionContext:` and
3378
3774
  # `kms:EncryptionContextKeys` conditions in an IAM or key policy. For
3379
- # details, see [kms:EncryptionContext:][4] in the <i> <i>Key Management
3380
- # Service Developer Guide</i> </i>.
3775
+ # details, see [kms:EncryptionContext:context-key][3] in the <i> <i>Key
3776
+ # Management Service Developer Guide</i> </i>.
3381
3777
  #
3382
3778
  #
3383
3779
  #
3384
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
3385
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
3386
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#symmetric-cmks
3387
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context
3780
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3781
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
3782
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-encryption-context
3388
3783
  #
3389
3784
  # @!attribute [rw] encryption_context_subset
3390
3785
  # A list of key-value pairs that must be included in the encryption
@@ -3395,7 +3790,7 @@ module Aws::KMS
3395
3790
  #
3396
3791
  #
3397
3792
  #
3398
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
3793
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3399
3794
  # @return [Hash<String,String>]
3400
3795
  #
3401
3796
  # @!attribute [rw] encryption_context_equals
@@ -3406,7 +3801,7 @@ module Aws::KMS
3406
3801
  #
3407
3802
  #
3408
3803
  #
3409
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
3804
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3410
3805
  # @return [Hash<String,String>]
3411
3806
  #
3412
3807
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GrantConstraints AWS API Documentation
@@ -3495,11 +3890,9 @@ module Aws::KMS
3495
3890
  #
3496
3891
  # The KMS key can be a symmetric encryption KMS key, HMAC KMS key,
3497
3892
  # asymmetric encryption KMS key, or asymmetric signing KMS key,
3498
- # including a [multi-Region
3499
- # key](kms/latest/developerguide/multi-region-keys-overview.html) of
3500
- # any supported type. You cannot perform this operation on a KMS key
3501
- # in a custom key store, or on a KMS key in a different Amazon Web
3502
- # Services account.
3893
+ # including a [multi-Region key][1] of any supported type. You cannot
3894
+ # perform this operation on a KMS key in a custom key store, or on a
3895
+ # KMS key in a different Amazon Web Services account.
3503
3896
  #
3504
3897
  # Specify the key ID or key ARN of the KMS key.
3505
3898
  #
@@ -3512,6 +3905,10 @@ module Aws::KMS
3512
3905
  #
3513
3906
  # To get the key ID and key ARN for a KMS key, use ListKeys or
3514
3907
  # DescribeKey.
3908
+ #
3909
+ #
3910
+ #
3911
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
3515
3912
  # @return [String]
3516
3913
  #
3517
3914
  # @!attribute [rw] import_token
@@ -3563,7 +3960,46 @@ module Aws::KMS
3563
3960
  #
3564
3961
  #
3565
3962
  #
3566
- # [1]: https://docs.aws.amazon.com/en_us/kms/latest/developerguide/importing-keys.html#importing-keys-expiration
3963
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-expiration
3964
+ # @return [String]
3965
+ #
3966
+ # @!attribute [rw] import_type
3967
+ # Indicates whether the key material being imported is previously
3968
+ # associated with this KMS key or not. This parameter is optional and
3969
+ # only usable with symmetric encryption keys. If no key material has
3970
+ # ever been imported into the KMS key, and this parameter is omitted,
3971
+ # the parameter defaults to `NEW_KEY_MATERIAL`. After the first key
3972
+ # material is imported, if this parameter is omitted then the
3973
+ # parameter defaults to `EXISTING_KEY_MATERIAL`.
3974
+ # @return [String]
3975
+ #
3976
+ # @!attribute [rw] key_material_description
3977
+ # Description for the key material being imported. This parameter is
3978
+ # optional and only usable with symmetric encryption keys. If you do
3979
+ # not specify a key material description, KMS retains the value you
3980
+ # specified when you last imported the same key material into this KMS
3981
+ # key.
3982
+ # @return [String]
3983
+ #
3984
+ # @!attribute [rw] key_material_id
3985
+ # Identifies the key material being imported. This parameter is
3986
+ # optional and only usable with symmetric encryption keys. You cannot
3987
+ # specify a key material ID with `ImportType` set to
3988
+ # `NEW_KEY_MATERIAL`. Whenever you import key material into a
3989
+ # symmetric encryption key, KMS assigns a unique identifier to the key
3990
+ # material based on the KMS key ID and the imported key material. When
3991
+ # you re-import key material with a specified key material ID, KMS:
3992
+ #
3993
+ # * Computes the identifier for the key material
3994
+ #
3995
+ # * Matches the computed identifier against the specified key material
3996
+ # ID
3997
+ #
3998
+ # * Verifies that the key material ID is already associated with the
3999
+ # KMS key
4000
+ #
4001
+ # To get the list of key material IDs associated with a KMS key, use
4002
+ # ListKeyRotations.
3567
4003
  # @return [String]
3568
4004
  #
3569
4005
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterialRequest AWS API Documentation
@@ -3573,14 +4009,35 @@ module Aws::KMS
3573
4009
  :import_token,
3574
4010
  :encrypted_key_material,
3575
4011
  :valid_to,
3576
- :expiration_model)
4012
+ :expiration_model,
4013
+ :import_type,
4014
+ :key_material_description,
4015
+ :key_material_id)
3577
4016
  SENSITIVE = []
3578
4017
  include Aws::Structure
3579
4018
  end
3580
4019
 
4020
+ # @!attribute [rw] key_id
4021
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key into which
4022
+ # key material was imported.
4023
+ #
4024
+ #
4025
+ #
4026
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
4027
+ # @return [String]
4028
+ #
4029
+ # @!attribute [rw] key_material_id
4030
+ # Identifies the imported key material.
4031
+ # @return [String]
4032
+ #
3581
4033
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterialResponse AWS API Documentation
3582
4034
  #
3583
- class ImportKeyMaterialResponse < Aws::EmptyStructure; end
4035
+ class ImportKeyMaterialResponse < Struct.new(
4036
+ :key_id,
4037
+ :key_material_id)
4038
+ SENSITIVE = []
4039
+ include Aws::Structure
4040
+ end
3584
4041
 
3585
4042
  # The request was rejected because the specified KMS key cannot decrypt
3586
4043
  # the data. The `KeyId` in a Decrypt request and the `SourceKeyId` in a
@@ -3599,8 +4056,10 @@ module Aws::KMS
3599
4056
  end
3600
4057
 
3601
4058
  # The request was rejected because the key material in the request is,
3602
- # expired, invalid, or is not the same key material that was previously
3603
- # imported into this KMS key.
4059
+ # expired, invalid, or does not meet expectations. For example, it is
4060
+ # not the same key material that was previously imported or KMS expected
4061
+ # new key material but the key material being imported is already
4062
+ # associated with the KMS key.
3604
4063
  #
3605
4064
  # @!attribute [rw] message
3606
4065
  # @return [String]
@@ -3736,8 +4195,9 @@ module Aws::KMS
3736
4195
  # the `KeyUsage` must be `ENCRYPT_DECRYPT`. For signing and verifying
3737
4196
  # messages, the `KeyUsage` must be `SIGN_VERIFY`. For generating and
3738
4197
  # verifying message authentication codes (MACs), the `KeyUsage` must be
3739
- # `GENERATE_VERIFY_MAC`. To find the `KeyUsage` of a KMS key, use the
3740
- # DescribeKey operation.
4198
+ # `GENERATE_VERIFY_MAC`. For deriving key agreement secrets, the
4199
+ # `KeyUsage` must be `KEY_AGREEMENT`. To find the `KeyUsage` of a KMS
4200
+ # key, use the DescribeKey operation.
3741
4201
  #
3742
4202
  # To find the encryption or signing algorithms supported for a
3743
4203
  # particular KMS key, use the DescribeKey operation.
@@ -3906,7 +4366,7 @@ module Aws::KMS
3906
4366
  #
3907
4367
  #
3908
4368
  #
3909
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
4369
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3910
4370
  # @return [String]
3911
4371
  #
3912
4372
  # @!attribute [rw] key_state
@@ -3933,11 +4393,12 @@ module Aws::KMS
3933
4393
  # @return [Time]
3934
4394
  #
3935
4395
  # @!attribute [rw] valid_to
3936
- # The time at which the imported key material expires. When the key
3937
- # material expires, KMS deletes the key material and the KMS key
3938
- # becomes unusable. This value is present only for KMS keys whose
3939
- # `Origin` is `EXTERNAL` and whose `ExpirationModel` is
3940
- # `KEY_MATERIAL_EXPIRES`, otherwise this value is omitted.
4396
+ # The earliest time at which any imported key material permanently
4397
+ # associated with this KMS key expires. When a key material expires,
4398
+ # KMS deletes the key material and the KMS key becomes unusable. This
4399
+ # value is present only for KMS keys whose `Origin` is `EXTERNAL` and
4400
+ # the `ExpirationModel` is `KEY_MATERIAL_EXPIRES`, otherwise this
4401
+ # value is omitted.
3941
4402
  # @return [Time]
3942
4403
  #
3943
4404
  # @!attribute [rw] origin
@@ -3956,7 +4417,7 @@ module Aws::KMS
3956
4417
  #
3957
4418
  #
3958
4419
  #
3959
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4420
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
3960
4421
  # @return [String]
3961
4422
  #
3962
4423
  # @!attribute [rw] cloud_hsm_cluster_id
@@ -3968,7 +4429,7 @@ module Aws::KMS
3968
4429
  #
3969
4430
  #
3970
4431
  #
3971
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4432
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
3972
4433
  # @return [String]
3973
4434
  #
3974
4435
  # @!attribute [rw] expiration_model
@@ -4016,6 +4477,10 @@ module Aws::KMS
4016
4477
  # `SIGN_VERIFY`.
4017
4478
  # @return [Array<String>]
4018
4479
  #
4480
+ # @!attribute [rw] key_agreement_algorithms
4481
+ # The key agreement algorithm used to derive a shared secret.
4482
+ # @return [Array<String>]
4483
+ #
4019
4484
  # @!attribute [rw] multi_region
4020
4485
  # Indicates whether the KMS key is a multi-Region (`True`) or regional
4021
4486
  # (`False`) key. This value is `True` for multi-Region primary and
@@ -4087,6 +4552,16 @@ module Aws::KMS
4087
4552
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key
4088
4553
  # @return [Types::XksKeyConfigurationType]
4089
4554
  #
4555
+ # @!attribute [rw] current_key_material_id
4556
+ # Identifies the current key material. This value is present for
4557
+ # symmetric encryption keys with `AWS_KMS` origin and single-Region,
4558
+ # symmetric encryption keys with `EXTERNAL` origin. These KMS keys
4559
+ # support automatic or on-demand key rotation and can have multiple
4560
+ # key materials associated with them. KMS uses the current key
4561
+ # material for both encryption and decryption, and the non-current key
4562
+ # material for decryption operations only.
4563
+ # @return [String]
4564
+ #
4090
4565
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KeyMetadata AWS API Documentation
4091
4566
  #
4092
4567
  class KeyMetadata < Struct.new(
@@ -4109,11 +4584,13 @@ module Aws::KMS
4109
4584
  :key_spec,
4110
4585
  :encryption_algorithms,
4111
4586
  :signing_algorithms,
4587
+ :key_agreement_algorithms,
4112
4588
  :multi_region,
4113
4589
  :multi_region_configuration,
4114
4590
  :pending_deletion_window_in_days,
4115
4591
  :mac_algorithms,
4116
- :xks_key_configuration)
4592
+ :xks_key_configuration,
4593
+ :current_key_material_id)
4117
4594
  SENSITIVE = []
4118
4595
  include Aws::Structure
4119
4596
  end
@@ -4132,9 +4609,9 @@ module Aws::KMS
4132
4609
  include Aws::Structure
4133
4610
  end
4134
4611
 
4135
- # The request was rejected because a quota was exceeded. For more
4136
- # information, see [Quotas][1] in the *Key Management Service Developer
4137
- # Guide*.
4612
+ # The request was rejected because a length constraint or quota was
4613
+ # exceeded. For more information, see [Quotas][1] in the *Key Management
4614
+ # Service Developer Guide*.
4138
4615
  #
4139
4616
  #
4140
4617
  #
@@ -4209,8 +4686,8 @@ module Aws::KMS
4209
4686
  # @!attribute [rw] truncated
4210
4687
  # A flag that indicates whether there are more items in the list. When
4211
4688
  # this value is true, the list in this response is truncated. To get
4212
- # more items, pass the value of the `NextMarker` element in
4213
- # thisresponse to the `Marker` parameter in a subsequent request.
4689
+ # more items, pass the value of the `NextMarker` element in this
4690
+ # response to the `Marker` parameter in a subsequent request.
4214
4691
  # @return [Boolean]
4215
4692
  #
4216
4693
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListAliasesResponse AWS API Documentation
@@ -4292,8 +4769,8 @@ module Aws::KMS
4292
4769
  # @!attribute [rw] truncated
4293
4770
  # A flag that indicates whether there are more items in the list. When
4294
4771
  # this value is true, the list in this response is truncated. To get
4295
- # more items, pass the value of the `NextMarker` element in
4296
- # thisresponse to the `Marker` parameter in a subsequent request.
4772
+ # more items, pass the value of the `NextMarker` element in this
4773
+ # response to the `Marker` parameter in a subsequent request.
4297
4774
  # @return [Boolean]
4298
4775
  #
4299
4776
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListGrantsResponse AWS API Documentation
@@ -4362,8 +4839,8 @@ module Aws::KMS
4362
4839
  # @!attribute [rw] truncated
4363
4840
  # A flag that indicates whether there are more items in the list. When
4364
4841
  # this value is true, the list in this response is truncated. To get
4365
- # more items, pass the value of the `NextMarker` element in
4366
- # thisresponse to the `Marker` parameter in a subsequent request.
4842
+ # more items, pass the value of the `NextMarker` element in this
4843
+ # response to the `Marker` parameter in a subsequent request.
4367
4844
  # @return [Boolean]
4368
4845
  #
4369
4846
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyPoliciesResponse AWS API Documentation
@@ -4376,6 +4853,90 @@ module Aws::KMS
4376
4853
  include Aws::Structure
4377
4854
  end
4378
4855
 
4856
+ # @!attribute [rw] key_id
4857
+ # Gets the key rotations for the specified KMS key.
4858
+ #
4859
+ # Specify the key ID or key ARN of the KMS key.
4860
+ #
4861
+ # For example:
4862
+ #
4863
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
4864
+ #
4865
+ # * Key ARN:
4866
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4867
+ #
4868
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4869
+ # DescribeKey.
4870
+ # @return [String]
4871
+ #
4872
+ # @!attribute [rw] include_key_material
4873
+ # Use this optional parameter to control which key materials
4874
+ # associated with this key are listed in the response. The default
4875
+ # value of this parameter is `ROTATIONS_ONLY`. If you omit this
4876
+ # parameter, KMS returns information on the key materials created by
4877
+ # automatic or on-demand key rotation. When you specify a value of
4878
+ # `ALL_KEY_MATERIAL`, KMS adds the first key material and any imported
4879
+ # key material pending rotation to the response. This parameter can
4880
+ # only be used with KMS keys that support automatic or on-demand key
4881
+ # rotation.
4882
+ # @return [String]
4883
+ #
4884
+ # @!attribute [rw] limit
4885
+ # Use this parameter to specify the maximum number of items to return.
4886
+ # When this value is present, KMS does not return more than the
4887
+ # specified number of items, but it might return fewer.
4888
+ #
4889
+ # This value is optional. If you include a value, it must be between 1
4890
+ # and 1000, inclusive. If you do not include a value, it defaults to
4891
+ # 100.
4892
+ # @return [Integer]
4893
+ #
4894
+ # @!attribute [rw] marker
4895
+ # Use this parameter in a subsequent request after you receive a
4896
+ # response with truncated results. Set it to the value of `NextMarker`
4897
+ # from the truncated response you just received.
4898
+ # @return [String]
4899
+ #
4900
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyRotationsRequest AWS API Documentation
4901
+ #
4902
+ class ListKeyRotationsRequest < Struct.new(
4903
+ :key_id,
4904
+ :include_key_material,
4905
+ :limit,
4906
+ :marker)
4907
+ SENSITIVE = []
4908
+ include Aws::Structure
4909
+ end
4910
+
4911
+ # @!attribute [rw] rotations
4912
+ # A list of completed key material rotations. When the optional input
4913
+ # parameter `IncludeKeyMaterial` is specified with a value of
4914
+ # `ALL_KEY_MATERIAL`, this list includes the first key material and
4915
+ # any imported key material pending rotation.
4916
+ # @return [Array<Types::RotationsListEntry>]
4917
+ #
4918
+ # @!attribute [rw] next_marker
4919
+ # When `Truncated` is true, this element is present and contains the
4920
+ # value to use for the `Marker` parameter in a subsequent request.
4921
+ # @return [String]
4922
+ #
4923
+ # @!attribute [rw] truncated
4924
+ # A flag that indicates whether there are more items in the list. When
4925
+ # this value is true, the list in this response is truncated. To get
4926
+ # more items, pass the value of the `NextMarker` element in this
4927
+ # response to the `Marker` parameter in a subsequent request.
4928
+ # @return [Boolean]
4929
+ #
4930
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyRotationsResponse AWS API Documentation
4931
+ #
4932
+ class ListKeyRotationsResponse < Struct.new(
4933
+ :rotations,
4934
+ :next_marker,
4935
+ :truncated)
4936
+ SENSITIVE = []
4937
+ include Aws::Structure
4938
+ end
4939
+
4379
4940
  # @!attribute [rw] limit
4380
4941
  # Use this parameter to specify the maximum number of items to return.
4381
4942
  # When this value is present, KMS does not return more than the
@@ -4413,8 +4974,8 @@ module Aws::KMS
4413
4974
  # @!attribute [rw] truncated
4414
4975
  # A flag that indicates whether there are more items in the list. When
4415
4976
  # this value is true, the list in this response is truncated. To get
4416
- # more items, pass the value of the `NextMarker` element in
4417
- # thisresponse to the `Marker` parameter in a subsequent request.
4977
+ # more items, pass the value of the `NextMarker` element in this
4978
+ # response to the `Marker` parameter in a subsequent request.
4418
4979
  # @return [Boolean]
4419
4980
  #
4420
4981
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeysResponse AWS API Documentation
@@ -4495,8 +5056,8 @@ module Aws::KMS
4495
5056
  # @!attribute [rw] truncated
4496
5057
  # A flag that indicates whether there are more items in the list. When
4497
5058
  # this value is true, the list in this response is truncated. To get
4498
- # more items, pass the value of the `NextMarker` element in
4499
- # thisresponse to the `Marker` parameter in a subsequent request.
5059
+ # more items, pass the value of the `NextMarker` element in this
5060
+ # response to the `Marker` parameter in a subsequent request.
4500
5061
  # @return [Boolean]
4501
5062
  #
4502
5063
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListResourceTagsResponse AWS API Documentation
@@ -4649,7 +5210,8 @@ module Aws::KMS
4649
5210
  # @return [String]
4650
5211
  #
4651
5212
  # @!attribute [rw] policy_name
4652
- # The name of the key policy. The only valid value is `default`.
5213
+ # The name of the key policy. If no policy name is specified, the
5214
+ # default value is `default`. The only valid value is `default`.
4653
5215
  # @return [String]
4654
5216
  #
4655
5217
  # @!attribute [rw] policy
@@ -4673,6 +5235,18 @@ module Aws::KMS
4673
5235
  # that I make are not always immediately visible][2] in the *Amazon
4674
5236
  # Web Services Identity and Access Management User Guide*.
4675
5237
  #
5238
+ # <note markdown="1"> If either of the required `Resource` or `Action` elements are
5239
+ # missing from a key policy statement, the policy statement has no
5240
+ # effect. When a key policy statement is missing one of these
5241
+ # elements, the KMS console correctly reports an error, but the
5242
+ # `PutKeyPolicy` API request succeeds, even though the policy
5243
+ # statement is ineffective.
5244
+ #
5245
+ # For more information on required key policy elements, see [Elements
5246
+ # in a key policy][3] in the *Key Management Service Developer Guide*.
5247
+ #
5248
+ # </note>
5249
+ #
4676
5250
  # A key policy document can include only the following characters:
4677
5251
  #
4678
5252
  # * Printable ASCII characters from the space character (`\u0020`)
@@ -4684,18 +5258,24 @@ module Aws::KMS
4684
5258
  # * The tab (`\u0009`), line feed (`\u000A`), and carriage return
4685
5259
  # (`\u000D`) special characters
4686
5260
  #
4687
- # For information about key policies, see [Key policies in KMS][3] in
5261
+ # <note markdown="1"> If the key policy exceeds the length constraint, KMS returns a
5262
+ # `LimitExceededException`.
5263
+ #
5264
+ # </note>
5265
+ #
5266
+ # For information about key policies, see [Key policies in KMS][4] in
4688
5267
  # the *Key Management Service Developer Guide*.For help writing and
4689
5268
  # formatting a JSON policy document, see the [IAM JSON Policy
4690
- # Reference][4] in the <i> <i>Identity and Access Management User
5269
+ # Reference][5] in the <i> <i>Identity and Access Management User
4691
5270
  # Guide</i> </i>.
4692
5271
  #
4693
5272
  #
4694
5273
  #
4695
5274
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
4696
5275
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
4697
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
4698
- # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
5276
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html#key-policy-elements
5277
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
5278
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
4699
5279
  # @return [String]
4700
5280
  #
4701
5281
  # @!attribute [rw] bypass_policy_lockout_safety_check
@@ -4710,12 +5290,13 @@ module Aws::KMS
4710
5290
  # Management Service Developer Guide*.
4711
5291
  #
4712
5292
  # Use this parameter only when you intend to prevent the principal
4713
- # that is making the request from making a subsequent PutKeyPolicy
4714
- # request on the KMS key.
5293
+ # that is making the request from making a subsequent
5294
+ # [PutKeyPolicy][2] request on the KMS key.
4715
5295
  #
4716
5296
  #
4717
5297
  #
4718
5298
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
5299
+ # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html
4719
5300
  # @return [Boolean]
4720
5301
  #
4721
5302
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/PutKeyPolicyRequest AWS API Documentation
@@ -4752,7 +5333,7 @@ module Aws::KMS
4752
5333
  #
4753
5334
  #
4754
5335
  #
4755
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5336
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
4756
5337
  # @return [Hash<String,String>]
4757
5338
  #
4758
5339
  # @!attribute [rw] source_key_id
@@ -4842,7 +5423,7 @@ module Aws::KMS
4842
5423
  #
4843
5424
  #
4844
5425
  #
4845
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5426
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
4846
5427
  # @return [Hash<String,String>]
4847
5428
  #
4848
5429
  # @!attribute [rw] source_encryption_algorithm
@@ -4879,19 +5460,19 @@ module Aws::KMS
4879
5460
  #
4880
5461
  #
4881
5462
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
4882
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
5463
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
4883
5464
  # @return [Array<String>]
4884
5465
  #
4885
5466
  # @!attribute [rw] dry_run
4886
5467
  # Checks if your request will succeed. `DryRun` is an optional
4887
5468
  # parameter.
4888
5469
  #
4889
- # To learn more about how to use this parameter, see [Testing your KMS
4890
- # API calls][1] in the *Key Management Service Developer Guide*.
5470
+ # To learn more about how to use this parameter, see [Testing your
5471
+ # permissions][1] in the *Key Management Service Developer Guide*.
4891
5472
  #
4892
5473
  #
4893
5474
  #
4894
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5475
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
4895
5476
  # @return [Boolean]
4896
5477
  #
4897
5478
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncryptRequest AWS API Documentation
@@ -4939,6 +5520,18 @@ module Aws::KMS
4939
5520
  # The encryption algorithm that was used to reencrypt the data.
4940
5521
  # @return [String]
4941
5522
  #
5523
+ # @!attribute [rw] source_key_material_id
5524
+ # The identifier of the key material used to originally encrypt the
5525
+ # data. This field is present only when the original encryption used a
5526
+ # symmetric encryption KMS key.
5527
+ # @return [String]
5528
+ #
5529
+ # @!attribute [rw] destination_key_material_id
5530
+ # The identifier of the key material used to reencrypt the data. This
5531
+ # field is present only when data is reencrypted using a symmetric
5532
+ # encryption KMS key.
5533
+ # @return [String]
5534
+ #
4942
5535
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncryptResponse AWS API Documentation
4943
5536
  #
4944
5537
  class ReEncryptResponse < Struct.new(
@@ -4946,7 +5539,9 @@ module Aws::KMS
4946
5539
  :source_key_id,
4947
5540
  :key_id,
4948
5541
  :source_encryption_algorithm,
4949
- :destination_encryption_algorithm)
5542
+ :destination_encryption_algorithm,
5543
+ :source_key_material_id,
5544
+ :destination_key_material_id)
4950
5545
  SENSITIVE = []
4951
5546
  include Aws::Structure
4952
5547
  end
@@ -4955,24 +5550,26 @@ module Aws::KMS
4955
5550
  # the API operation.
4956
5551
  #
4957
5552
  # This data type is designed to support Amazon Web Services Nitro
4958
- # Enclaves, which lets you create an isolated compute environment in
4959
- # Amazon EC2. For information about the interaction between KMS and
4960
- # Amazon Web Services Nitro Enclaves, see [How Amazon Web Services Nitro
4961
- # Enclaves uses KMS][1] in the *Key Management Service Developer Guide*.
5553
+ # Enclaves and Amazon Web Services NitroTPM, which lets you create an
5554
+ # attested environment in Amazon EC2. For information about the
5555
+ # interaction between KMS and Amazon Web Services Nitro Enclaves or
5556
+ # Amazon Web Services NitroTPM, see [Cryptographic attestation support
5557
+ # in KMS][1] in the *Key Management Service Developer Guide*.
4962
5558
  #
4963
5559
  #
4964
5560
  #
4965
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
5561
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
4966
5562
  #
4967
5563
  # @!attribute [rw] key_encryption_algorithm
4968
5564
  # The encryption algorithm that KMS should use with the public key for
4969
- # an Amazon Web Services Nitro Enclave to encrypt plaintext values for
4970
- # the response. The only valid value is `RSAES_OAEP_SHA_256`.
5565
+ # an Amazon Web Services Nitro Enclave or NitroTPM to encrypt
5566
+ # plaintext values for the response. The only valid value is
5567
+ # `RSAES_OAEP_SHA_256`.
4971
5568
  # @return [String]
4972
5569
  #
4973
5570
  # @!attribute [rw] attestation_document
4974
- # The attestation document for an Amazon Web Services Nitro Enclave.
4975
- # This document includes the enclave's public key.
5571
+ # The attestation document for an Amazon Web Services Nitro Enclave or
5572
+ # a NitroTPM. This document includes the enclave's public key.
4976
5573
  # @return [String]
4977
5574
  #
4978
5575
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RecipientInfo AWS API Documentation
@@ -5012,33 +5609,23 @@ module Aws::KMS
5012
5609
  # [KMS service endpoints][1] in the *Amazon Web Services General
5013
5610
  # Reference*.
5014
5611
  #
5015
- # <note markdown="1"> HMAC KMS keys are not supported in all Amazon Web Services Regions.
5016
- # If you try to replicate an HMAC KMS key in an Amazon Web Services
5017
- # Region in which HMAC keys are not supported, the `ReplicateKey`
5018
- # operation returns an `UnsupportedOperationException`. For a list of
5019
- # Regions in which HMAC KMS keys are supported, see [HMAC keys in
5020
- # KMS][2] in the *Key Management Service Developer Guide*.
5021
- #
5022
- # </note>
5023
- #
5024
5612
  # The replica must be in a different Amazon Web Services Region than
5025
5613
  # its primary key and other replicas of that primary key, but in the
5026
5614
  # same Amazon Web Services partition. KMS must be available in the
5027
5615
  # replica Region. If the Region is not enabled by default, the Amazon
5028
5616
  # Web Services account must be enabled in the Region. For information
5029
5617
  # about Amazon Web Services partitions, see [Amazon Resource Names
5030
- # (ARNs)][3] in the *Amazon Web Services General Reference*. For
5618
+ # (ARNs)][2] in the *Amazon Web Services General Reference*. For
5031
5619
  # information about enabling and disabling Regions, see [Enabling a
5032
- # Region][4] and [Disabling a Region][5] in the *Amazon Web Services
5620
+ # Region][3] and [Disabling a Region][4] in the *Amazon Web Services
5033
5621
  # General Reference*.
5034
5622
  #
5035
5623
  #
5036
5624
  #
5037
5625
  # [1]: https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region
5038
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
5039
- # [3]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
5040
- # [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable
5041
- # [5]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable
5626
+ # [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
5627
+ # [3]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable
5628
+ # [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable
5042
5629
  # @return [String]
5043
5630
  #
5044
5631
  # @!attribute [rw] policy
@@ -5088,7 +5675,7 @@ module Aws::KMS
5088
5675
  #
5089
5676
  #
5090
5677
  #
5091
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
5678
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html
5092
5679
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
5093
5680
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
5094
5681
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
@@ -5107,12 +5694,13 @@ module Aws::KMS
5107
5694
  # Management Service Developer Guide*.
5108
5695
  #
5109
5696
  # Use this parameter only when you intend to prevent the principal
5110
- # that is making the request from making a subsequent PutKeyPolicy
5111
- # request on the KMS key.
5697
+ # that is making the request from making a subsequent
5698
+ # [PutKeyPolicy][2] request on the KMS key.
5112
5699
  #
5113
5700
  #
5114
5701
  #
5115
5702
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
5703
+ # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html
5116
5704
  # @return [Boolean]
5117
5705
  #
5118
5706
  # @!attribute [rw] description
@@ -5160,7 +5748,7 @@ module Aws::KMS
5160
5748
  # When you add tags to an Amazon Web Services resource, Amazon Web
5161
5749
  # Services generates a cost allocation report with usage and costs
5162
5750
  # aggregated by tags. Tags can also be used to control access to a KMS
5163
- # key. For details, see [Tagging Keys][3].
5751
+ # key. For details, see [Tags in KMS][3].
5164
5752
  #
5165
5753
  #
5166
5754
  #
@@ -5251,12 +5839,12 @@ module Aws::KMS
5251
5839
  # Checks if your request will succeed. `DryRun` is an optional
5252
5840
  # parameter.
5253
5841
  #
5254
- # To learn more about how to use this parameter, see [Testing your KMS
5255
- # API calls][1] in the *Key Management Service Developer Guide*.
5842
+ # To learn more about how to use this parameter, see [Testing your
5843
+ # permissions][1] in the *Key Management Service Developer Guide*.
5256
5844
  #
5257
5845
  #
5258
5846
  #
5259
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5847
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5260
5848
  # @return [Boolean]
5261
5849
  #
5262
5850
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RetireGrantRequest AWS API Documentation
@@ -5299,12 +5887,12 @@ module Aws::KMS
5299
5887
  # Checks if your request will succeed. `DryRun` is an optional
5300
5888
  # parameter.
5301
5889
  #
5302
- # To learn more about how to use this parameter, see [Testing your KMS
5303
- # API calls][1] in the *Key Management Service Developer Guide*.
5890
+ # To learn more about how to use this parameter, see [Testing your
5891
+ # permissions][1] in the *Key Management Service Developer Guide*.
5304
5892
  #
5305
5893
  #
5306
5894
  #
5307
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5895
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5308
5896
  # @return [Boolean]
5309
5897
  #
5310
5898
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RevokeGrantRequest AWS API Documentation
@@ -5317,6 +5905,144 @@ module Aws::KMS
5317
5905
  include Aws::Structure
5318
5906
  end
5319
5907
 
5908
+ # @!attribute [rw] key_id
5909
+ # Identifies a symmetric encryption KMS key. You cannot perform
5910
+ # on-demand rotation of [asymmetric KMS keys][1], [HMAC KMS keys][2],
5911
+ # multi-Region KMS keys with [imported key material][3], or KMS keys
5912
+ # in a [custom key store][4]. To perform on-demand rotation of a set
5913
+ # of related [multi-Region keys][5], invoke the on-demand rotation on
5914
+ # the primary key.
5915
+ #
5916
+ # Specify the key ID or key ARN of the KMS key.
5917
+ #
5918
+ # For example:
5919
+ #
5920
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
5921
+ #
5922
+ # * Key ARN:
5923
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
5924
+ #
5925
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
5926
+ # DescribeKey.
5927
+ #
5928
+ #
5929
+ #
5930
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
5931
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
5932
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
5933
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
5934
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
5935
+ # @return [String]
5936
+ #
5937
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotateKeyOnDemandRequest AWS API Documentation
5938
+ #
5939
+ class RotateKeyOnDemandRequest < Struct.new(
5940
+ :key_id)
5941
+ SENSITIVE = []
5942
+ include Aws::Structure
5943
+ end
5944
+
5945
+ # @!attribute [rw] key_id
5946
+ # Identifies the symmetric encryption KMS key that you initiated
5947
+ # on-demand rotation on.
5948
+ # @return [String]
5949
+ #
5950
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotateKeyOnDemandResponse AWS API Documentation
5951
+ #
5952
+ class RotateKeyOnDemandResponse < Struct.new(
5953
+ :key_id)
5954
+ SENSITIVE = []
5955
+ include Aws::Structure
5956
+ end
5957
+
5958
+ # Each entry contains information about one of the key materials
5959
+ # associated with a KMS key.
5960
+ #
5961
+ # @!attribute [rw] key_id
5962
+ # Unique identifier of the key.
5963
+ # @return [String]
5964
+ #
5965
+ # @!attribute [rw] key_material_id
5966
+ # Unique identifier of the key material.
5967
+ # @return [String]
5968
+ #
5969
+ # @!attribute [rw] key_material_description
5970
+ # User-specified description of the key material. This field is only
5971
+ # present for symmetric encryption KMS keys with `EXTERNAL` origin.
5972
+ # @return [String]
5973
+ #
5974
+ # @!attribute [rw] import_state
5975
+ # Indicates if the key material is currently imported into KMS. It has
5976
+ # two possible values: `IMPORTED` or `PENDING_IMPORT`. This field is
5977
+ # only present for symmetric encryption KMS keys with `EXTERNAL`
5978
+ # origin.
5979
+ # @return [String]
5980
+ #
5981
+ # @!attribute [rw] key_material_state
5982
+ # There are three possible values for this field: `CURRENT`,
5983
+ # `NON_CURRENT` and `PENDING_ROTATION`. KMS uses `CURRENT` key
5984
+ # material for both encryption and decryption and `NON_CURRENT` key
5985
+ # material only for decryption. `PENDING_ROTATION` identifies key
5986
+ # material that has been imported for on-demand key rotation but the
5987
+ # rotation hasn't completed. Key material in `PENDING_ROTATION` is
5988
+ # not permanently associated with the KMS key. You can delete this key
5989
+ # material and import different key material in its place. The
5990
+ # `PENDING_ROTATION` value is only used in symmetric encryption keys
5991
+ # with imported key material. The other values, `CURRENT` and
5992
+ # `NON_CURRENT`, are used for all KMS keys that support automatic or
5993
+ # on-demand key rotation.
5994
+ # @return [String]
5995
+ #
5996
+ # @!attribute [rw] expiration_model
5997
+ # Indicates if the key material is configured to automatically expire.
5998
+ # There are two possible values for this field: `KEY_MATERIAL_EXPIRES`
5999
+ # and `KEY_MATERIAL_DOES_NOT_EXPIRE`. For any key material that
6000
+ # expires, the expiration date and time is indicated in `ValidTo`.
6001
+ # This field is only present for symmetric encryption KMS keys with
6002
+ # `EXTERNAL` origin.
6003
+ # @return [String]
6004
+ #
6005
+ # @!attribute [rw] valid_to
6006
+ # Date and time at which the key material expires. This field is only
6007
+ # present for symmetric encryption KMS keys with `EXTERNAL` origin in
6008
+ # rotation list entries with an `ExpirationModel` value of
6009
+ # `KEY_MATERIAL_EXPIRES`.
6010
+ # @return [Time]
6011
+ #
6012
+ # @!attribute [rw] rotation_date
6013
+ # Date and time that the key material rotation completed. Formatted as
6014
+ # Unix time. This field is not present for the first key material or
6015
+ # an imported key material in `PENDING_ROTATION` state.
6016
+ # @return [Time]
6017
+ #
6018
+ # @!attribute [rw] rotation_type
6019
+ # Identifies whether the key material rotation was a scheduled
6020
+ # [automatic rotation][1] or an [on-demand rotation][2]. This field is
6021
+ # not present for the first key material or an imported key material
6022
+ # in `PENDING_ROTATION` state.
6023
+ #
6024
+ #
6025
+ #
6026
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html
6027
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-on-demand.html
6028
+ # @return [String]
6029
+ #
6030
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotationsListEntry AWS API Documentation
6031
+ #
6032
+ class RotationsListEntry < Struct.new(
6033
+ :key_id,
6034
+ :key_material_id,
6035
+ :key_material_description,
6036
+ :import_state,
6037
+ :key_material_state,
6038
+ :expiration_model,
6039
+ :valid_to,
6040
+ :rotation_date,
6041
+ :rotation_type)
6042
+ SENSITIVE = []
6043
+ include Aws::Structure
6044
+ end
6045
+
5320
6046
  # @!attribute [rw] key_id
5321
6047
  # The unique identifier of the KMS key to delete.
5322
6048
  #
@@ -5448,27 +6174,34 @@ module Aws::KMS
5448
6174
  # Tells KMS whether the value of the `Message` parameter should be
5449
6175
  # hashed as part of the signing algorithm. Use `RAW` for unhashed
5450
6176
  # messages; use `DIGEST` for message digests, which are already
5451
- # hashed.
6177
+ # hashed; use `EXTERNAL_MU` for 64-byte representative μ used in
6178
+ # ML-DSA signing as defined in NIST FIPS 204 Section 6.2.
5452
6179
  #
5453
6180
  # When the value of `MessageType` is `RAW`, KMS uses the standard
5454
6181
  # signing algorithm, which begins with a hash function. When the value
5455
6182
  # is `DIGEST`, KMS skips the hashing step in the signing algorithm.
6183
+ # When the value is `EXTERNAL_MU` KMS skips the concatenated hashing
6184
+ # of the public key hash and the message done in the ML-DSA signing
6185
+ # algorithm.
5456
6186
  #
5457
- # Use the `DIGEST` value only when the value of the `Message`
5458
- # parameter is a message digest. If you use the `DIGEST` value with an
5459
- # unhashed message, the security of the signing operation can be
5460
- # compromised.
6187
+ # Use the `DIGEST` or `EXTERNAL_MU` value only when the value of the
6188
+ # `Message` parameter is a message digest. If you use the `DIGEST`
6189
+ # value with an unhashed message, the security of the signing
6190
+ # operation can be compromised.
5461
6191
  #
5462
- # When the value of `MessageType`is `DIGEST`, the length of the
6192
+ # When the value of `MessageType` is `DIGEST`, the length of the
5463
6193
  # `Message` value must match the length of hashed messages for the
5464
6194
  # specified signing algorithm.
5465
6195
  #
6196
+ # When the value of `MessageType` is `EXTERNAL_MU` the length of the
6197
+ # `Message` value must be 64 bytes.
6198
+ #
5466
6199
  # You can submit a message digest and omit the `MessageType` or
5467
6200
  # specify `RAW` so the digest is hashed again while signing. However,
5468
6201
  # this can cause verification failures when verifying with a system
5469
6202
  # that assumes a single hash.
5470
6203
  #
5471
- # The hashing algorithm in that `Sign` uses is based on the
6204
+ # The hashing algorithm that `Sign` uses is based on the
5472
6205
  # `SigningAlgorithm` value.
5473
6206
  #
5474
6207
  # * Signing algorithms that end in SHA\_256 use the SHA\_256 hashing
@@ -5480,12 +6213,15 @@ module Aws::KMS
5480
6213
  # * Signing algorithms that end in SHA\_512 use the SHA\_512 hashing
5481
6214
  # algorithm.
5482
6215
  #
6216
+ # * Signing algorithms that end in SHAKE\_256 use the SHAKE\_256
6217
+ # hashing algorithm.
6218
+ #
5483
6219
  # * SM2DSA uses the SM3 hashing algorithm. For details, see [Offline
5484
6220
  # verification with SM2 key pairs][1].
5485
6221
  #
5486
6222
  #
5487
6223
  #
5488
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
6224
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification
5489
6225
  # @return [String]
5490
6226
  #
5491
6227
  # @!attribute [rw] grant_tokens
@@ -5499,7 +6235,7 @@ module Aws::KMS
5499
6235
  #
5500
6236
  #
5501
6237
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
5502
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
6238
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
5503
6239
  # @return [Array<String>]
5504
6240
  #
5505
6241
  # @!attribute [rw] signing_algorithm
@@ -5515,12 +6251,12 @@ module Aws::KMS
5515
6251
  # Checks if your request will succeed. `DryRun` is an optional
5516
6252
  # parameter.
5517
6253
  #
5518
- # To learn more about how to use this parameter, see [Testing your KMS
5519
- # API calls][1] in the *Key Management Service Developer Guide*.
6254
+ # To learn more about how to use this parameter, see [Testing your
6255
+ # permissions][1] in the *Key Management Service Developer Guide*.
5520
6256
  #
5521
6257
  #
5522
6258
  #
5523
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
6259
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5524
6260
  # @return [Boolean]
5525
6261
  #
5526
6262
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/SignRequest AWS API Documentation
@@ -5745,8 +6481,8 @@ module Aws::KMS
5745
6481
  #
5746
6482
  #
5747
6483
  #
5748
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
5749
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
6484
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key
6485
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
5750
6486
  # @return [String]
5751
6487
  #
5752
6488
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateAliasRequest AWS API Documentation
@@ -6025,19 +6761,19 @@ module Aws::KMS
6025
6761
  #
6026
6762
  #
6027
6763
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
6028
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
6764
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
6029
6765
  # @return [Array<String>]
6030
6766
  #
6031
6767
  # @!attribute [rw] dry_run
6032
6768
  # Checks if your request will succeed. `DryRun` is an optional
6033
6769
  # parameter.
6034
6770
  #
6035
- # To learn more about how to use this parameter, see [Testing your KMS
6036
- # API calls][1] in the *Key Management Service Developer Guide*.
6771
+ # To learn more about how to use this parameter, see [Testing your
6772
+ # permissions][1] in the *Key Management Service Developer Guide*.
6037
6773
  #
6038
6774
  #
6039
6775
  #
6040
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
6776
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
6041
6777
  # @return [Boolean]
6042
6778
  #
6043
6779
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyMacRequest AWS API Documentation
@@ -6121,28 +6857,35 @@ module Aws::KMS
6121
6857
  # Tells KMS whether the value of the `Message` parameter should be
6122
6858
  # hashed as part of the signing algorithm. Use `RAW` for unhashed
6123
6859
  # messages; use `DIGEST` for message digests, which are already
6124
- # hashed.
6860
+ # hashed; use `EXTERNAL_MU` for 64-byte representative μ used in
6861
+ # ML-DSA signing as defined in NIST FIPS 204 Section 6.2.
6125
6862
  #
6126
6863
  # When the value of `MessageType` is `RAW`, KMS uses the standard
6127
6864
  # signing algorithm, which begins with a hash function. When the value
6128
6865
  # is `DIGEST`, KMS skips the hashing step in the signing algorithm.
6866
+ # When the value is `EXTERNAL_MU` KMS skips the concatenated hashing
6867
+ # of the public key hash and the message done in the ML-DSA signing
6868
+ # algorithm.
6129
6869
  #
6130
- # Use the `DIGEST` value only when the value of the `Message`
6131
- # parameter is a message digest. If you use the `DIGEST` value with an
6132
- # unhashed message, the security of the verification operation can be
6133
- # compromised.
6870
+ # Use the `DIGEST` or `EXTERNAL_MU` value only when the value of the
6871
+ # `Message` parameter is a message digest. If you use the `DIGEST`
6872
+ # value with an unhashed message, the security of the signing
6873
+ # operation can be compromised.
6134
6874
  #
6135
- # When the value of `MessageType`is `DIGEST`, the length of the
6875
+ # When the value of `MessageType` is `DIGEST`, the length of the
6136
6876
  # `Message` value must match the length of hashed messages for the
6137
6877
  # specified signing algorithm.
6138
6878
  #
6879
+ # When the value of `MessageType` is `EXTERNAL_MU` the length of the
6880
+ # `Message` value must be 64 bytes.
6881
+ #
6139
6882
  # You can submit a message digest and omit the `MessageType` or
6140
6883
  # specify `RAW` so the digest is hashed again while signing. However,
6141
6884
  # if the signed message is hashed once while signing, but twice while
6142
6885
  # verifying, verification fails, even when the message hasn't
6143
6886
  # changed.
6144
6887
  #
6145
- # The hashing algorithm in that `Verify` uses is based on the
6888
+ # The hashing algorithm that `Verify` uses is based on the
6146
6889
  # `SigningAlgorithm` value.
6147
6890
  #
6148
6891
  # * Signing algorithms that end in SHA\_256 use the SHA\_256 hashing
@@ -6154,12 +6897,15 @@ module Aws::KMS
6154
6897
  # * Signing algorithms that end in SHA\_512 use the SHA\_512 hashing
6155
6898
  # algorithm.
6156
6899
  #
6900
+ # * Signing algorithms that end in SHAKE\_256 use the SHAKE\_256
6901
+ # hashing algorithm.
6902
+ #
6157
6903
  # * SM2DSA uses the SM3 hashing algorithm. For details, see [Offline
6158
6904
  # verification with SM2 key pairs][1].
6159
6905
  #
6160
6906
  #
6161
6907
  #
6162
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
6908
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification
6163
6909
  # @return [String]
6164
6910
  #
6165
6911
  # @!attribute [rw] signature
@@ -6182,19 +6928,19 @@ module Aws::KMS
6182
6928
  #
6183
6929
  #
6184
6930
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
6185
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
6931
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
6186
6932
  # @return [Array<String>]
6187
6933
  #
6188
6934
  # @!attribute [rw] dry_run
6189
6935
  # Checks if your request will succeed. `DryRun` is an optional
6190
6936
  # parameter.
6191
6937
  #
6192
- # To learn more about how to use this parameter, see [Testing your KMS
6193
- # API calls][1] in the *Key Management Service Developer Guide*.
6938
+ # To learn more about how to use this parameter, see [Testing your
6939
+ # permissions][1] in the *Key Management Service Developer Guide*.
6194
6940
  #
6195
6941
  #
6196
6942
  #
6197
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
6943
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
6198
6944
  # @return [Boolean]
6199
6945
  #
6200
6946
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyRequest AWS API Documentation
@@ -6243,9 +6989,9 @@ module Aws::KMS
6243
6989
  end
6244
6990
 
6245
6991
  # The request was rejected because the (`XksKeyId`) is already
6246
- # associated with a KMS key in this external key store. Each KMS key in
6247
- # an external key store must be associated with a different external
6248
- # key.
6992
+ # associated with another KMS key in this external key store. Each KMS
6993
+ # key in an external key store must be associated with a different
6994
+ # external key.
6249
6995
  #
6250
6996
  # @!attribute [rw] message
6251
6997
  # @return [String]
@@ -6424,9 +7170,9 @@ module Aws::KMS
6424
7170
  include Aws::Structure
6425
7171
  end
6426
7172
 
6427
- # The request was rejected because the Amazon VPC endpoint service
6428
- # configuration does not fulfill the requirements for an external key
6429
- # store proxy. For details, see the exception message.
7173
+ # The request was rejected because the external key store proxy is not
7174
+ # configured correctly. To identify the cause, see the error message
7175
+ # that accompanies the exception.
6430
7176
  #
6431
7177
  # @!attribute [rw] message
6432
7178
  # @return [String]
@@ -6455,11 +7201,10 @@ module Aws::KMS
6455
7201
  include Aws::Structure
6456
7202
  end
6457
7203
 
6458
- # The request was rejected because the concatenation of the
6459
- # `XksProxyUriEndpoint` is already associated with an external key store
6460
- # in the Amazon Web Services account and Region. Each external key store
6461
- # in an account and Region must use a unique external key store proxy
6462
- # address.
7204
+ # The request was rejected because the `XksProxyUriEndpoint` is already
7205
+ # associated with another external key store in this Amazon Web Services
7206
+ # Region. To identify the cause, see the error message that accompanies
7207
+ # the exception.
6463
7208
  #
6464
7209
  # @!attribute [rw] message
6465
7210
  # @return [String]
@@ -6474,9 +7219,9 @@ module Aws::KMS
6474
7219
 
6475
7220
  # The request was rejected because the concatenation of the
6476
7221
  # `XksProxyUriEndpoint` and `XksProxyUriPath` is already associated with
6477
- # an external key store in the Amazon Web Services account and Region.
6478
- # Each external key store in an account and Region must use a unique
6479
- # external key store proxy API address.
7222
+ # another external key store in this Amazon Web Services Region. Each
7223
+ # external key store in a Region must use a unique external key store
7224
+ # proxy API address.
6480
7225
  #
6481
7226
  # @!attribute [rw] message
6482
7227
  # @return [String]
@@ -6509,10 +7254,9 @@ module Aws::KMS
6509
7254
  end
6510
7255
 
6511
7256
  # The request was rejected because the specified Amazon VPC endpoint
6512
- # service is already associated with an external key store in the Amazon
6513
- # Web Services account and Region. Each external key store in an Amazon
6514
- # Web Services account and Region must use a different Amazon VPC
6515
- # endpoint service.
7257
+ # service is already associated with another external key store in this
7258
+ # Amazon Web Services Region. Each external key store in a Region must
7259
+ # use a different Amazon VPC endpoint service.
6516
7260
  #
6517
7261
  # @!attribute [rw] message
6518
7262
  # @return [String]
@@ -6527,10 +7271,13 @@ module Aws::KMS
6527
7271
 
6528
7272
  # The request was rejected because the Amazon VPC endpoint service
6529
7273
  # configuration does not fulfill the requirements for an external key
6530
- # store proxy. For details, see the exception message and [review the
6531
- # requirements](kms/latest/developerguide/vpc-connectivity.html#xks-vpc-requirements)
6532
- # for Amazon VPC endpoint service connectivity for an external key
6533
- # store.
7274
+ # store. To identify the cause, see the error message that accompanies
7275
+ # the exception and [review the requirements][1] for Amazon VPC endpoint
7276
+ # service connectivity for an external key store.
7277
+ #
7278
+ #
7279
+ #
7280
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/vpc-connectivity.html#xks-vpc-requirements
6534
7281
  #
6535
7282
  # @!attribute [rw] message
6536
7283
  # @return [String]
@@ -6563,3 +7310,4 @@ module Aws::KMS
6563
7310
 
6564
7311
  end
6565
7312
  end
7313
+