aws-sdk-kms 1.72.0 → 1.118.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
@@ -470,6 +485,14 @@ module Aws::KMS
470
485
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements
471
486
  # @return [String]
472
487
  #
488
+ # @!attribute [rw] xks_proxy_vpc_endpoint_service_owner
489
+ # Specifies the Amazon Web Services account ID that owns the Amazon
490
+ # VPC service endpoint for the interface that is used to communicate
491
+ # with your external key store proxy (XKS proxy). This parameter is
492
+ # optional. If not provided, the Amazon Web Services account ID
493
+ # calling the action will be used.
494
+ # @return [String]
495
+ #
473
496
  # @!attribute [rw] xks_proxy_authentication_credential
474
497
  # Specifies an authentication credential for the external key store
475
498
  # proxy (XKS proxy). This parameter is required for all custom key
@@ -479,7 +502,7 @@ module Aws::KMS
479
502
  # `RawSecretAccessKey`, a secret key, and `AccessKeyId`, a unique
480
503
  # identifier for the `RawSecretAccessKey`. For character requirements,
481
504
  # see
482
- # [XksProxyAuthenticationCredentialType](kms/latest/APIReference/API_XksProxyAuthenticationCredentialType.html).
505
+ # [XksProxyAuthenticationCredentialType](API_XksProxyAuthenticationCredentialType.html).
483
506
  #
484
507
  # KMS uses this authentication credential to sign requests to the
485
508
  # external key store proxy on your behalf. This credential is
@@ -520,7 +543,7 @@ module Aws::KMS
520
543
  #
521
544
  #
522
545
  #
523
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/plan-xks-keystore.html#choose-xks-connectivity
546
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/choose-xks-connectivity.html
524
547
  # @return [String]
525
548
  #
526
549
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateCustomKeyStoreRequest AWS API Documentation
@@ -534,6 +557,7 @@ module Aws::KMS
534
557
  :xks_proxy_uri_endpoint,
535
558
  :xks_proxy_uri_path,
536
559
  :xks_proxy_vpc_endpoint_service_name,
560
+ :xks_proxy_vpc_endpoint_service_owner,
537
561
  :xks_proxy_authentication_credential,
538
562
  :xks_proxy_connectivity)
539
563
  SENSITIVE = [:key_store_password]
@@ -606,7 +630,7 @@ module Aws::KMS
606
630
  #
607
631
  # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
608
632
  # [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
633
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-delete.html
610
634
  # @return [String]
611
635
  #
612
636
  # @!attribute [rw] operations
@@ -679,7 +703,7 @@ module Aws::KMS
679
703
  #
680
704
  #
681
705
  # [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
706
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
683
707
  # @return [Array<String>]
684
708
  #
685
709
  # @!attribute [rw] name
@@ -707,12 +731,12 @@ module Aws::KMS
707
731
  # Checks if your request will succeed. `DryRun` is an optional
708
732
  # parameter.
709
733
  #
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*.
734
+ # To learn more about how to use this parameter, see [Testing your
735
+ # permissions][1] in the *Key Management Service Developer Guide*.
712
736
  #
713
737
  #
714
738
  #
715
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
739
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
716
740
  # @return [Boolean]
717
741
  #
718
742
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateGrantRequest AWS API Documentation
@@ -741,7 +765,7 @@ module Aws::KMS
741
765
  #
742
766
  #
743
767
  # [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
768
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
745
769
  # @return [String]
746
770
  #
747
771
  # @!attribute [rw] grant_id
@@ -781,22 +805,38 @@ module Aws::KMS
781
805
  # that I make are not always immediately visible][2] in the *Amazon
782
806
  # Web Services Identity and Access Management User Guide*.
783
807
  #
808
+ # <note markdown="1"> If either of the required `Resource` or `Action` elements are
809
+ # missing from a key policy statement, the policy statement has no
810
+ # effect. When a key policy statement is missing one of these
811
+ # elements, the KMS console correctly reports an error, but the
812
+ # `CreateKey` and `PutKeyPolicy` API requests succeed, even though the
813
+ # policy statement is ineffective.
814
+ #
815
+ # For more information on required key policy elements, see [Elements
816
+ # in a key policy][3] in the *Key Management Service Developer Guide*.
817
+ #
818
+ # </note>
819
+ #
784
820
  # If you do not provide a key policy, KMS attaches a default key
785
821
  # policy to the KMS key. For more information, see [Default key
786
- # policy][3] in the *Key Management Service Developer Guide*.
822
+ # policy][4] in the *Key Management Service Developer Guide*.
823
+ #
824
+ # <note markdown="1"> If the key policy exceeds the length constraint, KMS returns a
825
+ # `LimitExceededException`.
787
826
  #
788
- # The key policy size quota is 32 kilobytes (32768 bytes).
827
+ # </note>
789
828
  #
790
829
  # For help writing and formatting a JSON policy document, see the [IAM
791
- # JSON Policy Reference][4] in the <i> <i>Identity and Access
830
+ # JSON Policy Reference][5] in the <i> <i>Identity and Access
792
831
  # Management User Guide</i> </i>.
793
832
  #
794
833
  #
795
834
  #
796
835
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
797
836
  # [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
837
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html#key-policy-elements
838
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html
839
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
800
840
  # @return [String]
801
841
  #
802
842
  # @!attribute [rw] description
@@ -816,8 +856,11 @@ module Aws::KMS
816
856
  # Determines the [cryptographic operations][1] for which you can use
817
857
  # the KMS key. The default value is `ENCRYPT_DECRYPT`. This parameter
818
858
  # 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.
859
+ # otherwise, it is required. You can't change the [ `KeyUsage` ][2]
860
+ # value after the KMS key is created. Each KMS key can have only one
861
+ # key usage. This follows key usage best practices according to [NIST
862
+ # SP 800-57 Recommendations for Key Management][3], section 5.2, Key
863
+ # usage.
821
864
  #
822
865
  # Select only one valid value.
823
866
  #
@@ -826,18 +869,26 @@ module Aws::KMS
826
869
  #
827
870
  # * For HMAC KMS keys (symmetric), specify `GENERATE_VERIFY_MAC`.
828
871
  #
829
- # * For asymmetric KMS keys with RSA key material, specify
872
+ # * For asymmetric KMS keys with RSA key pairs, specify
830
873
  # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
831
874
  #
832
- # * For asymmetric KMS keys with ECC key material, specify
875
+ # * For asymmetric KMS keys with NIST-standard elliptic curve key
876
+ # pairs, specify `SIGN_VERIFY` or `KEY_AGREEMENT`.
877
+ #
878
+ # * For asymmetric KMS keys with `ECC_SECG_P256K1` key pairs, specify
879
+ # `SIGN_VERIFY`.
880
+ #
881
+ # * For asymmetric KMS keys with ML-DSA key pairs, specify
833
882
  # `SIGN_VERIFY`.
834
883
  #
835
- # * For asymmetric KMS keys with SM2 key material (China Regions
836
- # only), specify `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
884
+ # * For asymmetric KMS keys with SM2 key pairs (China Regions only),
885
+ # specify `ENCRYPT_DECRYPT`, `SIGN_VERIFY`, or `KEY_AGREEMENT`.
837
886
  #
838
887
  #
839
888
  #
840
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
889
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
890
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#key-usage
891
+ # [3]: https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final
841
892
  # @return [String]
842
893
  #
843
894
  # @!attribute [rw] customer_master_key_spec
@@ -854,8 +905,8 @@ module Aws::KMS
854
905
  # `SYMMETRIC_DEFAULT`, creates a KMS key with a 256-bit AES-GCM key
855
906
  # that is used for encryption and decryption, except in China Regions,
856
907
  # 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
908
+ # For a detailed description of all supported key specs, see [Key spec
909
+ # reference][1] in the <i> <i>Key Management Service Developer
859
910
  # Guide</i> </i>.
860
911
  #
861
912
  # The `KeySpec` determines whether the KMS key contains a symmetric
@@ -864,10 +915,11 @@ module Aws::KMS
864
915
  # KMS key is created. To further restrict the algorithms that can be
865
916
  # used with the KMS key, use a condition key in its key policy or IAM
866
917
  # 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>.
918
+ # [kms:MacAlgorithm][3], [kms:KeyAgreementAlgorithm][4], or
919
+ # [kms:SigningAlgorithm][5] in the <i> <i>Key Management Service
920
+ # Developer Guide</i> </i>.
869
921
  #
870
- # [Amazon Web Services services that are integrated with KMS][5] use
922
+ # [Amazon Web Services services that are integrated with KMS][6] use
871
923
  # symmetric encryption KMS keys to protect your data. These services
872
924
  # do not support asymmetric KMS keys or HMAC KMS keys.
873
925
  #
@@ -878,7 +930,6 @@ module Aws::KMS
878
930
  # * `SYMMETRIC_DEFAULT`
879
931
  #
880
932
  # ^
881
- #
882
933
  # * HMAC keys (symmetric)
883
934
  #
884
935
  # * `HMAC_224`
@@ -888,16 +939,16 @@ module Aws::KMS
888
939
  # * `HMAC_384`
889
940
  #
890
941
  # * `HMAC_512`
891
- #
892
- # * Asymmetric RSA key pairs
942
+ # * Asymmetric RSA key pairs (encryption and decryption -or- signing
943
+ # and verification)
893
944
  #
894
945
  # * `RSA_2048`
895
946
  #
896
947
  # * `RSA_3072`
897
948
  #
898
949
  # * `RSA_4096`
899
- #
900
- # * Asymmetric NIST-recommended elliptic curve key pairs
950
+ # * Asymmetric NIST-standard elliptic curve key pairs (signing and
951
+ # verification -or- deriving shared secrets)
901
952
  #
902
953
  # * `ECC_NIST_P256` (secp256r1)
903
954
  #
@@ -905,26 +956,47 @@ module Aws::KMS
905
956
  #
906
957
  # * `ECC_NIST_P521` (secp521r1)
907
958
  #
908
- # * Other asymmetric elliptic curve key pairs
959
+ # * `ECC_NIST_EDWARDS25519` (ed25519) - signing and verification
960
+ # only
961
+ #
962
+ # * **Note:** For ECC\_NIST\_EDWARDS25519 KMS keys, the
963
+ # ED25519\_SHA\_512 signing algorithm requires [
964
+ # `MessageType:RAW`
965
+ # ](kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType),
966
+ # while ED25519\_PH\_SHA\_512 requires [ `MessageType:DIGEST`
967
+ # ](kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType).
968
+ # These message types cannot be used interchangeably.
969
+ #
970
+ # ^
971
+ # * Other asymmetric elliptic curve key pairs (signing and
972
+ # verification)
909
973
  #
910
974
  # * `ECC_SECG_P256K1` (secp256k1), commonly used for
911
975
  # cryptocurrencies.
912
976
  #
913
977
  # ^
978
+ # * Asymmetric ML-DSA key pairs (signing and verification)
979
+ #
980
+ # * `ML_DSA_44`
914
981
  #
915
- # * SM2 key pairs (China Regions only)
982
+ # * `ML_DSA_65`
916
983
  #
917
- # * `SM2`
984
+ # * `ML_DSA_87`
985
+ # * SM2 key pairs (encryption and decryption -or- signing and
986
+ # verification -or- deriving shared secrets)
987
+ #
988
+ # * `SM2` (China Regions only)
918
989
  #
919
990
  # ^
920
991
  #
921
992
  #
922
993
  #
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
994
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html
995
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-encryption-algorithm
996
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-mac-algorithm
997
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-key-agreement-algorithm
998
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-signing-algorithm
999
+ # [6]: http://aws.amazon.com/kms/features/#AWS_Service_Integration
928
1000
  # @return [String]
929
1001
  #
930
1002
  # @!attribute [rw] origin
@@ -977,7 +1049,7 @@ module Aws::KMS
977
1049
  #
978
1050
  #
979
1051
  #
980
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1052
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
981
1053
  # @return [String]
982
1054
  #
983
1055
  # @!attribute [rw] bypass_policy_lockout_safety_check
@@ -992,12 +1064,13 @@ module Aws::KMS
992
1064
  # Management Service Developer Guide*.
993
1065
  #
994
1066
  # 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.
1067
+ # that is making the request from making a subsequent
1068
+ # [PutKeyPolicy][2] request on the KMS key.
997
1069
  #
998
1070
  #
999
1071
  #
1000
1072
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
1073
+ # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html
1001
1074
  # @return [Boolean]
1002
1075
  #
1003
1076
  # @!attribute [rw] tags
@@ -1027,7 +1100,7 @@ module Aws::KMS
1027
1100
  # When you add tags to an Amazon Web Services resource, Amazon Web
1028
1101
  # Services generates a cost allocation report with usage and costs
1029
1102
  # aggregated by tags. Tags can also be used to control access to a KMS
1030
- # key. For details, see [Tagging Keys][3].
1103
+ # key. For details, see [Tags in KMS][3].
1031
1104
  #
1032
1105
  #
1033
1106
  #
@@ -1100,7 +1173,7 @@ module Aws::KMS
1100
1173
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key
1101
1174
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html
1102
1175
  # [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
1176
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html#xks-key-requirements
1104
1177
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-double-encryption
1105
1178
  # @return [String]
1106
1179
  #
@@ -1429,7 +1502,6 @@ module Aws::KMS
1429
1502
  #
1430
1503
  # * The [TLS certificate][6] specifies the private DNS hostname at
1431
1504
  # which the endpoint is reachable.
1432
- #
1433
1505
  # * `XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND` — KMS can't find the VPC
1434
1506
  # endpoint service that it uses to communicate with the external key
1435
1507
  # store proxy. Verify that the `XksProxyVpcEndpointServiceName` is
@@ -1509,8 +1581,8 @@ module Aws::KMS
1509
1581
  #
1510
1582
  #
1511
1583
  #
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
1584
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
1585
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
1514
1586
  # @return [Hash<String,String>]
1515
1587
  #
1516
1588
  # @!attribute [rw] grant_tokens
@@ -1524,7 +1596,7 @@ module Aws::KMS
1524
1596
  #
1525
1597
  #
1526
1598
  # [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
1599
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
1528
1600
  # @return [Array<String>]
1529
1601
  #
1530
1602
  # @!attribute [rw] key_id
@@ -1575,42 +1647,44 @@ module Aws::KMS
1575
1647
  #
1576
1648
  # @!attribute [rw] recipient
1577
1649
  # 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`.
1650
+ # enclave or NitroTPM, and the encryption algorithm to use with the
1651
+ # public key in the attestation document. The only valid encryption
1652
+ # algorithm is `RSAES_OAEP_SHA_256`.
1581
1653
  #
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.
1654
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
1655
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
1656
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
1657
+ # Services NitroTPM.
1585
1658
  #
1586
1659
  # When you use this parameter, instead of returning the plaintext
1587
1660
  # data, KMS encrypts the plaintext data with the public key in the
1588
1661
  # attestation document, and returns the resulting ciphertext in the
1589
1662
  # `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.
1663
+ # be decrypted only with the private key in the attested environment.
1664
+ # The `Plaintext` field in the response is null or empty.
1592
1665
  #
1593
1666
  # 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*.
1667
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
1668
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
1669
+ # Service Developer Guide*.
1596
1670
  #
1597
1671
  #
1598
1672
  #
1599
- # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
1673
+ # [1]: https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-concepts.html#term-attestdoc
1600
1674
  # [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
1675
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
1602
1676
  # @return [Types::RecipientInfo]
1603
1677
  #
1604
1678
  # @!attribute [rw] dry_run
1605
1679
  # Checks if your request will succeed. `DryRun` is an optional
1606
1680
  # parameter.
1607
1681
  #
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*.
1682
+ # To learn more about how to use this parameter, see [Testing your
1683
+ # permissions][1] in the *Key Management Service Developer Guide*.
1610
1684
  #
1611
1685
  #
1612
1686
  #
1613
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
1687
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
1614
1688
  # @return [Boolean]
1615
1689
  #
1616
1690
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptRequest AWS API Documentation
@@ -1650,19 +1724,28 @@ module Aws::KMS
1650
1724
  # @return [String]
1651
1725
  #
1652
1726
  # @!attribute [rw] ciphertext_for_recipient
1653
- # The plaintext data encrypted with the public key in the attestation
1654
- # document.
1727
+ # The plaintext data encrypted with the public key from the
1728
+ # attestation document. This ciphertext can be decrypted only by using
1729
+ # a private key from the attested environment.
1655
1730
  #
1656
1731
  # This field is included in the response only when the `Recipient`
1657
1732
  # 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*.
1733
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
1734
+ # about the interaction between KMS and Amazon Web Services Nitro
1735
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
1736
+ # attestation support in KMS][1] in the *Key Management Service
1737
+ # Developer Guide*.
1662
1738
  #
1663
1739
  #
1664
1740
  #
1665
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
1741
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
1742
+ # @return [String]
1743
+ #
1744
+ # @!attribute [rw] key_material_id
1745
+ # The identifier of the key material used to decrypt the ciphertext.
1746
+ # This field is present only when the operation uses a symmetric
1747
+ # encryption KMS key. This field is omitted if the request includes
1748
+ # the `Recipient` parameter.
1666
1749
  # @return [String]
1667
1750
  #
1668
1751
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptResponse AWS API Documentation
@@ -1671,7 +1754,8 @@ module Aws::KMS
1671
1754
  :key_id,
1672
1755
  :plaintext,
1673
1756
  :encryption_algorithm,
1674
- :ciphertext_for_recipient)
1757
+ :ciphertext_for_recipient,
1758
+ :key_material_id)
1675
1759
  SENSITIVE = [:plaintext]
1676
1760
  include Aws::Structure
1677
1761
  end
@@ -1723,10 +1807,43 @@ module Aws::KMS
1723
1807
  # DescribeKey.
1724
1808
  # @return [String]
1725
1809
  #
1810
+ # @!attribute [rw] key_material_id
1811
+ # Identifies the imported key material you are deleting.
1812
+ #
1813
+ # If no KeyMaterialId is specified, KMS deletes the current key
1814
+ # material.
1815
+ #
1816
+ # To get the list of key material IDs associated with a KMS key, use
1817
+ # ListKeyRotations.
1818
+ # @return [String]
1819
+ #
1726
1820
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterialRequest AWS API Documentation
1727
1821
  #
1728
1822
  class DeleteImportedKeyMaterialRequest < Struct.new(
1729
- :key_id)
1823
+ :key_id,
1824
+ :key_material_id)
1825
+ SENSITIVE = []
1826
+ include Aws::Structure
1827
+ end
1828
+
1829
+ # @!attribute [rw] key_id
1830
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key from which
1831
+ # the key material was deleted.
1832
+ #
1833
+ #
1834
+ #
1835
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
1836
+ # @return [String]
1837
+ #
1838
+ # @!attribute [rw] key_material_id
1839
+ # Identifies the deleted key material.
1840
+ # @return [String]
1841
+ #
1842
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterialResponse AWS API Documentation
1843
+ #
1844
+ class DeleteImportedKeyMaterialResponse < Struct.new(
1845
+ :key_id,
1846
+ :key_material_id)
1730
1847
  SENSITIVE = []
1731
1848
  include Aws::Structure
1732
1849
  end
@@ -1745,6 +1862,201 @@ module Aws::KMS
1745
1862
  include Aws::Structure
1746
1863
  end
1747
1864
 
1865
+ # @!attribute [rw] key_id
1866
+ # Identifies an asymmetric NIST-standard ECC or SM2 (China Regions
1867
+ # only) KMS key. KMS uses the private key in the specified key pair to
1868
+ # derive the shared secret. The key usage of the KMS key must be
1869
+ # `KEY_AGREEMENT`. To find the `KeyUsage` of a KMS key, use the
1870
+ # DescribeKey operation.
1871
+ #
1872
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
1873
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
1874
+ # a KMS key in a different Amazon Web Services account, you must use
1875
+ # the key ARN or alias ARN.
1876
+ #
1877
+ # For example:
1878
+ #
1879
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
1880
+ #
1881
+ # * Key ARN:
1882
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
1883
+ #
1884
+ # * Alias name: `alias/ExampleAlias`
1885
+ #
1886
+ # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
1887
+ #
1888
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1889
+ # DescribeKey. To get the alias name and alias ARN, use ListAliases.
1890
+ # @return [String]
1891
+ #
1892
+ # @!attribute [rw] key_agreement_algorithm
1893
+ # Specifies the key agreement algorithm used to derive the shared
1894
+ # secret. The only valid value is `ECDH`.
1895
+ # @return [String]
1896
+ #
1897
+ # @!attribute [rw] public_key
1898
+ # Specifies the public key in your peer's NIST-standard elliptic
1899
+ # curve (ECC) or SM2 (China Regions only) key pair.
1900
+ #
1901
+ # The public key must be a DER-encoded X.509 public key, also known as
1902
+ # `SubjectPublicKeyInfo` (SPKI), as defined in [RFC 5280][1].
1903
+ #
1904
+ # GetPublicKey returns the public key of an asymmetric KMS key pair in
1905
+ # the required DER-encoded format.
1906
+ #
1907
+ # <note markdown="1"> If you use [Amazon Web Services CLI version 1][2], you must provide
1908
+ # the DER-encoded X.509 public key in a file. Otherwise, the Amazon
1909
+ # Web Services CLI Base64-encodes the public key a second time,
1910
+ # resulting in a `ValidationException`.
1911
+ #
1912
+ # </note>
1913
+ #
1914
+ # You can specify the public key as binary data in a file using fileb
1915
+ # (`fileb://<path-to-file>`) or in-line using a Base64 encoded string.
1916
+ #
1917
+ #
1918
+ #
1919
+ # [1]: https://tools.ietf.org/html/rfc5280
1920
+ # [2]: https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html
1921
+ # @return [String]
1922
+ #
1923
+ # @!attribute [rw] grant_tokens
1924
+ # A list of grant tokens.
1925
+ #
1926
+ # Use a grant token when your permission to call this operation comes
1927
+ # from a new grant that has not yet achieved *eventual consistency*.
1928
+ # For more information, see [Grant token][1] and [Using a grant
1929
+ # token][2] in the *Key Management Service Developer Guide*.
1930
+ #
1931
+ #
1932
+ #
1933
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1934
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
1935
+ # @return [Array<String>]
1936
+ #
1937
+ # @!attribute [rw] dry_run
1938
+ # Checks if your request will succeed. `DryRun` is an optional
1939
+ # parameter.
1940
+ #
1941
+ # To learn more about how to use this parameter, see [Testing your
1942
+ # permissions][1] in the *Key Management Service Developer Guide*.
1943
+ #
1944
+ #
1945
+ #
1946
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
1947
+ # @return [Boolean]
1948
+ #
1949
+ # @!attribute [rw] recipient
1950
+ # A signed [attestation document][1] from an Amazon Web Services Nitro
1951
+ # enclave or NitroTPM, and the encryption algorithm to use with the
1952
+ # public key in the attestation document. The only valid encryption
1953
+ # algorithm is `RSAES_OAEP_SHA_256`.
1954
+ #
1955
+ # This parameter only supports attestation documents for Amazon Web
1956
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM. To call
1957
+ # DeriveSharedSecret generate an attestation document use either
1958
+ # [Amazon Web Services Nitro Enclaves SDK][2] for an Amazon Web
1959
+ # Services Nitro Enclaves or [Amazon Web Services NitroTPM tools][3]
1960
+ # for Amazon Web Services NitroTPM. Then use the Recipient parameter
1961
+ # from any Amazon Web Services SDK to provide the attestation document
1962
+ # for the attested environment.
1963
+ #
1964
+ # When you use this parameter, instead of returning a plaintext copy
1965
+ # of the shared secret, KMS encrypts the plaintext shared secret under
1966
+ # the public key in the attestation document, and returns the
1967
+ # resulting ciphertext in the `CiphertextForRecipient` field in the
1968
+ # response. This ciphertext can be decrypted only with the private key
1969
+ # in the attested environment. The `CiphertextBlob` field in the
1970
+ # response contains the encrypted shared secret derived from the KMS
1971
+ # key specified by the `KeyId` parameter and public key specified by
1972
+ # the `PublicKey` parameter. The `SharedSecret` field in the response
1973
+ # is null or empty.
1974
+ #
1975
+ # For information about the interaction between KMS and Amazon Web
1976
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
1977
+ # [Cryptographic attestation support in KMS][4] in the *Key Management
1978
+ # Service Developer Guide*.
1979
+ #
1980
+ #
1981
+ #
1982
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
1983
+ # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
1984
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attestation-get-doc.html
1985
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
1986
+ # @return [Types::RecipientInfo]
1987
+ #
1988
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeriveSharedSecretRequest AWS API Documentation
1989
+ #
1990
+ class DeriveSharedSecretRequest < Struct.new(
1991
+ :key_id,
1992
+ :key_agreement_algorithm,
1993
+ :public_key,
1994
+ :grant_tokens,
1995
+ :dry_run,
1996
+ :recipient)
1997
+ SENSITIVE = []
1998
+ include Aws::Structure
1999
+ end
2000
+
2001
+ # @!attribute [rw] key_id
2002
+ # Identifies the KMS key used to derive the shared secret.
2003
+ # @return [String]
2004
+ #
2005
+ # @!attribute [rw] shared_secret
2006
+ # The raw secret derived from the specified key agreement algorithm,
2007
+ # private key in the asymmetric KMS key, and your peer's public key.
2008
+ #
2009
+ # If the response includes the `CiphertextForRecipient` field, the
2010
+ # `SharedSecret` field is null or empty.
2011
+ # @return [String]
2012
+ #
2013
+ # @!attribute [rw] ciphertext_for_recipient
2014
+ # The plaintext shared secret encrypted with the public key from the
2015
+ # attestation document. This ciphertext can be decrypted only by using
2016
+ # a private key from the attested environment.
2017
+ #
2018
+ # This field is included in the response only when the `Recipient`
2019
+ # parameter in the request includes a valid attestation document from
2020
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
2021
+ # about the interaction between KMS and Amazon Web Services Nitro
2022
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
2023
+ # attestation support in KMS][1] in the *Key Management Service
2024
+ # Developer Guide*.
2025
+ #
2026
+ #
2027
+ #
2028
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2029
+ # @return [String]
2030
+ #
2031
+ # @!attribute [rw] key_agreement_algorithm
2032
+ # Identifies the key agreement algorithm used to derive the shared
2033
+ # secret.
2034
+ # @return [String]
2035
+ #
2036
+ # @!attribute [rw] key_origin
2037
+ # The source of the key material for the specified KMS key.
2038
+ #
2039
+ # When this value is `AWS_KMS`, KMS created the key material. When
2040
+ # this value is `EXTERNAL`, the key material was imported or the KMS
2041
+ # key doesn't have any key material.
2042
+ #
2043
+ # The only valid values for DeriveSharedSecret are `AWS_KMS` and
2044
+ # `EXTERNAL`. DeriveSharedSecret does not support KMS keys with a
2045
+ # `KeyOrigin` value of `AWS_CLOUDHSM` or `EXTERNAL_KEY_STORE`.
2046
+ # @return [String]
2047
+ #
2048
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeriveSharedSecretResponse AWS API Documentation
2049
+ #
2050
+ class DeriveSharedSecretResponse < Struct.new(
2051
+ :key_id,
2052
+ :shared_secret,
2053
+ :ciphertext_for_recipient,
2054
+ :key_agreement_algorithm,
2055
+ :key_origin)
2056
+ SENSITIVE = [:shared_secret]
2057
+ include Aws::Structure
2058
+ end
2059
+
1748
2060
  # @!attribute [rw] custom_key_store_id
1749
2061
  # Gets only information about the specified custom key store. Enter
1750
2062
  # the key store ID.
@@ -1800,8 +2112,8 @@ module Aws::KMS
1800
2112
  # @!attribute [rw] truncated
1801
2113
  # A flag that indicates whether there are more items in the list. When
1802
2114
  # 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.
2115
+ # more items, pass the value of the `NextMarker` element in this
2116
+ # response to the `Marker` parameter in a subsequent request.
1805
2117
  # @return [Boolean]
1806
2118
  #
1807
2119
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeCustomKeyStoresResponse AWS API Documentation
@@ -1843,7 +2155,7 @@ module Aws::KMS
1843
2155
  #
1844
2156
  #
1845
2157
  #
1846
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html##aws-managed-cmk
2158
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
1847
2159
  # @return [String]
1848
2160
  #
1849
2161
  # @!attribute [rw] grant_tokens
@@ -1857,7 +2169,7 @@ module Aws::KMS
1857
2169
  #
1858
2170
  #
1859
2171
  # [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
2172
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
1861
2173
  # @return [Array<String>]
1862
2174
  #
1863
2175
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKeyRequest AWS API Documentation
@@ -1928,7 +2240,7 @@ module Aws::KMS
1928
2240
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks
1929
2241
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
1930
2242
  # [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
2243
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
1932
2244
  # @return [String]
1933
2245
  #
1934
2246
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKeyRotationRequest AWS API Documentation
@@ -2031,14 +2343,35 @@ module Aws::KMS
2031
2343
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
2032
2344
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
2033
2345
  # [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
2346
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
2347
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
2036
2348
  # @return [String]
2037
2349
  #
2350
+ # @!attribute [rw] rotation_period_in_days
2351
+ # Use this parameter to specify a custom period of time between each
2352
+ # rotation date. If no value is specified, the default value is 365
2353
+ # days.
2354
+ #
2355
+ # The rotation period defines the number of days after you enable
2356
+ # automatic key rotation that KMS will rotate your key material, and
2357
+ # the number of days between each automatic rotation thereafter.
2358
+ #
2359
+ # You can use the [ `kms:RotationPeriodInDays` ][1] condition key to
2360
+ # further constrain the values that principals can specify in the
2361
+ # `RotationPeriodInDays` parameter.
2362
+ #
2363
+ #
2364
+ #
2365
+ #
2366
+ #
2367
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-rotation-period-in-days
2368
+ # @return [Integer]
2369
+ #
2038
2370
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRotationRequest AWS API Documentation
2039
2371
  #
2040
2372
  class EnableKeyRotationRequest < Struct.new(
2041
- :key_id)
2373
+ :key_id,
2374
+ :rotation_period_in_days)
2042
2375
  SENSITIVE = []
2043
2376
  include Aws::Structure
2044
2377
  end
@@ -2097,8 +2430,8 @@ module Aws::KMS
2097
2430
  #
2098
2431
  #
2099
2432
  #
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
2433
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
2434
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2102
2435
  # @return [Hash<String,String>]
2103
2436
  #
2104
2437
  # @!attribute [rw] grant_tokens
@@ -2112,7 +2445,7 @@ module Aws::KMS
2112
2445
  #
2113
2446
  #
2114
2447
  # [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
2448
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2116
2449
  # @return [Array<String>]
2117
2450
  #
2118
2451
  # @!attribute [rw] encryption_algorithm
@@ -2132,12 +2465,12 @@ module Aws::KMS
2132
2465
  # Checks if your request will succeed. `DryRun` is an optional
2133
2466
  # parameter.
2134
2467
  #
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*.
2468
+ # To learn more about how to use this parameter, see [Testing your
2469
+ # permissions][1] in the *Key Management Service Developer Guide*.
2137
2470
  #
2138
2471
  #
2139
2472
  #
2140
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
2473
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2141
2474
  # @return [Boolean]
2142
2475
  #
2143
2476
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EncryptRequest AWS API Documentation
@@ -2220,7 +2553,7 @@ module Aws::KMS
2220
2553
  #
2221
2554
  #
2222
2555
  #
2223
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2556
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2224
2557
  # @return [Hash<String,String>]
2225
2558
  #
2226
2559
  # @!attribute [rw] key_id
@@ -2254,9 +2587,11 @@ module Aws::KMS
2254
2587
  #
2255
2588
  # The KMS rule that restricts the use of asymmetric RSA and SM2 KMS
2256
2589
  # 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.
2590
+ # the rule that permits you to use ECC KMS keys only to sign and
2591
+ # verify, and the rule that permits you to use ML-DSA key pairs to
2592
+ # sign and verify only are not effective on data key pairs, which are
2593
+ # used outside of KMS. The SM2 key spec is only available in China
2594
+ # Regions.
2260
2595
  # @return [String]
2261
2596
  #
2262
2597
  # @!attribute [rw] grant_tokens
@@ -2270,50 +2605,57 @@ module Aws::KMS
2270
2605
  #
2271
2606
  #
2272
2607
  # [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
2608
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2274
2609
  # @return [Array<String>]
2275
2610
  #
2276
2611
  # @!attribute [rw] recipient
2277
2612
  # 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`.
2613
+ # enclave or NitroTPM, and the encryption algorithm to use with the
2614
+ # public key in the attestation document. The only valid encryption
2615
+ # algorithm is `RSAES_OAEP_SHA_256`.
2281
2616
  #
2282
2617
  # 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.
2618
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM. To call
2619
+ # GenerateDataKeyPair generate an attestation document use either
2620
+ # [Amazon Web Services Nitro Enclaves SDK][2] for an Amazon Web
2621
+ # Services Nitro Enclaves or [Amazon Web Services NitroTPM tools][3]
2622
+ # for Amazon Web Services NitroTPM. Then use the Recipient parameter
2623
+ # from any Amazon Web Services SDK to provide the attestation document
2624
+ # for the attested environment.
2285
2625
  #
2286
2626
  # When you use this parameter, instead of returning a plaintext copy
2287
2627
  # of the private data key, KMS encrypts the plaintext private data key
2288
2628
  # under the public key in the attestation document, and returns the
2289
2629
  # resulting ciphertext in the `CiphertextForRecipient` field in the
2290
2630
  # 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.
2631
+ # in the attested environment. The `CiphertextBlob` field in the
2632
+ # response contains a copy of the private data key encrypted under the
2633
+ # KMS key specified by the `KeyId` parameter. The
2634
+ # `PrivateKeyPlaintext` field in the response is null or empty.
2295
2635
  #
2296
2636
  # 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*.
2637
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
2638
+ # [Cryptographic attestation support in KMS][4] in the *Key Management
2639
+ # Service Developer Guide*.
2299
2640
  #
2300
2641
  #
2301
2642
  #
2302
2643
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
2303
2644
  # [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
2645
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attestation-get-doc.html
2646
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2305
2647
  # @return [Types::RecipientInfo]
2306
2648
  #
2307
2649
  # @!attribute [rw] dry_run
2308
2650
  # Checks if your request will succeed. `DryRun` is an optional
2309
2651
  # parameter.
2310
2652
  #
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*.
2653
+ # To learn more about how to use this parameter, see [Testing your
2654
+ # permissions][1] in the *Key Management Service Developer Guide*.
2313
2655
  #
2314
2656
  #
2315
2657
  #
2316
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
2658
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2317
2659
  # @return [Boolean]
2318
2660
  #
2319
2661
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairRequest AWS API Documentation
@@ -2365,19 +2707,24 @@ module Aws::KMS
2365
2707
  #
2366
2708
  # @!attribute [rw] ciphertext_for_recipient
2367
2709
  # 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.
2710
+ # the attestation document. This ciphertext can be decrypted only by
2711
+ # using a private key from the attested environment.
2370
2712
  #
2371
2713
  # This field is included in the response only when the `Recipient`
2372
2714
  # 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*.
2715
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
2716
+ # about the interaction between KMS and Amazon Web Services Nitro
2717
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
2718
+ # attestation support in KMS][1] in the *Key Management Service
2719
+ # Developer Guide*.
2720
+ #
2377
2721
  #
2378
2722
  #
2723
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2724
+ # @return [String]
2379
2725
  #
2380
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2726
+ # @!attribute [rw] key_material_id
2727
+ # The identifier of the key material used to encrypt the private key.
2381
2728
  # @return [String]
2382
2729
  #
2383
2730
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairResponse AWS API Documentation
@@ -2388,7 +2735,8 @@ module Aws::KMS
2388
2735
  :public_key,
2389
2736
  :key_id,
2390
2737
  :key_pair_spec,
2391
- :ciphertext_for_recipient)
2738
+ :ciphertext_for_recipient,
2739
+ :key_material_id)
2392
2740
  SENSITIVE = [:private_key_plaintext]
2393
2741
  include Aws::Structure
2394
2742
  end
@@ -2415,7 +2763,7 @@ module Aws::KMS
2415
2763
  #
2416
2764
  #
2417
2765
  #
2418
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2766
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2419
2767
  # @return [Hash<String,String>]
2420
2768
  #
2421
2769
  # @!attribute [rw] key_id
@@ -2449,9 +2797,11 @@ module Aws::KMS
2449
2797
  #
2450
2798
  # The KMS rule that restricts the use of asymmetric RSA and SM2 KMS
2451
2799
  # 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.
2800
+ # the rule that permits you to use ECC KMS keys only to sign and
2801
+ # verify, and the rule that permits you to use ML-DSA key pairs to
2802
+ # sign and verify only are not effective on data key pairs, which are
2803
+ # used outside of KMS. The SM2 key spec is only available in China
2804
+ # Regions.
2455
2805
  # @return [String]
2456
2806
  #
2457
2807
  # @!attribute [rw] grant_tokens
@@ -2465,19 +2815,19 @@ module Aws::KMS
2465
2815
  #
2466
2816
  #
2467
2817
  # [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
2818
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2469
2819
  # @return [Array<String>]
2470
2820
  #
2471
2821
  # @!attribute [rw] dry_run
2472
2822
  # Checks if your request will succeed. `DryRun` is an optional
2473
2823
  # parameter.
2474
2824
  #
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*.
2825
+ # To learn more about how to use this parameter, see [Testing your
2826
+ # permissions][1] in the *Key Management Service Developer Guide*.
2477
2827
  #
2478
2828
  #
2479
2829
  #
2480
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
2830
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2481
2831
  # @return [Boolean]
2482
2832
  #
2483
2833
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintextRequest AWS API Documentation
@@ -2517,13 +2867,18 @@ module Aws::KMS
2517
2867
  # The type of data key pair that was generated.
2518
2868
  # @return [String]
2519
2869
  #
2870
+ # @!attribute [rw] key_material_id
2871
+ # The identifier of the key material used to encrypt the private key.
2872
+ # @return [String]
2873
+ #
2520
2874
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintextResponse AWS API Documentation
2521
2875
  #
2522
2876
  class GenerateDataKeyPairWithoutPlaintextResponse < Struct.new(
2523
2877
  :private_key_ciphertext_blob,
2524
2878
  :public_key,
2525
2879
  :key_id,
2526
- :key_pair_spec)
2880
+ :key_pair_spec,
2881
+ :key_material_id)
2527
2882
  SENSITIVE = []
2528
2883
  include Aws::Structure
2529
2884
  end
@@ -2576,7 +2931,7 @@ module Aws::KMS
2576
2931
  #
2577
2932
  #
2578
2933
  #
2579
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2934
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2580
2935
  # @return [Hash<String,String>]
2581
2936
  #
2582
2937
  # @!attribute [rw] number_of_bytes
@@ -2609,18 +2964,19 @@ module Aws::KMS
2609
2964
  #
2610
2965
  #
2611
2966
  # [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
2967
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2613
2968
  # @return [Array<String>]
2614
2969
  #
2615
2970
  # @!attribute [rw] recipient
2616
2971
  # 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`.
2972
+ # enclave or NitroTPM, and the encryption algorithm to use with the
2973
+ # public key in the attestation document. The only valid encryption
2974
+ # algorithm is `RSAES_OAEP_SHA_256`.
2620
2975
  #
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.
2976
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
2977
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
2978
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
2979
+ # Services NitroTPM.
2624
2980
  #
2625
2981
  # When you use this parameter, instead of returning the plaintext data
2626
2982
  # key, KMS encrypts the plaintext data key under the public key in the
@@ -2632,26 +2988,27 @@ module Aws::KMS
2632
2988
  # The `Plaintext` field in the response is null or empty.
2633
2989
  #
2634
2990
  # 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*.
2991
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
2992
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
2993
+ # Service Developer Guide*.
2637
2994
  #
2638
2995
  #
2639
2996
  #
2640
2997
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
2641
2998
  # [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
2999
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2643
3000
  # @return [Types::RecipientInfo]
2644
3001
  #
2645
3002
  # @!attribute [rw] dry_run
2646
3003
  # Checks if your request will succeed. `DryRun` is an optional
2647
3004
  # parameter.
2648
3005
  #
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*.
3006
+ # To learn more about how to use this parameter, see [Testing your
3007
+ # permissions][1] in the *Key Management Service Developer Guide*.
2651
3008
  #
2652
3009
  #
2653
3010
  #
2654
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
3011
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2655
3012
  # @return [Boolean]
2656
3013
  #
2657
3014
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyRequest AWS API Documentation
@@ -2694,20 +3051,27 @@ module Aws::KMS
2694
3051
  # @return [String]
2695
3052
  #
2696
3053
  # @!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.
3054
+ # The plaintext data key encrypted with the public key from the
3055
+ # attestation document. This ciphertext can be decrypted only by using
3056
+ # a private key from the attested environment.
2700
3057
  #
2701
3058
  # This field is included in the response only when the `Recipient`
2702
3059
  # 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*.
3060
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
3061
+ # about the interaction between KMS and Amazon Web Services Nitro
3062
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
3063
+ # attestation support in KMS][1] in the *Key Management Service
3064
+ # Developer Guide*.
3065
+ #
2707
3066
  #
2708
3067
  #
3068
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
3069
+ # @return [String]
2709
3070
  #
2710
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
3071
+ # @!attribute [rw] key_material_id
3072
+ # The identifier of the key material used to encrypt the data key.
3073
+ # This field is omitted if the request includes the `Recipient`
3074
+ # parameter.
2711
3075
  # @return [String]
2712
3076
  #
2713
3077
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyResponse AWS API Documentation
@@ -2716,7 +3080,8 @@ module Aws::KMS
2716
3080
  :ciphertext_blob,
2717
3081
  :plaintext,
2718
3082
  :key_id,
2719
- :ciphertext_for_recipient)
3083
+ :ciphertext_for_recipient,
3084
+ :key_material_id)
2720
3085
  SENSITIVE = [:plaintext]
2721
3086
  include Aws::Structure
2722
3087
  end
@@ -2769,7 +3134,7 @@ module Aws::KMS
2769
3134
  #
2770
3135
  #
2771
3136
  #
2772
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
3137
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2773
3138
  # @return [Hash<String,String>]
2774
3139
  #
2775
3140
  # @!attribute [rw] key_spec
@@ -2795,19 +3160,19 @@ module Aws::KMS
2795
3160
  #
2796
3161
  #
2797
3162
  # [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
3163
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2799
3164
  # @return [Array<String>]
2800
3165
  #
2801
3166
  # @!attribute [rw] dry_run
2802
3167
  # Checks if your request will succeed. `DryRun` is an optional
2803
3168
  # parameter.
2804
3169
  #
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*.
3170
+ # To learn more about how to use this parameter, see [Testing your
3171
+ # permissions][1] in the *Key Management Service Developer Guide*.
2807
3172
  #
2808
3173
  #
2809
3174
  #
2810
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
3175
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2811
3176
  # @return [Boolean]
2812
3177
  #
2813
3178
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintextRequest AWS API Documentation
@@ -2838,11 +3203,16 @@ module Aws::KMS
2838
3203
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
2839
3204
  # @return [String]
2840
3205
  #
3206
+ # @!attribute [rw] key_material_id
3207
+ # The identifier of the key material used to encrypt the data key.
3208
+ # @return [String]
3209
+ #
2841
3210
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintextResponse AWS API Documentation
2842
3211
  #
2843
3212
  class GenerateDataKeyWithoutPlaintextResponse < Struct.new(
2844
3213
  :ciphertext_blob,
2845
- :key_id)
3214
+ :key_id,
3215
+ :key_material_id)
2846
3216
  SENSITIVE = []
2847
3217
  include Aws::Structure
2848
3218
  end
@@ -2887,19 +3257,19 @@ module Aws::KMS
2887
3257
  #
2888
3258
  #
2889
3259
  # [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
3260
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2891
3261
  # @return [Array<String>]
2892
3262
  #
2893
3263
  # @!attribute [rw] dry_run
2894
3264
  # Checks if your request will succeed. `DryRun` is an optional
2895
3265
  # parameter.
2896
3266
  #
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*.
3267
+ # To learn more about how to use this parameter, see [Testing your
3268
+ # permissions][1] in the *Key Management Service Developer Guide*.
2899
3269
  #
2900
3270
  #
2901
3271
  #
2902
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
3272
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2903
3273
  # @return [Boolean]
2904
3274
  #
2905
3275
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateMacRequest AWS API Documentation
@@ -2959,30 +3329,32 @@ module Aws::KMS
2959
3329
  #
2960
3330
  # @!attribute [rw] recipient
2961
3331
  # 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`.
3332
+ # enclave or NitroTPM, and the encryption algorithm to use with the
3333
+ # public key in the attestation document. The only valid encryption
3334
+ # algorithm is `RSAES_OAEP_SHA_256`.
2965
3335
  #
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.
3336
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
3337
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
3338
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
3339
+ # Services NitroTPM.
2969
3340
  #
2970
3341
  # When you use this parameter, instead of returning plaintext bytes,
2971
3342
  # KMS encrypts the plaintext bytes under the public key in the
2972
3343
  # attestation document, and returns the resulting ciphertext in the
2973
3344
  # `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.
3345
+ # be decrypted only with the private key in the attested environment.
3346
+ # The `Plaintext` field in the response is null or empty.
2976
3347
  #
2977
3348
  # 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*.
3349
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
3350
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
3351
+ # Service Developer Guide*.
2980
3352
  #
2981
3353
  #
2982
3354
  #
2983
3355
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
2984
3356
  # [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
3357
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2986
3358
  # @return [Types::RecipientInfo]
2987
3359
  #
2988
3360
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomRequest AWS API Documentation
@@ -3006,19 +3378,20 @@ module Aws::KMS
3006
3378
  #
3007
3379
  # @!attribute [rw] ciphertext_for_recipient
3008
3380
  # 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.
3381
+ # attestation document. This ciphertext can be decrypted only by using
3382
+ # a private key from the attested environment.
3011
3383
  #
3012
3384
  # This field is included in the response only when the `Recipient`
3013
3385
  # 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*.
3386
+ # an Amazon Web Services Nitro enclave or NitroTPM. For information
3387
+ # about the interaction between KMS and Amazon Web Services Nitro
3388
+ # Enclaves or Amazon Web Services NitroTPM, see [Cryptographic
3389
+ # attestation support in KMS][1] in the *Key Management Service
3390
+ # Developer Guide*.
3018
3391
  #
3019
3392
  #
3020
3393
  #
3021
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
3394
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
3022
3395
  # @return [String]
3023
3396
  #
3024
3397
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomResponse AWS API Documentation
@@ -3047,7 +3420,8 @@ module Aws::KMS
3047
3420
  # @return [String]
3048
3421
  #
3049
3422
  # @!attribute [rw] policy_name
3050
- # Specifies the name of the key policy. The only valid name is
3423
+ # Specifies the name of the key policy. If no policy name is
3424
+ # specified, the default value is `default`. The only valid name is
3051
3425
  # `default`. To get the names of key policies, use ListKeyPolicies.
3052
3426
  # @return [String]
3053
3427
  #
@@ -3064,10 +3438,15 @@ module Aws::KMS
3064
3438
  # A key policy document in JSON format.
3065
3439
  # @return [String]
3066
3440
  #
3441
+ # @!attribute [rw] policy_name
3442
+ # The name of the key policy. The only valid value is `default`.
3443
+ # @return [String]
3444
+ #
3067
3445
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyPolicyResponse AWS API Documentation
3068
3446
  #
3069
3447
  class GetKeyPolicyResponse < Struct.new(
3070
- :policy)
3448
+ :policy,
3449
+ :policy_name)
3071
3450
  SENSITIVE = []
3072
3451
  include Aws::Structure
3073
3452
  end
@@ -3102,10 +3481,39 @@ module Aws::KMS
3102
3481
  # A Boolean value that specifies whether key rotation is enabled.
3103
3482
  # @return [Boolean]
3104
3483
  #
3484
+ # @!attribute [rw] key_id
3485
+ # Identifies the specified symmetric encryption KMS key.
3486
+ # @return [String]
3487
+ #
3488
+ # @!attribute [rw] rotation_period_in_days
3489
+ # The number of days between each automatic rotation. The default
3490
+ # value is 365 days.
3491
+ # @return [Integer]
3492
+ #
3493
+ # @!attribute [rw] next_rotation_date
3494
+ # The next date that KMS will automatically rotate the key material.
3495
+ # @return [Time]
3496
+ #
3497
+ # @!attribute [rw] on_demand_rotation_start_date
3498
+ # Identifies the date and time that an in progress on-demand rotation
3499
+ # was initiated.
3500
+ #
3501
+ # KMS uses a background process to perform rotations. As a result,
3502
+ # there might be a slight delay between initiating on-demand key
3503
+ # rotation and the rotation's completion. Once the on-demand rotation
3504
+ # is complete, KMS removes this field from the response. You can use
3505
+ # ListKeyRotations to view the details of the completed on-demand
3506
+ # rotation.
3507
+ # @return [Time]
3508
+ #
3105
3509
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyRotationStatusResponse AWS API Documentation
3106
3510
  #
3107
3511
  class GetKeyRotationStatusResponse < Struct.new(
3108
- :key_rotation_enabled)
3512
+ :key_rotation_enabled,
3513
+ :key_id,
3514
+ :rotation_period_in_days,
3515
+ :next_rotation_date,
3516
+ :on_demand_rotation_start_date)
3109
3517
  SENSITIVE = []
3110
3518
  include Aws::Structure
3111
3519
  end
@@ -3135,9 +3543,8 @@ module Aws::KMS
3135
3543
  # @!attribute [rw] wrapping_algorithm
3136
3544
  # The algorithm you will use with the RSA public key (`PublicKey`) in
3137
3545
  # 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*.
3546
+ # information, see [Select a wrapping algorithm][1] in the *Key
3547
+ # Management Service Developer Guide*.
3141
3548
  #
3142
3549
  # For RSA\_AES wrapping algorithms, you encrypt your key material with
3143
3550
  # an AES key that you generate, then encrypt your AES key with the RSA
@@ -3167,8 +3574,12 @@ module Aws::KMS
3167
3574
  # You cannot use the RSAES\_OAEP\_SHA\_1 wrapping algorithm with the
3168
3575
  # RSA\_2048 wrapping key spec to wrap ECC\_NIST\_P521 key material.
3169
3576
  #
3170
- # * **RSAES\_PKCS1\_V1\_5** (Deprecated) — Supported only for
3171
- # symmetric encryption key material (and only in legacy mode).
3577
+ # * **RSAES\_PKCS1\_V1\_5** (Deprecated) — As of October 10, 2023, KMS
3578
+ # does not support the RSAES\_PKCS1\_V1\_5 wrapping algorithm.
3579
+ #
3580
+ #
3581
+ #
3582
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm
3172
3583
  # @return [String]
3173
3584
  #
3174
3585
  # @!attribute [rw] wrapping_key_spec
@@ -3264,7 +3675,7 @@ module Aws::KMS
3264
3675
  #
3265
3676
  #
3266
3677
  # [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
3678
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
3268
3679
  # @return [Array<String>]
3269
3680
  #
3270
3681
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKeyRequest AWS API Documentation
@@ -3313,12 +3724,12 @@ module Aws::KMS
3313
3724
  # @return [String]
3314
3725
  #
3315
3726
  # @!attribute [rw] key_usage
3316
- # The permitted use of the public key. Valid values are
3317
- # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
3727
+ # The permitted use of the public key. Valid values for asymmetric key
3728
+ # pairs are `ENCRYPT_DECRYPT`, `SIGN_VERIFY`, and `KEY_AGREEMENT`.
3318
3729
  #
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.
3730
+ # This information is critical. For example, if a public key with
3731
+ # `SIGN_VERIFY` key usage encrypts data outside of KMS, the ciphertext
3732
+ # cannot be decrypted.
3322
3733
  # @return [String]
3323
3734
  #
3324
3735
  # @!attribute [rw] encryption_algorithms
@@ -3339,6 +3750,12 @@ module Aws::KMS
3339
3750
  # public key is `SIGN_VERIFY`.
3340
3751
  # @return [Array<String>]
3341
3752
  #
3753
+ # @!attribute [rw] key_agreement_algorithms
3754
+ # The key agreement algorithm used to derive a shared secret. This
3755
+ # field is present only when the KMS key has a `KeyUsage` value of
3756
+ # `KEY_AGREEMENT`.
3757
+ # @return [Array<String>]
3758
+ #
3342
3759
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKeyResponse AWS API Documentation
3343
3760
  #
3344
3761
  class GetPublicKeyResponse < Struct.new(
@@ -3348,7 +3765,8 @@ module Aws::KMS
3348
3765
  :key_spec,
3349
3766
  :key_usage,
3350
3767
  :encryption_algorithms,
3351
- :signing_algorithms)
3768
+ :signing_algorithms,
3769
+ :key_agreement_algorithms)
3352
3770
  SENSITIVE = []
3353
3771
  include Aws::Structure
3354
3772
  end
@@ -3359,9 +3777,9 @@ module Aws::KMS
3359
3777
  #
3360
3778
  # KMS applies the grant constraints only to cryptographic operations
3361
3779
  # 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
3780
+ # operations with a symmetric KMS key. Grant constraints are not applied
3781
+ # to operations that do not support an encryption context, such as
3782
+ # cryptographic operations with asymmetric KMS keys and management
3365
3783
  # operations, such as DescribeKey or RetireGrant.
3366
3784
  #
3367
3785
  # In a cryptographic operation, the encryption context in the decryption
@@ -3376,15 +3794,14 @@ module Aws::KMS
3376
3794
  # differ only by case. To require a fully case-sensitive encryption
3377
3795
  # context, use the `kms:EncryptionContext:` and
3378
3796
  # `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>.
3797
+ # details, see [kms:EncryptionContext:context-key][3] in the <i> <i>Key
3798
+ # Management Service Developer Guide</i> </i>.
3381
3799
  #
3382
3800
  #
3383
3801
  #
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
3802
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3803
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
3804
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-encryption-context
3388
3805
  #
3389
3806
  # @!attribute [rw] encryption_context_subset
3390
3807
  # A list of key-value pairs that must be included in the encryption
@@ -3395,7 +3812,7 @@ module Aws::KMS
3395
3812
  #
3396
3813
  #
3397
3814
  #
3398
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
3815
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3399
3816
  # @return [Hash<String,String>]
3400
3817
  #
3401
3818
  # @!attribute [rw] encryption_context_equals
@@ -3406,7 +3823,7 @@ module Aws::KMS
3406
3823
  #
3407
3824
  #
3408
3825
  #
3409
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
3826
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3410
3827
  # @return [Hash<String,String>]
3411
3828
  #
3412
3829
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GrantConstraints AWS API Documentation
@@ -3495,11 +3912,9 @@ module Aws::KMS
3495
3912
  #
3496
3913
  # The KMS key can be a symmetric encryption KMS key, HMAC KMS key,
3497
3914
  # 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.
3915
+ # including a [multi-Region key][1] of any supported type. You cannot
3916
+ # perform this operation on a KMS key in a custom key store, or on a
3917
+ # KMS key in a different Amazon Web Services account.
3503
3918
  #
3504
3919
  # Specify the key ID or key ARN of the KMS key.
3505
3920
  #
@@ -3512,6 +3927,10 @@ module Aws::KMS
3512
3927
  #
3513
3928
  # To get the key ID and key ARN for a KMS key, use ListKeys or
3514
3929
  # DescribeKey.
3930
+ #
3931
+ #
3932
+ #
3933
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
3515
3934
  # @return [String]
3516
3935
  #
3517
3936
  # @!attribute [rw] import_token
@@ -3563,7 +3982,53 @@ module Aws::KMS
3563
3982
  #
3564
3983
  #
3565
3984
  #
3566
- # [1]: https://docs.aws.amazon.com/en_us/kms/latest/developerguide/importing-keys.html#importing-keys-expiration
3985
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-expiration
3986
+ # @return [String]
3987
+ #
3988
+ # @!attribute [rw] import_type
3989
+ # Indicates whether the key material being imported is previously
3990
+ # associated with this KMS key or not. This parameter is optional and
3991
+ # only usable with symmetric encryption keys. If no key material has
3992
+ # ever been imported into the KMS key, and this parameter is omitted,
3993
+ # the parameter defaults to `NEW_KEY_MATERIAL`. After the first key
3994
+ # material is imported, if this parameter is omitted then the
3995
+ # parameter defaults to `EXISTING_KEY_MATERIAL`.
3996
+ #
3997
+ # For multi-Region keys, you must first import new key material into
3998
+ # the primary Region key. You should use the `NEW_KEY_MATERIAL` import
3999
+ # type when importing key material into the primary Region key. Then,
4000
+ # you can import the same key material into the replica Region key.
4001
+ # The import type for the replica Region key should be
4002
+ # `EXISTING_KEY_MATERIAL`.
4003
+ # @return [String]
4004
+ #
4005
+ # @!attribute [rw] key_material_description
4006
+ # Description for the key material being imported. This parameter is
4007
+ # optional and only usable with symmetric encryption keys. If you do
4008
+ # not specify a key material description, KMS retains the value you
4009
+ # specified when you last imported the same key material into this KMS
4010
+ # key.
4011
+ # @return [String]
4012
+ #
4013
+ # @!attribute [rw] key_material_id
4014
+ # Identifies the key material being imported. This parameter is
4015
+ # optional and only usable with symmetric encryption keys. You cannot
4016
+ # specify a key material ID with `ImportType` set to
4017
+ # `NEW_KEY_MATERIAL`. Whenever you import key material into a
4018
+ # symmetric encryption key, KMS assigns a unique identifier to the key
4019
+ # material based on the KMS key ID and the imported key material. When
4020
+ # you re-import key material with a specified key material ID, KMS:
4021
+ #
4022
+ # * Computes the identifier for the key material
4023
+ #
4024
+ # * Matches the computed identifier against the specified key material
4025
+ # ID
4026
+ #
4027
+ # * Verifies that the key material ID is already associated with the
4028
+ # KMS key
4029
+ #
4030
+ # To get the list of key material IDs associated with a KMS key, use
4031
+ # ListKeyRotations.
3567
4032
  # @return [String]
3568
4033
  #
3569
4034
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterialRequest AWS API Documentation
@@ -3573,14 +4038,35 @@ module Aws::KMS
3573
4038
  :import_token,
3574
4039
  :encrypted_key_material,
3575
4040
  :valid_to,
3576
- :expiration_model)
4041
+ :expiration_model,
4042
+ :import_type,
4043
+ :key_material_description,
4044
+ :key_material_id)
3577
4045
  SENSITIVE = []
3578
4046
  include Aws::Structure
3579
4047
  end
3580
4048
 
4049
+ # @!attribute [rw] key_id
4050
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key into which
4051
+ # key material was imported.
4052
+ #
4053
+ #
4054
+ #
4055
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
4056
+ # @return [String]
4057
+ #
4058
+ # @!attribute [rw] key_material_id
4059
+ # Identifies the imported key material.
4060
+ # @return [String]
4061
+ #
3581
4062
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterialResponse AWS API Documentation
3582
4063
  #
3583
- class ImportKeyMaterialResponse < Aws::EmptyStructure; end
4064
+ class ImportKeyMaterialResponse < Struct.new(
4065
+ :key_id,
4066
+ :key_material_id)
4067
+ SENSITIVE = []
4068
+ include Aws::Structure
4069
+ end
3584
4070
 
3585
4071
  # The request was rejected because the specified KMS key cannot decrypt
3586
4072
  # the data. The `KeyId` in a Decrypt request and the `SourceKeyId` in a
@@ -3599,8 +4085,10 @@ module Aws::KMS
3599
4085
  end
3600
4086
 
3601
4087
  # 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.
4088
+ # expired, invalid, or does not meet expectations. For example, it is
4089
+ # not the same key material that was previously imported or KMS expected
4090
+ # new key material but the key material being imported is already
4091
+ # associated with the KMS key.
3604
4092
  #
3605
4093
  # @!attribute [rw] message
3606
4094
  # @return [String]
@@ -3736,8 +4224,9 @@ module Aws::KMS
3736
4224
  # the `KeyUsage` must be `ENCRYPT_DECRYPT`. For signing and verifying
3737
4225
  # messages, the `KeyUsage` must be `SIGN_VERIFY`. For generating and
3738
4226
  # 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.
4227
+ # `GENERATE_VERIFY_MAC`. For deriving key agreement secrets, the
4228
+ # `KeyUsage` must be `KEY_AGREEMENT`. To find the `KeyUsage` of a KMS
4229
+ # key, use the DescribeKey operation.
3741
4230
  #
3742
4231
  # To find the encryption or signing algorithms supported for a
3743
4232
  # particular KMS key, use the DescribeKey operation.
@@ -3906,7 +4395,7 @@ module Aws::KMS
3906
4395
  #
3907
4396
  #
3908
4397
  #
3909
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
4398
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3910
4399
  # @return [String]
3911
4400
  #
3912
4401
  # @!attribute [rw] key_state
@@ -3933,11 +4422,12 @@ module Aws::KMS
3933
4422
  # @return [Time]
3934
4423
  #
3935
4424
  # @!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.
4425
+ # The earliest time at which any imported key material permanently
4426
+ # associated with this KMS key expires. When a key material expires,
4427
+ # KMS deletes the key material and the KMS key becomes unusable. This
4428
+ # value is present only for KMS keys whose `Origin` is `EXTERNAL` and
4429
+ # the `ExpirationModel` is `KEY_MATERIAL_EXPIRES`, otherwise this
4430
+ # value is omitted.
3941
4431
  # @return [Time]
3942
4432
  #
3943
4433
  # @!attribute [rw] origin
@@ -3956,7 +4446,7 @@ module Aws::KMS
3956
4446
  #
3957
4447
  #
3958
4448
  #
3959
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4449
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
3960
4450
  # @return [String]
3961
4451
  #
3962
4452
  # @!attribute [rw] cloud_hsm_cluster_id
@@ -3968,7 +4458,7 @@ module Aws::KMS
3968
4458
  #
3969
4459
  #
3970
4460
  #
3971
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4461
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
3972
4462
  # @return [String]
3973
4463
  #
3974
4464
  # @!attribute [rw] expiration_model
@@ -4016,6 +4506,10 @@ module Aws::KMS
4016
4506
  # `SIGN_VERIFY`.
4017
4507
  # @return [Array<String>]
4018
4508
  #
4509
+ # @!attribute [rw] key_agreement_algorithms
4510
+ # The key agreement algorithm used to derive a shared secret.
4511
+ # @return [Array<String>]
4512
+ #
4019
4513
  # @!attribute [rw] multi_region
4020
4514
  # Indicates whether the KMS key is a multi-Region (`True`) or regional
4021
4515
  # (`False`) key. This value is `True` for multi-Region primary and
@@ -4087,6 +4581,15 @@ module Aws::KMS
4087
4581
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key
4088
4582
  # @return [Types::XksKeyConfigurationType]
4089
4583
  #
4584
+ # @!attribute [rw] current_key_material_id
4585
+ # Identifies the current key material. This value is present for
4586
+ # symmetric encryption keys with `AWS_KMS` or `EXTERNAL` origin. These
4587
+ # KMS keys support automatic or on-demand key rotation and can have
4588
+ # multiple key materials associated with them. KMS uses the current
4589
+ # key material for both encryption and decryption, and the non-current
4590
+ # key material for decryption operations only.
4591
+ # @return [String]
4592
+ #
4090
4593
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KeyMetadata AWS API Documentation
4091
4594
  #
4092
4595
  class KeyMetadata < Struct.new(
@@ -4109,11 +4612,13 @@ module Aws::KMS
4109
4612
  :key_spec,
4110
4613
  :encryption_algorithms,
4111
4614
  :signing_algorithms,
4615
+ :key_agreement_algorithms,
4112
4616
  :multi_region,
4113
4617
  :multi_region_configuration,
4114
4618
  :pending_deletion_window_in_days,
4115
4619
  :mac_algorithms,
4116
- :xks_key_configuration)
4620
+ :xks_key_configuration,
4621
+ :current_key_material_id)
4117
4622
  SENSITIVE = []
4118
4623
  include Aws::Structure
4119
4624
  end
@@ -4132,9 +4637,9 @@ module Aws::KMS
4132
4637
  include Aws::Structure
4133
4638
  end
4134
4639
 
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*.
4640
+ # The request was rejected because a length constraint or quota was
4641
+ # exceeded. For more information, see [Quotas][1] in the *Key Management
4642
+ # Service Developer Guide*.
4138
4643
  #
4139
4644
  #
4140
4645
  #
@@ -4209,8 +4714,8 @@ module Aws::KMS
4209
4714
  # @!attribute [rw] truncated
4210
4715
  # A flag that indicates whether there are more items in the list. When
4211
4716
  # 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.
4717
+ # more items, pass the value of the `NextMarker` element in this
4718
+ # response to the `Marker` parameter in a subsequent request.
4214
4719
  # @return [Boolean]
4215
4720
  #
4216
4721
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListAliasesResponse AWS API Documentation
@@ -4292,8 +4797,8 @@ module Aws::KMS
4292
4797
  # @!attribute [rw] truncated
4293
4798
  # A flag that indicates whether there are more items in the list. When
4294
4799
  # 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.
4800
+ # more items, pass the value of the `NextMarker` element in this
4801
+ # response to the `Marker` parameter in a subsequent request.
4297
4802
  # @return [Boolean]
4298
4803
  #
4299
4804
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListGrantsResponse AWS API Documentation
@@ -4362,8 +4867,8 @@ module Aws::KMS
4362
4867
  # @!attribute [rw] truncated
4363
4868
  # A flag that indicates whether there are more items in the list. When
4364
4869
  # 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.
4870
+ # more items, pass the value of the `NextMarker` element in this
4871
+ # response to the `Marker` parameter in a subsequent request.
4367
4872
  # @return [Boolean]
4368
4873
  #
4369
4874
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyPoliciesResponse AWS API Documentation
@@ -4376,6 +4881,90 @@ module Aws::KMS
4376
4881
  include Aws::Structure
4377
4882
  end
4378
4883
 
4884
+ # @!attribute [rw] key_id
4885
+ # Gets the key rotations for the specified KMS key.
4886
+ #
4887
+ # Specify the key ID or key ARN of the KMS key.
4888
+ #
4889
+ # For example:
4890
+ #
4891
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
4892
+ #
4893
+ # * Key ARN:
4894
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4895
+ #
4896
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4897
+ # DescribeKey.
4898
+ # @return [String]
4899
+ #
4900
+ # @!attribute [rw] include_key_material
4901
+ # Use this optional parameter to control which key materials
4902
+ # associated with this key are listed in the response. The default
4903
+ # value of this parameter is `ROTATIONS_ONLY`. If you omit this
4904
+ # parameter, KMS returns information on the key materials created by
4905
+ # automatic or on-demand key rotation. When you specify a value of
4906
+ # `ALL_KEY_MATERIAL`, KMS adds the first key material and any imported
4907
+ # key material pending rotation to the response. This parameter can
4908
+ # only be used with KMS keys that support automatic or on-demand key
4909
+ # rotation.
4910
+ # @return [String]
4911
+ #
4912
+ # @!attribute [rw] limit
4913
+ # Use this parameter to specify the maximum number of items to return.
4914
+ # When this value is present, KMS does not return more than the
4915
+ # specified number of items, but it might return fewer.
4916
+ #
4917
+ # This value is optional. If you include a value, it must be between 1
4918
+ # and 1000, inclusive. If you do not include a value, it defaults to
4919
+ # 100.
4920
+ # @return [Integer]
4921
+ #
4922
+ # @!attribute [rw] marker
4923
+ # Use this parameter in a subsequent request after you receive a
4924
+ # response with truncated results. Set it to the value of `NextMarker`
4925
+ # from the truncated response you just received.
4926
+ # @return [String]
4927
+ #
4928
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyRotationsRequest AWS API Documentation
4929
+ #
4930
+ class ListKeyRotationsRequest < Struct.new(
4931
+ :key_id,
4932
+ :include_key_material,
4933
+ :limit,
4934
+ :marker)
4935
+ SENSITIVE = []
4936
+ include Aws::Structure
4937
+ end
4938
+
4939
+ # @!attribute [rw] rotations
4940
+ # A list of completed key material rotations. When the optional input
4941
+ # parameter `IncludeKeyMaterial` is specified with a value of
4942
+ # `ALL_KEY_MATERIAL`, this list includes the first key material and
4943
+ # any imported key material pending rotation.
4944
+ # @return [Array<Types::RotationsListEntry>]
4945
+ #
4946
+ # @!attribute [rw] next_marker
4947
+ # When `Truncated` is true, this element is present and contains the
4948
+ # value to use for the `Marker` parameter in a subsequent request.
4949
+ # @return [String]
4950
+ #
4951
+ # @!attribute [rw] truncated
4952
+ # A flag that indicates whether there are more items in the list. When
4953
+ # this value is true, the list in this response is truncated. To get
4954
+ # more items, pass the value of the `NextMarker` element in this
4955
+ # response to the `Marker` parameter in a subsequent request.
4956
+ # @return [Boolean]
4957
+ #
4958
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyRotationsResponse AWS API Documentation
4959
+ #
4960
+ class ListKeyRotationsResponse < Struct.new(
4961
+ :rotations,
4962
+ :next_marker,
4963
+ :truncated)
4964
+ SENSITIVE = []
4965
+ include Aws::Structure
4966
+ end
4967
+
4379
4968
  # @!attribute [rw] limit
4380
4969
  # Use this parameter to specify the maximum number of items to return.
4381
4970
  # When this value is present, KMS does not return more than the
@@ -4413,8 +5002,8 @@ module Aws::KMS
4413
5002
  # @!attribute [rw] truncated
4414
5003
  # A flag that indicates whether there are more items in the list. When
4415
5004
  # 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.
5005
+ # more items, pass the value of the `NextMarker` element in this
5006
+ # response to the `Marker` parameter in a subsequent request.
4418
5007
  # @return [Boolean]
4419
5008
  #
4420
5009
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeysResponse AWS API Documentation
@@ -4495,8 +5084,8 @@ module Aws::KMS
4495
5084
  # @!attribute [rw] truncated
4496
5085
  # A flag that indicates whether there are more items in the list. When
4497
5086
  # 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.
5087
+ # more items, pass the value of the `NextMarker` element in this
5088
+ # response to the `Marker` parameter in a subsequent request.
4500
5089
  # @return [Boolean]
4501
5090
  #
4502
5091
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListResourceTagsResponse AWS API Documentation
@@ -4649,7 +5238,8 @@ module Aws::KMS
4649
5238
  # @return [String]
4650
5239
  #
4651
5240
  # @!attribute [rw] policy_name
4652
- # The name of the key policy. The only valid value is `default`.
5241
+ # The name of the key policy. If no policy name is specified, the
5242
+ # default value is `default`. The only valid value is `default`.
4653
5243
  # @return [String]
4654
5244
  #
4655
5245
  # @!attribute [rw] policy
@@ -4673,6 +5263,18 @@ module Aws::KMS
4673
5263
  # that I make are not always immediately visible][2] in the *Amazon
4674
5264
  # Web Services Identity and Access Management User Guide*.
4675
5265
  #
5266
+ # <note markdown="1"> If either of the required `Resource` or `Action` elements are
5267
+ # missing from a key policy statement, the policy statement has no
5268
+ # effect. When a key policy statement is missing one of these
5269
+ # elements, the KMS console correctly reports an error, but the
5270
+ # `PutKeyPolicy` API request succeeds, even though the policy
5271
+ # statement is ineffective.
5272
+ #
5273
+ # For more information on required key policy elements, see [Elements
5274
+ # in a key policy][3] in the *Key Management Service Developer Guide*.
5275
+ #
5276
+ # </note>
5277
+ #
4676
5278
  # A key policy document can include only the following characters:
4677
5279
  #
4678
5280
  # * Printable ASCII characters from the space character (`\u0020`)
@@ -4684,18 +5286,24 @@ module Aws::KMS
4684
5286
  # * The tab (`\u0009`), line feed (`\u000A`), and carriage return
4685
5287
  # (`\u000D`) special characters
4686
5288
  #
4687
- # For information about key policies, see [Key policies in KMS][3] in
5289
+ # <note markdown="1"> If the key policy exceeds the length constraint, KMS returns a
5290
+ # `LimitExceededException`.
5291
+ #
5292
+ # </note>
5293
+ #
5294
+ # For information about key policies, see [Key policies in KMS][4] in
4688
5295
  # the *Key Management Service Developer Guide*.For help writing and
4689
5296
  # formatting a JSON policy document, see the [IAM JSON Policy
4690
- # Reference][4] in the <i> <i>Identity and Access Management User
5297
+ # Reference][5] in the <i> <i>Identity and Access Management User
4691
5298
  # Guide</i> </i>.
4692
5299
  #
4693
5300
  #
4694
5301
  #
4695
5302
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
4696
5303
  # [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
5304
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html#key-policy-elements
5305
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
5306
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
4699
5307
  # @return [String]
4700
5308
  #
4701
5309
  # @!attribute [rw] bypass_policy_lockout_safety_check
@@ -4710,12 +5318,13 @@ module Aws::KMS
4710
5318
  # Management Service Developer Guide*.
4711
5319
  #
4712
5320
  # 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.
5321
+ # that is making the request from making a subsequent
5322
+ # [PutKeyPolicy][2] request on the KMS key.
4715
5323
  #
4716
5324
  #
4717
5325
  #
4718
5326
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
5327
+ # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html
4719
5328
  # @return [Boolean]
4720
5329
  #
4721
5330
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/PutKeyPolicyRequest AWS API Documentation
@@ -4752,7 +5361,7 @@ module Aws::KMS
4752
5361
  #
4753
5362
  #
4754
5363
  #
4755
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5364
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
4756
5365
  # @return [Hash<String,String>]
4757
5366
  #
4758
5367
  # @!attribute [rw] source_key_id
@@ -4842,7 +5451,7 @@ module Aws::KMS
4842
5451
  #
4843
5452
  #
4844
5453
  #
4845
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5454
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
4846
5455
  # @return [Hash<String,String>]
4847
5456
  #
4848
5457
  # @!attribute [rw] source_encryption_algorithm
@@ -4879,19 +5488,19 @@ module Aws::KMS
4879
5488
  #
4880
5489
  #
4881
5490
  # [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
5491
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
4883
5492
  # @return [Array<String>]
4884
5493
  #
4885
5494
  # @!attribute [rw] dry_run
4886
5495
  # Checks if your request will succeed. `DryRun` is an optional
4887
5496
  # parameter.
4888
5497
  #
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*.
5498
+ # To learn more about how to use this parameter, see [Testing your
5499
+ # permissions][1] in the *Key Management Service Developer Guide*.
4891
5500
  #
4892
5501
  #
4893
5502
  #
4894
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5503
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
4895
5504
  # @return [Boolean]
4896
5505
  #
4897
5506
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncryptRequest AWS API Documentation
@@ -4939,6 +5548,18 @@ module Aws::KMS
4939
5548
  # The encryption algorithm that was used to reencrypt the data.
4940
5549
  # @return [String]
4941
5550
  #
5551
+ # @!attribute [rw] source_key_material_id
5552
+ # The identifier of the key material used to originally encrypt the
5553
+ # data. This field is present only when the original encryption used a
5554
+ # symmetric encryption KMS key.
5555
+ # @return [String]
5556
+ #
5557
+ # @!attribute [rw] destination_key_material_id
5558
+ # The identifier of the key material used to reencrypt the data. This
5559
+ # field is present only when data is reencrypted using a symmetric
5560
+ # encryption KMS key.
5561
+ # @return [String]
5562
+ #
4942
5563
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncryptResponse AWS API Documentation
4943
5564
  #
4944
5565
  class ReEncryptResponse < Struct.new(
@@ -4946,7 +5567,9 @@ module Aws::KMS
4946
5567
  :source_key_id,
4947
5568
  :key_id,
4948
5569
  :source_encryption_algorithm,
4949
- :destination_encryption_algorithm)
5570
+ :destination_encryption_algorithm,
5571
+ :source_key_material_id,
5572
+ :destination_key_material_id)
4950
5573
  SENSITIVE = []
4951
5574
  include Aws::Structure
4952
5575
  end
@@ -4955,24 +5578,26 @@ module Aws::KMS
4955
5578
  # the API operation.
4956
5579
  #
4957
5580
  # 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*.
5581
+ # Enclaves and Amazon Web Services NitroTPM, which lets you create an
5582
+ # attested environment in Amazon EC2. For information about the
5583
+ # interaction between KMS and Amazon Web Services Nitro Enclaves or
5584
+ # Amazon Web Services NitroTPM, see [Cryptographic attestation support
5585
+ # in KMS][1] in the *Key Management Service Developer Guide*.
4962
5586
  #
4963
5587
  #
4964
5588
  #
4965
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
5589
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
4966
5590
  #
4967
5591
  # @!attribute [rw] key_encryption_algorithm
4968
5592
  # 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`.
5593
+ # an Amazon Web Services Nitro Enclave or NitroTPM to encrypt
5594
+ # plaintext values for the response. The only valid value is
5595
+ # `RSAES_OAEP_SHA_256`.
4971
5596
  # @return [String]
4972
5597
  #
4973
5598
  # @!attribute [rw] attestation_document
4974
- # The attestation document for an Amazon Web Services Nitro Enclave.
4975
- # This document includes the enclave's public key.
5599
+ # The attestation document for an Amazon Web Services Nitro Enclave or
5600
+ # a NitroTPM. This document includes the enclave's public key.
4976
5601
  # @return [String]
4977
5602
  #
4978
5603
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RecipientInfo AWS API Documentation
@@ -5012,33 +5637,23 @@ module Aws::KMS
5012
5637
  # [KMS service endpoints][1] in the *Amazon Web Services General
5013
5638
  # Reference*.
5014
5639
  #
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
5640
  # The replica must be in a different Amazon Web Services Region than
5025
5641
  # its primary key and other replicas of that primary key, but in the
5026
5642
  # same Amazon Web Services partition. KMS must be available in the
5027
5643
  # replica Region. If the Region is not enabled by default, the Amazon
5028
5644
  # Web Services account must be enabled in the Region. For information
5029
5645
  # about Amazon Web Services partitions, see [Amazon Resource Names
5030
- # (ARNs)][3] in the *Amazon Web Services General Reference*. For
5646
+ # (ARNs)][2] in the *Amazon Web Services General Reference*. For
5031
5647
  # information about enabling and disabling Regions, see [Enabling a
5032
- # Region][4] and [Disabling a Region][5] in the *Amazon Web Services
5648
+ # Region][3] and [Disabling a Region][4] in the *Amazon Web Services
5033
5649
  # General Reference*.
5034
5650
  #
5035
5651
  #
5036
5652
  #
5037
5653
  # [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
5654
+ # [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
5655
+ # [3]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable
5656
+ # [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable
5042
5657
  # @return [String]
5043
5658
  #
5044
5659
  # @!attribute [rw] policy
@@ -5088,7 +5703,7 @@ module Aws::KMS
5088
5703
  #
5089
5704
  #
5090
5705
  #
5091
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
5706
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html
5092
5707
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
5093
5708
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
5094
5709
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
@@ -5107,12 +5722,13 @@ module Aws::KMS
5107
5722
  # Management Service Developer Guide*.
5108
5723
  #
5109
5724
  # 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.
5725
+ # that is making the request from making a subsequent
5726
+ # [PutKeyPolicy][2] request on the KMS key.
5112
5727
  #
5113
5728
  #
5114
5729
  #
5115
5730
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
5731
+ # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html
5116
5732
  # @return [Boolean]
5117
5733
  #
5118
5734
  # @!attribute [rw] description
@@ -5160,7 +5776,7 @@ module Aws::KMS
5160
5776
  # When you add tags to an Amazon Web Services resource, Amazon Web
5161
5777
  # Services generates a cost allocation report with usage and costs
5162
5778
  # aggregated by tags. Tags can also be used to control access to a KMS
5163
- # key. For details, see [Tagging Keys][3].
5779
+ # key. For details, see [Tags in KMS][3].
5164
5780
  #
5165
5781
  #
5166
5782
  #
@@ -5251,12 +5867,12 @@ module Aws::KMS
5251
5867
  # Checks if your request will succeed. `DryRun` is an optional
5252
5868
  # parameter.
5253
5869
  #
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*.
5870
+ # To learn more about how to use this parameter, see [Testing your
5871
+ # permissions][1] in the *Key Management Service Developer Guide*.
5256
5872
  #
5257
5873
  #
5258
5874
  #
5259
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5875
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5260
5876
  # @return [Boolean]
5261
5877
  #
5262
5878
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RetireGrantRequest AWS API Documentation
@@ -5299,12 +5915,12 @@ module Aws::KMS
5299
5915
  # Checks if your request will succeed. `DryRun` is an optional
5300
5916
  # parameter.
5301
5917
  #
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*.
5918
+ # To learn more about how to use this parameter, see [Testing your
5919
+ # permissions][1] in the *Key Management Service Developer Guide*.
5304
5920
  #
5305
5921
  #
5306
5922
  #
5307
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5923
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5308
5924
  # @return [Boolean]
5309
5925
  #
5310
5926
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RevokeGrantRequest AWS API Documentation
@@ -5317,6 +5933,153 @@ module Aws::KMS
5317
5933
  include Aws::Structure
5318
5934
  end
5319
5935
 
5936
+ # @!attribute [rw] key_id
5937
+ # Identifies a symmetric encryption KMS key. You cannot perform
5938
+ # on-demand rotation of [asymmetric KMS keys][1], [HMAC KMS keys][2],
5939
+ # multi-Region KMS keys with [imported key material][3], or KMS keys
5940
+ # in a [custom key store][4]. To perform on-demand rotation of a set
5941
+ # of related [multi-Region keys][5], invoke the on-demand rotation on
5942
+ # the primary key.
5943
+ #
5944
+ # Specify the key ID or key ARN of the KMS key.
5945
+ #
5946
+ # For example:
5947
+ #
5948
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
5949
+ #
5950
+ # * Key ARN:
5951
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
5952
+ #
5953
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
5954
+ # DescribeKey.
5955
+ #
5956
+ #
5957
+ #
5958
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
5959
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
5960
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
5961
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
5962
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
5963
+ # @return [String]
5964
+ #
5965
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotateKeyOnDemandRequest AWS API Documentation
5966
+ #
5967
+ class RotateKeyOnDemandRequest < Struct.new(
5968
+ :key_id)
5969
+ SENSITIVE = []
5970
+ include Aws::Structure
5971
+ end
5972
+
5973
+ # @!attribute [rw] key_id
5974
+ # Identifies the symmetric encryption KMS key that you initiated
5975
+ # on-demand rotation on.
5976
+ # @return [String]
5977
+ #
5978
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotateKeyOnDemandResponse AWS API Documentation
5979
+ #
5980
+ class RotateKeyOnDemandResponse < Struct.new(
5981
+ :key_id)
5982
+ SENSITIVE = []
5983
+ include Aws::Structure
5984
+ end
5985
+
5986
+ # Each entry contains information about one of the key materials
5987
+ # associated with a KMS key.
5988
+ #
5989
+ # @!attribute [rw] key_id
5990
+ # Unique identifier of the key.
5991
+ # @return [String]
5992
+ #
5993
+ # @!attribute [rw] key_material_id
5994
+ # Unique identifier of the key material.
5995
+ # @return [String]
5996
+ #
5997
+ # @!attribute [rw] key_material_description
5998
+ # User-specified description of the key material. This field is only
5999
+ # present for symmetric encryption KMS keys with `EXTERNAL` origin.
6000
+ # @return [String]
6001
+ #
6002
+ # @!attribute [rw] import_state
6003
+ # Indicates if the key material is currently imported into KMS. It has
6004
+ # two possible values: `IMPORTED` or `PENDING_IMPORT`. This field is
6005
+ # only present for symmetric encryption KMS keys with `EXTERNAL`
6006
+ # origin.
6007
+ # @return [String]
6008
+ #
6009
+ # @!attribute [rw] key_material_state
6010
+ # There are four possible values for this field: `CURRENT`,
6011
+ # `NON_CURRENT`, `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` and
6012
+ # `PENDING_ROTATION`. KMS uses `CURRENT` key material for both
6013
+ # encryption and decryption and `NON_CURRENT` key material only for
6014
+ # decryption. `PENDING_ROTATION` identifies key material that has been
6015
+ # imported for on-demand key rotation but the rotation hasn't
6016
+ # completed. The key material state
6017
+ # `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` is unique to
6018
+ # multi-region, symmetric encryption keys with imported key material.
6019
+ # It indicates key material that has been imported into the primary
6020
+ # Region key but not all of the replica Region keys. When this key
6021
+ # material is imported in to all of the replica Region keys, the key
6022
+ # material state will change to `PENDING_ROTATION`. Key material in
6023
+ # `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` or `PENDING_ROTATION`
6024
+ # state is not permanently associated with the KMS key. You can delete
6025
+ # this key material and import different key material in its place.
6026
+ # The `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` and
6027
+ # `PENDING_ROTATION` values are only used in symmetric encryption keys
6028
+ # with imported key material. The other values, `CURRENT` and
6029
+ # `NON_CURRENT`, are used for all KMS keys that support automatic or
6030
+ # on-demand key rotation.
6031
+ # @return [String]
6032
+ #
6033
+ # @!attribute [rw] expiration_model
6034
+ # Indicates if the key material is configured to automatically expire.
6035
+ # There are two possible values for this field: `KEY_MATERIAL_EXPIRES`
6036
+ # and `KEY_MATERIAL_DOES_NOT_EXPIRE`. For any key material that
6037
+ # expires, the expiration date and time is indicated in `ValidTo`.
6038
+ # This field is only present for symmetric encryption KMS keys with
6039
+ # `EXTERNAL` origin.
6040
+ # @return [String]
6041
+ #
6042
+ # @!attribute [rw] valid_to
6043
+ # Date and time at which the key material expires. This field is only
6044
+ # present for symmetric encryption KMS keys with `EXTERNAL` origin in
6045
+ # rotation list entries with an `ExpirationModel` value of
6046
+ # `KEY_MATERIAL_EXPIRES`.
6047
+ # @return [Time]
6048
+ #
6049
+ # @!attribute [rw] rotation_date
6050
+ # Date and time that the key material rotation completed. Formatted as
6051
+ # Unix time. This field is not present for the first key material or
6052
+ # an imported key material in `PENDING_ROTATION` state.
6053
+ # @return [Time]
6054
+ #
6055
+ # @!attribute [rw] rotation_type
6056
+ # Identifies whether the key material rotation was a scheduled
6057
+ # [automatic rotation][1] or an [on-demand rotation][2]. This field is
6058
+ # not present for the first key material or an imported key material
6059
+ # in `PENDING_ROTATION` state.
6060
+ #
6061
+ #
6062
+ #
6063
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html
6064
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-on-demand.html
6065
+ # @return [String]
6066
+ #
6067
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotationsListEntry AWS API Documentation
6068
+ #
6069
+ class RotationsListEntry < Struct.new(
6070
+ :key_id,
6071
+ :key_material_id,
6072
+ :key_material_description,
6073
+ :import_state,
6074
+ :key_material_state,
6075
+ :expiration_model,
6076
+ :valid_to,
6077
+ :rotation_date,
6078
+ :rotation_type)
6079
+ SENSITIVE = []
6080
+ include Aws::Structure
6081
+ end
6082
+
5320
6083
  # @!attribute [rw] key_id
5321
6084
  # The unique identifier of the KMS key to delete.
5322
6085
  #
@@ -5448,27 +6211,41 @@ module Aws::KMS
5448
6211
  # Tells KMS whether the value of the `Message` parameter should be
5449
6212
  # hashed as part of the signing algorithm. Use `RAW` for unhashed
5450
6213
  # messages; use `DIGEST` for message digests, which are already
5451
- # hashed.
6214
+ # hashed; use `EXTERNAL_MU` for 64-byte representative μ used in
6215
+ # ML-DSA signing as defined in NIST FIPS 204 Section 6.2.
5452
6216
  #
5453
6217
  # When the value of `MessageType` is `RAW`, KMS uses the standard
5454
6218
  # signing algorithm, which begins with a hash function. When the value
5455
6219
  # is `DIGEST`, KMS skips the hashing step in the signing algorithm.
6220
+ # When the value is `EXTERNAL_MU` KMS skips the concatenated hashing
6221
+ # of the public key hash and the message done in the ML-DSA signing
6222
+ # algorithm.
6223
+ #
6224
+ # Use the `DIGEST` or `EXTERNAL_MU` value only when the value of the
6225
+ # `Message` parameter is a message digest. If you use the `DIGEST`
6226
+ # value with an unhashed message, the security of the signing
6227
+ # operation can be compromised.
6228
+ #
6229
+ # When using ECC\_NIST\_EDWARDS25519 KMS keys:
6230
+ #
6231
+ # * ED25519\_SHA\_512 signing algorithm requires KMS `MessageType:RAW`
5456
6232
  #
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.
6233
+ # * ED25519\_PH\_SHA\_512 signing algorithm requires KMS
6234
+ # `MessageType:DIGEST`
5461
6235
  #
5462
- # When the value of `MessageType`is `DIGEST`, the length of the
6236
+ # When the value of `MessageType` is `DIGEST`, the length of the
5463
6237
  # `Message` value must match the length of hashed messages for the
5464
6238
  # specified signing algorithm.
5465
6239
  #
6240
+ # When the value of `MessageType` is `EXTERNAL_MU` the length of the
6241
+ # `Message` value must be 64 bytes.
6242
+ #
5466
6243
  # You can submit a message digest and omit the `MessageType` or
5467
6244
  # specify `RAW` so the digest is hashed again while signing. However,
5468
6245
  # this can cause verification failures when verifying with a system
5469
6246
  # that assumes a single hash.
5470
6247
  #
5471
- # The hashing algorithm in that `Sign` uses is based on the
6248
+ # The hashing algorithm that `Sign` uses is based on the
5472
6249
  # `SigningAlgorithm` value.
5473
6250
  #
5474
6251
  # * Signing algorithms that end in SHA\_256 use the SHA\_256 hashing
@@ -5480,12 +6257,15 @@ module Aws::KMS
5480
6257
  # * Signing algorithms that end in SHA\_512 use the SHA\_512 hashing
5481
6258
  # algorithm.
5482
6259
  #
6260
+ # * Signing algorithms that end in SHAKE\_256 use the SHAKE\_256
6261
+ # hashing algorithm.
6262
+ #
5483
6263
  # * SM2DSA uses the SM3 hashing algorithm. For details, see [Offline
5484
6264
  # verification with SM2 key pairs][1].
5485
6265
  #
5486
6266
  #
5487
6267
  #
5488
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
6268
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification
5489
6269
  # @return [String]
5490
6270
  #
5491
6271
  # @!attribute [rw] grant_tokens
@@ -5499,7 +6279,7 @@ module Aws::KMS
5499
6279
  #
5500
6280
  #
5501
6281
  # [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
6282
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
5503
6283
  # @return [Array<String>]
5504
6284
  #
5505
6285
  # @!attribute [rw] signing_algorithm
@@ -5515,12 +6295,12 @@ module Aws::KMS
5515
6295
  # Checks if your request will succeed. `DryRun` is an optional
5516
6296
  # parameter.
5517
6297
  #
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*.
6298
+ # To learn more about how to use this parameter, see [Testing your
6299
+ # permissions][1] in the *Key Management Service Developer Guide*.
5520
6300
  #
5521
6301
  #
5522
6302
  #
5523
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
6303
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5524
6304
  # @return [Boolean]
5525
6305
  #
5526
6306
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/SignRequest AWS API Documentation
@@ -5745,8 +6525,8 @@ module Aws::KMS
5745
6525
  #
5746
6526
  #
5747
6527
  #
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
6528
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key
6529
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
5750
6530
  # @return [String]
5751
6531
  #
5752
6532
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateAliasRequest AWS API Documentation
@@ -5860,6 +6640,16 @@ module Aws::KMS
5860
6640
  # To change this value, the external key store must be disconnected.
5861
6641
  # @return [String]
5862
6642
  #
6643
+ # @!attribute [rw] xks_proxy_vpc_endpoint_service_owner
6644
+ # Changes the Amazon Web Services account ID that KMS uses to identify
6645
+ # the Amazon VPC endpoint service for your external key store proxy
6646
+ # (XKS proxy). This parameter is optional. If not specified, the
6647
+ # current Amazon Web Services account ID for the VPC endpoint service
6648
+ # will not be updated.
6649
+ #
6650
+ # To change this value, the external key store must be disconnected.
6651
+ # @return [String]
6652
+ #
5863
6653
  # @!attribute [rw] xks_proxy_authentication_credential
5864
6654
  # Changes the credentials that KMS uses to sign requests to the
5865
6655
  # external key store proxy (XKS proxy). This parameter is valid only
@@ -5907,6 +6697,7 @@ module Aws::KMS
5907
6697
  :xks_proxy_uri_endpoint,
5908
6698
  :xks_proxy_uri_path,
5909
6699
  :xks_proxy_vpc_endpoint_service_name,
6700
+ :xks_proxy_vpc_endpoint_service_owner,
5910
6701
  :xks_proxy_authentication_credential,
5911
6702
  :xks_proxy_connectivity)
5912
6703
  SENSITIVE = [:key_store_password]
@@ -6025,19 +6816,19 @@ module Aws::KMS
6025
6816
  #
6026
6817
  #
6027
6818
  # [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
6819
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
6029
6820
  # @return [Array<String>]
6030
6821
  #
6031
6822
  # @!attribute [rw] dry_run
6032
6823
  # Checks if your request will succeed. `DryRun` is an optional
6033
6824
  # parameter.
6034
6825
  #
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*.
6826
+ # To learn more about how to use this parameter, see [Testing your
6827
+ # permissions][1] in the *Key Management Service Developer Guide*.
6037
6828
  #
6038
6829
  #
6039
6830
  #
6040
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
6831
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
6041
6832
  # @return [Boolean]
6042
6833
  #
6043
6834
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyMacRequest AWS API Documentation
@@ -6121,28 +6912,42 @@ module Aws::KMS
6121
6912
  # Tells KMS whether the value of the `Message` parameter should be
6122
6913
  # hashed as part of the signing algorithm. Use `RAW` for unhashed
6123
6914
  # messages; use `DIGEST` for message digests, which are already
6124
- # hashed.
6915
+ # hashed; use `EXTERNAL_MU` for 64-byte representative μ used in
6916
+ # ML-DSA signing as defined in NIST FIPS 204 Section 6.2.
6125
6917
  #
6126
6918
  # When the value of `MessageType` is `RAW`, KMS uses the standard
6127
6919
  # signing algorithm, which begins with a hash function. When the value
6128
6920
  # is `DIGEST`, KMS skips the hashing step in the signing algorithm.
6921
+ # When the value is `EXTERNAL_MU` KMS skips the concatenated hashing
6922
+ # of the public key hash and the message done in the ML-DSA signing
6923
+ # algorithm.
6924
+ #
6925
+ # Use the `DIGEST` or `EXTERNAL_MU` value only when the value of the
6926
+ # `Message` parameter is a message digest. If you use the `DIGEST`
6927
+ # value with an unhashed message, the security of the signing
6928
+ # operation can be compromised.
6129
6929
  #
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.
6930
+ # When using ECC\_NIST\_EDWARDS25519 KMS keys:
6134
6931
  #
6135
- # When the value of `MessageType`is `DIGEST`, the length of the
6932
+ # * ED25519\_SHA\_512 signing algorithm requires KMS `MessageType:RAW`
6933
+ #
6934
+ # * ED25519\_PH\_SHA\_512 signing algorithm requires KMS
6935
+ # `MessageType:DIGEST`
6936
+ #
6937
+ # When the value of `MessageType` is `DIGEST`, the length of the
6136
6938
  # `Message` value must match the length of hashed messages for the
6137
6939
  # specified signing algorithm.
6138
6940
  #
6941
+ # When the value of `MessageType` is `EXTERNAL_MU` the length of the
6942
+ # `Message` value must be 64 bytes.
6943
+ #
6139
6944
  # You can submit a message digest and omit the `MessageType` or
6140
6945
  # specify `RAW` so the digest is hashed again while signing. However,
6141
6946
  # if the signed message is hashed once while signing, but twice while
6142
6947
  # verifying, verification fails, even when the message hasn't
6143
6948
  # changed.
6144
6949
  #
6145
- # The hashing algorithm in that `Verify` uses is based on the
6950
+ # The hashing algorithm that `Verify` uses is based on the
6146
6951
  # `SigningAlgorithm` value.
6147
6952
  #
6148
6953
  # * Signing algorithms that end in SHA\_256 use the SHA\_256 hashing
@@ -6154,12 +6959,15 @@ module Aws::KMS
6154
6959
  # * Signing algorithms that end in SHA\_512 use the SHA\_512 hashing
6155
6960
  # algorithm.
6156
6961
  #
6962
+ # * Signing algorithms that end in SHAKE\_256 use the SHAKE\_256
6963
+ # hashing algorithm.
6964
+ #
6157
6965
  # * SM2DSA uses the SM3 hashing algorithm. For details, see [Offline
6158
6966
  # verification with SM2 key pairs][1].
6159
6967
  #
6160
6968
  #
6161
6969
  #
6162
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
6970
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification
6163
6971
  # @return [String]
6164
6972
  #
6165
6973
  # @!attribute [rw] signature
@@ -6182,19 +6990,19 @@ module Aws::KMS
6182
6990
  #
6183
6991
  #
6184
6992
  # [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
6993
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
6186
6994
  # @return [Array<String>]
6187
6995
  #
6188
6996
  # @!attribute [rw] dry_run
6189
6997
  # Checks if your request will succeed. `DryRun` is an optional
6190
6998
  # parameter.
6191
6999
  #
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*.
7000
+ # To learn more about how to use this parameter, see [Testing your
7001
+ # permissions][1] in the *Key Management Service Developer Guide*.
6194
7002
  #
6195
7003
  #
6196
7004
  #
6197
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
7005
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
6198
7006
  # @return [Boolean]
6199
7007
  #
6200
7008
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyRequest AWS API Documentation
@@ -6243,9 +7051,9 @@ module Aws::KMS
6243
7051
  end
6244
7052
 
6245
7053
  # 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.
7054
+ # associated with another KMS key in this external key store. Each KMS
7055
+ # key in an external key store must be associated with a different
7056
+ # external key.
6249
7057
  #
6250
7058
  # @!attribute [rw] message
6251
7059
  # @return [String]
@@ -6395,6 +7203,13 @@ module Aws::KMS
6395
7203
  # with KMS.
6396
7204
  # @return [String]
6397
7205
  #
7206
+ # @!attribute [rw] vpc_endpoint_service_owner
7207
+ # The Amazon Web Services account ID that owns the Amazon VPC endpoint
7208
+ # service used to communicate with the external key store proxy (XKS).
7209
+ # This field appears only when the XKS uses an VPC endpoint service to
7210
+ # communicate with KMS.
7211
+ # @return [String]
7212
+ #
6398
7213
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyConfigurationType AWS API Documentation
6399
7214
  #
6400
7215
  class XksProxyConfigurationType < Struct.new(
@@ -6402,7 +7217,8 @@ module Aws::KMS
6402
7217
  :access_key_id,
6403
7218
  :uri_endpoint,
6404
7219
  :uri_path,
6405
- :vpc_endpoint_service_name)
7220
+ :vpc_endpoint_service_name,
7221
+ :vpc_endpoint_service_owner)
6406
7222
  SENSITIVE = [:access_key_id]
6407
7223
  include Aws::Structure
6408
7224
  end
@@ -6424,9 +7240,9 @@ module Aws::KMS
6424
7240
  include Aws::Structure
6425
7241
  end
6426
7242
 
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.
7243
+ # The request was rejected because the external key store proxy is not
7244
+ # configured correctly. To identify the cause, see the error message
7245
+ # that accompanies the exception.
6430
7246
  #
6431
7247
  # @!attribute [rw] message
6432
7248
  # @return [String]
@@ -6455,11 +7271,10 @@ module Aws::KMS
6455
7271
  include Aws::Structure
6456
7272
  end
6457
7273
 
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.
7274
+ # The request was rejected because the `XksProxyUriEndpoint` is already
7275
+ # associated with another external key store in this Amazon Web Services
7276
+ # Region. To identify the cause, see the error message that accompanies
7277
+ # the exception.
6463
7278
  #
6464
7279
  # @!attribute [rw] message
6465
7280
  # @return [String]
@@ -6474,9 +7289,9 @@ module Aws::KMS
6474
7289
 
6475
7290
  # The request was rejected because the concatenation of the
6476
7291
  # `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.
7292
+ # another external key store in this Amazon Web Services Region. Each
7293
+ # external key store in a Region must use a unique external key store
7294
+ # proxy API address.
6480
7295
  #
6481
7296
  # @!attribute [rw] message
6482
7297
  # @return [String]
@@ -6509,10 +7324,9 @@ module Aws::KMS
6509
7324
  end
6510
7325
 
6511
7326
  # 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.
7327
+ # service is already associated with another external key store in this
7328
+ # Amazon Web Services Region. Each external key store in a Region must
7329
+ # use a different Amazon VPC endpoint service.
6516
7330
  #
6517
7331
  # @!attribute [rw] message
6518
7332
  # @return [String]
@@ -6527,10 +7341,13 @@ module Aws::KMS
6527
7341
 
6528
7342
  # The request was rejected because the Amazon VPC endpoint service
6529
7343
  # 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.
7344
+ # store. To identify the cause, see the error message that accompanies
7345
+ # the exception and [review the requirements][1] for Amazon VPC endpoint
7346
+ # service connectivity for an external key store.
7347
+ #
7348
+ #
7349
+ #
7350
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/vpc-connectivity.html#xks-vpc-requirements
6534
7351
  #
6535
7352
  # @!attribute [rw] message
6536
7353
  # @return [String]
@@ -6563,3 +7380,4 @@ module Aws::KMS
6563
7380
 
6564
7381
  end
6565
7382
  end
7383
+