aws-sdk-kms 1.101.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.
@@ -95,8 +95,8 @@ module Aws::KMS
95
95
  # class name or an instance of a plugin class.
96
96
  #
97
97
  # @option options [required, Aws::CredentialProvider] :credentials
98
- # Your AWS credentials. This can be an instance of any one of the
99
- # following classes:
98
+ # Your AWS credentials used for authentication. This can be any class that includes and implements
99
+ # `Aws::CredentialProvider`, or instance of any one of the following classes:
100
100
  #
101
101
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
102
102
  # credentials.
@@ -124,22 +124,24 @@ module Aws::KMS
124
124
  # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
125
125
  # from the Cognito Identity service.
126
126
  #
127
- # When `:credentials` are not configured directly, the following
128
- # locations will be searched for credentials:
127
+ # When `:credentials` are not configured directly, the following locations will be searched for credentials:
129
128
  #
130
129
  # * `Aws.config[:credentials]`
130
+ #
131
131
  # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
132
  # `:account_id` options.
133
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
134
- # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
133
+ #
134
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
135
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
136
+ #
135
137
  # * `~/.aws/credentials`
138
+ #
136
139
  # * `~/.aws/config`
137
- # * EC2/ECS IMDS instance profile - When used by default, the timeouts
138
- # are very aggressive. Construct and pass an instance of
139
- # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
140
- # enable retries and extended timeouts. Instance profile credential
141
- # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
142
- # to true.
140
+ #
141
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
142
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
143
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
144
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
143
145
  #
144
146
  # @option options [required, String] :region
145
147
  # The AWS region to connect to. The configured `:region` is
@@ -167,6 +169,11 @@ module Aws::KMS
167
169
  # When false, the request will raise a `RetryCapacityNotAvailableError` and will
168
170
  # not retry instead of sleeping.
169
171
  #
172
+ # @option options [Array<String>] :auth_scheme_preference
173
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
174
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
175
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
176
+ #
170
177
  # @option options [Boolean] :client_side_monitoring (false)
171
178
  # When `true`, client-side metrics will be collected for all API requests from
172
179
  # this client.
@@ -253,8 +260,8 @@ module Aws::KMS
253
260
  # 4 times. Used in `standard` and `adaptive` retry modes.
254
261
  #
255
262
  # @option options [String] :profile ("default")
256
- # Used when loading credentials from the shared credentials file
257
- # at HOME/.aws/credentials. When not specified, 'default' is used.
263
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
264
+ # When not specified, 'default' is used.
258
265
  #
259
266
  # @option options [String] :request_checksum_calculation ("when_supported")
260
267
  # Determines when a checksum will be calculated for request payloads. Values are:
@@ -374,8 +381,8 @@ module Aws::KMS
374
381
  # `Aws::Telemetry::OTelProvider` for telemetry provider.
375
382
  #
376
383
  # @option options [Aws::TokenProvider] :token_provider
377
- # A Bearer Token Provider. This can be an instance of any one of the
378
- # following classes:
384
+ # Your Bearer token used for authentication. This can be any class that includes and implements
385
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
379
386
  #
380
387
  # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
381
388
  # tokens.
@@ -503,7 +510,7 @@ module Aws::KMS
503
510
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html
504
511
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
505
512
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
506
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
513
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
507
514
  #
508
515
  # @option params [required, String] :key_id
509
516
  # Identifies the KMS key whose deletion is being canceled.
@@ -575,9 +582,9 @@ module Aws::KMS
575
582
  # custom key store is connected. To get the connection state of the
576
583
  # custom key store, use the DescribeCustomKeyStores operation.
577
584
  #
578
- # This operation is part of the [custom key stores][1] feature in KMS,
579
- # which combines the convenience and extensive integration of KMS with
580
- # the isolation and control of a key store that you own and manage.
585
+ # This operation is part of the custom key stores feature in KMS, which
586
+ # combines the convenience and extensive integration of KMS with the
587
+ # isolation and control of a key store that you own and manage.
581
588
  #
582
589
  # The `ConnectCustomKeyStore` operation might fail for various reasons.
583
590
  # To find the reason, use the DescribeCustomKeyStores operation and see
@@ -651,14 +658,14 @@ module Aws::KMS
651
658
  #
652
659
  #
653
660
  #
654
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
661
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
655
662
  # [2]: https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html
656
663
  # [3]: https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html
657
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser
664
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html#concept-kmsuser
658
665
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html
659
666
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html
660
667
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
661
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
668
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
662
669
  #
663
670
  # @option params [required, String] :custom_key_store_id
664
671
  # Enter the key store ID of the custom key store that you want to
@@ -720,7 +727,7 @@ module Aws::KMS
720
727
  #
721
728
  # The alias must be unique in the account and Region, but you can have
722
729
  # aliases with the same name in different Regions. For detailed
723
- # information about aliases, see [Using aliases][3] in the *Key
730
+ # information about aliases, see [Aliases in KMS][3] in the *Key
724
731
  # Management Service Developer Guide*.
725
732
  #
726
733
  # This operation does not return a response. To get the alias that you
@@ -756,12 +763,12 @@ module Aws::KMS
756
763
  #
757
764
  #
758
765
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
759
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
766
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
760
767
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html
761
768
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
762
769
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
763
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access
764
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
770
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/alias-access.html
771
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
765
772
  #
766
773
  # @option params [required, String] :alias_name
767
774
  # Specifies the alias name. This value must begin with `alias/` followed
@@ -779,7 +786,7 @@ module Aws::KMS
779
786
  #
780
787
  #
781
788
  #
782
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
789
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
783
790
  #
784
791
  # @option params [required, String] :target_key_id
785
792
  # Associates the alias with the specified [customer managed key][1]. The
@@ -788,7 +795,7 @@ module Aws::KMS
788
795
  # A valid key ID is required. If you supply a null or empty string
789
796
  # value, this operation returns an error.
790
797
  #
791
- # For help finding the key ID and ARN, see [Finding the Key ID and
798
+ # For help finding the key ID and ARN, see [Find the key ID and key
792
799
  # ARN][2] in the <i> <i>Key Management Service Developer Guide</i> </i>.
793
800
  #
794
801
  # Specify the key ID or key ARN of the KMS key.
@@ -805,8 +812,8 @@ module Aws::KMS
805
812
  #
806
813
  #
807
814
  #
808
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
809
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn
815
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key
816
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html
810
817
  #
811
818
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
812
819
  #
@@ -844,9 +851,9 @@ module Aws::KMS
844
851
  # stores][4] backed by an external key store proxy and external key
845
852
  # manager outside of Amazon Web Services.
846
853
  #
847
- # This operation is part of the [custom key stores][1] feature in KMS,
848
- # which combines the convenience and extensive integration of KMS with
849
- # the isolation and control of a key store that you own and manage.
854
+ # This operation is part of the custom key stores feature in KMS, which
855
+ # combines the convenience and extensive integration of KMS with the
856
+ # isolation and control of a key store that you own and manage.
850
857
  #
851
858
  # Before you create the custom key store, the required elements must be
852
859
  # in place and operational. We recommend that you use the test tools
@@ -899,9 +906,6 @@ module Aws::KMS
899
906
  # immediately, you might want to connect it to verify that all settings
900
907
  # are correct and then disconnect it until you are ready to use it.
901
908
  #
902
- # For help with failures, see [Troubleshooting a custom key store][7] in
903
- # the *Key Management Service Developer Guide*.
904
- #
905
909
  # **Cross-account use**: No. You cannot perform this operation on a
906
910
  # custom key store in a different Amazon Web Services account.
907
911
  #
@@ -924,7 +928,7 @@ module Aws::KMS
924
928
  #
925
929
  #
926
930
  #
927
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
931
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
928
932
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html
929
933
  # [3]: https://docs.aws.amazon.com/cloudhsm/latest/userguide/clusters.html
930
934
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html
@@ -933,7 +937,7 @@ module Aws::KMS
933
937
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html
934
938
  # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html
935
939
  # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
936
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
940
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
937
941
  #
938
942
  # @option params [required, String] :custom_key_store_name
939
943
  # Specifies a friendly name for the custom key store. The name must be
@@ -987,7 +991,7 @@ module Aws::KMS
987
991
  #
988
992
  #
989
993
  #
990
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser
994
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html#concept-kmsuser
991
995
  #
992
996
  # @option params [String] :custom_key_store_type
993
997
  # Specifies the type of custom key store. The default value is
@@ -1079,6 +1083,13 @@ module Aws::KMS
1079
1083
  #
1080
1084
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements
1081
1085
  #
1086
+ # @option params [String] :xks_proxy_vpc_endpoint_service_owner
1087
+ # Specifies the Amazon Web Services account ID that owns the Amazon VPC
1088
+ # service endpoint for the interface that is used to communicate with
1089
+ # your external key store proxy (XKS proxy). This parameter is optional.
1090
+ # If not provided, the Amazon Web Services account ID calling the action
1091
+ # will be used.
1092
+ #
1082
1093
  # @option params [Types::XksProxyAuthenticationCredentialType] :xks_proxy_authentication_credential
1083
1094
  # Specifies an authentication credential for the external key store
1084
1095
  # proxy (XKS proxy). This parameter is required for all custom key
@@ -1088,7 +1099,7 @@ module Aws::KMS
1088
1099
  # `RawSecretAccessKey`, a secret key, and `AccessKeyId`, a unique
1089
1100
  # identifier for the `RawSecretAccessKey`. For character requirements,
1090
1101
  # see
1091
- # [XksProxyAuthenticationCredentialType](kms/latest/APIReference/API_XksProxyAuthenticationCredentialType.html).
1102
+ # [XksProxyAuthenticationCredentialType](API_XksProxyAuthenticationCredentialType.html).
1092
1103
  #
1093
1104
  # KMS uses this authentication credential to sign requests to the
1094
1105
  # external key store proxy on your behalf. This credential is unrelated
@@ -1128,7 +1139,7 @@ module Aws::KMS
1128
1139
  #
1129
1140
  #
1130
1141
  #
1131
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/plan-xks-keystore.html#choose-xks-connectivity
1142
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/choose-xks-connectivity.html
1132
1143
  #
1133
1144
  # @return [Types::CreateCustomKeyStoreResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1134
1145
  #
@@ -1205,6 +1216,7 @@ module Aws::KMS
1205
1216
  # xks_proxy_uri_endpoint: "XksProxyUriEndpointType",
1206
1217
  # xks_proxy_uri_path: "XksProxyUriPathType",
1207
1218
  # xks_proxy_vpc_endpoint_service_name: "XksProxyVpcEndpointServiceNameType",
1219
+ # xks_proxy_vpc_endpoint_service_owner: "AccountIdType",
1208
1220
  # xks_proxy_authentication_credential: {
1209
1221
  # access_key_id: "XksProxyAuthenticationAccessKeyIdType", # required
1210
1222
  # raw_secret_access_key: "XksProxyAuthenticationRawSecretAccessKeyType", # required
@@ -1237,8 +1249,9 @@ module Aws::KMS
1237
1249
  #
1238
1250
  # For detailed information about grants, including grant terminology,
1239
1251
  # see [Grants in KMS][1] in the <i> <i>Key Management Service Developer
1240
- # Guide</i> </i>. For examples of working with grants in several
1241
- # programming languages, see [Programming grants][2].
1252
+ # Guide</i> </i>. For examples of creating grants in several programming
1253
+ # languages, see [Use CreateGrant with an Amazon Web Services SDK or
1254
+ # CLI][2].
1242
1255
  #
1243
1256
  # The `CreateGrant` operation returns a `GrantToken` and a `GrantId`.
1244
1257
  #
@@ -1284,11 +1297,11 @@ module Aws::KMS
1284
1297
  #
1285
1298
  #
1286
1299
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
1287
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html
1288
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
1300
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html
1301
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
1289
1302
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1290
1303
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1291
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
1304
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
1292
1305
  #
1293
1306
  # @option params [required, String] :key_id
1294
1307
  # Identifies the KMS key for the grant. The grant gives principals
@@ -1341,7 +1354,7 @@ module Aws::KMS
1341
1354
  #
1342
1355
  # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1343
1356
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns
1344
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete
1357
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-delete.html
1345
1358
  #
1346
1359
  # @option params [required, Array<String>] :operations
1347
1360
  # A list of operations that the grant permits.
@@ -1410,7 +1423,7 @@ module Aws::KMS
1410
1423
  #
1411
1424
  #
1412
1425
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1413
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
1426
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
1414
1427
  #
1415
1428
  # @option params [String] :name
1416
1429
  # A friendly name for the grant. Use this value to prevent the
@@ -1436,12 +1449,12 @@ module Aws::KMS
1436
1449
  # Checks if your request will succeed. `DryRun` is an optional
1437
1450
  # parameter.
1438
1451
  #
1439
- # To learn more about how to use this parameter, see [Testing your KMS
1440
- # API calls][1] in the *Key Management Service Developer Guide*.
1452
+ # To learn more about how to use this parameter, see [Testing your
1453
+ # permissions][1] in the *Key Management Service Developer Guide*.
1441
1454
  #
1442
1455
  #
1443
1456
  #
1444
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
1457
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
1445
1458
  #
1446
1459
  # @return [Types::CreateGrantResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1447
1460
  #
@@ -1511,16 +1524,15 @@ module Aws::KMS
1511
1524
  # A KMS key is a logical representation of a cryptographic key. In
1512
1525
  # addition to the key material used in cryptographic operations, a KMS
1513
1526
  # key includes metadata, such as the key ID, key policy, creation date,
1514
- # description, and key state. For details, see [Managing keys][2] in the
1515
- # *Key Management Service Developer Guide*
1527
+ # description, and key state.
1516
1528
  #
1517
1529
  # Use the parameters of `CreateKey` to specify the type of KMS key, the
1518
1530
  # source of its key material, its key policy, description, tags, and
1519
1531
  # other properties.
1520
1532
  #
1521
- # <note markdown="1"> KMS has replaced the term *customer master key (CMK)* with *KMS key*
1522
- # and *KMS key*. The concept has not changed. To prevent breaking
1523
- # changes, KMS is keeping some variations of this term.
1533
+ # <note markdown="1"> KMS has replaced the term *customer master key (CMK)* with *Key
1534
+ # Management Service key* and *KMS key*. The concept has not changed. To
1535
+ # prevent breaking changes, KMS is keeping some variations of this term.
1524
1536
  #
1525
1537
  # </note>
1526
1538
  #
@@ -1558,20 +1570,21 @@ module Aws::KMS
1558
1570
  # properties after the KMS key is created.
1559
1571
  #
1560
1572
  # Asymmetric KMS keys contain an RSA key pair, Elliptic Curve (ECC)
1561
- # key pair, or an SM2 key pair (China Regions only). The private key
1562
- # in an asymmetric KMS key never leaves KMS unencrypted. However, you
1563
- # can use the GetPublicKey operation to download the public key so it
1564
- # can be used outside of KMS. Each KMS key can have only one key
1565
- # usage. KMS keys with RSA key pairs can be used to encrypt and
1566
- # decrypt data or sign and verify messages (but not both). KMS keys
1567
- # with NIST-recommended ECC key pairs can be used to sign and verify
1568
- # messages or derive shared secrets (but not both). KMS keys with
1569
- # `ECC_SECG_P256K1` can be used only to sign and verify messages. KMS
1570
- # keys with SM2 key pairs (China Regions only) can be used to either
1571
- # encrypt and decrypt data, sign and verify messages, or derive shared
1572
- # secrets (you must choose one key usage type). For information about
1573
- # asymmetric KMS keys, see [Asymmetric KMS keys][3] in the *Key
1574
- # Management Service Developer Guide*.
1573
+ # key pair, ML-DSA key pair or an SM2 key pair (China Regions only).
1574
+ # The private key in an asymmetric KMS key never leaves KMS
1575
+ # unencrypted. However, you can use the GetPublicKey operation to
1576
+ # download the public key so it can be used outside of KMS. Each KMS
1577
+ # key can have only one key usage. KMS keys with RSA key pairs can be
1578
+ # used to encrypt and decrypt data or sign and verify messages (but
1579
+ # not both). KMS keys with NIST-standard ECC key pairs can be used to
1580
+ # sign and verify messages or derive shared secrets (but not both).
1581
+ # KMS keys with `ECC_SECG_P256K1` can be used only to sign and verify
1582
+ # messages. KMS keys with ML-DSA key pairs can be used to sign and
1583
+ # verify messages. KMS keys with SM2 key pairs (China Regions only)
1584
+ # can be used to either encrypt and decrypt data, sign and verify
1585
+ # messages, or derive shared secrets (you must choose one key usage
1586
+ # type). For information about asymmetric KMS keys, see [Asymmetric
1587
+ # KMS keys][2] in the *Key Management Service Developer Guide*.
1575
1588
  #
1576
1589
  #
1577
1590
  #
@@ -1614,7 +1627,7 @@ module Aws::KMS
1614
1627
  # to encrypt data in one Amazon Web Services Region and decrypt it in
1615
1628
  # a different Amazon Web Services Region without re-encrypting the
1616
1629
  # data or making a cross-Region call. For more information about
1617
- # multi-Region keys, see [Multi-Region keys in KMS][4] in the *Key
1630
+ # multi-Region keys, see [Multi-Region keys in KMS][3] in the *Key
1618
1631
  # Management Service Developer Guide*.
1619
1632
  #
1620
1633
  #
@@ -1626,7 +1639,7 @@ module Aws::KMS
1626
1639
  # token. Use the wrapping public key to encrypt your key material.
1627
1640
  # Then, use ImportKeyMaterial with your import token to import the key
1628
1641
  # material. For step-by-step instructions, see [Importing Key
1629
- # Material][5] in the <i> <i>Key Management Service Developer
1642
+ # Material][4] in the <i> <i>Key Management Service Developer
1630
1643
  # Guide</i> </i>.
1631
1644
  #
1632
1645
  # You can import key material into KMS keys of all supported KMS key
@@ -1639,23 +1652,22 @@ module Aws::KMS
1639
1652
  # the `Origin` parameter of `CreateKey` with a value of `EXTERNAL` and
1640
1653
  # the `MultiRegion` parameter with a value of `True`. To create
1641
1654
  # replicas of the multi-Region primary key, use the ReplicateKey
1642
- # operation. For instructions, see [Importing key material into
1643
- # multi-Region keys][6]. For more information about multi-Region keys,
1644
- # see [Multi-Region keys in KMS][4] in the *Key Management Service
1645
- # Developer Guide*.
1655
+ # operation. For instructions, see [Importing key material step 1][5].
1656
+ # For more information about multi-Region keys, see [Multi-Region keys
1657
+ # in KMS][3] in the *Key Management Service Developer Guide*.
1646
1658
  #
1647
1659
  #
1648
1660
  #
1649
1661
  # Custom key store
1650
1662
  #
1651
- # : A [custom key store][7] lets you protect your Amazon Web Services
1663
+ # : A [custom key store][6] lets you protect your Amazon Web Services
1652
1664
  # resources using keys in a backing key store that you own and manage.
1653
1665
  # When you request a cryptographic operation with a KMS key in a
1654
1666
  # custom key store, the operation is performed in the backing key
1655
1667
  # store using its cryptographic keys.
1656
1668
  #
1657
- # KMS supports [CloudHSM key stores][8] backed by an CloudHSM cluster
1658
- # and [external key stores][9] backed by an external key manager
1669
+ # KMS supports [CloudHSM key stores][7] backed by an CloudHSM cluster
1670
+ # and [external key stores][8] backed by an external key manager
1659
1671
  # outside of Amazon Web Services. When you create a KMS key in an
1660
1672
  # CloudHSM key store, KMS generates an encryption key in the CloudHSM
1661
1673
  # cluster and associates it with the KMS key. When you create a KMS
@@ -1680,13 +1692,13 @@ module Aws::KMS
1680
1692
  # `ENCRYPT_DECRYPT` to create a symmetric encryption key. No other key
1681
1693
  # type is supported in a custom key store.
1682
1694
  #
1683
- # To create a KMS key in an [CloudHSM key store][8], use the `Origin`
1695
+ # To create a KMS key in an [CloudHSM key store][9], use the `Origin`
1684
1696
  # parameter with a value of `AWS_CLOUDHSM`. The CloudHSM cluster that
1685
1697
  # is associated with the custom key store must have at least two
1686
1698
  # active HSMs in different Availability Zones in the Amazon Web
1687
1699
  # Services Region.
1688
1700
  #
1689
- # To create a KMS key in an [external key store][9], use the `Origin`
1701
+ # To create a KMS key in an [external key store][10], use the `Origin`
1690
1702
  # parameter with a value of `EXTERNAL_KEY_STORE` and an `XksKeyId`
1691
1703
  # parameter that identifies an existing external key.
1692
1704
  #
@@ -1699,10 +1711,10 @@ module Aws::KMS
1699
1711
  # **Cross-account use**: No. You cannot use this operation to create a
1700
1712
  # KMS key in a different Amazon Web Services account.
1701
1713
  #
1702
- # **Required permissions**: [kms:CreateKey][10] (IAM policy). To use the
1703
- # `Tags` parameter, [kms:TagResource][10] (IAM policy). For examples and
1714
+ # **Required permissions**: [kms:CreateKey][11] (IAM policy). To use the
1715
+ # `Tags` parameter, [kms:TagResource][11] (IAM policy). For examples and
1704
1716
  # information about related permissions, see [Allow a user to create KMS
1705
- # keys][11] in the *Key Management Service Developer Guide*.
1717
+ # keys][12] in the *Key Management Service Developer Guide*.
1706
1718
  #
1707
1719
  # **Related operations:**
1708
1720
  #
@@ -1713,22 +1725,23 @@ module Aws::KMS
1713
1725
  # * ScheduleKeyDeletion
1714
1726
  #
1715
1727
  # **Eventual consistency**: The KMS API follows an eventual consistency
1716
- # model. For more information, see [KMS eventual consistency][12].
1728
+ # model. For more information, see [KMS eventual consistency][13].
1717
1729
  #
1718
1730
  #
1719
1731
  #
1720
1732
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms-keys
1721
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html
1722
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
1723
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
1724
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
1725
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-import.html
1726
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1727
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html
1728
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html
1729
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1730
- # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policy-example-create-key
1731
- # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
1733
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
1734
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
1735
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
1736
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html
1737
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
1738
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html
1739
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html
1740
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/create-cmk-keystore.html
1741
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html
1742
+ # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1743
+ # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/customer-managed-policies.html#iam-policy-example-create-key
1744
+ # [13]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
1732
1745
  #
1733
1746
  # @option params [String] :policy
1734
1747
  # The key policy to attach to the KMS key.
@@ -1750,22 +1763,38 @@ module Aws::KMS
1750
1763
  # not always immediately visible][2] in the *Amazon Web Services
1751
1764
  # Identity and Access Management User Guide*.
1752
1765
  #
1766
+ # <note markdown="1"> If either of the required `Resource` or `Action` elements are missing
1767
+ # from a key policy statement, the policy statement has no effect. When
1768
+ # a key policy statement is missing one of these elements, the KMS
1769
+ # console correctly reports an error, but the `CreateKey` and
1770
+ # `PutKeyPolicy` API requests succeed, even though the policy statement
1771
+ # is ineffective.
1772
+ #
1773
+ # For more information on required key policy elements, see [Elements in
1774
+ # a key policy][3] in the *Key Management Service Developer Guide*.
1775
+ #
1776
+ # </note>
1777
+ #
1753
1778
  # If you do not provide a key policy, KMS attaches a default key policy
1754
- # to the KMS key. For more information, see [Default key policy][3] in
1779
+ # to the KMS key. For more information, see [Default key policy][4] in
1755
1780
  # the *Key Management Service Developer Guide*.
1756
1781
  #
1757
- # The key policy size quota is 32 kilobytes (32768 bytes).
1782
+ # <note markdown="1"> If the key policy exceeds the length constraint, KMS returns a
1783
+ # `LimitExceededException`.
1784
+ #
1785
+ # </note>
1758
1786
  #
1759
1787
  # For help writing and formatting a JSON policy document, see the [IAM
1760
- # JSON Policy Reference][4] in the <i> <i>Identity and Access Management
1788
+ # JSON Policy Reference][5] in the <i> <i>Identity and Access Management
1761
1789
  # User Guide</i> </i>.
1762
1790
  #
1763
1791
  #
1764
1792
  #
1765
1793
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
1766
1794
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
1767
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
1768
- # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
1795
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html#key-policy-elements
1796
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html
1797
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
1769
1798
  #
1770
1799
  # @option params [String] :description
1771
1800
  # A description of the KMS key. Use a description that helps you decide
@@ -1783,8 +1812,10 @@ module Aws::KMS
1783
1812
  # Determines the [cryptographic operations][1] for which you can use the
1784
1813
  # KMS key. The default value is `ENCRYPT_DECRYPT`. This parameter is
1785
1814
  # optional when you are creating a symmetric encryption KMS key;
1786
- # otherwise, it is required. You can't change the `KeyUsage` value
1787
- # after the KMS key is created.
1815
+ # otherwise, it is required. You can't change the [ `KeyUsage` ][2]
1816
+ # value after the KMS key is created. Each KMS key can have only one key
1817
+ # usage. This follows key usage best practices according to [NIST SP
1818
+ # 800-57 Recommendations for Key Management][3], section 5.2, Key usage.
1788
1819
  #
1789
1820
  # Select only one valid value.
1790
1821
  #
@@ -1796,10 +1827,13 @@ module Aws::KMS
1796
1827
  # * For asymmetric KMS keys with RSA key pairs, specify
1797
1828
  # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
1798
1829
  #
1799
- # * For asymmetric KMS keys with NIST-recommended elliptic curve key
1800
- # pairs, specify `SIGN_VERIFY` or `KEY_AGREEMENT`.
1830
+ # * For asymmetric KMS keys with NIST-standard elliptic curve key pairs,
1831
+ # specify `SIGN_VERIFY` or `KEY_AGREEMENT`.
1832
+ #
1833
+ # * For asymmetric KMS keys with `ECC_SECG_P256K1` key pairs, specify
1834
+ # `SIGN_VERIFY`.
1801
1835
  #
1802
- # * For asymmetric KMS keys with `ECC_SECG_P256K1` key pairs specify
1836
+ # * For asymmetric KMS keys with ML-DSA key pairs, specify
1803
1837
  # `SIGN_VERIFY`.
1804
1838
  #
1805
1839
  # * For asymmetric KMS keys with SM2 key pairs (China Regions only),
@@ -1807,7 +1841,9 @@ module Aws::KMS
1807
1841
  #
1808
1842
  #
1809
1843
  #
1810
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
1844
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
1845
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#key-usage
1846
+ # [3]: https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final
1811
1847
  #
1812
1848
  # @option params [String] :customer_master_key_spec
1813
1849
  # Instead, use the `KeySpec` parameter.
@@ -1821,20 +1857,21 @@ module Aws::KMS
1821
1857
  # Specifies the type of KMS key to create. The default value,
1822
1858
  # `SYMMETRIC_DEFAULT`, creates a KMS key with a 256-bit AES-GCM key that
1823
1859
  # is used for encryption and decryption, except in China Regions, where
1824
- # it creates a 128-bit symmetric key that uses SM4 encryption. For help
1825
- # choosing a key spec for your KMS key, see [Choosing a KMS key type][1]
1826
- # in the <i> <i>Key Management Service Developer Guide</i> </i>.
1860
+ # it creates a 128-bit symmetric key that uses SM4 encryption. For a
1861
+ # detailed description of all supported key specs, see [Key spec
1862
+ # reference][1] in the <i> <i>Key Management Service Developer Guide</i>
1863
+ # </i>.
1827
1864
  #
1828
1865
  # The `KeySpec` determines whether the KMS key contains a symmetric key
1829
1866
  # or an asymmetric key pair. It also determines the algorithms that the
1830
1867
  # KMS key supports. You can't change the `KeySpec` after the KMS key is
1831
1868
  # created. To further restrict the algorithms that can be used with the
1832
1869
  # KMS key, use a condition key in its key policy or IAM policy. For more
1833
- # information, see [kms:EncryptionAlgorithm][2], [kms:MacAlgorithm][3]
1834
- # or [kms:Signing Algorithm][4] in the <i> <i>Key Management Service
1835
- # Developer Guide</i> </i>.
1870
+ # information, see [kms:EncryptionAlgorithm][2], [kms:MacAlgorithm][3],
1871
+ # [kms:KeyAgreementAlgorithm][4], or [kms:SigningAlgorithm][5] in the
1872
+ # <i> <i>Key Management Service Developer Guide</i> </i>.
1836
1873
  #
1837
- # [Amazon Web Services services that are integrated with KMS][5] use
1874
+ # [Amazon Web Services services that are integrated with KMS][6] use
1838
1875
  # symmetric encryption KMS keys to protect your data. These services do
1839
1876
  # not support asymmetric KMS keys or HMAC KMS keys.
1840
1877
  #
@@ -1862,7 +1899,7 @@ module Aws::KMS
1862
1899
  # * `RSA_3072`
1863
1900
  #
1864
1901
  # * `RSA_4096`
1865
- # * Asymmetric NIST-recommended elliptic curve key pairs (signing and
1902
+ # * Asymmetric NIST-standard elliptic curve key pairs (signing and
1866
1903
  # verification -or- deriving shared secrets)
1867
1904
  #
1868
1905
  # * `ECC_NIST_P256` (secp256r1)
@@ -1870,11 +1907,29 @@ module Aws::KMS
1870
1907
  # * `ECC_NIST_P384` (secp384r1)
1871
1908
  #
1872
1909
  # * `ECC_NIST_P521` (secp521r1)
1910
+ #
1911
+ # * `ECC_NIST_EDWARDS25519` (ed25519) - signing and verification only
1912
+ #
1913
+ # * **Note:** For ECC\_NIST\_EDWARDS25519 KMS keys, the
1914
+ # ED25519\_SHA\_512 signing algorithm requires [ `MessageType:RAW`
1915
+ # ](kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType),
1916
+ # while ED25519\_PH\_SHA\_512 requires [ `MessageType:DIGEST`
1917
+ # ](kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType).
1918
+ # These message types cannot be used interchangeably.
1919
+ #
1920
+ # ^
1873
1921
  # * Other asymmetric elliptic curve key pairs (signing and verification)
1874
1922
  #
1875
1923
  # * `ECC_SECG_P256K1` (secp256k1), commonly used for cryptocurrencies.
1876
1924
  #
1877
1925
  # ^
1926
+ # * Asymmetric ML-DSA key pairs (signing and verification)
1927
+ #
1928
+ # * `ML_DSA_44`
1929
+ #
1930
+ # * `ML_DSA_65`
1931
+ #
1932
+ # * `ML_DSA_87`
1878
1933
  # * SM2 key pairs (encryption and decryption -or- signing and
1879
1934
  # verification -or- deriving shared secrets)
1880
1935
  #
@@ -1884,11 +1939,12 @@ module Aws::KMS
1884
1939
  #
1885
1940
  #
1886
1941
  #
1887
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-types.html#symm-asymm-choose
1888
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm
1889
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-mac-algorithm
1890
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm
1891
- # [5]: http://aws.amazon.com/kms/features/#AWS_Service_Integration
1942
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html
1943
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-encryption-algorithm
1944
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-mac-algorithm
1945
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-key-agreement-algorithm
1946
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-signing-algorithm
1947
+ # [6]: http://aws.amazon.com/kms/features/#AWS_Service_Integration
1892
1948
  #
1893
1949
  # @option params [String] :origin
1894
1950
  # The source of the key material for the KMS key. You cannot change the
@@ -1938,7 +1994,7 @@ module Aws::KMS
1938
1994
  #
1939
1995
  #
1940
1996
  #
1941
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1997
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
1942
1998
  #
1943
1999
  # @option params [Boolean] :bypass_policy_lockout_safety_check
1944
2000
  # Skips ("bypasses") the key policy lockout safety check. The default
@@ -1986,7 +2042,7 @@ module Aws::KMS
1986
2042
  # When you add tags to an Amazon Web Services resource, Amazon Web
1987
2043
  # Services generates a cost allocation report with usage and costs
1988
2044
  # aggregated by tags. Tags can also be used to control access to a KMS
1989
- # key. For details, see [Tagging Keys][3].
2045
+ # key. For details, see [Tags in KMS][3].
1990
2046
  #
1991
2047
  #
1992
2048
  #
@@ -2057,7 +2113,7 @@ module Aws::KMS
2057
2113
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key
2058
2114
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html
2059
2115
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-xks-proxy
2060
- # [4]: https://docs.aws.amazon.com/create-xks-keys.html#xks-key-requirements
2116
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html#xks-key-requirements
2061
2117
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-double-encryption
2062
2118
  #
2063
2119
  # @return [Types::CreateKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
@@ -2079,6 +2135,7 @@ module Aws::KMS
2079
2135
  # aws_account_id: "111122223333",
2080
2136
  # arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
2081
2137
  # creation_date: Time.parse("2017-07-05T14:04:55-07:00"),
2138
+ # current_key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
2082
2139
  # customer_master_key_spec: "SYMMETRIC_DEFAULT",
2083
2140
  # description: "",
2084
2141
  # enabled: true,
@@ -2131,8 +2188,7 @@ module Aws::KMS
2131
2188
  # @example Example: To create an asymmetric elliptic curve KMS key for signing and verification
2132
2189
  #
2133
2190
  # # This example creates a KMS key that contains an asymmetric elliptic curve (ECC) key pair for signing and verification.
2134
- # # The key usage is required even though "SIGN_VERIFY" is the only valid value for ECC KMS keys. The key spec and key usage
2135
- # # can't be changed after the key is created.
2191
+ # # The key spec and key usage can't be changed after the key is created.
2136
2192
  #
2137
2193
  # resp = client.create_key({
2138
2194
  # key_spec: "ECC_NIST_P521", # Describes the type of key material in the KMS key.
@@ -2193,6 +2249,38 @@ module Aws::KMS
2193
2249
  # }, # Detailed information about the KMS key that this operation creates.
2194
2250
  # }
2195
2251
  #
2252
+ # @example Example: To create an asymmetric ML-DSA KMS key for signing and verification
2253
+ #
2254
+ # # This example creates a module-lattice digital signature algorithm (ML-DSA) key for signing and verification. The
2255
+ # # key-usage parameter is required even though SIGN_VERIFY is the only valid value for ML-DSA keys.
2256
+ #
2257
+ # resp = client.create_key({
2258
+ # key_spec: "ML_DSA_65", # Describes the type of key material in the KMS key.
2259
+ # key_usage: "SIGN_VERIFY", # The cryptographic operations for which you can use the KMS key.
2260
+ # })
2261
+ #
2262
+ # resp.to_h outputs the following:
2263
+ # {
2264
+ # key_metadata: {
2265
+ # aws_account_id: "111122223333",
2266
+ # arn: "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
2267
+ # creation_date: Time.parse(1748371316.734),
2268
+ # customer_master_key_spec: "ML_DSA_65",
2269
+ # description: "",
2270
+ # enabled: true,
2271
+ # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab",
2272
+ # key_manager: "CUSTOMER",
2273
+ # key_spec: "ML_DSA_65",
2274
+ # key_state: "Enabled",
2275
+ # key_usage: "SIGN_VERIFY",
2276
+ # multi_region: false,
2277
+ # origin: "AWS_KMS",
2278
+ # signing_algorithms: [
2279
+ # "ML_DSA_SHAKE_256",
2280
+ # ],
2281
+ # }, # Detailed information about the KMS key that this operation creates.
2282
+ # }
2283
+ #
2196
2284
  # @example Example: To create a multi-Region primary KMS key
2197
2285
  #
2198
2286
  # # This example creates a multi-Region primary symmetric encryption key. Because the default values for all parameters
@@ -2208,6 +2296,7 @@ module Aws::KMS
2208
2296
  # aws_account_id: "111122223333",
2209
2297
  # arn: "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab",
2210
2298
  # creation_date: Time.parse("2021-09-02T016:15:21-09:00"),
2299
+ # current_key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
2211
2300
  # customer_master_key_spec: "SYMMETRIC_DEFAULT",
2212
2301
  # description: "",
2213
2302
  # enabled: true,
@@ -2344,7 +2433,7 @@ module Aws::KMS
2344
2433
  # description: "DescriptionType",
2345
2434
  # key_usage: "SIGN_VERIFY", # accepts SIGN_VERIFY, ENCRYPT_DECRYPT, GENERATE_VERIFY_MAC, KEY_AGREEMENT
2346
2435
  # customer_master_key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512, SM2
2347
- # key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512, SM2
2436
+ # key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512, SM2, ML_DSA_44, ML_DSA_65, ML_DSA_87, ECC_NIST_EDWARDS25519
2348
2437
  # origin: "AWS_KMS", # accepts AWS_KMS, EXTERNAL, AWS_CLOUDHSM, EXTERNAL_KEY_STORE
2349
2438
  # custom_key_store_id: "CustomKeyStoreIdType",
2350
2439
  # bypass_policy_lockout_safety_check: false,
@@ -2376,11 +2465,11 @@ module Aws::KMS
2376
2465
  # resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
2377
2466
  # resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
2378
2467
  # resp.key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
2379
- # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
2468
+ # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519"
2380
2469
  # resp.key_metadata.encryption_algorithms #=> Array
2381
2470
  # resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
2382
2471
  # resp.key_metadata.signing_algorithms #=> Array
2383
- # resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA"
2472
+ # resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
2384
2473
  # resp.key_metadata.key_agreement_algorithms #=> Array
2385
2474
  # resp.key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH"
2386
2475
  # resp.key_metadata.multi_region #=> Boolean
@@ -2394,6 +2483,7 @@ module Aws::KMS
2394
2483
  # resp.key_metadata.mac_algorithms #=> Array
2395
2484
  # resp.key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
2396
2485
  # resp.key_metadata.xks_key_configuration.id #=> String
2486
+ # resp.key_metadata.current_key_material_id #=> String
2397
2487
  #
2398
2488
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKey AWS API Documentation
2399
2489
  #
@@ -2444,27 +2534,26 @@ module Aws::KMS
2444
2534
  # key that you intend.
2445
2535
  #
2446
2536
  # Whenever possible, use key policies to give users permission to call
2447
- # the `Decrypt` operation on a particular KMS key, instead of using
2448
- # &amp;IAM; policies. Otherwise, you might create an &amp;IAM; policy
2449
- # that gives the user `Decrypt` permission on all KMS keys. This user
2450
- # could decrypt ciphertext that was encrypted by KMS keys in other
2451
- # accounts if the key policy for the cross-account KMS key permits it.
2452
- # If you must use an IAM policy for `Decrypt` permissions, limit the
2453
- # user to particular KMS keys or particular trusted accounts. For
2454
- # details, see [Best practices for IAM policies][4] in the *Key
2455
- # Management Service Developer Guide*.
2456
- #
2457
- # `Decrypt` also supports [Amazon Web Services Nitro Enclaves][5], which
2458
- # provide an isolated compute environment in Amazon EC2. To call
2459
- # `Decrypt` for a Nitro enclave, use the [Amazon Web Services Nitro
2460
- # Enclaves SDK][6] or any Amazon Web Services SDK. Use the `Recipient`
2461
- # parameter to provide the attestation document for the enclave. Instead
2462
- # of the plaintext data, the response includes the plaintext data
2463
- # encrypted with the public key from the attestation document
2464
- # (`CiphertextForRecipient`). For information about the interaction
2465
- # between KMS and Amazon Web Services Nitro Enclaves, see [How Amazon
2466
- # Web Services Nitro Enclaves uses KMS][7] in the *Key Management
2467
- # Service Developer Guide*.
2537
+ # the `Decrypt` operation on a particular KMS key, instead of using IAM
2538
+ # policies. Otherwise, you might create an IAM policy that gives the
2539
+ # user `Decrypt` permission on all KMS keys. This user could decrypt
2540
+ # ciphertext that was encrypted by KMS keys in other accounts if the key
2541
+ # policy for the cross-account KMS key permits it. If you must use an
2542
+ # IAM policy for `Decrypt` permissions, limit the user to particular KMS
2543
+ # keys or particular trusted accounts. For details, see [Best practices
2544
+ # for IAM policies][4] in the *Key Management Service Developer Guide*.
2545
+ #
2546
+ # `Decrypt` also supports [Amazon Web Services Nitro Enclaves][5] and
2547
+ # NitroTPM, which provide attested environments in Amazon EC2. To call
2548
+ # `Decrypt` for a Nitro enclave or NitroTPM, use the [Amazon Web
2549
+ # Services Nitro Enclaves SDK][6] or any Amazon Web Services SDK. Use
2550
+ # the `Recipient` parameter to provide the attestation document for the
2551
+ # attested environment. Instead of the plaintext data, the response
2552
+ # includes the plaintext data encrypted with the public key from the
2553
+ # attestation document (`CiphertextForRecipient`). For information about
2554
+ # the interaction between KMS and Amazon Web Services Nitro Enclaves or
2555
+ # Amazon Web Services NitroTPM, see [Cryptographic attestation support
2556
+ # in KMS][7] in the *Key Management Service Developer Guide*.
2468
2557
  #
2469
2558
  # The KMS key that you use for this operation must be in a compatible
2470
2559
  # key state. For details, see [Key states of KMS keys][8] in the *Key
@@ -2497,10 +2586,10 @@ module Aws::KMS
2497
2586
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policies-best-practices
2498
2587
  # [5]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
2499
2588
  # [6]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2500
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2589
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2501
2590
  # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2502
2591
  # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2503
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
2592
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
2504
2593
  #
2505
2594
  # @option params [required, String, StringIO, File] :ciphertext_blob
2506
2595
  # Ciphertext to be decrypted. The blob includes metadata.
@@ -2525,8 +2614,8 @@ module Aws::KMS
2525
2614
  #
2526
2615
  #
2527
2616
  #
2528
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2529
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
2617
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
2618
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
2530
2619
  #
2531
2620
  # @option params [Array<String>] :grant_tokens
2532
2621
  # A list of grant tokens.
@@ -2539,7 +2628,7 @@ module Aws::KMS
2539
2628
  #
2540
2629
  #
2541
2630
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2542
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2631
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2543
2632
  #
2544
2633
  # @option params [String] :key_id
2545
2634
  # Specifies the KMS key that KMS uses to decrypt the ciphertext.
@@ -2587,40 +2676,43 @@ module Aws::KMS
2587
2676
  #
2588
2677
  # @option params [Types::RecipientInfo] :recipient
2589
2678
  # A signed [attestation document][1] from an Amazon Web Services Nitro
2590
- # enclave and the encryption algorithm to use with the enclave's public
2591
- # key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
2679
+ # enclave or NitroTPM, and the encryption algorithm to use with the
2680
+ # public key in the attestation document. The only valid encryption
2681
+ # algorithm is `RSAES_OAEP_SHA_256`.
2592
2682
  #
2593
- # This parameter only supports attestation documents for Amazon Web
2594
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
2595
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
2683
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
2684
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
2685
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
2686
+ # Services NitroTPM.
2596
2687
  #
2597
2688
  # When you use this parameter, instead of returning the plaintext data,
2598
2689
  # KMS encrypts the plaintext data with the public key in the attestation
2599
2690
  # document, and returns the resulting ciphertext in the
2600
2691
  # `CiphertextForRecipient` field in the response. This ciphertext can be
2601
- # decrypted only with the private key in the enclave. The `Plaintext`
2602
- # field in the response is null or empty.
2692
+ # decrypted only with the private key in the attested environment. The
2693
+ # `Plaintext` field in the response is null or empty.
2603
2694
  #
2604
2695
  # For information about the interaction between KMS and Amazon Web
2605
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
2606
- # uses KMS][3] in the *Key Management Service Developer Guide*.
2696
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
2697
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
2698
+ # Service Developer Guide*.
2607
2699
  #
2608
2700
  #
2609
2701
  #
2610
2702
  # [1]: https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-concepts.html#term-attestdoc
2611
2703
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2612
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
2704
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
2613
2705
  #
2614
2706
  # @option params [Boolean] :dry_run
2615
2707
  # Checks if your request will succeed. `DryRun` is an optional
2616
2708
  # parameter.
2617
2709
  #
2618
- # To learn more about how to use this parameter, see [Testing your KMS
2619
- # API calls][1] in the *Key Management Service Developer Guide*.
2710
+ # To learn more about how to use this parameter, see [Testing your
2711
+ # permissions][1] in the *Key Management Service Developer Guide*.
2620
2712
  #
2621
2713
  #
2622
2714
  #
2623
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
2715
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2624
2716
  #
2625
2717
  # @return [Types::DecryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2626
2718
  #
@@ -2628,6 +2720,7 @@ module Aws::KMS
2628
2720
  # * {Types::DecryptResponse#plaintext #plaintext} => String
2629
2721
  # * {Types::DecryptResponse#encryption_algorithm #encryption_algorithm} => String
2630
2722
  # * {Types::DecryptResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String
2723
+ # * {Types::DecryptResponse#key_material_id #key_material_id} => String
2631
2724
  #
2632
2725
  #
2633
2726
  # @example Example: To decrypt data with a symmetric encryption KMS key
@@ -2644,6 +2737,7 @@ module Aws::KMS
2644
2737
  # {
2645
2738
  # encryption_algorithm: "SYMMETRIC_DEFAULT", # The encryption algorithm that was used to decrypt the ciphertext. SYMMETRIC_DEFAULT is the only valid value for symmetric encryption in AWS KMS.
2646
2739
  # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The Amazon Resource Name (ARN) of the KMS key that was used to decrypt the data.
2740
+ # key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", # The identifier of the key material used to decrypt the ciphertext.
2647
2741
  # plaintext: "<binary data>", # The decrypted (plaintext) data.
2648
2742
  # }
2649
2743
  #
@@ -2665,11 +2759,11 @@ module Aws::KMS
2665
2759
  # plaintext: "<binary data>", # The decrypted (plaintext) data.
2666
2760
  # }
2667
2761
  #
2668
- # @example Example: To decrypt data for a Nitro enclave
2762
+ # @example Example: To decrypt data for a Nitro enclave or NitroTPM
2669
2763
  #
2670
2764
  # # The following Decrypt example includes the Recipient parameter with a signed attestation document from an AWS Nitro
2671
- # # enclave. Instead of returning the decrypted data in plaintext (Plaintext), the operation returns the decrypted data
2672
- # # encrypted by the public key from the attestation document (CiphertextForRecipient).
2765
+ # # enclave or NitroTPM. Instead of returning the decrypted data in plaintext (Plaintext), the operation returns the
2766
+ # # decrypted data encrypted by the public key from the attestation document (CiphertextForRecipient).
2673
2767
  #
2674
2768
  # resp = client.decrypt({
2675
2769
  # ciphertext_blob: "<binary data>", # The encrypted data. This ciphertext was encrypted with the KMS key
@@ -2677,7 +2771,7 @@ module Aws::KMS
2677
2771
  # recipient: {
2678
2772
  # attestation_document: "<attestation document>",
2679
2773
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
2680
- # }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document
2774
+ # }, # Specifies the attestation document from the Nitro enclave or NitroTPM and the encryption algorithm to use with the public key from the attestation document
2681
2775
  # })
2682
2776
  #
2683
2777
  # resp.to_h outputs the following:
@@ -2710,6 +2804,7 @@ module Aws::KMS
2710
2804
  # resp.plaintext #=> String
2711
2805
  # resp.encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
2712
2806
  # resp.ciphertext_for_recipient #=> String
2807
+ # resp.key_material_id #=> String
2713
2808
  #
2714
2809
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Decrypt AWS API Documentation
2715
2810
  #
@@ -2766,7 +2861,7 @@ module Aws::KMS
2766
2861
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
2767
2862
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2768
2863
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access
2769
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
2864
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
2770
2865
  #
2771
2866
  # @option params [required, String] :alias_name
2772
2867
  # The alias to be deleted. The alias name must begin with `alias/`
@@ -2805,9 +2900,9 @@ module Aws::KMS
2805
2900
  # does not affect the external key store proxy, external key manager, or
2806
2901
  # any external keys.
2807
2902
  #
2808
- # This operation is part of the [custom key stores][1] feature in KMS,
2809
- # which combines the convenience and extensive integration of KMS with
2810
- # the isolation and control of a key store that you own and manage.
2903
+ # This operation is part of the custom key stores feature in KMS, which
2904
+ # combines the convenience and extensive integration of KMS with the
2905
+ # isolation and control of a key store that you own and manage.
2811
2906
  #
2812
2907
  # The custom key store that you delete cannot contain any [KMS keys][2].
2813
2908
  # Before deleting the key store, verify that you will never need to use
@@ -2858,12 +2953,12 @@ module Aws::KMS
2858
2953
  #
2859
2954
  #
2860
2955
  #
2861
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
2956
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
2862
2957
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys
2863
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2958
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
2864
2959
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key
2865
2960
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2866
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
2961
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
2867
2962
  #
2868
2963
  # @option params [required, String] :custom_key_store_id
2869
2964
  # Enter the ID of the custom key store you want to delete. To find the
@@ -2911,6 +3006,16 @@ module Aws::KMS
2911
3006
  # operation does not change the KMS key's state. Otherwise, it changes
2912
3007
  # the KMS key's state to `PendingImport`.
2913
3008
  #
3009
+ # **Considerations for multi-Region symmetric encryption keys**
3010
+ #
3011
+ # * When you delete the key material of a primary Region key that is in
3012
+ # `PENDING_ROTATION` or
3013
+ # `PENDING_MULTI_REGION_IMPORT_AND_ROTATION`state, you'll also be
3014
+ # deleting the key materials for the replica Region keys.
3015
+ #
3016
+ # * If you delete any key material of a replica Region key, the primary
3017
+ # Region key and other replica Region keys remain unchanged.
3018
+ #
2914
3019
  # The KMS key that you use for this operation must be in a compatible
2915
3020
  # key state. For details, see [Key states of KMS keys][2] in the *Key
2916
3021
  # Management Service Developer Guide*.
@@ -2925,6 +3030,8 @@ module Aws::KMS
2925
3030
  #
2926
3031
  # * GetParametersForImport
2927
3032
  #
3033
+ # * ListKeyRotations
3034
+ #
2928
3035
  # * ImportKeyMaterial
2929
3036
  #
2930
3037
  # **Eventual consistency**: The KMS API follows an eventual consistency
@@ -2935,7 +3042,7 @@ module Aws::KMS
2935
3042
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
2936
3043
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2937
3044
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2938
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
3045
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
2939
3046
  #
2940
3047
  # @option params [required, String] :key_id
2941
3048
  # Identifies the KMS key from which you are deleting imported key
@@ -2953,7 +3060,19 @@ module Aws::KMS
2953
3060
  # To get the key ID and key ARN for a KMS key, use ListKeys or
2954
3061
  # DescribeKey.
2955
3062
  #
2956
- # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3063
+ # @option params [String] :key_material_id
3064
+ # Identifies the imported key material you are deleting.
3065
+ #
3066
+ # If no KeyMaterialId is specified, KMS deletes the current key
3067
+ # material.
3068
+ #
3069
+ # To get the list of key material IDs associated with a KMS key, use
3070
+ # ListKeyRotations.
3071
+ #
3072
+ # @return [Types::DeleteImportedKeyMaterialResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3073
+ #
3074
+ # * {Types::DeleteImportedKeyMaterialResponse#key_id #key_id} => String
3075
+ # * {Types::DeleteImportedKeyMaterialResponse#key_material_id #key_material_id} => String
2957
3076
  #
2958
3077
  #
2959
3078
  # @example Example: To delete imported key material
@@ -2962,14 +3081,21 @@ module Aws::KMS
2962
3081
  #
2963
3082
  # resp = client.delete_imported_key_material({
2964
3083
  # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose imported key material you are deleting. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key.
3084
+ # key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", # Identifies the deleted key material.
2965
3085
  # })
2966
3086
  #
2967
3087
  # @example Request syntax with placeholder values
2968
3088
  #
2969
3089
  # resp = client.delete_imported_key_material({
2970
3090
  # key_id: "KeyIdType", # required
3091
+ # key_material_id: "BackingKeyIdType",
2971
3092
  # })
2972
3093
  #
3094
+ # @example Response structure
3095
+ #
3096
+ # resp.key_id #=> String
3097
+ # resp.key_material_id #=> String
3098
+ #
2973
3099
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterial AWS API Documentation
2974
3100
  #
2975
3101
  # @overload delete_imported_key_material(params = {})
@@ -2981,8 +3107,8 @@ module Aws::KMS
2981
3107
 
2982
3108
  # Derives a shared secret using a key agreement algorithm.
2983
3109
  #
2984
- # <note markdown="1"> You must use an asymmetric NIST-recommended elliptic curve (ECC) or
2985
- # SM2 (China Regions only) KMS key pair with a `KeyUsage` value of
3110
+ # <note markdown="1"> You must use an asymmetric NIST-standard elliptic curve (ECC) or SM2
3111
+ # (China Regions only) KMS key pair with a `KeyUsage` value of
2986
3112
  # `KEY_AGREEMENT` to call DeriveSharedSecret.
2987
3113
  #
2988
3114
  # </note>
@@ -3003,15 +3129,15 @@ module Aws::KMS
3003
3129
  # 1. **Alice** calls CreateKey to create an asymmetric KMS key pair
3004
3130
  # with a `KeyUsage` value of `KEY_AGREEMENT`.
3005
3131
  #
3006
- # The asymmetric KMS key must use a NIST-recommended elliptic curve
3132
+ # The asymmetric KMS key must use a NIST-standard elliptic curve
3007
3133
  # (ECC) or SM2 (China Regions only) key spec.
3008
3134
  #
3009
3135
  # 2. **Bob** creates an elliptic curve key pair.
3010
3136
  #
3011
3137
  # Bob can call CreateKey to create an asymmetric KMS key pair or
3012
3138
  # generate a key pair outside of KMS. Bob's key pair must use the
3013
- # same NIST-recommended elliptic curve (ECC) or SM2 (China Regions
3014
- # ony) curve as Alice.
3139
+ # same NIST-standard elliptic curve (ECC) or SM2 (China Regions ony)
3140
+ # curve as Alice.
3015
3141
  #
3016
3142
  # 3. Alice and Bob **exchange their public keys** through an insecure
3017
3143
  # communication channel (like the internet).
@@ -3038,12 +3164,12 @@ module Aws::KMS
3038
3164
  # his private key and Alice's public key.
3039
3165
  #
3040
3166
  # To derive a shared secret you must provide a key agreement algorithm,
3041
- # the private key of the caller's asymmetric NIST-recommended elliptic
3167
+ # the private key of the caller's asymmetric NIST-standard elliptic
3042
3168
  # curve or SM2 (China Regions only) KMS key pair, and the public key
3043
- # from your peer's NIST-recommended elliptic curve or SM2 (China
3044
- # Regions only) key pair. The public key can be from another asymmetric
3045
- # KMS key pair or from a key pair generated outside of KMS, but both key
3046
- # pairs must be on the same elliptic curve.
3169
+ # from your peer's NIST-standard elliptic curve or SM2 (China Regions
3170
+ # only) key pair. The public key can be from another asymmetric KMS key
3171
+ # pair or from a key pair generated outside of KMS, but both key pairs
3172
+ # must be on the same elliptic curve.
3047
3173
  #
3048
3174
  # The KMS key that you use for this operation must be in a compatible
3049
3175
  # key state. For details, see [Key states of KMS keys][3] in the *Key
@@ -3072,12 +3198,12 @@ module Aws::KMS
3072
3198
  # [2]: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf
3073
3199
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
3074
3200
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3075
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
3201
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
3076
3202
  #
3077
3203
  # @option params [required, String] :key_id
3078
- # Identifies an asymmetric NIST-recommended ECC or SM2 (China Regions
3079
- # only) KMS key. KMS uses the private key in the specified key pair to
3080
- # derive the shared secret. The key usage of the KMS key must be
3204
+ # Identifies an asymmetric NIST-standard ECC or SM2 (China Regions only)
3205
+ # KMS key. KMS uses the private key in the specified key pair to derive
3206
+ # the shared secret. The key usage of the KMS key must be
3081
3207
  # `KEY_AGREEMENT`. To find the `KeyUsage` of a KMS key, use the
3082
3208
  # DescribeKey operation.
3083
3209
  #
@@ -3105,8 +3231,8 @@ module Aws::KMS
3105
3231
  # secret. The only valid value is `ECDH`.
3106
3232
  #
3107
3233
  # @option params [required, String, StringIO, File] :public_key
3108
- # Specifies the public key in your peer's NIST-recommended elliptic
3109
- # curve (ECC) or SM2 (China Regions only) key pair.
3234
+ # Specifies the public key in your peer's NIST-standard elliptic curve
3235
+ # (ECC) or SM2 (China Regions only) key pair.
3110
3236
  #
3111
3237
  # The public key must be a DER-encoded X.509 public key, also known as
3112
3238
  # `SubjectPublicKeyInfo` (SPKI), as defined in [RFC 5280][1].
@@ -3140,50 +3266,55 @@ module Aws::KMS
3140
3266
  #
3141
3267
  #
3142
3268
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
3143
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
3269
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
3144
3270
  #
3145
3271
  # @option params [Boolean] :dry_run
3146
3272
  # Checks if your request will succeed. `DryRun` is an optional
3147
3273
  # parameter.
3148
3274
  #
3149
- # To learn more about how to use this parameter, see [Testing your KMS
3150
- # API calls][1] in the *Key Management Service Developer Guide*.
3275
+ # To learn more about how to use this parameter, see [Testing your
3276
+ # permissions][1] in the *Key Management Service Developer Guide*.
3151
3277
  #
3152
3278
  #
3153
3279
  #
3154
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
3280
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
3155
3281
  #
3156
3282
  # @option params [Types::RecipientInfo] :recipient
3157
3283
  # A signed [attestation document][1] from an Amazon Web Services Nitro
3158
- # enclave and the encryption algorithm to use with the enclave's public
3159
- # key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
3284
+ # enclave or NitroTPM, and the encryption algorithm to use with the
3285
+ # public key in the attestation document. The only valid encryption
3286
+ # algorithm is `RSAES_OAEP_SHA_256`.
3160
3287
  #
3161
3288
  # This parameter only supports attestation documents for Amazon Web
3162
- # Services Nitro Enclaves. To call DeriveSharedSecret for an Amazon Web
3163
- # Services Nitro Enclaves, use the [Amazon Web Services Nitro Enclaves
3164
- # SDK][2] to generate the attestation document and then use the
3165
- # Recipient parameter from any Amazon Web Services SDK to provide the
3166
- # attestation document for the enclave.
3289
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM. To call
3290
+ # DeriveSharedSecret generate an attestation document use either [Amazon
3291
+ # Web Services Nitro Enclaves SDK][2] for an Amazon Web Services Nitro
3292
+ # Enclaves or [Amazon Web Services NitroTPM tools][3] for Amazon Web
3293
+ # Services NitroTPM. Then use the Recipient parameter from any Amazon
3294
+ # Web Services SDK to provide the attestation document for the attested
3295
+ # environment.
3167
3296
  #
3168
3297
  # When you use this parameter, instead of returning a plaintext copy of
3169
3298
  # the shared secret, KMS encrypts the plaintext shared secret under the
3170
3299
  # public key in the attestation document, and returns the resulting
3171
3300
  # ciphertext in the `CiphertextForRecipient` field in the response. This
3172
- # ciphertext can be decrypted only with the private key in the enclave.
3173
- # The `CiphertextBlob` field in the response contains the encrypted
3174
- # shared secret derived from the KMS key specified by the `KeyId`
3175
- # parameter and public key specified by the `PublicKey` parameter. The
3176
- # `SharedSecret` field in the response is null or empty.
3301
+ # ciphertext can be decrypted only with the private key in the attested
3302
+ # environment. The `CiphertextBlob` field in the response contains the
3303
+ # encrypted shared secret derived from the KMS key specified by the
3304
+ # `KeyId` parameter and public key specified by the `PublicKey`
3305
+ # parameter. The `SharedSecret` field in the response is null or empty.
3177
3306
  #
3178
3307
  # For information about the interaction between KMS and Amazon Web
3179
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
3180
- # uses KMS][3] in the *Key Management Service Developer Guide*.
3308
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
3309
+ # [Cryptographic attestation support in KMS][4] in the *Key Management
3310
+ # Service Developer Guide*.
3181
3311
  #
3182
3312
  #
3183
3313
  #
3184
3314
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
3185
3315
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
3186
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
3316
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attestation-get-doc.html
3317
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
3187
3318
  #
3188
3319
  # @return [Types::DeriveSharedSecretResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3189
3320
  #
@@ -3212,6 +3343,31 @@ module Aws::KMS
3212
3343
  # shared_secret: "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG", # The raw secret derived from the specified key agreement algorithm, private key in the asymmetric KMS key, and your peer's public key.
3213
3344
  # }
3214
3345
  #
3346
+ # @example Example: To derive a shared secret for a Nitro enclave or NitroTPM
3347
+ #
3348
+ # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave or
3349
+ # # NitroTPM. Instead of returning a plaintext shared secret, DeriveSharedSecret returns the shared secret encrypted by the
3350
+ # # public key from the attestation document.
3351
+ #
3352
+ # resp = client.derive_shared_secret({
3353
+ # key_agreement_algorithm: "ECDH", # The key agreement algorithm used to derive the shared secret. The only valid value is ECDH.
3354
+ # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key identifier for an asymmetric KMS key pair. The private key in the specified key pair is used to derive the shared secret.
3355
+ # public_key: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag", # The public key in your peer's asymmetric key pair.
3356
+ # recipient: {
3357
+ # attestation_document: "<attestation document>",
3358
+ # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
3359
+ # }, # Specifies the attestation document from the Nitro enclave or NitroTPM and the encryption algorithm to use with the public key from the attestation document
3360
+ # })
3361
+ #
3362
+ # resp.to_h outputs the following:
3363
+ # {
3364
+ # ciphertext_for_recipient: "<binary data>", # The shared secret encrypted by the public key from the attestation document
3365
+ # key_agreement_algorithm: "ECDH", # The key agreement algorithm used to derive the shared secret.
3366
+ # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The asymmetric KMS key pair used to derive the shared secret.
3367
+ # key_origin: "AWS_KMS", # The source of the key material for the specified KMS key.
3368
+ # shared_secret: "", # This field is null or empty
3369
+ # }
3370
+ #
3215
3371
  # @example Request syntax with placeholder values
3216
3372
  #
3217
3373
  # resp = client.derive_shared_secret({
@@ -3246,9 +3402,9 @@ module Aws::KMS
3246
3402
  # Gets information about [custom key stores][1] in the account and
3247
3403
  # Region.
3248
3404
  #
3249
- # This operation is part of the [custom key stores][1] feature in KMS,
3250
- # which combines the convenience and extensive integration of KMS with
3251
- # the isolation and control of a key store that you own and manage.
3405
+ # This operation is part of the custom key stores feature in KMS, which
3406
+ # combines the convenience and extensive integration of KMS with the
3407
+ # isolation and control of a key store that you own and manage.
3252
3408
  #
3253
3409
  # By default, this operation returns information about all custom key
3254
3410
  # stores in the account and Region. To get only information about a
@@ -3301,11 +3457,11 @@ module Aws::KMS
3301
3457
  #
3302
3458
  #
3303
3459
  #
3304
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
3460
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
3305
3461
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html
3306
3462
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html
3307
3463
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3308
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
3464
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
3309
3465
  #
3310
3466
  # @option params [String] :custom_key_store_id
3311
3467
  # Gets only information about the specified custom key store. Enter the
@@ -3466,6 +3622,7 @@ module Aws::KMS
3466
3622
  # resp.custom_key_stores[0].xks_proxy_configuration.uri_endpoint #=> String
3467
3623
  # resp.custom_key_stores[0].xks_proxy_configuration.uri_path #=> String
3468
3624
  # resp.custom_key_stores[0].xks_proxy_configuration.vpc_endpoint_service_name #=> String
3625
+ # resp.custom_key_stores[0].xks_proxy_configuration.vpc_endpoint_service_owner #=> String
3469
3626
  # resp.next_marker #=> String
3470
3627
  # resp.truncated #=> Boolean
3471
3628
  #
@@ -3503,8 +3660,8 @@ module Aws::KMS
3503
3660
  # * Whether automatic key rotation is enabled on the KMS key. To get
3504
3661
  # this information, use GetKeyRotationStatus. Also, some key states
3505
3662
  # prevent a KMS key from being automatically rotated. For details, see
3506
- # [How Automatic Key Rotation Works][6] in the *Key Management Service
3507
- # Developer Guide*.
3663
+ # [How key rotation works][6] in the *Key Management Service Developer
3664
+ # Guide*.
3508
3665
  #
3509
3666
  # * Tags on the KMS key. To get this information, use ListResourceTags.
3510
3667
  #
@@ -3543,14 +3700,14 @@ module Aws::KMS
3543
3700
  #
3544
3701
  #
3545
3702
  #
3546
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
3547
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
3703
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key
3704
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
3548
3705
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
3549
3706
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html
3550
3707
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html
3551
3708
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works
3552
3709
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3553
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
3710
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
3554
3711
  #
3555
3712
  # @option params [required, String] :key_id
3556
3713
  # Describes the specified KMS key.
@@ -3581,7 +3738,7 @@ module Aws::KMS
3581
3738
  #
3582
3739
  #
3583
3740
  #
3584
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html##aws-managed-cmk
3741
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
3585
3742
  #
3586
3743
  # @option params [Array<String>] :grant_tokens
3587
3744
  # A list of grant tokens.
@@ -3594,7 +3751,7 @@ module Aws::KMS
3594
3751
  #
3595
3752
  #
3596
3753
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
3597
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
3754
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
3598
3755
  #
3599
3756
  # @return [Types::DescribeKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3600
3757
  #
@@ -3615,6 +3772,7 @@ module Aws::KMS
3615
3772
  # aws_account_id: "111122223333",
3616
3773
  # arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
3617
3774
  # creation_date: Time.parse("2017-07-05T14:04:55-07:00"),
3775
+ # current_key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
3618
3776
  # customer_master_key_spec: "SYMMETRIC_DEFAULT",
3619
3777
  # description: "",
3620
3778
  # enabled: true,
@@ -3681,6 +3839,7 @@ module Aws::KMS
3681
3839
  # aws_account_id: "111122223333",
3682
3840
  # arn: "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
3683
3841
  # creation_date: Time.parse(1586329200.918),
3842
+ # current_key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
3684
3843
  # customer_master_key_spec: "SYMMETRIC_DEFAULT",
3685
3844
  # description: "",
3686
3845
  # enabled: true,
@@ -3837,11 +3996,11 @@ module Aws::KMS
3837
3996
  # resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
3838
3997
  # resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
3839
3998
  # resp.key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
3840
- # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
3999
+ # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519"
3841
4000
  # resp.key_metadata.encryption_algorithms #=> Array
3842
4001
  # resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
3843
4002
  # resp.key_metadata.signing_algorithms #=> Array
3844
- # resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA"
4003
+ # resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
3845
4004
  # resp.key_metadata.key_agreement_algorithms #=> Array
3846
4005
  # resp.key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH"
3847
4006
  # resp.key_metadata.multi_region #=> Boolean
@@ -3855,6 +4014,7 @@ module Aws::KMS
3855
4014
  # resp.key_metadata.mac_algorithms #=> Array
3856
4015
  # resp.key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
3857
4016
  # resp.key_metadata.xks_key_configuration.id #=> String
4017
+ # resp.key_metadata.current_key_material_id #=> String
3858
4018
  #
3859
4019
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKey AWS API Documentation
3860
4020
  #
@@ -3868,13 +4028,10 @@ module Aws::KMS
3868
4028
  # Sets the state of a KMS key to disabled. This change temporarily
3869
4029
  # prevents use of the KMS key for [cryptographic operations][1].
3870
4030
  #
3871
- # For more information about how key state affects the use of a KMS key,
3872
- # see [Key states of KMS keys][2] in the <i> <i>Key Management Service
3873
- # Developer Guide</i> </i>.
3874
- #
3875
4031
  # The KMS key that you use for this operation must be in a compatible
3876
- # key state. For details, see [Key states of KMS keys][2] in the *Key
3877
- # Management Service Developer Guide*.
4032
+ # key state. For more information about how key state affects the use of
4033
+ # a KMS key, see [Key states of KMS keys][2] in the <i> <i>Key
4034
+ # Management Service Developer Guide</i> </i>.
3878
4035
  #
3879
4036
  # **Cross-account use**: No. You cannot perform this operation on a KMS
3880
4037
  # key in a different Amazon Web Services account.
@@ -3888,10 +4045,10 @@ module Aws::KMS
3888
4045
  #
3889
4046
  #
3890
4047
  #
3891
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
4048
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
3892
4049
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
3893
4050
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3894
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
4051
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
3895
4052
  #
3896
4053
  # @option params [required, String] :key_id
3897
4054
  # Identifies the KMS key to disable.
@@ -3980,18 +4137,18 @@ module Aws::KMS
3980
4137
  #
3981
4138
  #
3982
4139
  #
3983
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
4140
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html
3984
4141
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
3985
4142
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
3986
4143
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
3987
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
3988
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
3989
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
3990
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
3991
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
4144
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
4145
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
4146
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key
4147
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
4148
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key
3992
4149
  # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
3993
4150
  # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3994
- # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
4151
+ # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
3995
4152
  #
3996
4153
  # @option params [required, String] :key_id
3997
4154
  # Identifies a symmetric encryption KMS key. You cannot enable or
@@ -4016,7 +4173,7 @@ module Aws::KMS
4016
4173
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks
4017
4174
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
4018
4175
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
4019
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4176
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
4020
4177
  #
4021
4178
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4022
4179
  #
@@ -4050,9 +4207,9 @@ module Aws::KMS
4050
4207
  # external key store proxy that communicates with your external key
4051
4208
  # manager.
4052
4209
  #
4053
- # This operation is part of the [custom key stores][1] feature in KMS,
4054
- # which combines the convenience and extensive integration of KMS with
4055
- # the isolation and control of a key store that you own and manage.
4210
+ # This operation is part of the custom key stores feature in KMS, which
4211
+ # combines the convenience and extensive integration of KMS with the
4212
+ # isolation and control of a key store that you own and manage.
4056
4213
  #
4057
4214
  # While a custom key store is disconnected, you can manage the custom
4058
4215
  # key store and its KMS keys, but you cannot create or use its KMS keys.
@@ -4096,10 +4253,10 @@ module Aws::KMS
4096
4253
  #
4097
4254
  #
4098
4255
  #
4099
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4100
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
4256
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
4257
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
4101
4258
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4102
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
4259
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
4103
4260
  #
4104
4261
  # @option params [required, String] :custom_key_store_id
4105
4262
  # Enter the ID of the custom key store you want to disconnect. To find
@@ -4158,10 +4315,10 @@ module Aws::KMS
4158
4315
  #
4159
4316
  #
4160
4317
  #
4161
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
4318
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
4162
4319
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4163
4320
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4164
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
4321
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
4165
4322
  #
4166
4323
  # @option params [required, String] :key_id
4167
4324
  # Identifies the KMS key to enable.
@@ -4222,17 +4379,17 @@ module Aws::KMS
4222
4379
  # any in progress rotations. You can use the ListKeyRotations operation
4223
4380
  # to view the details of completed rotations.
4224
4381
  #
4225
- # Automatic key rotation is supported only on [symmetric encryption KMS
4226
- # keys][3]. You cannot enable automatic rotation of [asymmetric KMS
4227
- # keys][4], [HMAC KMS keys][5], KMS keys with [imported key
4228
- # material][6], or KMS keys in a [custom key store][7]. To enable or
4229
- # disable automatic rotation of a set of related [multi-Region keys][8],
4382
+ # Automatic key rotation is supported only on symmetric encryption KMS
4383
+ # keys. You cannot enable automatic rotation of [asymmetric KMS
4384
+ # keys][3], [HMAC KMS keys][4], KMS keys with [imported key
4385
+ # material][5], or KMS keys in a [custom key store][6]. To enable or
4386
+ # disable automatic rotation of a set of related [multi-Region keys][7],
4230
4387
  # set the property on the primary key.
4231
4388
  #
4232
4389
  # You cannot enable or disable automatic rotation of [Amazon Web
4233
- # Services managed KMS keys][9]. KMS always rotates the key material of
4390
+ # Services managed KMS keys][8]. KMS always rotates the key material of
4234
4391
  # Amazon Web Services managed keys every year. Rotation of [Amazon Web
4235
- # Services owned KMS keys][10] is managed by the Amazon Web Services
4392
+ # Services owned KMS keys][9] is managed by the Amazon Web Services
4236
4393
  # service that owns the key.
4237
4394
  #
4238
4395
  # <note markdown="1"> In May 2022, KMS changed the rotation schedule for Amazon Web Services
@@ -4248,13 +4405,13 @@ module Aws::KMS
4248
4405
  # </note>
4249
4406
  #
4250
4407
  # The KMS key that you use for this operation must be in a compatible
4251
- # key state. For details, see [Key states of KMS keys][11] in the *Key
4408
+ # key state. For details, see [Key states of KMS keys][10] in the *Key
4252
4409
  # Management Service Developer Guide*.
4253
4410
  #
4254
4411
  # **Cross-account use**: No. You cannot perform this operation on a KMS
4255
4412
  # key in a different Amazon Web Services account.
4256
4413
  #
4257
- # **Required permissions**: [kms:EnableKeyRotation][12] (key policy)
4414
+ # **Required permissions**: [kms:EnableKeyRotation][11] (key policy)
4258
4415
  #
4259
4416
  # **Related operations:**
4260
4417
  #
@@ -4273,23 +4430,22 @@ module Aws::KMS
4273
4430
  # </note>
4274
4431
  #
4275
4432
  # **Eventual consistency**: The KMS API follows an eventual consistency
4276
- # model. For more information, see [KMS eventual consistency][13].
4433
+ # model. For more information, see [KMS eventual consistency][12].
4277
4434
  #
4278
4435
  #
4279
4436
  #
4280
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-enable-disable
4281
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
4282
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks
4283
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
4284
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
4285
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
4286
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4287
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
4288
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
4289
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
4290
- # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4291
- # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4292
- # [13]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
4437
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html
4438
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key
4439
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
4440
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
4441
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
4442
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
4443
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
4444
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
4445
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key
4446
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4447
+ # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4448
+ # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
4293
4449
  #
4294
4450
  # @option params [required, String] :key_id
4295
4451
  # Identifies a symmetric encryption KMS key. You cannot enable automatic
@@ -4315,8 +4471,8 @@ module Aws::KMS
4315
4471
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
4316
4472
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
4317
4473
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
4318
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4319
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
4474
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
4475
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
4320
4476
  #
4321
4477
  # @option params [Integer] :rotation_period_in_days
4322
4478
  # Use this parameter to specify a custom period of time between each
@@ -4448,10 +4604,10 @@ module Aws::KMS
4448
4604
  #
4449
4605
  #
4450
4606
  #
4451
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
4607
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
4452
4608
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4453
4609
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4454
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
4610
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
4455
4611
  #
4456
4612
  # @option params [required, String] :key_id
4457
4613
  # Identifies the KMS key to use in the encryption operation. The KMS key
@@ -4504,8 +4660,8 @@ module Aws::KMS
4504
4660
  #
4505
4661
  #
4506
4662
  #
4507
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
4508
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
4663
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations
4664
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
4509
4665
  #
4510
4666
  # @option params [Array<String>] :grant_tokens
4511
4667
  # A list of grant tokens.
@@ -4518,7 +4674,7 @@ module Aws::KMS
4518
4674
  #
4519
4675
  #
4520
4676
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
4521
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
4677
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
4522
4678
  #
4523
4679
  # @option params [String] :encryption_algorithm
4524
4680
  # Specifies the encryption algorithm that KMS will use to encrypt the
@@ -4536,12 +4692,12 @@ module Aws::KMS
4536
4692
  # Checks if your request will succeed. `DryRun` is an optional
4537
4693
  # parameter.
4538
4694
  #
4539
- # To learn more about how to use this parameter, see [Testing your KMS
4540
- # API calls][1] in the *Key Management Service Developer Guide*.
4695
+ # To learn more about how to use this parameter, see [Testing your
4696
+ # permissions][1] in the *Key Management Service Developer Guide*.
4541
4697
  #
4542
4698
  #
4543
4699
  #
4544
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
4700
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
4545
4701
  #
4546
4702
  # @return [Types::EncryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4547
4703
  #
@@ -4651,16 +4807,17 @@ module Aws::KMS
4651
4807
  # `GenerateDataKey` also supports [Amazon Web Services Nitro
4652
4808
  # Enclaves][2], which provide an isolated compute environment in Amazon
4653
4809
  # EC2. To call `GenerateDataKey` for an Amazon Web Services Nitro
4654
- # enclave, use the [Amazon Web Services Nitro Enclaves SDK][3] or any
4655
- # Amazon Web Services SDK. Use the `Recipient` parameter to provide the
4656
- # attestation document for the enclave. `GenerateDataKey` returns a copy
4657
- # of the data key encrypted under the specified KMS key, as usual. But
4658
- # instead of a plaintext copy of the data key, the response includes a
4659
- # copy of the data key encrypted under the public key from the
4660
- # attestation document (`CiphertextForRecipient`). For information about
4661
- # the interaction between KMS and Amazon Web Services Nitro Enclaves,
4662
- # see [How Amazon Web Services Nitro Enclaves uses KMS][4] in the *Key
4663
- # Management Service Developer Guide*..
4810
+ # enclave or NitroTPM, use the [Amazon Web Services Nitro Enclaves
4811
+ # SDK][3] or any Amazon Web Services SDK. Use the `Recipient` parameter
4812
+ # to provide the attestation document for the attested environment.
4813
+ # `GenerateDataKey` returns a copy of the data key encrypted under the
4814
+ # specified KMS key, as usual. But instead of a plaintext copy of the
4815
+ # data key, the response includes a copy of the data key encrypted under
4816
+ # the public key from the attestation document
4817
+ # (`CiphertextForRecipient`). For information about the interaction
4818
+ # between KMS and Amazon Web Services Nitro Enclaves or Amazon Web
4819
+ # Services NitroTPM, see [Cryptographic attestation support in KMS][4]
4820
+ # in the *Key Management Service Developer Guide*.
4664
4821
  #
4665
4822
  # The KMS key that you use for this operation must be in a compatible
4666
4823
  # key state. For details, see [Key states of KMS keys][5] in the *Key
@@ -4716,16 +4873,16 @@ module Aws::KMS
4716
4873
  #
4717
4874
  #
4718
4875
  #
4719
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
4876
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
4720
4877
  # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
4721
4878
  # [3]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
4722
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
4879
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
4723
4880
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4724
4881
  # [6]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
4725
4882
  # [7]: https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/
4726
4883
  # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
4727
4884
  # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4728
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
4885
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
4729
4886
  #
4730
4887
  # @option params [required, String] :key_id
4731
4888
  # Specifies the symmetric encryption KMS key that encrypts the data key.
@@ -4773,7 +4930,7 @@ module Aws::KMS
4773
4930
  #
4774
4931
  #
4775
4932
  #
4776
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
4933
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
4777
4934
  #
4778
4935
  # @option params [Integer] :number_of_bytes
4779
4936
  # Specifies the length of the data key in bytes. For example, use the
@@ -4803,16 +4960,18 @@ module Aws::KMS
4803
4960
  #
4804
4961
  #
4805
4962
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
4806
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
4963
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
4807
4964
  #
4808
4965
  # @option params [Types::RecipientInfo] :recipient
4809
4966
  # A signed [attestation document][1] from an Amazon Web Services Nitro
4810
- # enclave and the encryption algorithm to use with the enclave's public
4811
- # key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
4967
+ # enclave or NitroTPM, and the encryption algorithm to use with the
4968
+ # public key in the attestation document. The only valid encryption
4969
+ # algorithm is `RSAES_OAEP_SHA_256`.
4812
4970
  #
4813
- # This parameter only supports attestation documents for Amazon Web
4814
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
4815
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
4971
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
4972
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
4973
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
4974
+ # Services NitroTPM.
4816
4975
  #
4817
4976
  # When you use this parameter, instead of returning the plaintext data
4818
4977
  # key, KMS encrypts the plaintext data key under the public key in the
@@ -4824,25 +4983,26 @@ module Aws::KMS
4824
4983
  # `Plaintext` field in the response is null or empty.
4825
4984
  #
4826
4985
  # For information about the interaction between KMS and Amazon Web
4827
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
4828
- # uses KMS][3] in the *Key Management Service Developer Guide*.
4986
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
4987
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
4988
+ # Service Developer Guide*.
4829
4989
  #
4830
4990
  #
4831
4991
  #
4832
4992
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
4833
4993
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
4834
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
4994
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
4835
4995
  #
4836
4996
  # @option params [Boolean] :dry_run
4837
4997
  # Checks if your request will succeed. `DryRun` is an optional
4838
4998
  # parameter.
4839
4999
  #
4840
- # To learn more about how to use this parameter, see [Testing your KMS
4841
- # API calls][1] in the *Key Management Service Developer Guide*.
5000
+ # To learn more about how to use this parameter, see [Testing your
5001
+ # permissions][1] in the *Key Management Service Developer Guide*.
4842
5002
  #
4843
5003
  #
4844
5004
  #
4845
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5005
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
4846
5006
  #
4847
5007
  # @return [Types::GenerateDataKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4848
5008
  #
@@ -4850,6 +5010,7 @@ module Aws::KMS
4850
5010
  # * {Types::GenerateDataKeyResponse#plaintext #plaintext} => String
4851
5011
  # * {Types::GenerateDataKeyResponse#key_id #key_id} => String
4852
5012
  # * {Types::GenerateDataKeyResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String
5013
+ # * {Types::GenerateDataKeyResponse#key_material_id #key_material_id} => String
4853
5014
  #
4854
5015
  #
4855
5016
  # @example Example: To generate a data key
@@ -4866,13 +5027,14 @@ module Aws::KMS
4866
5027
  # {
4867
5028
  # ciphertext_blob: "<binary data>", # The encrypted data key.
4868
5029
  # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that was used to encrypt the data key.
5030
+ # key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", # The identifier of the key material used to encrypt the data key.
4869
5031
  # plaintext: "<binary data>", # The unencrypted (plaintext) data key.
4870
5032
  # }
4871
5033
  #
4872
- # @example Example: To generate a data key pair for a Nitro enclave
5034
+ # @example Example: To generate a data key for a Nitro enclave or NitroTPM
4873
5035
  #
4874
- # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave.
4875
- # # Instead of returning a copy of the data key encrypted by the KMS key and a plaintext copy of the data key,
5036
+ # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave or
5037
+ # # NitroTPM. Instead of returning a copy of the data key encrypted by the KMS key and a plaintext copy of the data key,
4876
5038
  # # GenerateDataKey returns one copy of the data key encrypted by the KMS key (CiphertextBlob) and one copy of the data key
4877
5039
  # # encrypted by the public key from the attestation document (CiphertextForRecipient). The operation doesn't return a
4878
5040
  # # plaintext data key.
@@ -4883,7 +5045,7 @@ module Aws::KMS
4883
5045
  # recipient: {
4884
5046
  # attestation_document: "<attestation document>",
4885
5047
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
4886
- # }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document
5048
+ # }, # Specifies the attestation document from the Nitro enclave or NitroTPM and the encryption algorithm to use with the public key from the attestation document
4887
5049
  # })
4888
5050
  #
4889
5051
  # resp.to_h outputs the following:
@@ -4917,6 +5079,7 @@ module Aws::KMS
4917
5079
  # resp.plaintext #=> String
4918
5080
  # resp.key_id #=> String
4919
5081
  # resp.ciphertext_for_recipient #=> String
5082
+ # resp.key_material_id #=> String
4920
5083
  #
4921
5084
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKey AWS API Documentation
4922
5085
  #
@@ -4973,17 +5136,18 @@ module Aws::KMS
4973
5136
  # `GenerateDataKeyPair` also supports [Amazon Web Services Nitro
4974
5137
  # Enclaves][3], which provide an isolated compute environment in Amazon
4975
5138
  # EC2. To call `GenerateDataKeyPair` for an Amazon Web Services Nitro
4976
- # enclave, use the [Amazon Web Services Nitro Enclaves SDK][4] or any
4977
- # Amazon Web Services SDK. Use the `Recipient` parameter to provide the
4978
- # attestation document for the enclave. `GenerateDataKeyPair` returns
4979
- # the public data key and a copy of the private data key encrypted under
4980
- # the specified KMS key, as usual. But instead of a plaintext copy of
4981
- # the private data key (`PrivateKeyPlaintext`), the response includes a
4982
- # copy of the private data key encrypted under the public key from the
4983
- # attestation document (`CiphertextForRecipient`). For information about
4984
- # the interaction between KMS and Amazon Web Services Nitro Enclaves,
4985
- # see [How Amazon Web Services Nitro Enclaves uses KMS][5] in the *Key
4986
- # Management Service Developer Guide*..
5139
+ # enclave or NitroTPM, use the [Amazon Web Services Nitro Enclaves
5140
+ # SDK][4] or any Amazon Web Services SDK. Use the `Recipient` parameter
5141
+ # to provide the attestation document for the attested environment.
5142
+ # `GenerateDataKeyPair` returns the public data key and a copy of the
5143
+ # private data key encrypted under the specified KMS key, as usual. But
5144
+ # instead of a plaintext copy of the private data key
5145
+ # (`PrivateKeyPlaintext`), the response includes a copy of the private
5146
+ # data key encrypted under the public key from the attestation document
5147
+ # (`CiphertextForRecipient`). For information about the interaction
5148
+ # between KMS and Amazon Web Services Nitro Enclaves or Amazon Web
5149
+ # Services NitroTPM, see [Cryptographic attestation support in KMS][5]
5150
+ # in the *Key Management Service Developer Guide*.
4987
5151
  #
4988
5152
  # You can use an optional encryption context to add additional security
4989
5153
  # to the encryption operation. If you specify an `EncryptionContext`,
@@ -5024,11 +5188,11 @@ module Aws::KMS
5024
5188
  # [2]: https://tools.ietf.org/html/rfc5958
5025
5189
  # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
5026
5190
  # [4]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
5027
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
5028
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5191
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
5192
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
5029
5193
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5030
5194
  # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5031
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
5195
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
5032
5196
  #
5033
5197
  # @option params [Hash<String,String>] :encryption_context
5034
5198
  # Specifies the encryption context that will be used when encrypting the
@@ -5051,7 +5215,7 @@ module Aws::KMS
5051
5215
  #
5052
5216
  #
5053
5217
  #
5054
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5218
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
5055
5219
  #
5056
5220
  # @option params [required, String] :key_id
5057
5221
  # Specifies the symmetric encryption KMS key that encrypts the private
@@ -5082,10 +5246,11 @@ module Aws::KMS
5082
5246
  # Determines the type of data key pair that is generated.
5083
5247
  #
5084
5248
  # The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys
5085
- # to encrypt and decrypt or to sign and verify (but not both), and the
5086
- # rule that permits you to use ECC KMS keys only to sign and verify, are
5087
- # not effective on data key pairs, which are used outside of KMS. The
5088
- # SM2 key spec is only available in China Regions.
5249
+ # to encrypt and decrypt or to sign and verify (but not both), the rule
5250
+ # that permits you to use ECC KMS keys only to sign and verify, and the
5251
+ # rule that permits you to use ML-DSA key pairs to sign and verify only
5252
+ # are not effective on data key pairs, which are used outside of KMS.
5253
+ # The SM2 key spec is only available in China Regions.
5089
5254
  #
5090
5255
  # @option params [Array<String>] :grant_tokens
5091
5256
  # A list of grant tokens.
@@ -5098,50 +5263,55 @@ module Aws::KMS
5098
5263
  #
5099
5264
  #
5100
5265
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
5101
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
5266
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
5102
5267
  #
5103
5268
  # @option params [Types::RecipientInfo] :recipient
5104
5269
  # A signed [attestation document][1] from an Amazon Web Services Nitro
5105
- # enclave and the encryption algorithm to use with the enclave's public
5106
- # key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
5270
+ # enclave or NitroTPM, and the encryption algorithm to use with the
5271
+ # public key in the attestation document. The only valid encryption
5272
+ # algorithm is `RSAES_OAEP_SHA_256`.
5107
5273
  #
5108
5274
  # This parameter only supports attestation documents for Amazon Web
5109
- # Services Nitro Enclaves. To call DeriveSharedSecret for an Amazon Web
5110
- # Services Nitro Enclaves, use the [Amazon Web Services Nitro Enclaves
5111
- # SDK][2] to generate the attestation document and then use the
5112
- # Recipient parameter from any Amazon Web Services SDK to provide the
5113
- # attestation document for the enclave.
5275
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM. To call
5276
+ # GenerateDataKeyPair generate an attestation document use either
5277
+ # [Amazon Web Services Nitro Enclaves SDK][2] for an Amazon Web Services
5278
+ # Nitro Enclaves or [Amazon Web Services NitroTPM tools][3] for Amazon
5279
+ # Web Services NitroTPM. Then use the Recipient parameter from any
5280
+ # Amazon Web Services SDK to provide the attestation document for the
5281
+ # attested environment.
5114
5282
  #
5115
5283
  # When you use this parameter, instead of returning a plaintext copy of
5116
5284
  # the private data key, KMS encrypts the plaintext private data key
5117
5285
  # under the public key in the attestation document, and returns the
5118
5286
  # resulting ciphertext in the `CiphertextForRecipient` field in the
5119
5287
  # response. This ciphertext can be decrypted only with the private key
5120
- # in the enclave. The `CiphertextBlob` field in the response contains a
5121
- # copy of the private data key encrypted under the KMS key specified by
5122
- # the `KeyId` parameter. The `PrivateKeyPlaintext` field in the response
5123
- # is null or empty.
5288
+ # in the attested environment. The `CiphertextBlob` field in the
5289
+ # response contains a copy of the private data key encrypted under the
5290
+ # KMS key specified by the `KeyId` parameter. The `PrivateKeyPlaintext`
5291
+ # field in the response is null or empty.
5124
5292
  #
5125
5293
  # For information about the interaction between KMS and Amazon Web
5126
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
5127
- # uses KMS][3] in the *Key Management Service Developer Guide*.
5294
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
5295
+ # [Cryptographic attestation support in KMS][4] in the *Key Management
5296
+ # Service Developer Guide*.
5128
5297
  #
5129
5298
  #
5130
5299
  #
5131
5300
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
5132
5301
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
5133
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
5302
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attestation-get-doc.html
5303
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
5134
5304
  #
5135
5305
  # @option params [Boolean] :dry_run
5136
5306
  # Checks if your request will succeed. `DryRun` is an optional
5137
5307
  # parameter.
5138
5308
  #
5139
- # To learn more about how to use this parameter, see [Testing your KMS
5140
- # API calls][1] in the *Key Management Service Developer Guide*.
5309
+ # To learn more about how to use this parameter, see [Testing your
5310
+ # permissions][1] in the *Key Management Service Developer Guide*.
5141
5311
  #
5142
5312
  #
5143
5313
  #
5144
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5314
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5145
5315
  #
5146
5316
  # @return [Types::GenerateDataKeyPairResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5147
5317
  #
@@ -5151,6 +5321,7 @@ module Aws::KMS
5151
5321
  # * {Types::GenerateDataKeyPairResponse#key_id #key_id} => String
5152
5322
  # * {Types::GenerateDataKeyPairResponse#key_pair_spec #key_pair_spec} => String
5153
5323
  # * {Types::GenerateDataKeyPairResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String
5324
+ # * {Types::GenerateDataKeyPairResponse#key_material_id #key_material_id} => String
5154
5325
  #
5155
5326
  #
5156
5327
  # @example Example: To generate an RSA key pair for encryption and decryption
@@ -5166,19 +5337,20 @@ module Aws::KMS
5166
5337
  # resp.to_h outputs the following:
5167
5338
  # {
5168
5339
  # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the symmetric encryption KMS key that was used to encrypt the private key.
5340
+ # key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", # The identifier of the key material used to encrypt the private key.
5169
5341
  # key_pair_spec: "RSA_3072", # The actual key spec of the RSA data key pair.
5170
5342
  # private_key_ciphertext_blob: "<binary data>", # The encrypted private key of the RSA data key pair.
5171
5343
  # private_key_plaintext: "<binary data>", # The plaintext private key of the RSA data key pair.
5172
5344
  # public_key: "<binary data>", # The public key (plaintext) of the RSA data key pair.
5173
5345
  # }
5174
5346
  #
5175
- # @example Example: To generate a data key pair for a Nitro enclave
5347
+ # @example Example: To generate a data key pair for a Nitro enclave or NitroTPM
5176
5348
  #
5177
- # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave.
5178
- # # Instead of returning a plaintext copy of the private data key, GenerateDataKeyPair returns a copy of the private data
5179
- # # key encrypted by the public key from the attestation document (CiphertextForRecipient). It returns the public data key
5180
- # # (PublicKey) and a copy of private data key encrypted under the specified KMS key (PrivateKeyCiphertextBlob), as usual,
5181
- # # but plaintext private data key field (PrivateKeyPlaintext) is null or empty.
5349
+ # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave or
5350
+ # # NitroTPM. Instead of returning a plaintext copy of the private data key, GenerateDataKeyPair returns a copy of the
5351
+ # # private data key encrypted by the public key from the attestation document (CiphertextForRecipient). It returns the
5352
+ # # public data key (PublicKey) and a copy of private data key encrypted under the specified KMS key
5353
+ # # (PrivateKeyCiphertextBlob), as usual, but plaintext private data key field (PrivateKeyPlaintext) is null or empty.
5182
5354
  #
5183
5355
  # resp = client.generate_data_key_pair({
5184
5356
  # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ID of the symmetric encryption KMS key that encrypts the private RSA key in the data key pair.
@@ -5186,13 +5358,14 @@ module Aws::KMS
5186
5358
  # recipient: {
5187
5359
  # attestation_document: "<attestation document>",
5188
5360
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
5189
- # }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document.
5361
+ # }, # Specifies the attestation document from the Nitro enclave or NitroTPM and the encryption algorithm to use with the public key from the attestation document.
5190
5362
  # })
5191
5363
  #
5192
5364
  # resp.to_h outputs the following:
5193
5365
  # {
5194
5366
  # ciphertext_for_recipient: "<binary data>", # The private key of the RSA data key pair encrypted by the public key from the attestation document
5195
5367
  # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the symmetric encryption KMS key that was used to encrypt the PrivateKeyCiphertextBlob.
5368
+ # key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", # The identifier of the key material used to encrypt the private key.
5196
5369
  # key_pair_spec: "RSA_3072", # The actual key spec of the RSA data key pair.
5197
5370
  # private_key_ciphertext_blob: "<binary data>", # The private key of the RSA data key pair encrypted by the KMS key.
5198
5371
  # private_key_plaintext: "", # This field is null or empty
@@ -5206,7 +5379,7 @@ module Aws::KMS
5206
5379
  # "EncryptionContextKey" => "EncryptionContextValue",
5207
5380
  # },
5208
5381
  # key_id: "KeyIdType", # required
5209
- # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2
5382
+ # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2, ECC_NIST_EDWARDS25519
5210
5383
  # grant_tokens: ["GrantTokenType"],
5211
5384
  # recipient: {
5212
5385
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256
@@ -5221,8 +5394,9 @@ module Aws::KMS
5221
5394
  # resp.private_key_plaintext #=> String
5222
5395
  # resp.public_key #=> String
5223
5396
  # resp.key_id #=> String
5224
- # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2"
5397
+ # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2", "ECC_NIST_EDWARDS25519"
5225
5398
  # resp.ciphertext_for_recipient #=> String
5399
+ # resp.key_material_id #=> String
5226
5400
  #
5227
5401
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPair AWS API Documentation
5228
5402
  #
@@ -5301,10 +5475,10 @@ module Aws::KMS
5301
5475
  #
5302
5476
  #
5303
5477
  # [1]: https://tools.ietf.org/html/rfc5280
5304
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5478
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
5305
5479
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5306
5480
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5307
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
5481
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
5308
5482
  #
5309
5483
  # @option params [Hash<String,String>] :encryption_context
5310
5484
  # Specifies the encryption context that will be used when encrypting the
@@ -5327,7 +5501,7 @@ module Aws::KMS
5327
5501
  #
5328
5502
  #
5329
5503
  #
5330
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5504
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
5331
5505
  #
5332
5506
  # @option params [required, String] :key_id
5333
5507
  # Specifies the symmetric encryption KMS key that encrypts the private
@@ -5358,10 +5532,11 @@ module Aws::KMS
5358
5532
  # Determines the type of data key pair that is generated.
5359
5533
  #
5360
5534
  # The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys
5361
- # to encrypt and decrypt or to sign and verify (but not both), and the
5362
- # rule that permits you to use ECC KMS keys only to sign and verify, are
5363
- # not effective on data key pairs, which are used outside of KMS. The
5364
- # SM2 key spec is only available in China Regions.
5535
+ # to encrypt and decrypt or to sign and verify (but not both), the rule
5536
+ # that permits you to use ECC KMS keys only to sign and verify, and the
5537
+ # rule that permits you to use ML-DSA key pairs to sign and verify only
5538
+ # are not effective on data key pairs, which are used outside of KMS.
5539
+ # The SM2 key spec is only available in China Regions.
5365
5540
  #
5366
5541
  # @option params [Array<String>] :grant_tokens
5367
5542
  # A list of grant tokens.
@@ -5374,18 +5549,18 @@ module Aws::KMS
5374
5549
  #
5375
5550
  #
5376
5551
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
5377
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
5552
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
5378
5553
  #
5379
5554
  # @option params [Boolean] :dry_run
5380
5555
  # Checks if your request will succeed. `DryRun` is an optional
5381
5556
  # parameter.
5382
5557
  #
5383
- # To learn more about how to use this parameter, see [Testing your KMS
5384
- # API calls][1] in the *Key Management Service Developer Guide*.
5558
+ # To learn more about how to use this parameter, see [Testing your
5559
+ # permissions][1] in the *Key Management Service Developer Guide*.
5385
5560
  #
5386
5561
  #
5387
5562
  #
5388
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5563
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5389
5564
  #
5390
5565
  # @return [Types::GenerateDataKeyPairWithoutPlaintextResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5391
5566
  #
@@ -5393,6 +5568,7 @@ module Aws::KMS
5393
5568
  # * {Types::GenerateDataKeyPairWithoutPlaintextResponse#public_key #public_key} => String
5394
5569
  # * {Types::GenerateDataKeyPairWithoutPlaintextResponse#key_id #key_id} => String
5395
5570
  # * {Types::GenerateDataKeyPairWithoutPlaintextResponse#key_pair_spec #key_pair_spec} => String
5571
+ # * {Types::GenerateDataKeyPairWithoutPlaintextResponse#key_material_id #key_material_id} => String
5396
5572
  #
5397
5573
  #
5398
5574
  # @example Example: To generate an asymmetric data key pair without a plaintext key
@@ -5408,6 +5584,7 @@ module Aws::KMS
5408
5584
  # resp.to_h outputs the following:
5409
5585
  # {
5410
5586
  # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the symmetric encryption KMS key that encrypted the private key in the ECC asymmetric data key pair.
5587
+ # key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", # The identifier of the key material used to encrypt the private key.
5411
5588
  # key_pair_spec: "ECC_NIST_P521", # The actual key spec of the ECC asymmetric data key pair.
5412
5589
  # private_key_ciphertext_blob: "<binary data>", # The encrypted private key of the asymmetric ECC data key pair.
5413
5590
  # public_key: "<binary data>", # The public key (plaintext).
@@ -5420,7 +5597,7 @@ module Aws::KMS
5420
5597
  # "EncryptionContextKey" => "EncryptionContextValue",
5421
5598
  # },
5422
5599
  # key_id: "KeyIdType", # required
5423
- # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2
5600
+ # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2, ECC_NIST_EDWARDS25519
5424
5601
  # grant_tokens: ["GrantTokenType"],
5425
5602
  # dry_run: false,
5426
5603
  # })
@@ -5430,7 +5607,8 @@ module Aws::KMS
5430
5607
  # resp.private_key_ciphertext_blob #=> String
5431
5608
  # resp.public_key #=> String
5432
5609
  # resp.key_id #=> String
5433
- # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2"
5610
+ # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2", "ECC_NIST_EDWARDS25519"
5611
+ # resp.key_material_id #=> String
5434
5612
  #
5435
5613
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintext AWS API Documentation
5436
5614
  #
@@ -5520,10 +5698,10 @@ module Aws::KMS
5520
5698
  #
5521
5699
  #
5522
5700
  #
5523
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5701
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
5524
5702
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5525
5703
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5526
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
5704
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
5527
5705
  #
5528
5706
  # @option params [required, String] :key_id
5529
5707
  # Specifies the symmetric encryption KMS key that encrypts the data key.
@@ -5571,7 +5749,7 @@ module Aws::KMS
5571
5749
  #
5572
5750
  #
5573
5751
  #
5574
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5752
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
5575
5753
  #
5576
5754
  # @option params [String] :key_spec
5577
5755
  # The length of the data key. Use `AES_128` to generate a 128-bit
@@ -5594,23 +5772,24 @@ module Aws::KMS
5594
5772
  #
5595
5773
  #
5596
5774
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
5597
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
5775
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
5598
5776
  #
5599
5777
  # @option params [Boolean] :dry_run
5600
5778
  # Checks if your request will succeed. `DryRun` is an optional
5601
5779
  # parameter.
5602
5780
  #
5603
- # To learn more about how to use this parameter, see [Testing your KMS
5604
- # API calls][1] in the *Key Management Service Developer Guide*.
5781
+ # To learn more about how to use this parameter, see [Testing your
5782
+ # permissions][1] in the *Key Management Service Developer Guide*.
5605
5783
  #
5606
5784
  #
5607
5785
  #
5608
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5786
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5609
5787
  #
5610
5788
  # @return [Types::GenerateDataKeyWithoutPlaintextResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5611
5789
  #
5612
5790
  # * {Types::GenerateDataKeyWithoutPlaintextResponse#ciphertext_blob #ciphertext_blob} => String
5613
5791
  # * {Types::GenerateDataKeyWithoutPlaintextResponse#key_id #key_id} => String
5792
+ # * {Types::GenerateDataKeyWithoutPlaintextResponse#key_material_id #key_material_id} => String
5614
5793
  #
5615
5794
  #
5616
5795
  # @example Example: To generate an encrypted data key
@@ -5627,6 +5806,7 @@ module Aws::KMS
5627
5806
  # {
5628
5807
  # ciphertext_blob: "<binary data>", # The encrypted data key.
5629
5808
  # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that was used to encrypt the data key.
5809
+ # key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", # The identifier of the key material used to encrypt the data key.
5630
5810
  # }
5631
5811
  #
5632
5812
  # @example Request syntax with placeholder values
@@ -5646,6 +5826,7 @@ module Aws::KMS
5646
5826
  #
5647
5827
  # resp.ciphertext_blob #=> String
5648
5828
  # resp.key_id #=> String
5829
+ # resp.key_material_id #=> String
5649
5830
  #
5650
5831
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintext AWS API Documentation
5651
5832
  #
@@ -5700,7 +5881,7 @@ module Aws::KMS
5700
5881
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
5701
5882
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5702
5883
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5703
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
5884
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
5704
5885
  #
5705
5886
  # @option params [required, String, StringIO, File] :message
5706
5887
  # The message to be hashed. Specify a message of up to 4,096 bytes.
@@ -5739,18 +5920,18 @@ module Aws::KMS
5739
5920
  #
5740
5921
  #
5741
5922
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
5742
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
5923
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
5743
5924
  #
5744
5925
  # @option params [Boolean] :dry_run
5745
5926
  # Checks if your request will succeed. `DryRun` is an optional
5746
5927
  # parameter.
5747
5928
  #
5748
- # To learn more about how to use this parameter, see [Testing your KMS
5749
- # API calls][1] in the *Key Management Service Developer Guide*.
5929
+ # To learn more about how to use this parameter, see [Testing your
5930
+ # permissions][1] in the *Key Management Service Developer Guide*.
5750
5931
  #
5751
5932
  #
5752
5933
  #
5753
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
5934
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
5754
5935
  #
5755
5936
  # @return [Types::GenerateMacResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5756
5937
  #
@@ -5813,18 +5994,19 @@ module Aws::KMS
5813
5994
  #
5814
5995
  # `GenerateRandom` also supports [Amazon Web Services Nitro
5815
5996
  # Enclaves][1], which provide an isolated compute environment in Amazon
5816
- # EC2. To call `GenerateRandom` for a Nitro enclave, use the [Amazon Web
5817
- # Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK. Use
5818
- # the `Recipient` parameter to provide the attestation document for the
5819
- # enclave. Instead of plaintext bytes, the response includes the
5820
- # plaintext bytes encrypted under the public key from the attestation
5821
- # document (`CiphertextForRecipient`).For information about the
5822
- # interaction between KMS and Amazon Web Services Nitro Enclaves, see
5823
- # [How Amazon Web Services Nitro Enclaves uses KMS][3] in the *Key
5824
- # Management Service Developer Guide*.
5997
+ # EC2. To call `GenerateRandom` for a Nitro enclave or NitroTPM, use the
5998
+ # [Amazon Web Services Nitro Enclaves SDK][2] or any Amazon Web Services
5999
+ # SDK. Use the `Recipient` parameter to provide the attestation document
6000
+ # for the attested environment. Instead of plaintext bytes, the response
6001
+ # includes the plaintext bytes encrypted under the public key from the
6002
+ # attestation document (`CiphertextForRecipient`). For information about
6003
+ # the interaction between KMS and Amazon Web Services Nitro Enclaves or
6004
+ # Amazon Web Services NitroTPM, see [Cryptographic attestation support
6005
+ # in KMS][3] in the *Key Management Service Developer Guide*.
5825
6006
  #
5826
6007
  # For more information about entropy and random number generation, see
5827
- # [Key Management Service Cryptographic Details][4].
6008
+ # [Entropy and random number generation][4] in the *Key Management
6009
+ # Service Developer Guide*.
5828
6010
  #
5829
6011
  # **Cross-account use**: Not applicable. `GenerateRandom` does not use
5830
6012
  # any account-specific resources, such as KMS keys.
@@ -5838,10 +6020,10 @@ module Aws::KMS
5838
6020
  #
5839
6021
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
5840
6022
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
5841
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
5842
- # [4]: https://docs.aws.amazon.com/kms/latest/cryptographic-details/
6023
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
6024
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#entropy-and-random-numbers
5843
6025
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5844
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
6026
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
5845
6027
  #
5846
6028
  # @option params [Integer] :number_of_bytes
5847
6029
  # The length of the random byte string. This parameter is required.
@@ -5857,29 +6039,32 @@ module Aws::KMS
5857
6039
  #
5858
6040
  # @option params [Types::RecipientInfo] :recipient
5859
6041
  # A signed [attestation document][1] from an Amazon Web Services Nitro
5860
- # enclave and the encryption algorithm to use with the enclave's public
5861
- # key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
6042
+ # enclave or NitroTPM, and the encryption algorithm to use with the
6043
+ # public key in the attestation document. The only valid encryption
6044
+ # algorithm is `RSAES_OAEP_SHA_256`.
5862
6045
  #
5863
- # This parameter only supports attestation documents for Amazon Web
5864
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
5865
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
6046
+ # This parameter supports the [Amazon Web Services Nitro Enclaves
6047
+ # SDK][2] or any Amazon Web Services SDK for Amazon Web Services Nitro
6048
+ # Enclaves. It supports any Amazon Web Services SDK for Amazon Web
6049
+ # Services NitroTPM.
5866
6050
  #
5867
6051
  # When you use this parameter, instead of returning plaintext bytes, KMS
5868
6052
  # encrypts the plaintext bytes under the public key in the attestation
5869
6053
  # document, and returns the resulting ciphertext in the
5870
6054
  # `CiphertextForRecipient` field in the response. This ciphertext can be
5871
- # decrypted only with the private key in the enclave. The `Plaintext`
5872
- # field in the response is null or empty.
6055
+ # decrypted only with the private key in the attested environment. The
6056
+ # `Plaintext` field in the response is null or empty.
5873
6057
  #
5874
6058
  # For information about the interaction between KMS and Amazon Web
5875
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
5876
- # uses KMS][3] in the *Key Management Service Developer Guide*.
6059
+ # Services Nitro Enclaves or Amazon Web Services NitroTPM, see
6060
+ # [Cryptographic attestation support in KMS][3] in the *Key Management
6061
+ # Service Developer Guide*.
5877
6062
  #
5878
6063
  #
5879
6064
  #
5880
6065
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
5881
6066
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
5882
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
6067
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html
5883
6068
  #
5884
6069
  # @return [Types::GenerateRandomResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5885
6070
  #
@@ -5900,18 +6085,18 @@ module Aws::KMS
5900
6085
  # plaintext: "<binary data>", # The random data.
5901
6086
  # }
5902
6087
  #
5903
- # @example Example: To generate random data
6088
+ # @example Example: To generate random data for a Nitro enclave or NitroTPM
5904
6089
  #
5905
- # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave.
5906
- # # Instead of returning a plaintext (unencrypted) byte string, GenerateRandom returns the byte string encrypted by the
5907
- # # public key from the enclave's attestation document.
6090
+ # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave or
6091
+ # # NitroTPM. Instead of returning a plaintext (unencrypted) byte string, GenerateRandom returns the byte string encrypted
6092
+ # # by the public key from the attestation document.
5908
6093
  #
5909
6094
  # resp = client.generate_random({
5910
6095
  # number_of_bytes: 1024, # The length of the random byte string
5911
6096
  # recipient: {
5912
6097
  # attestation_document: "<attestation document>",
5913
6098
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
5914
- # }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document
6099
+ # }, # Specifies the attestation document from the Nitro enclave or NitroTPM and the encryption algorithm to use with the public key from the attestation document
5915
6100
  # })
5916
6101
  #
5917
6102
  # resp.to_h outputs the following:
@@ -5961,7 +6146,7 @@ module Aws::KMS
5961
6146
  #
5962
6147
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5963
6148
  # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html
5964
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
6149
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
5965
6150
  #
5966
6151
  # @option params [required, String] :key_id
5967
6152
  # Gets the key policy for the specified KMS key.
@@ -6029,16 +6214,16 @@ module Aws::KMS
6029
6214
  # enabled for the specified KMS key, the [rotation period][2], and the
6030
6215
  # next scheduled rotation date.
6031
6216
  #
6032
- # Automatic key rotation is supported only on [symmetric encryption KMS
6033
- # keys][3]. You cannot enable automatic rotation of [asymmetric KMS
6034
- # keys][4], [HMAC KMS keys][5], KMS keys with [imported key
6035
- # material][6], or KMS keys in a [custom key store][7]. To enable or
6036
- # disable automatic rotation of a set of related [multi-Region keys][8],
6037
- # set the property on the primary key..
6217
+ # Automatic key rotation is supported only on symmetric encryption KMS
6218
+ # keys. You cannot enable automatic rotation of [asymmetric KMS
6219
+ # keys][3], [HMAC KMS keys][4], KMS keys with [imported key
6220
+ # material][5], or KMS keys in a [custom key store][6]. To enable or
6221
+ # disable automatic rotation of a set of related [multi-Region keys][7],
6222
+ # set the property on the primary key.
6038
6223
  #
6039
6224
  # You can enable (EnableKeyRotation) and disable automatic rotation
6040
6225
  # (DisableKeyRotation) of the key material in customer managed KMS keys.
6041
- # Key material rotation of [Amazon Web Services managed KMS keys][9] is
6226
+ # Key material rotation of [Amazon Web Services managed KMS keys][8] is
6042
6227
  # not configurable. KMS always rotates the key material in Amazon Web
6043
6228
  # Services managed KMS keys every year. The key rotation status for
6044
6229
  # Amazon Web Services managed KMS keys is always `true`.
@@ -6057,7 +6242,7 @@ module Aws::KMS
6057
6242
  # </note>
6058
6243
  #
6059
6244
  # The KMS key that you use for this operation must be in a compatible
6060
- # key state. For details, see [Key states of KMS keys][10] in the *Key
6245
+ # key state. For details, see [Key states of KMS keys][9] in the *Key
6061
6246
  # Management Service Developer Guide*.
6062
6247
  #
6063
6248
  # * Disabled: The key rotation status does not change when you disable a
@@ -6078,7 +6263,7 @@ module Aws::KMS
6078
6263
  # a different Amazon Web Services account, specify the key ARN in the
6079
6264
  # value of the `KeyId` parameter.
6080
6265
  #
6081
- # **Required permissions**: [kms:GetKeyRotationStatus][11] (key policy)
6266
+ # **Required permissions**: [kms:GetKeyRotationStatus][10] (key policy)
6082
6267
  #
6083
6268
  # **Related operations:**
6084
6269
  #
@@ -6091,22 +6276,21 @@ module Aws::KMS
6091
6276
  # * RotateKeyOnDemand
6092
6277
  #
6093
6278
  # **Eventual consistency**: The KMS API follows an eventual consistency
6094
- # model. For more information, see [KMS eventual consistency][12].
6279
+ # model. For more information, see [KMS eventual consistency][11].
6095
6280
  #
6096
6281
  #
6097
6282
  #
6098
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
6283
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html
6099
6284
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotation-period
6100
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks
6101
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
6102
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
6103
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
6104
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
6105
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
6106
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
6107
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6108
- # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6109
- # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
6285
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
6286
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
6287
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
6288
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
6289
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
6290
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
6291
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6292
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6293
+ # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
6110
6294
  #
6111
6295
  # @option params [required, String] :key_id
6112
6296
  # Gets the rotation status for the specified KMS key.
@@ -6180,9 +6364,7 @@ module Aws::KMS
6180
6364
  # By default, KMS keys are created with key material that KMS generates.
6181
6365
  # This operation supports [Importing key material][1], an advanced
6182
6366
  # feature that lets you generate and import the cryptographic key
6183
- # material for a KMS key. For more information about importing key
6184
- # material into KMS, see [Importing key material][1] in the *Key
6185
- # Management Service Developer Guide*.
6367
+ # material for a KMS key.
6186
6368
  #
6187
6369
  # Before calling `GetParametersForImport`, use the CreateKey operation
6188
6370
  # with an `Origin` value of `EXTERNAL` to create a KMS key with no key
@@ -6251,11 +6433,11 @@ module Aws::KMS
6251
6433
  #
6252
6434
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
6253
6435
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
6254
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
6255
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#reimport-key-material
6436
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
6437
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#reimport-key-material
6256
6438
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6257
6439
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6258
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
6440
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
6259
6441
  #
6260
6442
  # @option params [required, String] :key_id
6261
6443
  # The identifier of the KMS key that will be associated with the
@@ -6279,9 +6461,8 @@ module Aws::KMS
6279
6461
  # @option params [required, String] :wrapping_algorithm
6280
6462
  # The algorithm you will use with the RSA public key (`PublicKey`) in
6281
6463
  # the response to protect your key material during import. For more
6282
- # information, see [Select a wrapping
6283
- # algorithm](kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm)
6284
- # in the *Key Management Service Developer Guide*.
6464
+ # information, see [Select a wrapping algorithm][1] in the *Key
6465
+ # Management Service Developer Guide*.
6285
6466
  #
6286
6467
  # For RSA\_AES wrapping algorithms, you encrypt your key material with
6287
6468
  # an AES key that you generate, then encrypt your AES key with the RSA
@@ -6313,6 +6494,10 @@ module Aws::KMS
6313
6494
  # * **RSAES\_PKCS1\_V1\_5** (Deprecated) — As of October 10, 2023, KMS
6314
6495
  # does not support the RSAES\_PKCS1\_V1\_5 wrapping algorithm.
6315
6496
  #
6497
+ #
6498
+ #
6499
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm
6500
+ #
6316
6501
  # @option params [required, String] :wrapping_key_spec
6317
6502
  # The type of RSA public key to return in the response. You will use
6318
6503
  # this wrapping key with the specified wrapping algorithm to protect
@@ -6460,8 +6645,9 @@ module Aws::KMS
6460
6645
  # * [KeyUsage][3]: Whether the key is used for encryption, signing, or
6461
6646
  # deriving a shared secret.
6462
6647
  #
6463
- # * [EncryptionAlgorithms][4] or [SigningAlgorithms][5]: A list of the
6464
- # encryption algorithms or the signing algorithms for the key.
6648
+ # * [EncryptionAlgorithms][4], [KeyAgreementAlgorithms][5], or
6649
+ # [SigningAlgorithms][6]: A list of the encryption algorithms, key
6650
+ # agreement algorithms, or signing algorithms for the key.
6465
6651
  #
6466
6652
  # Although KMS cannot enforce these restrictions on external operations,
6467
6653
  # it is crucial that you use this information to prevent the public key
@@ -6474,22 +6660,22 @@ module Aws::KMS
6474
6660
  # To verify a signature outside of KMS with an SM2 public key (China
6475
6661
  # Regions only), you must specify the distinguishing ID. By default, KMS
6476
6662
  # uses `1234567812345678` as the distinguishing ID. For more
6477
- # information, see [Offline verification with SM2 key pairs][6].
6663
+ # information, see [Offline verification with SM2 key pairs][7].
6478
6664
  #
6479
6665
  # The KMS key that you use for this operation must be in a compatible
6480
- # key state. For details, see [Key states of KMS keys][7] in the *Key
6666
+ # key state. For details, see [Key states of KMS keys][8] in the *Key
6481
6667
  # Management Service Developer Guide*.
6482
6668
  #
6483
6669
  # **Cross-account use**: Yes. To perform this operation with a KMS key
6484
6670
  # in a different Amazon Web Services account, specify the key ARN or
6485
6671
  # alias ARN in the value of the `KeyId` parameter.
6486
6672
  #
6487
- # **Required permissions**: [kms:GetPublicKey][8] (key policy)
6673
+ # **Required permissions**: [kms:GetPublicKey][9] (key policy)
6488
6674
  #
6489
6675
  # **Related operations**: CreateKey
6490
6676
  #
6491
6677
  # **Eventual consistency**: The KMS API follows an eventual consistency
6492
- # model. For more information, see [KMS eventual consistency][9].
6678
+ # model. For more information, see [KMS eventual consistency][10].
6493
6679
  #
6494
6680
  #
6495
6681
  #
@@ -6497,11 +6683,12 @@ module Aws::KMS
6497
6683
  # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeySpec
6498
6684
  # [3]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyUsage
6499
6685
  # [4]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-EncryptionAlgorithms
6500
- # [5]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-SigningAlgorithms
6501
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
6502
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6503
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6504
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
6686
+ # [5]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyAgreementAlgorithms
6687
+ # [6]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-SigningAlgorithms
6688
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification
6689
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6690
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6691
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
6505
6692
  #
6506
6693
  # @option params [required, String] :key_id
6507
6694
  # Identifies the asymmetric KMS key that includes the public key.
@@ -6536,7 +6723,7 @@ module Aws::KMS
6536
6723
  #
6537
6724
  #
6538
6725
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
6539
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
6726
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
6540
6727
  #
6541
6728
  # @return [Types::GetPublicKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6542
6729
  #
@@ -6584,12 +6771,12 @@ module Aws::KMS
6584
6771
  # resp.key_id #=> String
6585
6772
  # resp.public_key #=> String
6586
6773
  # resp.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
6587
- # resp.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
6774
+ # resp.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519"
6588
6775
  # resp.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT"
6589
6776
  # resp.encryption_algorithms #=> Array
6590
6777
  # resp.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
6591
6778
  # resp.signing_algorithms #=> Array
6592
- # resp.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA"
6779
+ # resp.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
6593
6780
  # resp.key_agreement_algorithms #=> Array
6594
6781
  # resp.key_agreement_algorithms[0] #=> String, one of "ECDH"
6595
6782
  #
@@ -6603,53 +6790,65 @@ module Aws::KMS
6603
6790
  end
6604
6791
 
6605
6792
  # Imports or reimports key material into an existing KMS key that was
6606
- # created without key material. `ImportKeyMaterial` also sets the
6607
- # expiration model and expiration date of the imported key material.
6608
- #
6609
- # By default, KMS keys are created with key material that KMS generates.
6610
- # This operation supports [Importing key material][1], an advanced
6611
- # feature that lets you generate and import the cryptographic key
6612
- # material for a KMS key. For more information about importing key
6613
- # material into KMS, see [Importing key material][1] in the *Key
6614
- # Management Service Developer Guide*.
6793
+ # created without key material. You can also use this operation to set
6794
+ # or update the expiration model and expiration date of the imported key
6795
+ # material.
6615
6796
  #
6616
- # After you successfully import key material into a KMS key, you can
6617
- # [reimport the same key material][2] into that KMS key, but you cannot
6618
- # import different key material. You might reimport key material to
6619
- # replace key material that expired or key material that you deleted.
6620
- # You might also reimport key material to change the expiration model or
6621
- # expiration date of the key material.
6797
+ # By default, KMS creates KMS keys with key material that it generates.
6798
+ # You can also generate and import your own key material. For more
6799
+ # information about importing key material, see [Importing key
6800
+ # material][1].
6801
+ #
6802
+ # For asymmetric and HMAC keys, you cannot change the key material after
6803
+ # the initial import. You can import multiple key materials into
6804
+ # symmetric encryption keys and rotate the key material on demand using
6805
+ # `RotateKeyOnDemand`.
6806
+ #
6807
+ # You can import new key materials into multi-Region symmetric
6808
+ # encryption keys. To do so, you must import the new key material into
6809
+ # the primary Region key. Then you can import the same key materials
6810
+ # into the replica Region keys. You cannot directly import new key
6811
+ # material into the replica Region keys.
6812
+ #
6813
+ # To import new key material for a multi-Region symmetric key, you’ll
6814
+ # need to complete the following:
6815
+ #
6816
+ # 1. Call `ImportKeyMaterial` on the primary Region key with the
6817
+ # `ImportType`set to `NEW_KEY_MATERIAL`.
6818
+ #
6819
+ # 2. Call `ImportKeyMaterial` on the replica Region key with the
6820
+ # `ImportType` set to `EXISTING_KEY_MATERIAL` using the same key
6821
+ # material imported to the primary Region key. You must do this for
6822
+ # every replica Region key before you can perform the
6823
+ # RotateKeyOnDemand operation on the primary Region key.
6824
+ #
6825
+ # After you import key material, you can [reimport the same key
6826
+ # material][2] into that KMS key or, if the key supports on-demand
6827
+ # rotation, import new key material. You can use the `ImportType`
6828
+ # parameter to indicate whether you are importing new key material or
6829
+ # re-importing previously imported key material. You might reimport key
6830
+ # material to replace key material that expired or key material that you
6831
+ # deleted. You might also reimport key material to change the expiration
6832
+ # model or expiration date of the key material.
6622
6833
  #
6623
6834
  # Each time you import key material into KMS, you can determine whether
6624
6835
  # (`ExpirationModel`) and when (`ValidTo`) the key material expires. To
6625
6836
  # change the expiration of your key material, you must import it again,
6626
6837
  # either by calling `ImportKeyMaterial` or using the [import
6627
- # features](kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-import-key-material-console)
6628
- # of the KMS console.
6838
+ # features][3] of the KMS console.
6629
6839
  #
6630
- # Before calling `ImportKeyMaterial`:
6840
+ # Before you call `ImportKeyMaterial`, complete these steps:
6631
6841
  #
6632
- # * Create or identify a KMS key with no key material. The KMS key must
6633
- # have an `Origin` value of `EXTERNAL`, which indicates that the KMS
6634
- # key is designed for imported key material.
6842
+ # * Create or identify a KMS key with `EXTERNAL` origin, which indicates
6843
+ # that the KMS key is designed for imported key material.
6635
6844
  #
6636
- # To create an new KMS key for imported key material, call the
6845
+ # To create a new KMS key for imported key material, call the
6637
6846
  # CreateKey operation with an `Origin` value of `EXTERNAL`. You can
6638
6847
  # create a symmetric encryption KMS key, HMAC KMS key, asymmetric
6639
- # encryption KMS key, or asymmetric signing KMS key. You can also
6640
- # import key material into a [multi-Region
6641
- # key](kms/latest/developerguide/multi-region-keys-overview.html) of
6642
- # any supported type. However, you can't import key material into a
6643
- # KMS key in a [custom key
6644
- # store](kms/latest/developerguide/custom-key-store-overview.html).
6645
- #
6646
- # * Use the DescribeKey operation to verify that the `KeyState` of the
6647
- # KMS key is `PendingImport`, which indicates that the KMS key has no
6648
- # key material.
6649
- #
6650
- # If you are reimporting the same key material into an existing KMS
6651
- # key, you might need to call the DeleteImportedKeyMaterial to delete
6652
- # its existing key material.
6848
+ # encryption KMS key, asymmetric key agreement key, or asymmetric
6849
+ # signing KMS key. You can also import key material into a
6850
+ # [multi-Region key][4] of any supported type. However, you can't
6851
+ # import key material into a KMS key in a [custom key store][5].
6653
6852
  #
6654
6853
  # * Call the GetParametersForImport operation to get a public key and
6655
6854
  # import token set for importing key material.
@@ -6663,11 +6862,10 @@ module Aws::KMS
6663
6862
  #
6664
6863
  # * The key ID or key ARN of the KMS key to associate with the imported
6665
6864
  # key material. Its `Origin` must be `EXTERNAL` and its `KeyState`
6666
- # must be `PendingImport`. You cannot perform this operation on a KMS
6667
- # key in a [custom key
6668
- # store](kms/latest/developerguide/custom-key-store-overview.html), or
6669
- # on a KMS key in a different Amazon Web Services account. To get the
6670
- # `Origin` and `KeyState` of a KMS key, call DescribeKey.
6865
+ # must be `PendingImport` or `Enabled`. You cannot perform this
6866
+ # operation on a KMS key in a [custom key store][5], or on a KMS key
6867
+ # in a different Amazon Web Services account. To get the `Origin` and
6868
+ # `KeyState` of a KMS key, call DescribeKey.
6671
6869
  #
6672
6870
  # * The encrypted key material.
6673
6871
  #
@@ -6677,7 +6875,7 @@ module Aws::KMS
6677
6875
  #
6678
6876
  # * Whether the key material expires (`ExpirationModel`) and, if so,
6679
6877
  # when (`ValidTo`). For help with this choice, see [Setting an
6680
- # expiration time][3] in the *Key Management Service Developer Guide*.
6878
+ # expiration time][6] in the *Key Management Service Developer Guide*.
6681
6879
  #
6682
6880
  # If you set an expiration date, KMS deletes the key material from the
6683
6881
  # KMS key on the specified date, making the KMS key unusable. To use
@@ -6687,25 +6885,28 @@ module Aws::KMS
6687
6885
  # Each time you reimport, you can eliminate or reset the expiration
6688
6886
  # time.
6689
6887
  #
6690
- # When this operation is successful, the key state of the KMS key
6691
- # changes from `PendingImport` to `Enabled`, and you can use the KMS key
6692
- # in cryptographic operations.
6888
+ # When this operation is successful, the state of the KMS key changes to
6889
+ # `Enabled`, and you can use the KMS key in cryptographic operations.
6890
+ # For symmetric encryption keys, you will need to import all of the key
6891
+ # materials associated with the KMS key to change its state to
6892
+ # `Enabled`. Use the `ListKeyRotations` operation to list the ID and
6893
+ # import state of each key material associated with a KMS key.
6693
6894
  #
6694
6895
  # If this operation fails, use the exception to help determine the
6695
6896
  # problem. If the error is related to the key material, the import
6696
6897
  # token, or wrapping key, use GetParametersForImport to get a new public
6697
6898
  # key and import token for the KMS key and repeat the import procedure.
6698
- # For help, see [How To Import Key Material][4] in the *Key Management
6699
- # Service Developer Guide*.
6899
+ # For help, see [Create a KMS key with imported key material][7] in the
6900
+ # *Key Management Service Developer Guide*.
6700
6901
  #
6701
6902
  # The KMS key that you use for this operation must be in a compatible
6702
- # key state. For details, see [Key states of KMS keys][5] in the *Key
6903
+ # key state. For details, see [Key states of KMS keys][8] in the *Key
6703
6904
  # Management Service Developer Guide*.
6704
6905
  #
6705
6906
  # **Cross-account use**: No. You cannot perform this operation on a KMS
6706
6907
  # key in a different Amazon Web Services account.
6707
6908
  #
6708
- # **Required permissions**: [kms:ImportKeyMaterial][6] (key policy)
6909
+ # **Required permissions**: [kms:ImportKeyMaterial][9] (key policy)
6709
6910
  #
6710
6911
  # **Related operations:**
6711
6912
  #
@@ -6713,18 +6914,25 @@ module Aws::KMS
6713
6914
  #
6714
6915
  # * GetParametersForImport
6715
6916
  #
6917
+ # * ListKeyRotations
6918
+ #
6919
+ # * RotateKeyOnDemand
6920
+ #
6716
6921
  # **Eventual consistency**: The KMS API follows an eventual consistency
6717
- # model. For more information, see [KMS eventual consistency][7].
6922
+ # model. For more information, see [KMS eventual consistency][10].
6718
6923
  #
6719
6924
  #
6720
6925
  #
6721
6926
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
6722
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#reimport-key-material
6723
- # [3]: https://docs.aws.amazon.com/en_us/kms/latest/developerguide/importing-keys.html#importing-keys-expiration
6724
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#importing-keys-overview
6725
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6726
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6727
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
6927
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#reimport-key-material
6928
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-import-key-material-console
6929
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
6930
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
6931
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-expiration
6932
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-conceptual.html
6933
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6934
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6935
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
6728
6936
  #
6729
6937
  # @option params [required, String] :key_id
6730
6938
  # The identifier of the KMS key that will be associated with the
@@ -6735,11 +6943,9 @@ module Aws::KMS
6735
6943
  #
6736
6944
  # The KMS key can be a symmetric encryption KMS key, HMAC KMS key,
6737
6945
  # asymmetric encryption KMS key, or asymmetric signing KMS key,
6738
- # including a [multi-Region
6739
- # key](kms/latest/developerguide/multi-region-keys-overview.html) of any
6740
- # supported type. You cannot perform this operation on a KMS key in a
6741
- # custom key store, or on a KMS key in a different Amazon Web Services
6742
- # account.
6946
+ # including a [multi-Region key][1] of any supported type. You cannot
6947
+ # perform this operation on a KMS key in a custom key store, or on a KMS
6948
+ # key in a different Amazon Web Services account.
6743
6949
  #
6744
6950
  # Specify the key ID or key ARN of the KMS key.
6745
6951
  #
@@ -6753,6 +6959,10 @@ module Aws::KMS
6753
6959
  # To get the key ID and key ARN for a KMS key, use ListKeys or
6754
6960
  # DescribeKey.
6755
6961
  #
6962
+ #
6963
+ #
6964
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
6965
+ #
6756
6966
  # @option params [required, String, StringIO, File] :import_token
6757
6967
  # The import token that you received in the response to a previous
6758
6968
  # GetParametersForImport request. It must be from the same response that
@@ -6797,9 +7007,54 @@ module Aws::KMS
6797
7007
  #
6798
7008
  #
6799
7009
  #
6800
- # [1]: https://docs.aws.amazon.com/en_us/kms/latest/developerguide/importing-keys.html#importing-keys-expiration
7010
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-expiration
6801
7011
  #
6802
- # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
7012
+ # @option params [String] :import_type
7013
+ # Indicates whether the key material being imported is previously
7014
+ # associated with this KMS key or not. This parameter is optional and
7015
+ # only usable with symmetric encryption keys. If no key material has
7016
+ # ever been imported into the KMS key, and this parameter is omitted,
7017
+ # the parameter defaults to `NEW_KEY_MATERIAL`. After the first key
7018
+ # material is imported, if this parameter is omitted then the parameter
7019
+ # defaults to `EXISTING_KEY_MATERIAL`.
7020
+ #
7021
+ # For multi-Region keys, you must first import new key material into the
7022
+ # primary Region key. You should use the `NEW_KEY_MATERIAL` import type
7023
+ # when importing key material into the primary Region key. Then, you can
7024
+ # import the same key material into the replica Region key. The import
7025
+ # type for the replica Region key should be `EXISTING_KEY_MATERIAL`.
7026
+ #
7027
+ # @option params [String] :key_material_description
7028
+ # Description for the key material being imported. This parameter is
7029
+ # optional and only usable with symmetric encryption keys. If you do not
7030
+ # specify a key material description, KMS retains the value you
7031
+ # specified when you last imported the same key material into this KMS
7032
+ # key.
7033
+ #
7034
+ # @option params [String] :key_material_id
7035
+ # Identifies the key material being imported. This parameter is optional
7036
+ # and only usable with symmetric encryption keys. You cannot specify a
7037
+ # key material ID with `ImportType` set to `NEW_KEY_MATERIAL`. Whenever
7038
+ # you import key material into a symmetric encryption key, KMS assigns a
7039
+ # unique identifier to the key material based on the KMS key ID and the
7040
+ # imported key material. When you re-import key material with a
7041
+ # specified key material ID, KMS:
7042
+ #
7043
+ # * Computes the identifier for the key material
7044
+ #
7045
+ # * Matches the computed identifier against the specified key material
7046
+ # ID
7047
+ #
7048
+ # * Verifies that the key material ID is already associated with the KMS
7049
+ # key
7050
+ #
7051
+ # To get the list of key material IDs associated with a KMS key, use
7052
+ # ListKeyRotations.
7053
+ #
7054
+ # @return [Types::ImportKeyMaterialResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7055
+ #
7056
+ # * {Types::ImportKeyMaterialResponse#key_id #key_id} => String
7057
+ # * {Types::ImportKeyMaterialResponse#key_material_id #key_material_id} => String
6803
7058
  #
6804
7059
  #
6805
7060
  # @example Example: To import key material into a KMS key
@@ -6813,6 +7068,12 @@ module Aws::KMS
6813
7068
  # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key to import the key material into. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key.
6814
7069
  # })
6815
7070
  #
7071
+ # resp.to_h outputs the following:
7072
+ # {
7073
+ # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The Amazon Resource Name (ARN) of the KMS key into which key material was imported.
7074
+ # key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", # Identifies the imported key material.
7075
+ # }
7076
+ #
6816
7077
  # @example Example: To import key material into a KMS key
6817
7078
  #
6818
7079
  # # The following example imports key material that expires in 3 days. It might be part of an application that frequently
@@ -6826,6 +7087,12 @@ module Aws::KMS
6826
7087
  # valid_to: Time.parse("2023-09-30T00:00:00-00:00"), # Specifies the date and time when the imported key material expires.
6827
7088
  # })
6828
7089
  #
7090
+ # resp.to_h outputs the following:
7091
+ # {
7092
+ # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The Amazon Resource Name (ARN) of the KMS key into which key material was imported.
7093
+ # key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", # Identifies the imported key material.
7094
+ # }
7095
+ #
6829
7096
  # @example Request syntax with placeholder values
6830
7097
  #
6831
7098
  # resp = client.import_key_material({
@@ -6834,8 +7101,16 @@ module Aws::KMS
6834
7101
  # encrypted_key_material: "data", # required
6835
7102
  # valid_to: Time.now,
6836
7103
  # expiration_model: "KEY_MATERIAL_EXPIRES", # accepts KEY_MATERIAL_EXPIRES, KEY_MATERIAL_DOES_NOT_EXPIRE
7104
+ # import_type: "NEW_KEY_MATERIAL", # accepts NEW_KEY_MATERIAL, EXISTING_KEY_MATERIAL
7105
+ # key_material_description: "KeyMaterialDescriptionType",
7106
+ # key_material_id: "BackingKeyIdType",
6837
7107
  # })
6838
7108
  #
7109
+ # @example Response structure
7110
+ #
7111
+ # resp.key_id #=> String
7112
+ # resp.key_material_id #=> String
7113
+ #
6839
7114
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterial AWS API Documentation
6840
7115
  #
6841
7116
  # @overload import_key_material(params = {})
@@ -6886,10 +7161,10 @@ module Aws::KMS
6886
7161
  #
6887
7162
  #
6888
7163
  #
6889
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#aliases-limit
7164
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/resource-limits.html#aliases-per-key
6890
7165
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6891
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access
6892
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
7166
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/alias-access.html
7167
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
6893
7168
  #
6894
7169
  # @option params [String] :key_id
6895
7170
  # Lists only aliases that are associated with the specified KMS key.
@@ -7021,8 +7296,9 @@ module Aws::KMS
7021
7296
  #
7022
7297
  # For detailed information about grants, including grant terminology,
7023
7298
  # see [Grants in KMS][1] in the <i> <i>Key Management Service Developer
7024
- # Guide</i> </i>. For examples of working with grants in several
7025
- # programming languages, see [Programming grants][2].
7299
+ # Guide</i> </i>. For examples of creating grants in several programming
7300
+ # languages, see [Use CreateGrant with an Amazon Web Services SDK or
7301
+ # CLI][2].
7026
7302
  #
7027
7303
  # <note markdown="1"> The `GranteePrincipal` field in the `ListGrants` response usually
7028
7304
  # contains the user or role designated as the grantee principal in the
@@ -7055,10 +7331,10 @@ module Aws::KMS
7055
7331
  #
7056
7332
  #
7057
7333
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
7058
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html
7334
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html
7059
7335
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services
7060
7336
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7061
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
7337
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
7062
7338
  #
7063
7339
  # @option params [Integer] :limit
7064
7340
  # Use this parameter to specify the maximum number of items to return.
@@ -7234,7 +7510,7 @@ module Aws::KMS
7234
7510
  #
7235
7511
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7236
7512
  # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html
7237
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
7513
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
7238
7514
  #
7239
7515
  # @option params [required, String] :key_id
7240
7516
  # Gets the names of key policies for the specified KMS key.
@@ -7316,14 +7592,15 @@ module Aws::KMS
7316
7592
  req.send_request(options)
7317
7593
  end
7318
7594
 
7319
- # Returns information about all completed key material rotations for the
7320
- # specified KMS key.
7595
+ # Returns information about the key materials associated with the
7596
+ # specified KMS key. You can use the optional `IncludeKeyMaterial`
7597
+ # parameter to control which key materials are included in the response.
7321
7598
  #
7322
7599
  # You must specify the KMS key in all requests. You can refine the key
7323
7600
  # rotations list by limiting the number of rotations returned.
7324
7601
  #
7325
7602
  # For detailed information about automatic and on-demand key rotations,
7326
- # see [Rotating KMS keys][1] in the *Key Management Service Developer
7603
+ # see [Rotate KMS keys][1] in the *Key Management Service Developer
7327
7604
  # Guide*.
7328
7605
  #
7329
7606
  # **Cross-account use**: No. You cannot perform this operation on a KMS
@@ -7335,10 +7612,14 @@ module Aws::KMS
7335
7612
  #
7336
7613
  # * EnableKeyRotation
7337
7614
  #
7615
+ # * DeleteImportedKeyMaterial
7616
+ #
7338
7617
  # * DisableKeyRotation
7339
7618
  #
7340
7619
  # * GetKeyRotationStatus
7341
7620
  #
7621
+ # * ImportKeyMaterial
7622
+ #
7342
7623
  # * RotateKeyOnDemand
7343
7624
  #
7344
7625
  # **Eventual consistency**: The KMS API follows an eventual consistency
@@ -7348,7 +7629,7 @@ module Aws::KMS
7348
7629
  #
7349
7630
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
7350
7631
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7351
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
7632
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
7352
7633
  #
7353
7634
  # @option params [required, String] :key_id
7354
7635
  # Gets the key rotations for the specified KMS key.
@@ -7365,6 +7646,16 @@ module Aws::KMS
7365
7646
  # To get the key ID and key ARN for a KMS key, use ListKeys or
7366
7647
  # DescribeKey.
7367
7648
  #
7649
+ # @option params [String] :include_key_material
7650
+ # Use this optional parameter to control which key materials associated
7651
+ # with this key are listed in the response. The default value of this
7652
+ # parameter is `ROTATIONS_ONLY`. If you omit this parameter, KMS returns
7653
+ # information on the key materials created by automatic or on-demand key
7654
+ # rotation. When you specify a value of `ALL_KEY_MATERIAL`, KMS adds the
7655
+ # first key material and any imported key material pending rotation to
7656
+ # the response. This parameter can only be used with KMS keys that
7657
+ # support automatic or on-demand key rotation.
7658
+ #
7368
7659
  # @option params [Integer] :limit
7369
7660
  # Use this parameter to specify the maximum number of items to return.
7370
7661
  # When this value is present, KMS does not return more than the
@@ -7417,6 +7708,7 @@ module Aws::KMS
7417
7708
  #
7418
7709
  # resp = client.list_key_rotations({
7419
7710
  # key_id: "KeyIdType", # required
7711
+ # include_key_material: "ALL_KEY_MATERIAL", # accepts ALL_KEY_MATERIAL, ROTATIONS_ONLY
7420
7712
  # limit: 1,
7421
7713
  # marker: "MarkerType",
7422
7714
  # })
@@ -7425,6 +7717,12 @@ module Aws::KMS
7425
7717
  #
7426
7718
  # resp.rotations #=> Array
7427
7719
  # resp.rotations[0].key_id #=> String
7720
+ # resp.rotations[0].key_material_id #=> String
7721
+ # resp.rotations[0].key_material_description #=> String
7722
+ # resp.rotations[0].import_state #=> String, one of "IMPORTED", "PENDING_IMPORT"
7723
+ # resp.rotations[0].key_material_state #=> String, one of "NON_CURRENT", "CURRENT", "PENDING_ROTATION", "PENDING_MULTI_REGION_IMPORT_AND_ROTATION"
7724
+ # resp.rotations[0].expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
7725
+ # resp.rotations[0].valid_to #=> Time
7428
7726
  # resp.rotations[0].rotation_date #=> Time
7429
7727
  # resp.rotations[0].rotation_type #=> String, one of "AUTOMATIC", "ON_DEMAND"
7430
7728
  # resp.next_marker #=> String
@@ -7463,7 +7761,7 @@ module Aws::KMS
7463
7761
  #
7464
7762
  #
7465
7763
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7466
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
7764
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
7467
7765
  #
7468
7766
  # @option params [Integer] :limit
7469
7767
  # Use this parameter to specify the maximum number of items to return.
@@ -7559,7 +7857,7 @@ module Aws::KMS
7559
7857
  # For general information about tags, including the format and syntax,
7560
7858
  # see [Tagging Amazon Web Services resources][1] in the *Amazon Web
7561
7859
  # Services General Reference*. For information about using tags in KMS,
7562
- # see [Tagging keys][2].
7860
+ # see [Tags in KMS][2].
7563
7861
  #
7564
7862
  # **Cross-account use**: No. You cannot perform this operation on a KMS
7565
7863
  # key in a different Amazon Web Services account.
@@ -7584,7 +7882,7 @@ module Aws::KMS
7584
7882
  # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
7585
7883
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
7586
7884
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7587
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
7885
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
7588
7886
  #
7589
7887
  # @option params [required, String] :key_id
7590
7888
  # Gets tags on the specified KMS key.
@@ -7689,8 +7987,9 @@ module Aws::KMS
7689
7987
  #
7690
7988
  # For detailed information about grants, including grant terminology,
7691
7989
  # see [Grants in KMS][1] in the <i> <i>Key Management Service Developer
7692
- # Guide</i> </i>. For examples of working with grants in several
7693
- # programming languages, see [Programming grants][2].
7990
+ # Guide</i> </i>. For examples of creating grants in several programming
7991
+ # languages, see [Use CreateGrant with an Amazon Web Services SDK or
7992
+ # CLI][2].
7694
7993
  #
7695
7994
  # **Cross-account use**: You must specify a principal in your Amazon Web
7696
7995
  # Services account. This operation returns a list of grants where the
@@ -7728,9 +8027,9 @@ module Aws::KMS
7728
8027
  #
7729
8028
  #
7730
8029
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
7731
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html
8030
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html
7732
8031
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7733
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
8032
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
7734
8033
  #
7735
8034
  # @option params [Integer] :limit
7736
8035
  # Use this parameter to specify the maximum number of items to return.
@@ -7840,8 +8139,9 @@ module Aws::KMS
7840
8139
  # formatting a JSON policy document, see the [IAM JSON Policy
7841
8140
  # Reference][2] in the <i> <i>Identity and Access Management User
7842
8141
  # Guide</i> </i>. For examples of adding a key policy in multiple
7843
- # programming languages, see [Setting a key policy][3] in the *Key
7844
- # Management Service Developer Guide*.
8142
+ # programming languages, see [Use PutKeyPolicy with an Amazon Web
8143
+ # Services SDK or CLI][3] in the *Key Management Service Developer
8144
+ # Guide*.
7845
8145
  #
7846
8146
  # **Cross-account use**: No. You cannot perform this operation on a KMS
7847
8147
  # key in a different Amazon Web Services account.
@@ -7857,9 +8157,9 @@ module Aws::KMS
7857
8157
  #
7858
8158
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
7859
8159
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
7860
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-key-policies.html#put-policy
8160
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_PutKeyPolicy_section.html
7861
8161
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7862
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
8162
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
7863
8163
  #
7864
8164
  # @option params [required, String] :key_id
7865
8165
  # Sets the key policy on the specified KMS key.
@@ -7900,6 +8200,17 @@ module Aws::KMS
7900
8200
  # not always immediately visible][2] in the *Amazon Web Services
7901
8201
  # Identity and Access Management User Guide*.
7902
8202
  #
8203
+ # <note markdown="1"> If either of the required `Resource` or `Action` elements are missing
8204
+ # from a key policy statement, the policy statement has no effect. When
8205
+ # a key policy statement is missing one of these elements, the KMS
8206
+ # console correctly reports an error, but the `PutKeyPolicy` API request
8207
+ # succeeds, even though the policy statement is ineffective.
8208
+ #
8209
+ # For more information on required key policy elements, see [Elements in
8210
+ # a key policy][3] in the *Key Management Service Developer Guide*.
8211
+ #
8212
+ # </note>
8213
+ #
7903
8214
  # A key policy document can include only the following characters:
7904
8215
  #
7905
8216
  # * Printable ASCII characters from the space character (`\u0020`)
@@ -7911,18 +8222,24 @@ module Aws::KMS
7911
8222
  # * The tab (`\u0009`), line feed (`\u000A`), and carriage return
7912
8223
  # (`\u000D`) special characters
7913
8224
  #
7914
- # For information about key policies, see [Key policies in KMS][3] in
8225
+ # <note markdown="1"> If the key policy exceeds the length constraint, KMS returns a
8226
+ # `LimitExceededException`.
8227
+ #
8228
+ # </note>
8229
+ #
8230
+ # For information about key policies, see [Key policies in KMS][4] in
7915
8231
  # the *Key Management Service Developer Guide*.For help writing and
7916
8232
  # formatting a JSON policy document, see the [IAM JSON Policy
7917
- # Reference][4] in the <i> <i>Identity and Access Management User
8233
+ # Reference][5] in the <i> <i>Identity and Access Management User
7918
8234
  # Guide</i> </i>.
7919
8235
  #
7920
8236
  #
7921
8237
  #
7922
8238
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
7923
8239
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
7924
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
7925
- # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
8240
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html#key-policy-elements
8241
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
8242
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
7926
8243
  #
7927
8244
  # @option params [Boolean] :bypass_policy_lockout_safety_check
7928
8245
  # Skips ("bypasses") the key policy lockout safety check. The default
@@ -8071,15 +8388,15 @@ module Aws::KMS
8071
8388
  #
8072
8389
  #
8073
8390
  #
8074
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-manually
8075
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
8076
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks
8391
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys-manually.html
8392
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
8393
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
8077
8394
  # [4]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
8078
8395
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
8079
8396
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
8080
8397
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
8081
8398
  # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
8082
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
8399
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
8083
8400
  #
8084
8401
  # @option params [required, String, StringIO, File] :ciphertext_blob
8085
8402
  # Ciphertext of the data to reencrypt.
@@ -8102,7 +8419,7 @@ module Aws::KMS
8102
8419
  #
8103
8420
  #
8104
8421
  #
8105
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
8422
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
8106
8423
  #
8107
8424
  # @option params [String] :source_key_id
8108
8425
  # Specifies the KMS key that KMS will use to decrypt the ciphertext
@@ -8188,7 +8505,7 @@ module Aws::KMS
8188
8505
  #
8189
8506
  #
8190
8507
  #
8191
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
8508
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html
8192
8509
  #
8193
8510
  # @option params [String] :source_encryption_algorithm
8194
8511
  # Specifies the encryption algorithm that KMS will use to decrypt the
@@ -8222,18 +8539,18 @@ module Aws::KMS
8222
8539
  #
8223
8540
  #
8224
8541
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
8225
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
8542
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
8226
8543
  #
8227
8544
  # @option params [Boolean] :dry_run
8228
8545
  # Checks if your request will succeed. `DryRun` is an optional
8229
8546
  # parameter.
8230
8547
  #
8231
- # To learn more about how to use this parameter, see [Testing your KMS
8232
- # API calls][1] in the *Key Management Service Developer Guide*.
8548
+ # To learn more about how to use this parameter, see [Testing your
8549
+ # permissions][1] in the *Key Management Service Developer Guide*.
8233
8550
  #
8234
8551
  #
8235
8552
  #
8236
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
8553
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
8237
8554
  #
8238
8555
  # @return [Types::ReEncryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
8239
8556
  #
@@ -8242,6 +8559,8 @@ module Aws::KMS
8242
8559
  # * {Types::ReEncryptResponse#key_id #key_id} => String
8243
8560
  # * {Types::ReEncryptResponse#source_encryption_algorithm #source_encryption_algorithm} => String
8244
8561
  # * {Types::ReEncryptResponse#destination_encryption_algorithm #destination_encryption_algorithm} => String
8562
+ # * {Types::ReEncryptResponse#source_key_material_id #source_key_material_id} => String
8563
+ # * {Types::ReEncryptResponse#destination_key_material_id #destination_key_material_id} => String
8245
8564
  #
8246
8565
  #
8247
8566
  # @example Example: To reencrypt data
@@ -8256,8 +8575,12 @@ module Aws::KMS
8256
8575
  # resp.to_h outputs the following:
8257
8576
  # {
8258
8577
  # ciphertext_blob: "<binary data>", # The reencrypted data.
8578
+ # destination_encryption_algorithm: "SYMMETRIC_DEFAULT", # The encryption algorithm that was used to reencrypt the data.
8579
+ # destination_key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", # The identifier of the key material used to reencrypt the data.
8259
8580
  # key_id: "arn:aws:kms:us-east-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", # The ARN of the KMS key that was used to reencrypt the data.
8581
+ # source_encryption_algorithm: "SYMMETRIC_DEFAULT", # The encryption algorithm that was used to decrypt the ciphertext before it was reencrypted.
8260
8582
  # source_key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that was originally used to encrypt the data.
8583
+ # source_key_material_id: "1c6be7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", # The identifier of the key material used to originally encrypt the data.
8261
8584
  # }
8262
8585
  #
8263
8586
  # @example Request syntax with placeholder values
@@ -8285,6 +8608,8 @@ module Aws::KMS
8285
8608
  # resp.key_id #=> String
8286
8609
  # resp.source_encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
8287
8610
  # resp.destination_encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
8611
+ # resp.source_key_material_id #=> String
8612
+ # resp.destination_key_material_id #=> String
8288
8613
  #
8289
8614
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncrypt AWS API Documentation
8290
8615
  #
@@ -8316,12 +8641,12 @@ module Aws::KMS
8316
8641
  # independently of its primary and peer replica keys. A primary key and
8317
8642
  # its replica keys share properties that make them interoperable. They
8318
8643
  # have the same [key ID][2] and key material. They also have the same
8319
- # [key spec][3], [key usage][4], [key material origin][5], and
8320
- # [automatic key rotation status][6]. KMS automatically synchronizes
8321
- # these shared properties among related multi-Region keys. All other
8322
- # properties of a replica key can differ, including its [key policy][7],
8323
- # [tags][8], [aliases][9], and [Key states of KMS keys][10]. KMS pricing
8324
- # and quotas for KMS keys apply to each primary key and replica key.
8644
+ # key spec, key usage, key material origin, and automatic key rotation
8645
+ # status. KMS automatically synchronizes these shared properties among
8646
+ # related multi-Region keys. All other properties of a replica key can
8647
+ # differ, including its [key policy][3], [tags][4], [aliases][5], and
8648
+ # [key state][6]. KMS pricing and quotas for KMS keys apply to each
8649
+ # primary key and replica key.
8325
8650
  #
8326
8651
  # When this operation completes, the new replica key has a transient key
8327
8652
  # state of `Creating`. This key state changes to `Enabled` (or
@@ -8331,7 +8656,7 @@ module Aws::KMS
8331
8656
  # If you are creating and using the replica key programmatically, retry
8332
8657
  # on `KMSInvalidStateException` or call `DescribeKey` to check its
8333
8658
  # `KeyState` value before using it. For details about the `Creating` key
8334
- # state, see [Key states of KMS keys][10] in the *Key Management Service
8659
+ # state, see [Key states of KMS keys][6] in the *Key Management Service
8335
8660
  # Developer Guide*.
8336
8661
  #
8337
8662
  # You cannot create more than one replica of a primary key in any
@@ -8340,7 +8665,7 @@ module Aws::KMS
8340
8665
  # `AlreadyExistsException` error. If the key state of the existing
8341
8666
  # replica is `PendingDeletion`, you can cancel the scheduled key
8342
8667
  # deletion (CancelKeyDeletion) or wait for the key to be deleted. The
8343
- # new replica key you create will have the same [shared properties][11]
8668
+ # new replica key you create will have the same [shared properties][7]
8344
8669
  # as the original replica key.
8345
8670
  #
8346
8671
  # The CloudTrail log of a `ReplicateKey` operation records a
@@ -8350,8 +8675,6 @@ module Aws::KMS
8350
8675
  # If you replicate a multi-Region primary key with imported key
8351
8676
  # material, the replica key is created with no key material. You must
8352
8677
  # import the same key material that you imported into the primary key.
8353
- # For details, see [Importing key material into multi-Region keys][12]
8354
- # in the *Key Management Service Developer Guide*.
8355
8678
  #
8356
8679
  # To convert a replica key to a primary key, use the UpdatePrimaryRegion
8357
8680
  # operation.
@@ -8382,23 +8705,18 @@ module Aws::KMS
8382
8705
  # * UpdatePrimaryRegion
8383
8706
  #
8384
8707
  # **Eventual consistency**: The KMS API follows an eventual consistency
8385
- # model. For more information, see [KMS eventual consistency][13].
8708
+ # model. For more information, see [KMS eventual consistency][8].
8386
8709
  #
8387
8710
  #
8388
8711
  #
8389
8712
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
8390
8713
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id
8391
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-spec
8392
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-usage
8393
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-origin
8394
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
8395
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
8396
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
8397
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html
8398
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
8399
- # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-sync-properties
8400
- # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-import.html
8401
- # [13]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
8714
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
8715
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
8716
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html
8717
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
8718
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-sync-properties
8719
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
8402
8720
  #
8403
8721
  # @option params [required, String] :key_id
8404
8722
  # Identifies the multi-Region primary key that is being replicated. To
@@ -8426,33 +8744,23 @@ module Aws::KMS
8426
8744
  # [KMS service endpoints][1] in the *Amazon Web Services General
8427
8745
  # Reference*.
8428
8746
  #
8429
- # <note markdown="1"> HMAC KMS keys are not supported in all Amazon Web Services Regions. If
8430
- # you try to replicate an HMAC KMS key in an Amazon Web Services Region
8431
- # in which HMAC keys are not supported, the `ReplicateKey` operation
8432
- # returns an `UnsupportedOperationException`. For a list of Regions in
8433
- # which HMAC KMS keys are supported, see [HMAC keys in KMS][2] in the
8434
- # *Key Management Service Developer Guide*.
8435
- #
8436
- # </note>
8437
- #
8438
8747
  # The replica must be in a different Amazon Web Services Region than its
8439
8748
  # primary key and other replicas of that primary key, but in the same
8440
8749
  # Amazon Web Services partition. KMS must be available in the replica
8441
8750
  # Region. If the Region is not enabled by default, the Amazon Web
8442
8751
  # Services account must be enabled in the Region. For information about
8443
- # Amazon Web Services partitions, see [Amazon Resource Names (ARNs)][3]
8752
+ # Amazon Web Services partitions, see [Amazon Resource Names (ARNs)][2]
8444
8753
  # in the *Amazon Web Services General Reference*. For information about
8445
- # enabling and disabling Regions, see [Enabling a Region][4] and
8446
- # [Disabling a Region][5] in the *Amazon Web Services General
8754
+ # enabling and disabling Regions, see [Enabling a Region][3] and
8755
+ # [Disabling a Region][4] in the *Amazon Web Services General
8447
8756
  # Reference*.
8448
8757
  #
8449
8758
  #
8450
8759
  #
8451
8760
  # [1]: https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region
8452
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
8453
- # [3]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
8454
- # [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable
8455
- # [5]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable
8761
+ # [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
8762
+ # [3]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable
8763
+ # [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable
8456
8764
  #
8457
8765
  # @option params [String] :policy
8458
8766
  # The key policy to attach to the KMS key. This parameter is optional.
@@ -8500,7 +8808,7 @@ module Aws::KMS
8500
8808
  #
8501
8809
  #
8502
8810
  #
8503
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
8811
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html
8504
8812
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
8505
8813
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
8506
8814
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
@@ -8569,7 +8877,7 @@ module Aws::KMS
8569
8877
  # When you add tags to an Amazon Web Services resource, Amazon Web
8570
8878
  # Services generates a cost allocation report with usage and costs
8571
8879
  # aggregated by tags. Tags can also be used to control access to a KMS
8572
- # key. For details, see [Tagging Keys][3].
8880
+ # key. For details, see [Tags in KMS][3].
8573
8881
  #
8574
8882
  #
8575
8883
  #
@@ -8664,11 +8972,11 @@ module Aws::KMS
8664
8972
  # resp.replica_key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
8665
8973
  # resp.replica_key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
8666
8974
  # resp.replica_key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
8667
- # resp.replica_key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
8975
+ # resp.replica_key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519"
8668
8976
  # resp.replica_key_metadata.encryption_algorithms #=> Array
8669
8977
  # resp.replica_key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
8670
8978
  # resp.replica_key_metadata.signing_algorithms #=> Array
8671
- # resp.replica_key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA"
8979
+ # resp.replica_key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
8672
8980
  # resp.replica_key_metadata.key_agreement_algorithms #=> Array
8673
8981
  # resp.replica_key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH"
8674
8982
  # resp.replica_key_metadata.multi_region #=> Boolean
@@ -8682,6 +8990,7 @@ module Aws::KMS
8682
8990
  # resp.replica_key_metadata.mac_algorithms #=> Array
8683
8991
  # resp.replica_key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
8684
8992
  # resp.replica_key_metadata.xks_key_configuration.id #=> String
8993
+ # resp.replica_key_metadata.current_key_material_id #=> String
8685
8994
  # resp.replica_policy #=> String
8686
8995
  # resp.replica_tags #=> Array
8687
8996
  # resp.replica_tags[0].tag_key #=> String
@@ -8705,20 +9014,20 @@ module Aws::KMS
8705
9014
  # by the *grantee principal* if the grant allows the `RetireGrant`
8706
9015
  # operation, and by the Amazon Web Services account in which the grant
8707
9016
  # is created. It can also be called by principals to whom permission for
8708
- # retiring a grant is delegated. For details, see [Retiring and revoking
8709
- # grants][2] in the *Key Management Service Developer Guide*.
9017
+ # retiring a grant is delegated.
8710
9018
  #
8711
9019
  # For detailed information about grants, including grant terminology,
8712
- # see [Grants in KMS][3] in the <i> <i>Key Management Service Developer
8713
- # Guide</i> </i>. For examples of working with grants in several
8714
- # programming languages, see [Programming grants][4].
9020
+ # see [Grants in KMS][2] in the <i> <i>Key Management Service Developer
9021
+ # Guide</i> </i>. For examples of creating grants in several programming
9022
+ # languages, see [Use CreateGrant with an Amazon Web Services SDK or
9023
+ # CLI][3].
8715
9024
  #
8716
9025
  # **Cross-account use**: Yes. You can retire a grant on a KMS key in a
8717
9026
  # different Amazon Web Services account.
8718
9027
  #
8719
9028
  # **Required permissions**: Permission to retire a grant is determined
8720
9029
  # primarily by the grant. For details, see [Retiring and revoking
8721
- # grants][2] in the *Key Management Service Developer Guide*.
9030
+ # grants][4] in the *Key Management Service Developer Guide*.
8722
9031
  #
8723
9032
  # **Related operations:**
8724
9033
  #
@@ -8736,10 +9045,10 @@ module Aws::KMS
8736
9045
  #
8737
9046
  #
8738
9047
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
8739
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete
8740
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
8741
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html
8742
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
9048
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
9049
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html
9050
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-delete.html
9051
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
8743
9052
  #
8744
9053
  # @option params [String] :grant_token
8745
9054
  # Identifies the grant to be retired. You can use a grant token to
@@ -8774,12 +9083,12 @@ module Aws::KMS
8774
9083
  # Checks if your request will succeed. `DryRun` is an optional
8775
9084
  # parameter.
8776
9085
  #
8777
- # To learn more about how to use this parameter, see [Testing your KMS
8778
- # API calls][1] in the *Key Management Service Developer Guide*.
9086
+ # To learn more about how to use this parameter, see [Testing your
9087
+ # permissions][1] in the *Key Management Service Developer Guide*.
8779
9088
  #
8780
9089
  #
8781
9090
  #
8782
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
9091
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
8783
9092
  #
8784
9093
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
8785
9094
  #
@@ -8824,8 +9133,9 @@ module Aws::KMS
8824
9133
  #
8825
9134
  # For detailed information about grants, including grant terminology,
8826
9135
  # see [Grants in KMS][3] in the <i> <i>Key Management Service Developer
8827
- # Guide</i> </i>. For examples of working with grants in several
8828
- # programming languages, see [Programming grants][4].
9136
+ # Guide</i> </i>. For examples of creating grants in several programming
9137
+ # languages, see [Use CreateGrant with an Amazon Web Services SDK or
9138
+ # CLI][4].
8829
9139
  #
8830
9140
  # **Cross-account use**: Yes. To perform this operation on a KMS key in
8831
9141
  # a different Amazon Web Services account, specify the key ARN in the
@@ -8848,12 +9158,12 @@ module Aws::KMS
8848
9158
  #
8849
9159
  #
8850
9160
  #
8851
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete
9161
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-delete.html
8852
9162
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-eventual-consistency
8853
9163
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
8854
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html
9164
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html
8855
9165
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
8856
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
9166
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
8857
9167
  #
8858
9168
  # @option params [required, String] :key_id
8859
9169
  # A unique identifier for the KMS key associated with the grant. To get
@@ -8880,12 +9190,12 @@ module Aws::KMS
8880
9190
  # Checks if your request will succeed. `DryRun` is an optional
8881
9191
  # parameter.
8882
9192
  #
8883
- # To learn more about how to use this parameter, see [Testing your KMS
8884
- # API calls][1] in the *Key Management Service Developer Guide*.
9193
+ # To learn more about how to use this parameter, see [Testing your
9194
+ # permissions][1] in the *Key Management Service Developer Guide*.
8885
9195
  #
8886
9196
  #
8887
9197
  #
8888
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
9198
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
8889
9199
  #
8890
9200
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
8891
9201
  #
@@ -8941,27 +9251,33 @@ module Aws::KMS
8941
9251
  # of the key material for your KMS keys in CloudTrail and Amazon
8942
9252
  # CloudWatch.
8943
9253
  #
8944
- # On-demand key rotation is supported only on [symmetric encryption KMS
8945
- # keys][3]. You cannot perform on-demand rotation of [asymmetric KMS
8946
- # keys][4], [HMAC KMS keys][5], KMS keys with [imported key
8947
- # material][6], or KMS keys in a [custom key store][7]. To perform
8948
- # on-demand rotation of a set of related [multi-Region keys][8], invoke
8949
- # the on-demand rotation on the primary key.
9254
+ # On-demand key rotation is supported only on symmetric encryption KMS
9255
+ # keys. You cannot perform on-demand rotation of [asymmetric KMS
9256
+ # keys][3], [HMAC KMS keys][4], or KMS keys in a [custom key store][5].
9257
+ # When you initiate on-demand key rotation on a symmetric encryption KMS
9258
+ # key with imported key material, you must have already imported [new
9259
+ # key material][6] and that key material's state should be
9260
+ # `PENDING_ROTATION`. Use the `ListKeyRotations` operation to check the
9261
+ # state of all key materials associated with a KMS key. To perform
9262
+ # on-demand rotation of a set of related [multi-Region keys][7], import
9263
+ # new key material in the primary Region key, import the same key
9264
+ # material in each replica Region key, and invoke the on-demand rotation
9265
+ # on the primary Region key.
8950
9266
  #
8951
9267
  # You cannot initiate on-demand rotation of [Amazon Web Services managed
8952
- # KMS keys][9]. KMS always rotates the key material of Amazon Web
9268
+ # KMS keys][8]. KMS always rotates the key material of Amazon Web
8953
9269
  # Services managed keys every year. Rotation of [Amazon Web Services
8954
- # owned KMS keys][10] is managed by the Amazon Web Services service that
9270
+ # owned KMS keys][9] is managed by the Amazon Web Services service that
8955
9271
  # owns the key.
8956
9272
  #
8957
9273
  # The KMS key that you use for this operation must be in a compatible
8958
- # key state. For details, see [Key states of KMS keys][11] in the *Key
9274
+ # key state. For details, see [Key states of KMS keys][10] in the *Key
8959
9275
  # Management Service Developer Guide*.
8960
9276
  #
8961
9277
  # **Cross-account use**: No. You cannot perform this operation on a KMS
8962
9278
  # key in a different Amazon Web Services account.
8963
9279
  #
8964
- # **Required permissions**: [kms:RotateKeyOnDemand][12] (key policy)
9280
+ # **Required permissions**: [kms:RotateKeyOnDemand][11] (key policy)
8965
9281
  #
8966
9282
  # **Related operations:**
8967
9283
  #
@@ -8971,34 +9287,35 @@ module Aws::KMS
8971
9287
  #
8972
9288
  # * GetKeyRotationStatus
8973
9289
  #
9290
+ # * ImportKeyMaterial
9291
+ #
8974
9292
  # * ListKeyRotations
8975
9293
  #
8976
9294
  # **Eventual consistency**: The KMS API follows an eventual consistency
8977
- # model. For more information, see [KMS eventual consistency][13].
9295
+ # model. For more information, see [KMS eventual consistency][12].
8978
9296
  #
8979
9297
  #
8980
9298
  #
8981
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-on-demand
8982
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-enable-disable
8983
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks
8984
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
8985
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
8986
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
8987
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
8988
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
8989
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
8990
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
8991
- # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
8992
- # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
8993
- # [13]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
9299
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-on-demand.html
9300
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html
9301
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
9302
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
9303
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
9304
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html
9305
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
9306
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
9307
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key
9308
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9309
+ # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9310
+ # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
8994
9311
  #
8995
9312
  # @option params [required, String] :key_id
8996
9313
  # Identifies a symmetric encryption KMS key. You cannot perform
8997
9314
  # on-demand rotation of [asymmetric KMS keys][1], [HMAC KMS keys][2],
8998
- # KMS keys with [imported key material][3], or KMS keys in a [custom key
8999
- # store][4]. To perform on-demand rotation of a set of related
9000
- # [multi-Region keys][5], invoke the on-demand rotation on the primary
9001
- # key.
9315
+ # multi-Region KMS keys with [imported key material][3], or KMS keys in
9316
+ # a [custom key store][4]. To perform on-demand rotation of a set of
9317
+ # related [multi-Region keys][5], invoke the on-demand rotation on the
9318
+ # primary key.
9002
9319
  #
9003
9320
  # Specify the key ID or key ARN of the KMS key.
9004
9321
  #
@@ -9017,8 +9334,8 @@ module Aws::KMS
9017
9334
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
9018
9335
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
9019
9336
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
9020
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
9021
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
9337
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
9338
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate
9022
9339
  #
9023
9340
  # @return [Types::RotateKeyOnDemandResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9024
9341
  #
@@ -9072,9 +9389,8 @@ module Aws::KMS
9072
9389
  # operation. When a KMS key is deleted, all data that was encrypted
9073
9390
  # under the KMS key is unrecoverable. (The only exception is a
9074
9391
  # [multi-Region replica key][1], or an [asymmetric or HMAC KMS key with
9075
- # imported key
9076
- # material](kms/latest/developerguide/importing-keys-managing.html#import-delete-key).)
9077
- # To prevent the use of a KMS key without deleting it, use DisableKey.
9392
+ # imported key material][2].) To prevent the use of a KMS key without
9393
+ # deleting it, use DisableKey.
9078
9394
  #
9079
9395
  # You can schedule the deletion of a multi-Region primary key and its
9080
9396
  # replica keys at any time. However, KMS will not delete a multi-Region
@@ -9085,13 +9401,13 @@ module Aws::KMS
9085
9401
  # the last of its replicas keys is deleted (not just scheduled), the key
9086
9402
  # state of the primary key changes to `PendingDeletion` and its waiting
9087
9403
  # period (`PendingWindowInDays`) begins. For details, see [Deleting
9088
- # multi-Region keys][1] in the *Key Management Service Developer Guide*.
9404
+ # multi-Region keys][3] in the *Key Management Service Developer Guide*.
9089
9405
  #
9090
- # When KMS [deletes a KMS key from an CloudHSM key store][2], it makes a
9406
+ # When KMS [deletes a KMS key from an CloudHSM key store][4], it makes a
9091
9407
  # best effort to delete the associated key material from the associated
9092
9408
  # CloudHSM cluster. However, you might need to manually [delete the
9093
- # orphaned key material][3] from the cluster and its backups. [Deleting
9094
- # a KMS key from an external key store][4] has no effect on the
9409
+ # orphaned key material][5] from the cluster and its backups. [Deleting
9410
+ # a KMS key from an external key store][6] has no effect on the
9095
9411
  # associated external key. However, for both types of custom key stores,
9096
9412
  # deleting a KMS key is destructive and irreversible. You cannot decrypt
9097
9413
  # ciphertext encrypted under the KMS key by using only its associated
@@ -9100,11 +9416,11 @@ module Aws::KMS
9100
9416
  # material.
9101
9417
  #
9102
9418
  # For more information about scheduling a KMS key for deletion, see
9103
- # [Deleting KMS keys][5] in the *Key Management Service Developer
9419
+ # [Deleting KMS keys][7] in the *Key Management Service Developer
9104
9420
  # Guide*.
9105
9421
  #
9106
9422
  # The KMS key that you use for this operation must be in a compatible
9107
- # key state. For details, see [Key states of KMS keys][6] in the *Key
9423
+ # key state. For details, see [Key states of KMS keys][8] in the *Key
9108
9424
  # Management Service Developer Guide*.
9109
9425
  #
9110
9426
  # **Cross-account use**: No. You cannot perform this operation on a KMS
@@ -9119,17 +9435,19 @@ module Aws::KMS
9119
9435
  # * DisableKey
9120
9436
  #
9121
9437
  # **Eventual consistency**: The KMS API follows an eventual consistency
9122
- # model. For more information, see [KMS eventual consistency][7].
9438
+ # model. For more information, see [KMS eventual consistency][9].
9123
9439
  #
9124
9440
  #
9125
9441
  #
9126
9442
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html
9127
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/delete-cmk-keystore.html
9128
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key
9129
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/delete-xks-key.html
9130
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html
9131
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9132
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
9443
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#import-delete-key
9444
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-mrks
9445
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#delete-cmk-keystore
9446
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key
9447
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#delete-xks-key
9448
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html
9449
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9450
+ # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
9133
9451
  #
9134
9452
  # @option params [required, String] :key_id
9135
9453
  # The unique identifier of the KMS key to delete.
@@ -9218,11 +9536,11 @@ module Aws::KMS
9218
9536
  # Developer Guide*.
9219
9537
  #
9220
9538
  # Digital signatures are generated and verified by using asymmetric key
9221
- # pair, such as an RSA or ECC pair that is represented by an asymmetric
9222
- # KMS key. The key owner (or an authorized user) uses their private key
9223
- # to sign a message. Anyone with the public key can verify that the
9224
- # message was signed with that particular private key and that the
9225
- # message hasn't changed since it was signed.
9539
+ # pair, such as an RSA, ECC, or ML-DSA pair that is represented by an
9540
+ # asymmetric KMS key. The key owner (or an authorized user) uses their
9541
+ # private key to sign a message. Anyone with the public key can verify
9542
+ # that the message was signed with that particular private key and that
9543
+ # the message hasn't changed since it was signed.
9226
9544
  #
9227
9545
  # To use the `Sign` operation, provide the following information:
9228
9546
  #
@@ -9235,8 +9553,8 @@ module Aws::KMS
9235
9553
  # to sign. You can submit messages of up to 4096 bytes. To sign a
9236
9554
  # larger message, generate a hash digest of the message, and then
9237
9555
  # provide the hash digest in the `Message` parameter. To indicate
9238
- # whether the message is a full message or a digest, use the
9239
- # `MessageType` parameter.
9556
+ # whether the message is a full message, a digest, or an ML-DSA
9557
+ # EXTERNAL\_MU, use the `MessageType` parameter.
9240
9558
  #
9241
9559
  # * Choose a signing algorithm that is compatible with the KMS key.
9242
9560
  #
@@ -9278,7 +9596,7 @@ module Aws::KMS
9278
9596
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
9279
9597
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9280
9598
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9281
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
9599
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
9282
9600
  #
9283
9601
  # @option params [required, String] :key_id
9284
9602
  # Identifies an asymmetric KMS key. KMS uses the private key in the
@@ -9316,26 +9634,41 @@ module Aws::KMS
9316
9634
  # @option params [String] :message_type
9317
9635
  # Tells KMS whether the value of the `Message` parameter should be
9318
9636
  # hashed as part of the signing algorithm. Use `RAW` for unhashed
9319
- # messages; use `DIGEST` for message digests, which are already hashed.
9637
+ # messages; use `DIGEST` for message digests, which are already hashed;
9638
+ # use `EXTERNAL_MU` for 64-byte representative μ used in ML-DSA signing
9639
+ # as defined in NIST FIPS 204 Section 6.2.
9320
9640
  #
9321
9641
  # When the value of `MessageType` is `RAW`, KMS uses the standard
9322
9642
  # signing algorithm, which begins with a hash function. When the value
9323
- # is `DIGEST`, KMS skips the hashing step in the signing algorithm.
9643
+ # is `DIGEST`, KMS skips the hashing step in the signing algorithm. When
9644
+ # the value is `EXTERNAL_MU` KMS skips the concatenated hashing of the
9645
+ # public key hash and the message done in the ML-DSA signing algorithm.
9324
9646
  #
9325
- # Use the `DIGEST` value only when the value of the `Message` parameter
9326
- # is a message digest. If you use the `DIGEST` value with an unhashed
9327
- # message, the security of the signing operation can be compromised.
9647
+ # Use the `DIGEST` or `EXTERNAL_MU` value only when the value of the
9648
+ # `Message` parameter is a message digest. If you use the `DIGEST` value
9649
+ # with an unhashed message, the security of the signing operation can be
9650
+ # compromised.
9328
9651
  #
9329
- # When the value of `MessageType`is `DIGEST`, the length of the
9652
+ # When using ECC\_NIST\_EDWARDS25519 KMS keys:
9653
+ #
9654
+ # * ED25519\_SHA\_512 signing algorithm requires KMS `MessageType:RAW`
9655
+ #
9656
+ # * ED25519\_PH\_SHA\_512 signing algorithm requires KMS
9657
+ # `MessageType:DIGEST`
9658
+ #
9659
+ # When the value of `MessageType` is `DIGEST`, the length of the
9330
9660
  # `Message` value must match the length of hashed messages for the
9331
9661
  # specified signing algorithm.
9332
9662
  #
9663
+ # When the value of `MessageType` is `EXTERNAL_MU` the length of the
9664
+ # `Message` value must be 64 bytes.
9665
+ #
9333
9666
  # You can submit a message digest and omit the `MessageType` or specify
9334
9667
  # `RAW` so the digest is hashed again while signing. However, this can
9335
9668
  # cause verification failures when verifying with a system that assumes
9336
9669
  # a single hash.
9337
9670
  #
9338
- # The hashing algorithm in that `Sign` uses is based on the
9671
+ # The hashing algorithm that `Sign` uses is based on the
9339
9672
  # `SigningAlgorithm` value.
9340
9673
  #
9341
9674
  # * Signing algorithms that end in SHA\_256 use the SHA\_256 hashing
@@ -9347,12 +9680,15 @@ module Aws::KMS
9347
9680
  # * Signing algorithms that end in SHA\_512 use the SHA\_512 hashing
9348
9681
  # algorithm.
9349
9682
  #
9683
+ # * Signing algorithms that end in SHAKE\_256 use the SHAKE\_256 hashing
9684
+ # algorithm.
9685
+ #
9350
9686
  # * SM2DSA uses the SM3 hashing algorithm. For details, see [Offline
9351
9687
  # verification with SM2 key pairs][1].
9352
9688
  #
9353
9689
  #
9354
9690
  #
9355
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
9691
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification
9356
9692
  #
9357
9693
  # @option params [Array<String>] :grant_tokens
9358
9694
  # A list of grant tokens.
@@ -9365,7 +9701,7 @@ module Aws::KMS
9365
9701
  #
9366
9702
  #
9367
9703
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
9368
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
9704
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
9369
9705
  #
9370
9706
  # @option params [required, String] :signing_algorithm
9371
9707
  # Specifies the signing algorithm to use when signing the message.
@@ -9379,12 +9715,12 @@ module Aws::KMS
9379
9715
  # Checks if your request will succeed. `DryRun` is an optional
9380
9716
  # parameter.
9381
9717
  #
9382
- # To learn more about how to use this parameter, see [Testing your KMS
9383
- # API calls][1] in the *Key Management Service Developer Guide*.
9718
+ # To learn more about how to use this parameter, see [Testing your
9719
+ # permissions][1] in the *Key Management Service Developer Guide*.
9384
9720
  #
9385
9721
  #
9386
9722
  #
9387
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
9723
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
9388
9724
  #
9389
9725
  # @return [Types::SignResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9390
9726
  #
@@ -9437,9 +9773,9 @@ module Aws::KMS
9437
9773
  # resp = client.sign({
9438
9774
  # key_id: "KeyIdType", # required
9439
9775
  # message: "data", # required
9440
- # message_type: "RAW", # accepts RAW, DIGEST
9776
+ # message_type: "RAW", # accepts RAW, DIGEST, EXTERNAL_MU
9441
9777
  # grant_tokens: ["GrantTokenType"],
9442
- # signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA
9778
+ # signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA, ML_DSA_SHAKE_256, ED25519_SHA_512, ED25519_PH_SHA_512
9443
9779
  # dry_run: false,
9444
9780
  # })
9445
9781
  #
@@ -9447,7 +9783,7 @@ module Aws::KMS
9447
9783
  #
9448
9784
  # resp.key_id #=> String
9449
9785
  # resp.signature #=> String
9450
- # resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA"
9786
+ # resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
9451
9787
  #
9452
9788
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Sign AWS API Documentation
9453
9789
  #
@@ -9507,17 +9843,17 @@ module Aws::KMS
9507
9843
  #
9508
9844
  #
9509
9845
  #
9510
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
9846
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key
9511
9847
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
9512
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
9513
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
9514
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#keystore-concept
9515
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#alias-concept
9848
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
9849
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key
9850
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html
9851
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html
9516
9852
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
9517
9853
  # [8]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
9518
9854
  # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9519
9855
  # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9520
- # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
9856
+ # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
9521
9857
  #
9522
9858
  # @option params [required, String] :key_id
9523
9859
  # Identifies a customer managed key in the account and Region.
@@ -9627,13 +9963,13 @@ module Aws::KMS
9627
9963
  #
9628
9964
  #
9629
9965
  #
9630
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
9966
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key
9631
9967
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
9632
9968
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
9633
9969
  # [4]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
9634
9970
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9635
9971
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9636
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
9972
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
9637
9973
  #
9638
9974
  # @option params [required, String] :key_id
9639
9975
  # Identifies the KMS key from which you are removing tags.
@@ -9746,7 +10082,7 @@ module Aws::KMS
9746
10082
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9747
10083
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9748
10084
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access
9749
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
10085
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
9750
10086
  #
9751
10087
  # @option params [required, String] :alias_name
9752
10088
  # Identifies the alias that is changing its KMS key. This value must
@@ -9785,8 +10121,8 @@ module Aws::KMS
9785
10121
  #
9786
10122
  #
9787
10123
  #
9788
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
9789
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
10124
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key
10125
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key
9790
10126
  #
9791
10127
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
9792
10128
  #
@@ -9826,9 +10162,9 @@ module Aws::KMS
9826
10162
  # verify the updated property values, use the DescribeCustomKeyStores
9827
10163
  # operation.
9828
10164
  #
9829
- # This operation is part of the [custom key stores][1] feature in KMS,
9830
- # which combines the convenience and extensive integration of KMS with
9831
- # the isolation and control of a key store that you own and manage.
10165
+ # This operation is part of the custom key stores feature in KMS, which
10166
+ # combines the convenience and extensive integration of KMS with the
10167
+ # isolation and control of a key store that you own and manage.
9832
10168
  #
9833
10169
  # When updating the properties of an external key store, verify that the
9834
10170
  # updated settings connect your key store, via the external key store
@@ -9898,7 +10234,7 @@ module Aws::KMS
9898
10234
  # **Cross-account use**: No. You cannot perform this operation on a
9899
10235
  # custom key store in a different Amazon Web Services account.
9900
10236
  #
9901
- # **Required permissions**: [kms:UpdateCustomKeyStore][2] (IAM policy)
10237
+ # **Required permissions**: [kms:UpdateCustomKeyStore][1] (IAM policy)
9902
10238
  #
9903
10239
  # **Related operations:**
9904
10240
  #
@@ -9913,13 +10249,12 @@ module Aws::KMS
9913
10249
  # * DisconnectCustomKeyStore
9914
10250
  #
9915
10251
  # **Eventual consistency**: The KMS API follows an eventual consistency
9916
- # model. For more information, see [KMS eventual consistency][3].
10252
+ # model. For more information, see [KMS eventual consistency][2].
9917
10253
  #
9918
10254
  #
9919
10255
  #
9920
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
9921
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9922
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
10256
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
10257
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
9923
10258
  #
9924
10259
  # @option params [required, String] :custom_key_store_id
9925
10260
  # Identifies the custom key store that you want to update. Enter the ID
@@ -10015,6 +10350,15 @@ module Aws::KMS
10015
10350
  #
10016
10351
  # To change this value, the external key store must be disconnected.
10017
10352
  #
10353
+ # @option params [String] :xks_proxy_vpc_endpoint_service_owner
10354
+ # Changes the Amazon Web Services account ID that KMS uses to identify
10355
+ # the Amazon VPC endpoint service for your external key store proxy (XKS
10356
+ # proxy). This parameter is optional. If not specified, the current
10357
+ # Amazon Web Services account ID for the VPC endpoint service will not
10358
+ # be updated.
10359
+ #
10360
+ # To change this value, the external key store must be disconnected.
10361
+ #
10018
10362
  # @option params [Types::XksProxyAuthenticationCredentialType] :xks_proxy_authentication_credential
10019
10363
  # Changes the credentials that KMS uses to sign requests to the external
10020
10364
  # key store proxy (XKS proxy). This parameter is valid only for custom
@@ -10156,6 +10500,7 @@ module Aws::KMS
10156
10500
  # xks_proxy_uri_endpoint: "XksProxyUriEndpointType",
10157
10501
  # xks_proxy_uri_path: "XksProxyUriPathType",
10158
10502
  # xks_proxy_vpc_endpoint_service_name: "XksProxyVpcEndpointServiceNameType",
10503
+ # xks_proxy_vpc_endpoint_service_owner: "AccountIdType",
10159
10504
  # xks_proxy_authentication_credential: {
10160
10505
  # access_key_id: "XksProxyAuthenticationAccessKeyIdType", # required
10161
10506
  # raw_secret_access_key: "XksProxyAuthenticationRawSecretAccessKeyType", # required
@@ -10197,7 +10542,7 @@ module Aws::KMS
10197
10542
  #
10198
10543
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
10199
10544
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
10200
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
10545
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
10201
10546
  #
10202
10547
  # @option params [required, String] :key_id
10203
10548
  # Updates the description of the specified KMS key.
@@ -10257,8 +10602,8 @@ module Aws::KMS
10257
10602
  # key in `eu-west-2`. If you run `UpdatePrimaryRegion` with a
10258
10603
  # `PrimaryRegion` value of `eu-west-2`, the primary key is now the key
10259
10604
  # in `eu-west-2`, and the key in `us-east-1` becomes a replica key. For
10260
- # details, see [Updating the primary Region][1] in the *Key Management
10261
- # Service Developer Guide*.
10605
+ # details, see [Change the primary key in a set of multi-Region keys][1]
10606
+ # in the *Key Management Service Developer Guide*.
10262
10607
  #
10263
10608
  # This operation supports *multi-Region keys*, an KMS feature that lets
10264
10609
  # you create multiple interoperable KMS keys in different Amazon Web
@@ -10326,7 +10671,7 @@ module Aws::KMS
10326
10671
  #
10327
10672
  #
10328
10673
  #
10329
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-update
10674
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-update.html
10330
10675
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
10331
10676
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id
10332
10677
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-spec
@@ -10335,7 +10680,7 @@ module Aws::KMS
10335
10680
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
10336
10681
  # [8]: https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html
10337
10682
  # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
10338
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
10683
+ # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
10339
10684
  #
10340
10685
  # @option params [required, String] :key_id
10341
10686
  # Identifies the current primary key. When the operation completes, this
@@ -10450,10 +10795,10 @@ module Aws::KMS
10450
10795
  #
10451
10796
  #
10452
10797
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
10453
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
10798
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification
10454
10799
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
10455
10800
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
10456
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
10801
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
10457
10802
  #
10458
10803
  # @option params [required, String] :key_id
10459
10804
  # Identifies the asymmetric KMS key that will be used to verify the
@@ -10492,27 +10837,41 @@ module Aws::KMS
10492
10837
  # @option params [String] :message_type
10493
10838
  # Tells KMS whether the value of the `Message` parameter should be
10494
10839
  # hashed as part of the signing algorithm. Use `RAW` for unhashed
10495
- # messages; use `DIGEST` for message digests, which are already hashed.
10840
+ # messages; use `DIGEST` for message digests, which are already hashed;
10841
+ # use `EXTERNAL_MU` for 64-byte representative μ used in ML-DSA signing
10842
+ # as defined in NIST FIPS 204 Section 6.2.
10496
10843
  #
10497
10844
  # When the value of `MessageType` is `RAW`, KMS uses the standard
10498
10845
  # signing algorithm, which begins with a hash function. When the value
10499
- # is `DIGEST`, KMS skips the hashing step in the signing algorithm.
10846
+ # is `DIGEST`, KMS skips the hashing step in the signing algorithm. When
10847
+ # the value is `EXTERNAL_MU` KMS skips the concatenated hashing of the
10848
+ # public key hash and the message done in the ML-DSA signing algorithm.
10500
10849
  #
10501
- # Use the `DIGEST` value only when the value of the `Message` parameter
10502
- # is a message digest. If you use the `DIGEST` value with an unhashed
10503
- # message, the security of the verification operation can be
10850
+ # Use the `DIGEST` or `EXTERNAL_MU` value only when the value of the
10851
+ # `Message` parameter is a message digest. If you use the `DIGEST` value
10852
+ # with an unhashed message, the security of the signing operation can be
10504
10853
  # compromised.
10505
10854
  #
10506
- # When the value of `MessageType`is `DIGEST`, the length of the
10855
+ # When using ECC\_NIST\_EDWARDS25519 KMS keys:
10856
+ #
10857
+ # * ED25519\_SHA\_512 signing algorithm requires KMS `MessageType:RAW`
10858
+ #
10859
+ # * ED25519\_PH\_SHA\_512 signing algorithm requires KMS
10860
+ # `MessageType:DIGEST`
10861
+ #
10862
+ # When the value of `MessageType` is `DIGEST`, the length of the
10507
10863
  # `Message` value must match the length of hashed messages for the
10508
10864
  # specified signing algorithm.
10509
10865
  #
10866
+ # When the value of `MessageType` is `EXTERNAL_MU` the length of the
10867
+ # `Message` value must be 64 bytes.
10868
+ #
10510
10869
  # You can submit a message digest and omit the `MessageType` or specify
10511
10870
  # `RAW` so the digest is hashed again while signing. However, if the
10512
10871
  # signed message is hashed once while signing, but twice while
10513
10872
  # verifying, verification fails, even when the message hasn't changed.
10514
10873
  #
10515
- # The hashing algorithm in that `Verify` uses is based on the
10874
+ # The hashing algorithm that `Verify` uses is based on the
10516
10875
  # `SigningAlgorithm` value.
10517
10876
  #
10518
10877
  # * Signing algorithms that end in SHA\_256 use the SHA\_256 hashing
@@ -10524,12 +10883,15 @@ module Aws::KMS
10524
10883
  # * Signing algorithms that end in SHA\_512 use the SHA\_512 hashing
10525
10884
  # algorithm.
10526
10885
  #
10886
+ # * Signing algorithms that end in SHAKE\_256 use the SHAKE\_256 hashing
10887
+ # algorithm.
10888
+ #
10527
10889
  # * SM2DSA uses the SM3 hashing algorithm. For details, see [Offline
10528
10890
  # verification with SM2 key pairs][1].
10529
10891
  #
10530
10892
  #
10531
10893
  #
10532
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
10894
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification
10533
10895
  #
10534
10896
  # @option params [required, String, StringIO, File] :signature
10535
10897
  # The signature that the `Sign` operation generated.
@@ -10549,18 +10911,18 @@ module Aws::KMS
10549
10911
  #
10550
10912
  #
10551
10913
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
10552
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
10914
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
10553
10915
  #
10554
10916
  # @option params [Boolean] :dry_run
10555
10917
  # Checks if your request will succeed. `DryRun` is an optional
10556
10918
  # parameter.
10557
10919
  #
10558
- # To learn more about how to use this parameter, see [Testing your KMS
10559
- # API calls][1] in the *Key Management Service Developer Guide*.
10920
+ # To learn more about how to use this parameter, see [Testing your
10921
+ # permissions][1] in the *Key Management Service Developer Guide*.
10560
10922
  #
10561
10923
  #
10562
10924
  #
10563
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
10925
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
10564
10926
  #
10565
10927
  # @return [Types::VerifyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10566
10928
  #
@@ -10615,9 +10977,9 @@ module Aws::KMS
10615
10977
  # resp = client.verify({
10616
10978
  # key_id: "KeyIdType", # required
10617
10979
  # message: "data", # required
10618
- # message_type: "RAW", # accepts RAW, DIGEST
10980
+ # message_type: "RAW", # accepts RAW, DIGEST, EXTERNAL_MU
10619
10981
  # signature: "data", # required
10620
- # signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA
10982
+ # signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA, ML_DSA_SHAKE_256, ED25519_SHA_512, ED25519_PH_SHA_512
10621
10983
  # grant_tokens: ["GrantTokenType"],
10622
10984
  # dry_run: false,
10623
10985
  # })
@@ -10626,7 +10988,7 @@ module Aws::KMS
10626
10988
  #
10627
10989
  # resp.key_id #=> String
10628
10990
  # resp.signature_valid #=> Boolean
10629
- # resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA"
10991
+ # resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
10630
10992
  #
10631
10993
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Verify AWS API Documentation
10632
10994
  #
@@ -10674,7 +11036,7 @@ module Aws::KMS
10674
11036
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
10675
11037
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
10676
11038
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
10677
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
11039
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
10678
11040
  #
10679
11041
  # @option params [required, String, StringIO, File] :message
10680
11042
  # The message that will be used in the verification. Enter the same
@@ -10712,18 +11074,18 @@ module Aws::KMS
10712
11074
  #
10713
11075
  #
10714
11076
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
10715
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
11077
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
10716
11078
  #
10717
11079
  # @option params [Boolean] :dry_run
10718
11080
  # Checks if your request will succeed. `DryRun` is an optional
10719
11081
  # parameter.
10720
11082
  #
10721
- # To learn more about how to use this parameter, see [Testing your KMS
10722
- # API calls][1] in the *Key Management Service Developer Guide*.
11083
+ # To learn more about how to use this parameter, see [Testing your
11084
+ # permissions][1] in the *Key Management Service Developer Guide*.
10723
11085
  #
10724
11086
  #
10725
11087
  #
10726
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
11088
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
10727
11089
  #
10728
11090
  # @return [Types::VerifyMacResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10729
11091
  #
@@ -10795,7 +11157,7 @@ module Aws::KMS
10795
11157
  tracer: tracer
10796
11158
  )
10797
11159
  context[:gem_name] = 'aws-sdk-kms'
10798
- context[:gem_version] = '1.101.0'
11160
+ context[:gem_version] = '1.118.0'
10799
11161
  Seahorse::Client::Request.new(handlers, context)
10800
11162
  end
10801
11163