aws-sdk-kms 1.94.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.
@@ -7,34 +7,34 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
- require 'seahorse/client/plugins/content_length.rb'
11
- require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
- require 'aws-sdk-core/plugins/logging.rb'
13
- require 'aws-sdk-core/plugins/param_converter.rb'
14
- require 'aws-sdk-core/plugins/param_validator.rb'
15
- require 'aws-sdk-core/plugins/user_agent.rb'
16
- require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
- require 'aws-sdk-core/plugins/retry_errors.rb'
18
- require 'aws-sdk-core/plugins/global_configuration.rb'
19
- require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
- require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
- require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
- require 'aws-sdk-core/plugins/response_paging.rb'
23
- require 'aws-sdk-core/plugins/stub_responses.rb'
24
- require 'aws-sdk-core/plugins/idempotency_token.rb'
25
- require 'aws-sdk-core/plugins/invocation_id.rb'
26
- require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
27
- require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
28
- require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
29
- require 'aws-sdk-core/plugins/transfer_encoding.rb'
30
- require 'aws-sdk-core/plugins/http_checksum.rb'
31
- require 'aws-sdk-core/plugins/checksum_algorithm.rb'
32
- require 'aws-sdk-core/plugins/request_compression.rb'
33
- require 'aws-sdk-core/plugins/defaults_mode.rb'
34
- require 'aws-sdk-core/plugins/recursion_detection.rb'
35
- require 'aws-sdk-core/plugins/telemetry.rb'
36
- require 'aws-sdk-core/plugins/sign.rb'
37
- require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
10
+ require 'seahorse/client/plugins/content_length'
11
+ require 'aws-sdk-core/plugins/credentials_configuration'
12
+ require 'aws-sdk-core/plugins/logging'
13
+ require 'aws-sdk-core/plugins/param_converter'
14
+ require 'aws-sdk-core/plugins/param_validator'
15
+ require 'aws-sdk-core/plugins/user_agent'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors'
17
+ require 'aws-sdk-core/plugins/retry_errors'
18
+ require 'aws-sdk-core/plugins/global_configuration'
19
+ require 'aws-sdk-core/plugins/regional_endpoint'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern'
22
+ require 'aws-sdk-core/plugins/response_paging'
23
+ require 'aws-sdk-core/plugins/stub_responses'
24
+ require 'aws-sdk-core/plugins/idempotency_token'
25
+ require 'aws-sdk-core/plugins/invocation_id'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin'
29
+ require 'aws-sdk-core/plugins/transfer_encoding'
30
+ require 'aws-sdk-core/plugins/http_checksum'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm'
32
+ require 'aws-sdk-core/plugins/request_compression'
33
+ require 'aws-sdk-core/plugins/defaults_mode'
34
+ require 'aws-sdk-core/plugins/recursion_detection'
35
+ require 'aws-sdk-core/plugins/telemetry'
36
+ require 'aws-sdk-core/plugins/sign'
37
+ require 'aws-sdk-core/plugins/protocols/json_rpc'
38
38
 
39
39
  module Aws::KMS
40
40
  # An API client for KMS. To construct a client, you need to configure a `:region` and `:credentials`.
@@ -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.
@@ -200,8 +207,7 @@ module Aws::KMS
200
207
  # accepted modes and the configuration defaults that are included.
201
208
  #
202
209
  # @option options [Boolean] :disable_host_prefix_injection (false)
203
- # Set to true to disable SDK automatically adding host prefix
204
- # to default service endpoint when available.
210
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
205
211
  #
206
212
  # @option options [Boolean] :disable_request_compression (false)
207
213
  # When set to 'true' the request body will not be compressed
@@ -254,14 +260,37 @@ module Aws::KMS
254
260
  # 4 times. Used in `standard` and `adaptive` retry modes.
255
261
  #
256
262
  # @option options [String] :profile ("default")
257
- # Used when loading credentials from the shared credentials file
258
- # 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.
265
+ #
266
+ # @option options [String] :request_checksum_calculation ("when_supported")
267
+ # Determines when a checksum will be calculated for request payloads. Values are:
268
+ #
269
+ # * `when_supported` - (default) When set, a checksum will be
270
+ # calculated for all request payloads of operations modeled with the
271
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
272
+ # `requestAlgorithmMember` is modeled.
273
+ # * `when_required` - When set, a checksum will only be calculated for
274
+ # request payloads of operations modeled with the `httpChecksum` trait where
275
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
276
+ # is modeled and supplied.
259
277
  #
260
278
  # @option options [Integer] :request_min_compression_size_bytes (10240)
261
279
  # The minimum size in bytes that triggers compression for request
262
280
  # bodies. The value must be non-negative integer value between 0
263
281
  # and 10485780 bytes inclusive.
264
282
  #
283
+ # @option options [String] :response_checksum_validation ("when_supported")
284
+ # Determines when checksum validation will be performed on response payloads. Values are:
285
+ #
286
+ # * `when_supported` - (default) When set, checksum validation is performed on all
287
+ # response payloads of operations modeled with the `httpChecksum` trait where
288
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
289
+ # are supported.
290
+ # * `when_required` - When set, checksum validation is not performed on
291
+ # response payloads of operations unless the checksum algorithm is supported and
292
+ # the `requestValidationModeMember` member is set to `ENABLED`.
293
+ #
265
294
  # @option options [Proc] :retry_backoff
266
295
  # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
267
296
  # This option is only used in the `legacy` retry mode.
@@ -352,8 +381,8 @@ module Aws::KMS
352
381
  # `Aws::Telemetry::OTelProvider` for telemetry provider.
353
382
  #
354
383
  # @option options [Aws::TokenProvider] :token_provider
355
- # A Bearer Token Provider. This can be an instance of any one of the
356
- # 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:
357
386
  #
358
387
  # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
359
388
  # tokens.
@@ -481,7 +510,7 @@ module Aws::KMS
481
510
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html
482
511
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
483
512
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
484
- # [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
485
514
  #
486
515
  # @option params [required, String] :key_id
487
516
  # Identifies the KMS key whose deletion is being canceled.
@@ -553,9 +582,9 @@ module Aws::KMS
553
582
  # custom key store is connected. To get the connection state of the
554
583
  # custom key store, use the DescribeCustomKeyStores operation.
555
584
  #
556
- # This operation is part of the [custom key stores][1] feature in KMS,
557
- # which combines the convenience and extensive integration of KMS with
558
- # 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.
559
588
  #
560
589
  # The `ConnectCustomKeyStore` operation might fail for various reasons.
561
590
  # To find the reason, use the DescribeCustomKeyStores operation and see
@@ -629,14 +658,14 @@ module Aws::KMS
629
658
  #
630
659
  #
631
660
  #
632
- # [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
633
662
  # [2]: https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html
634
663
  # [3]: https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html
635
- # [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
636
665
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html
637
666
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html
638
667
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
639
- # [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
640
669
  #
641
670
  # @option params [required, String] :custom_key_store_id
642
671
  # Enter the key store ID of the custom key store that you want to
@@ -698,7 +727,7 @@ module Aws::KMS
698
727
  #
699
728
  # The alias must be unique in the account and Region, but you can have
700
729
  # aliases with the same name in different Regions. For detailed
701
- # information about aliases, see [Using aliases][3] in the *Key
730
+ # information about aliases, see [Aliases in KMS][3] in the *Key
702
731
  # Management Service Developer Guide*.
703
732
  #
704
733
  # This operation does not return a response. To get the alias that you
@@ -734,12 +763,12 @@ module Aws::KMS
734
763
  #
735
764
  #
736
765
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
737
- # [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
738
767
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html
739
768
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
740
769
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
741
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access
742
- # [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
743
772
  #
744
773
  # @option params [required, String] :alias_name
745
774
  # Specifies the alias name. This value must begin with `alias/` followed
@@ -757,7 +786,7 @@ module Aws::KMS
757
786
  #
758
787
  #
759
788
  #
760
- # [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
761
790
  #
762
791
  # @option params [required, String] :target_key_id
763
792
  # Associates the alias with the specified [customer managed key][1]. The
@@ -766,7 +795,7 @@ module Aws::KMS
766
795
  # A valid key ID is required. If you supply a null or empty string
767
796
  # value, this operation returns an error.
768
797
  #
769
- # 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
770
799
  # ARN][2] in the <i> <i>Key Management Service Developer Guide</i> </i>.
771
800
  #
772
801
  # Specify the key ID or key ARN of the KMS key.
@@ -783,8 +812,8 @@ module Aws::KMS
783
812
  #
784
813
  #
785
814
  #
786
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
787
- # [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
788
817
  #
789
818
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
790
819
  #
@@ -822,9 +851,9 @@ module Aws::KMS
822
851
  # stores][4] backed by an external key store proxy and external key
823
852
  # manager outside of Amazon Web Services.
824
853
  #
825
- # This operation is part of the [custom key stores][1] feature in KMS,
826
- # which combines the convenience and extensive integration of KMS with
827
- # 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.
828
857
  #
829
858
  # Before you create the custom key store, the required elements must be
830
859
  # in place and operational. We recommend that you use the test tools
@@ -877,9 +906,6 @@ module Aws::KMS
877
906
  # immediately, you might want to connect it to verify that all settings
878
907
  # are correct and then disconnect it until you are ready to use it.
879
908
  #
880
- # For help with failures, see [Troubleshooting a custom key store][7] in
881
- # the *Key Management Service Developer Guide*.
882
- #
883
909
  # **Cross-account use**: No. You cannot perform this operation on a
884
910
  # custom key store in a different Amazon Web Services account.
885
911
  #
@@ -902,7 +928,7 @@ module Aws::KMS
902
928
  #
903
929
  #
904
930
  #
905
- # [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
906
932
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html
907
933
  # [3]: https://docs.aws.amazon.com/cloudhsm/latest/userguide/clusters.html
908
934
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html
@@ -911,7 +937,7 @@ module Aws::KMS
911
937
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html
912
938
  # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html
913
939
  # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
914
- # [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
915
941
  #
916
942
  # @option params [required, String] :custom_key_store_name
917
943
  # Specifies a friendly name for the custom key store. The name must be
@@ -965,7 +991,7 @@ module Aws::KMS
965
991
  #
966
992
  #
967
993
  #
968
- # [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
969
995
  #
970
996
  # @option params [String] :custom_key_store_type
971
997
  # Specifies the type of custom key store. The default value is
@@ -1057,6 +1083,13 @@ module Aws::KMS
1057
1083
  #
1058
1084
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements
1059
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
+ #
1060
1093
  # @option params [Types::XksProxyAuthenticationCredentialType] :xks_proxy_authentication_credential
1061
1094
  # Specifies an authentication credential for the external key store
1062
1095
  # proxy (XKS proxy). This parameter is required for all custom key
@@ -1066,7 +1099,7 @@ module Aws::KMS
1066
1099
  # `RawSecretAccessKey`, a secret key, and `AccessKeyId`, a unique
1067
1100
  # identifier for the `RawSecretAccessKey`. For character requirements,
1068
1101
  # see
1069
- # [XksProxyAuthenticationCredentialType](kms/latest/APIReference/API_XksProxyAuthenticationCredentialType.html).
1102
+ # [XksProxyAuthenticationCredentialType](API_XksProxyAuthenticationCredentialType.html).
1070
1103
  #
1071
1104
  # KMS uses this authentication credential to sign requests to the
1072
1105
  # external key store proxy on your behalf. This credential is unrelated
@@ -1106,7 +1139,7 @@ module Aws::KMS
1106
1139
  #
1107
1140
  #
1108
1141
  #
1109
- # [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
1110
1143
  #
1111
1144
  # @return [Types::CreateCustomKeyStoreResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1112
1145
  #
@@ -1183,6 +1216,7 @@ module Aws::KMS
1183
1216
  # xks_proxy_uri_endpoint: "XksProxyUriEndpointType",
1184
1217
  # xks_proxy_uri_path: "XksProxyUriPathType",
1185
1218
  # xks_proxy_vpc_endpoint_service_name: "XksProxyVpcEndpointServiceNameType",
1219
+ # xks_proxy_vpc_endpoint_service_owner: "AccountIdType",
1186
1220
  # xks_proxy_authentication_credential: {
1187
1221
  # access_key_id: "XksProxyAuthenticationAccessKeyIdType", # required
1188
1222
  # raw_secret_access_key: "XksProxyAuthenticationRawSecretAccessKeyType", # required
@@ -1215,8 +1249,9 @@ module Aws::KMS
1215
1249
  #
1216
1250
  # For detailed information about grants, including grant terminology,
1217
1251
  # see [Grants in KMS][1] in the <i> <i>Key Management Service Developer
1218
- # Guide</i> </i>. For examples of working with grants in several
1219
- # 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].
1220
1255
  #
1221
1256
  # The `CreateGrant` operation returns a `GrantToken` and a `GrantId`.
1222
1257
  #
@@ -1262,11 +1297,11 @@ module Aws::KMS
1262
1297
  #
1263
1298
  #
1264
1299
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
1265
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html
1266
- # [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
1267
1302
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
1268
1303
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1269
- # [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
1270
1305
  #
1271
1306
  # @option params [required, String] :key_id
1272
1307
  # Identifies the KMS key for the grant. The grant gives principals
@@ -1319,7 +1354,7 @@ module Aws::KMS
1319
1354
  #
1320
1355
  # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1321
1356
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns
1322
- # [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
1323
1358
  #
1324
1359
  # @option params [required, Array<String>] :operations
1325
1360
  # A list of operations that the grant permits.
@@ -1388,7 +1423,7 @@ module Aws::KMS
1388
1423
  #
1389
1424
  #
1390
1425
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1391
- # [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
1392
1427
  #
1393
1428
  # @option params [String] :name
1394
1429
  # A friendly name for the grant. Use this value to prevent the
@@ -1414,12 +1449,12 @@ module Aws::KMS
1414
1449
  # Checks if your request will succeed. `DryRun` is an optional
1415
1450
  # parameter.
1416
1451
  #
1417
- # To learn more about how to use this parameter, see [Testing your KMS
1418
- # 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*.
1419
1454
  #
1420
1455
  #
1421
1456
  #
1422
- # [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
1423
1458
  #
1424
1459
  # @return [Types::CreateGrantResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1425
1460
  #
@@ -1489,16 +1524,15 @@ module Aws::KMS
1489
1524
  # A KMS key is a logical representation of a cryptographic key. In
1490
1525
  # addition to the key material used in cryptographic operations, a KMS
1491
1526
  # key includes metadata, such as the key ID, key policy, creation date,
1492
- # description, and key state. For details, see [Managing keys][2] in the
1493
- # *Key Management Service Developer Guide*
1527
+ # description, and key state.
1494
1528
  #
1495
1529
  # Use the parameters of `CreateKey` to specify the type of KMS key, the
1496
1530
  # source of its key material, its key policy, description, tags, and
1497
1531
  # other properties.
1498
1532
  #
1499
- # <note markdown="1"> KMS has replaced the term *customer master key (CMK)* with *KMS key*
1500
- # and *KMS key*. The concept has not changed. To prevent breaking
1501
- # 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.
1502
1536
  #
1503
1537
  # </note>
1504
1538
  #
@@ -1536,20 +1570,21 @@ module Aws::KMS
1536
1570
  # properties after the KMS key is created.
1537
1571
  #
1538
1572
  # Asymmetric KMS keys contain an RSA key pair, Elliptic Curve (ECC)
1539
- # key pair, or an SM2 key pair (China Regions only). The private key
1540
- # in an asymmetric KMS key never leaves KMS unencrypted. However, you
1541
- # can use the GetPublicKey operation to download the public key so it
1542
- # can be used outside of KMS. Each KMS key can have only one key
1543
- # usage. KMS keys with RSA key pairs can be used to encrypt and
1544
- # decrypt data or sign and verify messages (but not both). KMS keys
1545
- # with NIST-recommended ECC key pairs can be used to sign and verify
1546
- # messages or derive shared secrets (but not both). KMS keys with
1547
- # `ECC_SECG_P256K1` can be used only to sign and verify messages. KMS
1548
- # keys with SM2 key pairs (China Regions only) can be used to either
1549
- # encrypt and decrypt data, sign and verify messages, or derive shared
1550
- # secrets (you must choose one key usage type). For information about
1551
- # asymmetric KMS keys, see [Asymmetric KMS keys][3] in the *Key
1552
- # 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*.
1553
1588
  #
1554
1589
  #
1555
1590
  #
@@ -1592,7 +1627,7 @@ module Aws::KMS
1592
1627
  # to encrypt data in one Amazon Web Services Region and decrypt it in
1593
1628
  # a different Amazon Web Services Region without re-encrypting the
1594
1629
  # data or making a cross-Region call. For more information about
1595
- # 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
1596
1631
  # Management Service Developer Guide*.
1597
1632
  #
1598
1633
  #
@@ -1604,7 +1639,7 @@ module Aws::KMS
1604
1639
  # token. Use the wrapping public key to encrypt your key material.
1605
1640
  # Then, use ImportKeyMaterial with your import token to import the key
1606
1641
  # material. For step-by-step instructions, see [Importing Key
1607
- # Material][5] in the <i> <i>Key Management Service Developer
1642
+ # Material][4] in the <i> <i>Key Management Service Developer
1608
1643
  # Guide</i> </i>.
1609
1644
  #
1610
1645
  # You can import key material into KMS keys of all supported KMS key
@@ -1617,23 +1652,22 @@ module Aws::KMS
1617
1652
  # the `Origin` parameter of `CreateKey` with a value of `EXTERNAL` and
1618
1653
  # the `MultiRegion` parameter with a value of `True`. To create
1619
1654
  # replicas of the multi-Region primary key, use the ReplicateKey
1620
- # operation. For instructions, see [Importing key material into
1621
- # multi-Region keys][6]. For more information about multi-Region keys,
1622
- # see [Multi-Region keys in KMS][4] in the *Key Management Service
1623
- # 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*.
1624
1658
  #
1625
1659
  #
1626
1660
  #
1627
1661
  # Custom key store
1628
1662
  #
1629
- # : 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
1630
1664
  # resources using keys in a backing key store that you own and manage.
1631
1665
  # When you request a cryptographic operation with a KMS key in a
1632
1666
  # custom key store, the operation is performed in the backing key
1633
1667
  # store using its cryptographic keys.
1634
1668
  #
1635
- # KMS supports [CloudHSM key stores][8] backed by an CloudHSM cluster
1636
- # 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
1637
1671
  # outside of Amazon Web Services. When you create a KMS key in an
1638
1672
  # CloudHSM key store, KMS generates an encryption key in the CloudHSM
1639
1673
  # cluster and associates it with the KMS key. When you create a KMS
@@ -1658,13 +1692,13 @@ module Aws::KMS
1658
1692
  # `ENCRYPT_DECRYPT` to create a symmetric encryption key. No other key
1659
1693
  # type is supported in a custom key store.
1660
1694
  #
1661
- # 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`
1662
1696
  # parameter with a value of `AWS_CLOUDHSM`. The CloudHSM cluster that
1663
1697
  # is associated with the custom key store must have at least two
1664
1698
  # active HSMs in different Availability Zones in the Amazon Web
1665
1699
  # Services Region.
1666
1700
  #
1667
- # 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`
1668
1702
  # parameter with a value of `EXTERNAL_KEY_STORE` and an `XksKeyId`
1669
1703
  # parameter that identifies an existing external key.
1670
1704
  #
@@ -1677,10 +1711,10 @@ module Aws::KMS
1677
1711
  # **Cross-account use**: No. You cannot use this operation to create a
1678
1712
  # KMS key in a different Amazon Web Services account.
1679
1713
  #
1680
- # **Required permissions**: [kms:CreateKey][10] (IAM policy). To use the
1681
- # `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
1682
1716
  # information about related permissions, see [Allow a user to create KMS
1683
- # keys][11] in the *Key Management Service Developer Guide*.
1717
+ # keys][12] in the *Key Management Service Developer Guide*.
1684
1718
  #
1685
1719
  # **Related operations:**
1686
1720
  #
@@ -1691,22 +1725,23 @@ module Aws::KMS
1691
1725
  # * ScheduleKeyDeletion
1692
1726
  #
1693
1727
  # **Eventual consistency**: The KMS API follows an eventual consistency
1694
- # model. For more information, see [KMS eventual consistency][12].
1728
+ # model. For more information, see [KMS eventual consistency][13].
1695
1729
  #
1696
1730
  #
1697
1731
  #
1698
1732
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms-keys
1699
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html
1700
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
1701
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
1702
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
1703
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-import.html
1704
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1705
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html
1706
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html
1707
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
1708
- # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policy-example-create-key
1709
- # [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
1710
1745
  #
1711
1746
  # @option params [String] :policy
1712
1747
  # The key policy to attach to the KMS key.
@@ -1728,22 +1763,38 @@ module Aws::KMS
1728
1763
  # not always immediately visible][2] in the *Amazon Web Services
1729
1764
  # Identity and Access Management User Guide*.
1730
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
+ #
1731
1778
  # If you do not provide a key policy, KMS attaches a default key policy
1732
- # 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
1733
1780
  # the *Key Management Service Developer Guide*.
1734
1781
  #
1735
- # 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>
1736
1786
  #
1737
1787
  # For help writing and formatting a JSON policy document, see the [IAM
1738
- # 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
1739
1789
  # User Guide</i> </i>.
1740
1790
  #
1741
1791
  #
1742
1792
  #
1743
1793
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
1744
1794
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
1745
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
1746
- # [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
1747
1798
  #
1748
1799
  # @option params [String] :description
1749
1800
  # A description of the KMS key. Use a description that helps you decide
@@ -1761,8 +1812,10 @@ module Aws::KMS
1761
1812
  # Determines the [cryptographic operations][1] for which you can use the
1762
1813
  # KMS key. The default value is `ENCRYPT_DECRYPT`. This parameter is
1763
1814
  # optional when you are creating a symmetric encryption KMS key;
1764
- # otherwise, it is required. You can't change the `KeyUsage` value
1765
- # 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.
1766
1819
  #
1767
1820
  # Select only one valid value.
1768
1821
  #
@@ -1774,10 +1827,13 @@ module Aws::KMS
1774
1827
  # * For asymmetric KMS keys with RSA key pairs, specify
1775
1828
  # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
1776
1829
  #
1777
- # * For asymmetric KMS keys with NIST-recommended elliptic curve key
1778
- # 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`.
1779
1832
  #
1780
- # * For asymmetric KMS keys with `ECC_SECG_P256K1` key pairs specify
1833
+ # * For asymmetric KMS keys with `ECC_SECG_P256K1` key pairs, specify
1834
+ # `SIGN_VERIFY`.
1835
+ #
1836
+ # * For asymmetric KMS keys with ML-DSA key pairs, specify
1781
1837
  # `SIGN_VERIFY`.
1782
1838
  #
1783
1839
  # * For asymmetric KMS keys with SM2 key pairs (China Regions only),
@@ -1785,7 +1841,9 @@ module Aws::KMS
1785
1841
  #
1786
1842
  #
1787
1843
  #
1788
- # [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
1789
1847
  #
1790
1848
  # @option params [String] :customer_master_key_spec
1791
1849
  # Instead, use the `KeySpec` parameter.
@@ -1799,20 +1857,21 @@ module Aws::KMS
1799
1857
  # Specifies the type of KMS key to create. The default value,
1800
1858
  # `SYMMETRIC_DEFAULT`, creates a KMS key with a 256-bit AES-GCM key that
1801
1859
  # is used for encryption and decryption, except in China Regions, where
1802
- # it creates a 128-bit symmetric key that uses SM4 encryption. For help
1803
- # choosing a key spec for your KMS key, see [Choosing a KMS key type][1]
1804
- # 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>.
1805
1864
  #
1806
1865
  # The `KeySpec` determines whether the KMS key contains a symmetric key
1807
1866
  # or an asymmetric key pair. It also determines the algorithms that the
1808
1867
  # KMS key supports. You can't change the `KeySpec` after the KMS key is
1809
1868
  # created. To further restrict the algorithms that can be used with the
1810
1869
  # KMS key, use a condition key in its key policy or IAM policy. For more
1811
- # information, see [kms:EncryptionAlgorithm][2], [kms:MacAlgorithm][3]
1812
- # or [kms:Signing Algorithm][4] in the <i> <i>Key Management Service
1813
- # 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>.
1814
1873
  #
1815
- # [Amazon Web Services services that are integrated with KMS][5] use
1874
+ # [Amazon Web Services services that are integrated with KMS][6] use
1816
1875
  # symmetric encryption KMS keys to protect your data. These services do
1817
1876
  # not support asymmetric KMS keys or HMAC KMS keys.
1818
1877
  #
@@ -1823,7 +1882,6 @@ module Aws::KMS
1823
1882
  # * `SYMMETRIC_DEFAULT`
1824
1883
  #
1825
1884
  # ^
1826
- #
1827
1885
  # * HMAC keys (symmetric)
1828
1886
  #
1829
1887
  # * `HMAC_224`
@@ -1833,7 +1891,6 @@ module Aws::KMS
1833
1891
  # * `HMAC_384`
1834
1892
  #
1835
1893
  # * `HMAC_512`
1836
- #
1837
1894
  # * Asymmetric RSA key pairs (encryption and decryption -or- signing and
1838
1895
  # verification)
1839
1896
  #
@@ -1842,8 +1899,7 @@ module Aws::KMS
1842
1899
  # * `RSA_3072`
1843
1900
  #
1844
1901
  # * `RSA_4096`
1845
- #
1846
- # * Asymmetric NIST-recommended elliptic curve key pairs (signing and
1902
+ # * Asymmetric NIST-standard elliptic curve key pairs (signing and
1847
1903
  # verification -or- deriving shared secrets)
1848
1904
  #
1849
1905
  # * `ECC_NIST_P256` (secp256r1)
@@ -1852,12 +1908,28 @@ module Aws::KMS
1852
1908
  #
1853
1909
  # * `ECC_NIST_P521` (secp521r1)
1854
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
+ # ^
1855
1921
  # * Other asymmetric elliptic curve key pairs (signing and verification)
1856
1922
  #
1857
1923
  # * `ECC_SECG_P256K1` (secp256k1), commonly used for cryptocurrencies.
1858
1924
  #
1859
1925
  # ^
1926
+ # * Asymmetric ML-DSA key pairs (signing and verification)
1927
+ #
1928
+ # * `ML_DSA_44`
1860
1929
  #
1930
+ # * `ML_DSA_65`
1931
+ #
1932
+ # * `ML_DSA_87`
1861
1933
  # * SM2 key pairs (encryption and decryption -or- signing and
1862
1934
  # verification -or- deriving shared secrets)
1863
1935
  #
@@ -1867,11 +1939,12 @@ module Aws::KMS
1867
1939
  #
1868
1940
  #
1869
1941
  #
1870
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-types.html#symm-asymm-choose
1871
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm
1872
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-mac-algorithm
1873
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm
1874
- # [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
1875
1948
  #
1876
1949
  # @option params [String] :origin
1877
1950
  # The source of the key material for the KMS key. You cannot change the
@@ -1921,7 +1994,7 @@ module Aws::KMS
1921
1994
  #
1922
1995
  #
1923
1996
  #
1924
- # [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
1925
1998
  #
1926
1999
  # @option params [Boolean] :bypass_policy_lockout_safety_check
1927
2000
  # Skips ("bypasses") the key policy lockout safety check. The default
@@ -1969,7 +2042,7 @@ module Aws::KMS
1969
2042
  # When you add tags to an Amazon Web Services resource, Amazon Web
1970
2043
  # Services generates a cost allocation report with usage and costs
1971
2044
  # aggregated by tags. Tags can also be used to control access to a KMS
1972
- # key. For details, see [Tagging Keys][3].
2045
+ # key. For details, see [Tags in KMS][3].
1973
2046
  #
1974
2047
  #
1975
2048
  #
@@ -2040,7 +2113,7 @@ module Aws::KMS
2040
2113
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key
2041
2114
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html
2042
2115
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-xks-proxy
2043
- # [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
2044
2117
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-double-encryption
2045
2118
  #
2046
2119
  # @return [Types::CreateKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
@@ -2062,6 +2135,7 @@ module Aws::KMS
2062
2135
  # aws_account_id: "111122223333",
2063
2136
  # arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
2064
2137
  # creation_date: Time.parse("2017-07-05T14:04:55-07:00"),
2138
+ # current_key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
2065
2139
  # customer_master_key_spec: "SYMMETRIC_DEFAULT",
2066
2140
  # description: "",
2067
2141
  # enabled: true,
@@ -2114,8 +2188,7 @@ module Aws::KMS
2114
2188
  # @example Example: To create an asymmetric elliptic curve KMS key for signing and verification
2115
2189
  #
2116
2190
  # # This example creates a KMS key that contains an asymmetric elliptic curve (ECC) key pair for signing and verification.
2117
- # # The key usage is required even though "SIGN_VERIFY" is the only valid value for ECC KMS keys. The key spec and key usage
2118
- # # 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.
2119
2192
  #
2120
2193
  # resp = client.create_key({
2121
2194
  # key_spec: "ECC_NIST_P521", # Describes the type of key material in the KMS key.
@@ -2176,6 +2249,38 @@ module Aws::KMS
2176
2249
  # }, # Detailed information about the KMS key that this operation creates.
2177
2250
  # }
2178
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
+ #
2179
2284
  # @example Example: To create a multi-Region primary KMS key
2180
2285
  #
2181
2286
  # # This example creates a multi-Region primary symmetric encryption key. Because the default values for all parameters
@@ -2191,6 +2296,7 @@ module Aws::KMS
2191
2296
  # aws_account_id: "111122223333",
2192
2297
  # arn: "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab",
2193
2298
  # creation_date: Time.parse("2021-09-02T016:15:21-09:00"),
2299
+ # current_key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
2194
2300
  # customer_master_key_spec: "SYMMETRIC_DEFAULT",
2195
2301
  # description: "",
2196
2302
  # enabled: true,
@@ -2327,7 +2433,7 @@ module Aws::KMS
2327
2433
  # description: "DescriptionType",
2328
2434
  # key_usage: "SIGN_VERIFY", # accepts SIGN_VERIFY, ENCRYPT_DECRYPT, GENERATE_VERIFY_MAC, KEY_AGREEMENT
2329
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
2330
- # 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
2331
2437
  # origin: "AWS_KMS", # accepts AWS_KMS, EXTERNAL, AWS_CLOUDHSM, EXTERNAL_KEY_STORE
2332
2438
  # custom_key_store_id: "CustomKeyStoreIdType",
2333
2439
  # bypass_policy_lockout_safety_check: false,
@@ -2359,11 +2465,11 @@ module Aws::KMS
2359
2465
  # resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
2360
2466
  # resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
2361
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"
2362
- # 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"
2363
2469
  # resp.key_metadata.encryption_algorithms #=> Array
2364
2470
  # resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
2365
2471
  # resp.key_metadata.signing_algorithms #=> Array
2366
- # 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"
2367
2473
  # resp.key_metadata.key_agreement_algorithms #=> Array
2368
2474
  # resp.key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH"
2369
2475
  # resp.key_metadata.multi_region #=> Boolean
@@ -2377,6 +2483,7 @@ module Aws::KMS
2377
2483
  # resp.key_metadata.mac_algorithms #=> Array
2378
2484
  # resp.key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
2379
2485
  # resp.key_metadata.xks_key_configuration.id #=> String
2486
+ # resp.key_metadata.current_key_material_id #=> String
2380
2487
  #
2381
2488
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKey AWS API Documentation
2382
2489
  #
@@ -2427,27 +2534,26 @@ module Aws::KMS
2427
2534
  # key that you intend.
2428
2535
  #
2429
2536
  # Whenever possible, use key policies to give users permission to call
2430
- # the `Decrypt` operation on a particular KMS key, instead of using
2431
- # &amp;IAM; policies. Otherwise, you might create an &amp;IAM; policy
2432
- # that gives the user `Decrypt` permission on all KMS keys. This user
2433
- # could decrypt ciphertext that was encrypted by KMS keys in other
2434
- # accounts if the key policy for the cross-account KMS key permits it.
2435
- # If you must use an IAM policy for `Decrypt` permissions, limit the
2436
- # user to particular KMS keys or particular trusted accounts. For
2437
- # details, see [Best practices for IAM policies][4] in the *Key
2438
- # Management Service Developer Guide*.
2439
- #
2440
- # `Decrypt` also supports [Amazon Web Services Nitro Enclaves][5], which
2441
- # provide an isolated compute environment in Amazon EC2. To call
2442
- # `Decrypt` for a Nitro enclave, use the [Amazon Web Services Nitro
2443
- # Enclaves SDK][6] or any Amazon Web Services SDK. Use the `Recipient`
2444
- # parameter to provide the attestation document for the enclave. Instead
2445
- # of the plaintext data, the response includes the plaintext data
2446
- # encrypted with the public key from the attestation document
2447
- # (`CiphertextForRecipient`). For information about the interaction
2448
- # between KMS and Amazon Web Services Nitro Enclaves, see [How Amazon
2449
- # Web Services Nitro Enclaves uses KMS][7] in the *Key Management
2450
- # 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*.
2451
2557
  #
2452
2558
  # The KMS key that you use for this operation must be in a compatible
2453
2559
  # key state. For details, see [Key states of KMS keys][8] in the *Key
@@ -2480,10 +2586,10 @@ module Aws::KMS
2480
2586
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policies-best-practices
2481
2587
  # [5]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
2482
2588
  # [6]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2483
- # [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
2484
2590
  # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2485
2591
  # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2486
- # [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
2487
2593
  #
2488
2594
  # @option params [required, String, StringIO, File] :ciphertext_blob
2489
2595
  # Ciphertext to be decrypted. The blob includes metadata.
@@ -2508,8 +2614,8 @@ module Aws::KMS
2508
2614
  #
2509
2615
  #
2510
2616
  #
2511
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
2512
- # [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
2513
2619
  #
2514
2620
  # @option params [Array<String>] :grant_tokens
2515
2621
  # A list of grant tokens.
@@ -2522,7 +2628,7 @@ module Aws::KMS
2522
2628
  #
2523
2629
  #
2524
2630
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2525
- # [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
2526
2632
  #
2527
2633
  # @option params [String] :key_id
2528
2634
  # Specifies the KMS key that KMS uses to decrypt the ciphertext.
@@ -2570,40 +2676,43 @@ module Aws::KMS
2570
2676
  #
2571
2677
  # @option params [Types::RecipientInfo] :recipient
2572
2678
  # A signed [attestation document][1] from an Amazon Web Services Nitro
2573
- # enclave and the encryption algorithm to use with the enclave's public
2574
- # 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`.
2575
2682
  #
2576
- # This parameter only supports attestation documents for Amazon Web
2577
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
2578
- # 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.
2579
2687
  #
2580
2688
  # When you use this parameter, instead of returning the plaintext data,
2581
2689
  # KMS encrypts the plaintext data with the public key in the attestation
2582
2690
  # document, and returns the resulting ciphertext in the
2583
2691
  # `CiphertextForRecipient` field in the response. This ciphertext can be
2584
- # decrypted only with the private key in the enclave. The `Plaintext`
2585
- # 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.
2586
2694
  #
2587
2695
  # For information about the interaction between KMS and Amazon Web
2588
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
2589
- # 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*.
2590
2699
  #
2591
2700
  #
2592
2701
  #
2593
2702
  # [1]: https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-concepts.html#term-attestdoc
2594
2703
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
2595
- # [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
2596
2705
  #
2597
2706
  # @option params [Boolean] :dry_run
2598
2707
  # Checks if your request will succeed. `DryRun` is an optional
2599
2708
  # parameter.
2600
2709
  #
2601
- # To learn more about how to use this parameter, see [Testing your KMS
2602
- # 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*.
2603
2712
  #
2604
2713
  #
2605
2714
  #
2606
- # [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
2607
2716
  #
2608
2717
  # @return [Types::DecryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2609
2718
  #
@@ -2611,6 +2720,7 @@ module Aws::KMS
2611
2720
  # * {Types::DecryptResponse#plaintext #plaintext} => String
2612
2721
  # * {Types::DecryptResponse#encryption_algorithm #encryption_algorithm} => String
2613
2722
  # * {Types::DecryptResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String
2723
+ # * {Types::DecryptResponse#key_material_id #key_material_id} => String
2614
2724
  #
2615
2725
  #
2616
2726
  # @example Example: To decrypt data with a symmetric encryption KMS key
@@ -2627,6 +2737,7 @@ module Aws::KMS
2627
2737
  # {
2628
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.
2629
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.
2630
2741
  # plaintext: "<binary data>", # The decrypted (plaintext) data.
2631
2742
  # }
2632
2743
  #
@@ -2648,11 +2759,11 @@ module Aws::KMS
2648
2759
  # plaintext: "<binary data>", # The decrypted (plaintext) data.
2649
2760
  # }
2650
2761
  #
2651
- # @example Example: To decrypt data for a Nitro enclave
2762
+ # @example Example: To decrypt data for a Nitro enclave or NitroTPM
2652
2763
  #
2653
2764
  # # The following Decrypt example includes the Recipient parameter with a signed attestation document from an AWS Nitro
2654
- # # enclave. Instead of returning the decrypted data in plaintext (Plaintext), the operation returns the decrypted data
2655
- # # 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).
2656
2767
  #
2657
2768
  # resp = client.decrypt({
2658
2769
  # ciphertext_blob: "<binary data>", # The encrypted data. This ciphertext was encrypted with the KMS key
@@ -2660,7 +2771,7 @@ module Aws::KMS
2660
2771
  # recipient: {
2661
2772
  # attestation_document: "<attestation document>",
2662
2773
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
2663
- # }, # 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
2664
2775
  # })
2665
2776
  #
2666
2777
  # resp.to_h outputs the following:
@@ -2693,6 +2804,7 @@ module Aws::KMS
2693
2804
  # resp.plaintext #=> String
2694
2805
  # resp.encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
2695
2806
  # resp.ciphertext_for_recipient #=> String
2807
+ # resp.key_material_id #=> String
2696
2808
  #
2697
2809
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Decrypt AWS API Documentation
2698
2810
  #
@@ -2749,7 +2861,7 @@ module Aws::KMS
2749
2861
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
2750
2862
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2751
2863
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access
2752
- # [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
2753
2865
  #
2754
2866
  # @option params [required, String] :alias_name
2755
2867
  # The alias to be deleted. The alias name must begin with `alias/`
@@ -2788,9 +2900,9 @@ module Aws::KMS
2788
2900
  # does not affect the external key store proxy, external key manager, or
2789
2901
  # any external keys.
2790
2902
  #
2791
- # This operation is part of the [custom key stores][1] feature in KMS,
2792
- # which combines the convenience and extensive integration of KMS with
2793
- # 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.
2794
2906
  #
2795
2907
  # The custom key store that you delete cannot contain any [KMS keys][2].
2796
2908
  # Before deleting the key store, verify that you will never need to use
@@ -2841,12 +2953,12 @@ module Aws::KMS
2841
2953
  #
2842
2954
  #
2843
2955
  #
2844
- # [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
2845
2957
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys
2846
- # [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
2847
2959
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key
2848
2960
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2849
- # [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
2850
2962
  #
2851
2963
  # @option params [required, String] :custom_key_store_id
2852
2964
  # Enter the ID of the custom key store you want to delete. To find the
@@ -2894,6 +3006,16 @@ module Aws::KMS
2894
3006
  # operation does not change the KMS key's state. Otherwise, it changes
2895
3007
  # the KMS key's state to `PendingImport`.
2896
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
+ #
2897
3019
  # The KMS key that you use for this operation must be in a compatible
2898
3020
  # key state. For details, see [Key states of KMS keys][2] in the *Key
2899
3021
  # Management Service Developer Guide*.
@@ -2908,6 +3030,8 @@ module Aws::KMS
2908
3030
  #
2909
3031
  # * GetParametersForImport
2910
3032
  #
3033
+ # * ListKeyRotations
3034
+ #
2911
3035
  # * ImportKeyMaterial
2912
3036
  #
2913
3037
  # **Eventual consistency**: The KMS API follows an eventual consistency
@@ -2918,7 +3042,7 @@ module Aws::KMS
2918
3042
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
2919
3043
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2920
3044
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2921
- # [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
2922
3046
  #
2923
3047
  # @option params [required, String] :key_id
2924
3048
  # Identifies the KMS key from which you are deleting imported key
@@ -2936,7 +3060,19 @@ module Aws::KMS
2936
3060
  # To get the key ID and key ARN for a KMS key, use ListKeys or
2937
3061
  # DescribeKey.
2938
3062
  #
2939
- # @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
2940
3076
  #
2941
3077
  #
2942
3078
  # @example Example: To delete imported key material
@@ -2945,14 +3081,21 @@ module Aws::KMS
2945
3081
  #
2946
3082
  # resp = client.delete_imported_key_material({
2947
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.
2948
3085
  # })
2949
3086
  #
2950
3087
  # @example Request syntax with placeholder values
2951
3088
  #
2952
3089
  # resp = client.delete_imported_key_material({
2953
3090
  # key_id: "KeyIdType", # required
3091
+ # key_material_id: "BackingKeyIdType",
2954
3092
  # })
2955
3093
  #
3094
+ # @example Response structure
3095
+ #
3096
+ # resp.key_id #=> String
3097
+ # resp.key_material_id #=> String
3098
+ #
2956
3099
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterial AWS API Documentation
2957
3100
  #
2958
3101
  # @overload delete_imported_key_material(params = {})
@@ -2964,8 +3107,8 @@ module Aws::KMS
2964
3107
 
2965
3108
  # Derives a shared secret using a key agreement algorithm.
2966
3109
  #
2967
- # <note markdown="1"> You must use an asymmetric NIST-recommended elliptic curve (ECC) or
2968
- # 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
2969
3112
  # `KEY_AGREEMENT` to call DeriveSharedSecret.
2970
3113
  #
2971
3114
  # </note>
@@ -2986,15 +3129,15 @@ module Aws::KMS
2986
3129
  # 1. **Alice** calls CreateKey to create an asymmetric KMS key pair
2987
3130
  # with a `KeyUsage` value of `KEY_AGREEMENT`.
2988
3131
  #
2989
- # The asymmetric KMS key must use a NIST-recommended elliptic curve
3132
+ # The asymmetric KMS key must use a NIST-standard elliptic curve
2990
3133
  # (ECC) or SM2 (China Regions only) key spec.
2991
3134
  #
2992
3135
  # 2. **Bob** creates an elliptic curve key pair.
2993
3136
  #
2994
3137
  # Bob can call CreateKey to create an asymmetric KMS key pair or
2995
3138
  # generate a key pair outside of KMS. Bob's key pair must use the
2996
- # same NIST-recommended elliptic curve (ECC) or SM2 (China Regions
2997
- # ony) curve as Alice.
3139
+ # same NIST-standard elliptic curve (ECC) or SM2 (China Regions ony)
3140
+ # curve as Alice.
2998
3141
  #
2999
3142
  # 3. Alice and Bob **exchange their public keys** through an insecure
3000
3143
  # communication channel (like the internet).
@@ -3021,12 +3164,12 @@ module Aws::KMS
3021
3164
  # his private key and Alice's public key.
3022
3165
  #
3023
3166
  # To derive a shared secret you must provide a key agreement algorithm,
3024
- # the private key of the caller's asymmetric NIST-recommended elliptic
3167
+ # the private key of the caller's asymmetric NIST-standard elliptic
3025
3168
  # curve or SM2 (China Regions only) KMS key pair, and the public key
3026
- # from your peer's NIST-recommended elliptic curve or SM2 (China
3027
- # Regions only) key pair. The public key can be from another asymmetric
3028
- # KMS key pair or from a key pair generated outside of KMS, but both key
3029
- # 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.
3030
3173
  #
3031
3174
  # The KMS key that you use for this operation must be in a compatible
3032
3175
  # key state. For details, see [Key states of KMS keys][3] in the *Key
@@ -3055,12 +3198,12 @@ module Aws::KMS
3055
3198
  # [2]: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf
3056
3199
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
3057
3200
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3058
- # [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
3059
3202
  #
3060
3203
  # @option params [required, String] :key_id
3061
- # Identifies an asymmetric NIST-recommended ECC or SM2 (China Regions
3062
- # only) KMS key. KMS uses the private key in the specified key pair to
3063
- # 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
3064
3207
  # `KEY_AGREEMENT`. To find the `KeyUsage` of a KMS key, use the
3065
3208
  # DescribeKey operation.
3066
3209
  #
@@ -3088,8 +3231,8 @@ module Aws::KMS
3088
3231
  # secret. The only valid value is `ECDH`.
3089
3232
  #
3090
3233
  # @option params [required, String, StringIO, File] :public_key
3091
- # Specifies the public key in your peer's NIST-recommended elliptic
3092
- # 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.
3093
3236
  #
3094
3237
  # The public key must be a DER-encoded X.509 public key, also known as
3095
3238
  # `SubjectPublicKeyInfo` (SPKI), as defined in [RFC 5280][1].
@@ -3123,50 +3266,55 @@ module Aws::KMS
3123
3266
  #
3124
3267
  #
3125
3268
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
3126
- # [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
3127
3270
  #
3128
3271
  # @option params [Boolean] :dry_run
3129
3272
  # Checks if your request will succeed. `DryRun` is an optional
3130
3273
  # parameter.
3131
3274
  #
3132
- # To learn more about how to use this parameter, see [Testing your KMS
3133
- # 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*.
3134
3277
  #
3135
3278
  #
3136
3279
  #
3137
- # [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
3138
3281
  #
3139
3282
  # @option params [Types::RecipientInfo] :recipient
3140
3283
  # A signed [attestation document][1] from an Amazon Web Services Nitro
3141
- # enclave and the encryption algorithm to use with the enclave's public
3142
- # 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`.
3143
3287
  #
3144
3288
  # This parameter only supports attestation documents for Amazon Web
3145
- # Services Nitro Enclaves. To call DeriveSharedSecret for an Amazon Web
3146
- # Services Nitro Enclaves, use the [Amazon Web Services Nitro Enclaves
3147
- # SDK][2] to generate the attestation document and then use the
3148
- # Recipient parameter from any Amazon Web Services SDK to provide the
3149
- # 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.
3150
3296
  #
3151
3297
  # When you use this parameter, instead of returning a plaintext copy of
3152
3298
  # the shared secret, KMS encrypts the plaintext shared secret under the
3153
3299
  # public key in the attestation document, and returns the resulting
3154
3300
  # ciphertext in the `CiphertextForRecipient` field in the response. This
3155
- # ciphertext can be decrypted only with the private key in the enclave.
3156
- # The `CiphertextBlob` field in the response contains the encrypted
3157
- # shared secret derived from the KMS key specified by the `KeyId`
3158
- # parameter and public key specified by the `PublicKey` parameter. The
3159
- # `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.
3160
3306
  #
3161
3307
  # For information about the interaction between KMS and Amazon Web
3162
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
3163
- # 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*.
3164
3311
  #
3165
3312
  #
3166
3313
  #
3167
3314
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
3168
3315
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
3169
- # [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
3170
3318
  #
3171
3319
  # @return [Types::DeriveSharedSecretResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3172
3320
  #
@@ -3195,6 +3343,31 @@ module Aws::KMS
3195
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.
3196
3344
  # }
3197
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
+ #
3198
3371
  # @example Request syntax with placeholder values
3199
3372
  #
3200
3373
  # resp = client.derive_shared_secret({
@@ -3229,9 +3402,9 @@ module Aws::KMS
3229
3402
  # Gets information about [custom key stores][1] in the account and
3230
3403
  # Region.
3231
3404
  #
3232
- # This operation is part of the [custom key stores][1] feature in KMS,
3233
- # which combines the convenience and extensive integration of KMS with
3234
- # 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.
3235
3408
  #
3236
3409
  # By default, this operation returns information about all custom key
3237
3410
  # stores in the account and Region. To get only information about a
@@ -3284,11 +3457,11 @@ module Aws::KMS
3284
3457
  #
3285
3458
  #
3286
3459
  #
3287
- # [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
3288
3461
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html
3289
3462
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html
3290
3463
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3291
- # [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
3292
3465
  #
3293
3466
  # @option params [String] :custom_key_store_id
3294
3467
  # Gets only information about the specified custom key store. Enter the
@@ -3449,6 +3622,7 @@ module Aws::KMS
3449
3622
  # resp.custom_key_stores[0].xks_proxy_configuration.uri_endpoint #=> String
3450
3623
  # resp.custom_key_stores[0].xks_proxy_configuration.uri_path #=> String
3451
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
3452
3626
  # resp.next_marker #=> String
3453
3627
  # resp.truncated #=> Boolean
3454
3628
  #
@@ -3486,8 +3660,8 @@ module Aws::KMS
3486
3660
  # * Whether automatic key rotation is enabled on the KMS key. To get
3487
3661
  # this information, use GetKeyRotationStatus. Also, some key states
3488
3662
  # prevent a KMS key from being automatically rotated. For details, see
3489
- # [How Automatic Key Rotation Works][6] in the *Key Management Service
3490
- # Developer Guide*.
3663
+ # [How key rotation works][6] in the *Key Management Service Developer
3664
+ # Guide*.
3491
3665
  #
3492
3666
  # * Tags on the KMS key. To get this information, use ListResourceTags.
3493
3667
  #
@@ -3526,14 +3700,14 @@ module Aws::KMS
3526
3700
  #
3527
3701
  #
3528
3702
  #
3529
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
3530
- # [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
3531
3705
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
3532
3706
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html
3533
3707
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html
3534
3708
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works
3535
3709
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3536
- # [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
3537
3711
  #
3538
3712
  # @option params [required, String] :key_id
3539
3713
  # Describes the specified KMS key.
@@ -3564,7 +3738,7 @@ module Aws::KMS
3564
3738
  #
3565
3739
  #
3566
3740
  #
3567
- # [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
3568
3742
  #
3569
3743
  # @option params [Array<String>] :grant_tokens
3570
3744
  # A list of grant tokens.
@@ -3577,7 +3751,7 @@ module Aws::KMS
3577
3751
  #
3578
3752
  #
3579
3753
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
3580
- # [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
3581
3755
  #
3582
3756
  # @return [Types::DescribeKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3583
3757
  #
@@ -3598,6 +3772,7 @@ module Aws::KMS
3598
3772
  # aws_account_id: "111122223333",
3599
3773
  # arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
3600
3774
  # creation_date: Time.parse("2017-07-05T14:04:55-07:00"),
3775
+ # current_key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
3601
3776
  # customer_master_key_spec: "SYMMETRIC_DEFAULT",
3602
3777
  # description: "",
3603
3778
  # enabled: true,
@@ -3664,6 +3839,7 @@ module Aws::KMS
3664
3839
  # aws_account_id: "111122223333",
3665
3840
  # arn: "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
3666
3841
  # creation_date: Time.parse(1586329200.918),
3842
+ # current_key_material_id: "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
3667
3843
  # customer_master_key_spec: "SYMMETRIC_DEFAULT",
3668
3844
  # description: "",
3669
3845
  # enabled: true,
@@ -3820,11 +3996,11 @@ module Aws::KMS
3820
3996
  # resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
3821
3997
  # resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
3822
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"
3823
- # 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"
3824
4000
  # resp.key_metadata.encryption_algorithms #=> Array
3825
4001
  # resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
3826
4002
  # resp.key_metadata.signing_algorithms #=> Array
3827
- # 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"
3828
4004
  # resp.key_metadata.key_agreement_algorithms #=> Array
3829
4005
  # resp.key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH"
3830
4006
  # resp.key_metadata.multi_region #=> Boolean
@@ -3838,6 +4014,7 @@ module Aws::KMS
3838
4014
  # resp.key_metadata.mac_algorithms #=> Array
3839
4015
  # resp.key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
3840
4016
  # resp.key_metadata.xks_key_configuration.id #=> String
4017
+ # resp.key_metadata.current_key_material_id #=> String
3841
4018
  #
3842
4019
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKey AWS API Documentation
3843
4020
  #
@@ -3851,13 +4028,10 @@ module Aws::KMS
3851
4028
  # Sets the state of a KMS key to disabled. This change temporarily
3852
4029
  # prevents use of the KMS key for [cryptographic operations][1].
3853
4030
  #
3854
- # For more information about how key state affects the use of a KMS key,
3855
- # see [Key states of KMS keys][2] in the <i> <i>Key Management Service
3856
- # Developer Guide</i> </i>.
3857
- #
3858
4031
  # The KMS key that you use for this operation must be in a compatible
3859
- # key state. For details, see [Key states of KMS keys][2] in the *Key
3860
- # 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>.
3861
4035
  #
3862
4036
  # **Cross-account use**: No. You cannot perform this operation on a KMS
3863
4037
  # key in a different Amazon Web Services account.
@@ -3871,10 +4045,10 @@ module Aws::KMS
3871
4045
  #
3872
4046
  #
3873
4047
  #
3874
- # [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
3875
4049
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
3876
4050
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3877
- # [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
3878
4052
  #
3879
4053
  # @option params [required, String] :key_id
3880
4054
  # Identifies the KMS key to disable.
@@ -3963,18 +4137,18 @@ module Aws::KMS
3963
4137
  #
3964
4138
  #
3965
4139
  #
3966
- # [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
3967
4141
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
3968
4142
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
3969
4143
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
3970
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
3971
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
3972
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
3973
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
3974
- # [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
3975
4149
  # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
3976
4150
  # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
3977
- # [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
3978
4152
  #
3979
4153
  # @option params [required, String] :key_id
3980
4154
  # Identifies a symmetric encryption KMS key. You cannot enable or
@@ -3999,7 +4173,7 @@ module Aws::KMS
3999
4173
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks
4000
4174
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
4001
4175
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
4002
- # [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
4003
4177
  #
4004
4178
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4005
4179
  #
@@ -4033,9 +4207,9 @@ module Aws::KMS
4033
4207
  # external key store proxy that communicates with your external key
4034
4208
  # manager.
4035
4209
  #
4036
- # This operation is part of the [custom key stores][1] feature in KMS,
4037
- # which combines the convenience and extensive integration of KMS with
4038
- # 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.
4039
4213
  #
4040
4214
  # While a custom key store is disconnected, you can manage the custom
4041
4215
  # key store and its KMS keys, but you cannot create or use its KMS keys.
@@ -4079,10 +4253,10 @@ module Aws::KMS
4079
4253
  #
4080
4254
  #
4081
4255
  #
4082
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4083
- # [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
4084
4258
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4085
- # [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
4086
4260
  #
4087
4261
  # @option params [required, String] :custom_key_store_id
4088
4262
  # Enter the ID of the custom key store you want to disconnect. To find
@@ -4141,10 +4315,10 @@ module Aws::KMS
4141
4315
  #
4142
4316
  #
4143
4317
  #
4144
- # [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
4145
4319
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4146
4320
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4147
- # [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
4148
4322
  #
4149
4323
  # @option params [required, String] :key_id
4150
4324
  # Identifies the KMS key to enable.
@@ -4205,17 +4379,17 @@ module Aws::KMS
4205
4379
  # any in progress rotations. You can use the ListKeyRotations operation
4206
4380
  # to view the details of completed rotations.
4207
4381
  #
4208
- # Automatic key rotation is supported only on [symmetric encryption KMS
4209
- # keys][3]. You cannot enable automatic rotation of [asymmetric KMS
4210
- # keys][4], [HMAC KMS keys][5], KMS keys with [imported key
4211
- # material][6], or KMS keys in a [custom key store][7]. To enable or
4212
- # 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],
4213
4387
  # set the property on the primary key.
4214
4388
  #
4215
4389
  # You cannot enable or disable automatic rotation of [Amazon Web
4216
- # 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
4217
4391
  # Amazon Web Services managed keys every year. Rotation of [Amazon Web
4218
- # 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
4219
4393
  # service that owns the key.
4220
4394
  #
4221
4395
  # <note markdown="1"> In May 2022, KMS changed the rotation schedule for Amazon Web Services
@@ -4231,13 +4405,13 @@ module Aws::KMS
4231
4405
  # </note>
4232
4406
  #
4233
4407
  # The KMS key that you use for this operation must be in a compatible
4234
- # 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
4235
4409
  # Management Service Developer Guide*.
4236
4410
  #
4237
4411
  # **Cross-account use**: No. You cannot perform this operation on a KMS
4238
4412
  # key in a different Amazon Web Services account.
4239
4413
  #
4240
- # **Required permissions**: [kms:EnableKeyRotation][12] (key policy)
4414
+ # **Required permissions**: [kms:EnableKeyRotation][11] (key policy)
4241
4415
  #
4242
4416
  # **Related operations:**
4243
4417
  #
@@ -4256,23 +4430,22 @@ module Aws::KMS
4256
4430
  # </note>
4257
4431
  #
4258
4432
  # **Eventual consistency**: The KMS API follows an eventual consistency
4259
- # model. For more information, see [KMS eventual consistency][13].
4433
+ # model. For more information, see [KMS eventual consistency][12].
4260
4434
  #
4261
4435
  #
4262
4436
  #
4263
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-enable-disable
4264
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
4265
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks
4266
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
4267
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
4268
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
4269
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4270
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
4271
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
4272
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
4273
- # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4274
- # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4275
- # [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
4276
4449
  #
4277
4450
  # @option params [required, String] :key_id
4278
4451
  # Identifies a symmetric encryption KMS key. You cannot enable automatic
@@ -4298,8 +4471,8 @@ module Aws::KMS
4298
4471
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
4299
4472
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
4300
4473
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
4301
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
4302
- # [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
4303
4476
  #
4304
4477
  # @option params [Integer] :rotation_period_in_days
4305
4478
  # Use this parameter to specify a custom period of time between each
@@ -4391,25 +4564,21 @@ module Aws::KMS
4391
4564
  # * `SYMMETRIC_DEFAULT`: 4096 bytes
4392
4565
  #
4393
4566
  # ^
4394
- #
4395
4567
  # * `RSA_2048`
4396
4568
  #
4397
4569
  # * `RSAES_OAEP_SHA_1`: 214 bytes
4398
4570
  #
4399
4571
  # * `RSAES_OAEP_SHA_256`: 190 bytes
4400
- #
4401
4572
  # * `RSA_3072`
4402
4573
  #
4403
4574
  # * `RSAES_OAEP_SHA_1`: 342 bytes
4404
4575
  #
4405
4576
  # * `RSAES_OAEP_SHA_256`: 318 bytes
4406
- #
4407
4577
  # * `RSA_4096`
4408
4578
  #
4409
4579
  # * `RSAES_OAEP_SHA_1`: 470 bytes
4410
4580
  #
4411
4581
  # * `RSAES_OAEP_SHA_256`: 446 bytes
4412
- #
4413
4582
  # * `SM2PKE`: 1024 bytes (China Regions only)
4414
4583
  #
4415
4584
  # The KMS key that you use for this operation must be in a compatible
@@ -4435,10 +4604,10 @@ module Aws::KMS
4435
4604
  #
4436
4605
  #
4437
4606
  #
4438
- # [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
4439
4608
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4440
4609
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4441
- # [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
4442
4611
  #
4443
4612
  # @option params [required, String] :key_id
4444
4613
  # Identifies the KMS key to use in the encryption operation. The KMS key
@@ -4491,8 +4660,8 @@ module Aws::KMS
4491
4660
  #
4492
4661
  #
4493
4662
  #
4494
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
4495
- # [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
4496
4665
  #
4497
4666
  # @option params [Array<String>] :grant_tokens
4498
4667
  # A list of grant tokens.
@@ -4505,7 +4674,7 @@ module Aws::KMS
4505
4674
  #
4506
4675
  #
4507
4676
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
4508
- # [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
4509
4678
  #
4510
4679
  # @option params [String] :encryption_algorithm
4511
4680
  # Specifies the encryption algorithm that KMS will use to encrypt the
@@ -4523,12 +4692,12 @@ module Aws::KMS
4523
4692
  # Checks if your request will succeed. `DryRun` is an optional
4524
4693
  # parameter.
4525
4694
  #
4526
- # To learn more about how to use this parameter, see [Testing your KMS
4527
- # 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*.
4528
4697
  #
4529
4698
  #
4530
4699
  #
4531
- # [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
4532
4701
  #
4533
4702
  # @return [Types::EncryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4534
4703
  #
@@ -4638,16 +4807,17 @@ module Aws::KMS
4638
4807
  # `GenerateDataKey` also supports [Amazon Web Services Nitro
4639
4808
  # Enclaves][2], which provide an isolated compute environment in Amazon
4640
4809
  # EC2. To call `GenerateDataKey` for an Amazon Web Services Nitro
4641
- # enclave, use the [Amazon Web Services Nitro Enclaves SDK][3] or any
4642
- # Amazon Web Services SDK. Use the `Recipient` parameter to provide the
4643
- # attestation document for the enclave. `GenerateDataKey` returns a copy
4644
- # of the data key encrypted under the specified KMS key, as usual. But
4645
- # instead of a plaintext copy of the data key, the response includes a
4646
- # copy of the data key encrypted under the public key from the
4647
- # attestation document (`CiphertextForRecipient`). For information about
4648
- # the interaction between KMS and Amazon Web Services Nitro Enclaves,
4649
- # see [How Amazon Web Services Nitro Enclaves uses KMS][4] in the *Key
4650
- # 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*.
4651
4821
  #
4652
4822
  # The KMS key that you use for this operation must be in a compatible
4653
4823
  # key state. For details, see [Key states of KMS keys][5] in the *Key
@@ -4703,16 +4873,16 @@ module Aws::KMS
4703
4873
  #
4704
4874
  #
4705
4875
  #
4706
- # [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
4707
4877
  # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
4708
4878
  # [3]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
4709
- # [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
4710
4880
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4711
4881
  # [6]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
4712
4882
  # [7]: https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/
4713
4883
  # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
4714
4884
  # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4715
- # [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
4716
4886
  #
4717
4887
  # @option params [required, String] :key_id
4718
4888
  # Specifies the symmetric encryption KMS key that encrypts the data key.
@@ -4760,7 +4930,7 @@ module Aws::KMS
4760
4930
  #
4761
4931
  #
4762
4932
  #
4763
- # [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
4764
4934
  #
4765
4935
  # @option params [Integer] :number_of_bytes
4766
4936
  # Specifies the length of the data key in bytes. For example, use the
@@ -4790,16 +4960,18 @@ module Aws::KMS
4790
4960
  #
4791
4961
  #
4792
4962
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
4793
- # [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
4794
4964
  #
4795
4965
  # @option params [Types::RecipientInfo] :recipient
4796
4966
  # A signed [attestation document][1] from an Amazon Web Services Nitro
4797
- # enclave and the encryption algorithm to use with the enclave's public
4798
- # 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`.
4799
4970
  #
4800
- # This parameter only supports attestation documents for Amazon Web
4801
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
4802
- # 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.
4803
4975
  #
4804
4976
  # When you use this parameter, instead of returning the plaintext data
4805
4977
  # key, KMS encrypts the plaintext data key under the public key in the
@@ -4811,25 +4983,26 @@ module Aws::KMS
4811
4983
  # `Plaintext` field in the response is null or empty.
4812
4984
  #
4813
4985
  # For information about the interaction between KMS and Amazon Web
4814
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
4815
- # 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*.
4816
4989
  #
4817
4990
  #
4818
4991
  #
4819
4992
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
4820
4993
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
4821
- # [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
4822
4995
  #
4823
4996
  # @option params [Boolean] :dry_run
4824
4997
  # Checks if your request will succeed. `DryRun` is an optional
4825
4998
  # parameter.
4826
4999
  #
4827
- # To learn more about how to use this parameter, see [Testing your KMS
4828
- # 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*.
4829
5002
  #
4830
5003
  #
4831
5004
  #
4832
- # [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
4833
5006
  #
4834
5007
  # @return [Types::GenerateDataKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4835
5008
  #
@@ -4837,6 +5010,7 @@ module Aws::KMS
4837
5010
  # * {Types::GenerateDataKeyResponse#plaintext #plaintext} => String
4838
5011
  # * {Types::GenerateDataKeyResponse#key_id #key_id} => String
4839
5012
  # * {Types::GenerateDataKeyResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String
5013
+ # * {Types::GenerateDataKeyResponse#key_material_id #key_material_id} => String
4840
5014
  #
4841
5015
  #
4842
5016
  # @example Example: To generate a data key
@@ -4853,13 +5027,14 @@ module Aws::KMS
4853
5027
  # {
4854
5028
  # ciphertext_blob: "<binary data>", # The encrypted data key.
4855
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.
4856
5031
  # plaintext: "<binary data>", # The unencrypted (plaintext) data key.
4857
5032
  # }
4858
5033
  #
4859
- # @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
4860
5035
  #
4861
- # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave.
4862
- # # 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,
4863
5038
  # # GenerateDataKey returns one copy of the data key encrypted by the KMS key (CiphertextBlob) and one copy of the data key
4864
5039
  # # encrypted by the public key from the attestation document (CiphertextForRecipient). The operation doesn't return a
4865
5040
  # # plaintext data key.
@@ -4870,7 +5045,7 @@ module Aws::KMS
4870
5045
  # recipient: {
4871
5046
  # attestation_document: "<attestation document>",
4872
5047
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
4873
- # }, # 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
4874
5049
  # })
4875
5050
  #
4876
5051
  # resp.to_h outputs the following:
@@ -4904,6 +5079,7 @@ module Aws::KMS
4904
5079
  # resp.plaintext #=> String
4905
5080
  # resp.key_id #=> String
4906
5081
  # resp.ciphertext_for_recipient #=> String
5082
+ # resp.key_material_id #=> String
4907
5083
  #
4908
5084
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKey AWS API Documentation
4909
5085
  #
@@ -4960,17 +5136,18 @@ module Aws::KMS
4960
5136
  # `GenerateDataKeyPair` also supports [Amazon Web Services Nitro
4961
5137
  # Enclaves][3], which provide an isolated compute environment in Amazon
4962
5138
  # EC2. To call `GenerateDataKeyPair` for an Amazon Web Services Nitro
4963
- # enclave, use the [Amazon Web Services Nitro Enclaves SDK][4] or any
4964
- # Amazon Web Services SDK. Use the `Recipient` parameter to provide the
4965
- # attestation document for the enclave. `GenerateDataKeyPair` returns
4966
- # the public data key and a copy of the private data key encrypted under
4967
- # the specified KMS key, as usual. But instead of a plaintext copy of
4968
- # the private data key (`PrivateKeyPlaintext`), the response includes a
4969
- # copy of the private data key encrypted under the public key from the
4970
- # attestation document (`CiphertextForRecipient`). For information about
4971
- # the interaction between KMS and Amazon Web Services Nitro Enclaves,
4972
- # see [How Amazon Web Services Nitro Enclaves uses KMS][5] in the *Key
4973
- # 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*.
4974
5151
  #
4975
5152
  # You can use an optional encryption context to add additional security
4976
5153
  # to the encryption operation. If you specify an `EncryptionContext`,
@@ -5011,11 +5188,11 @@ module Aws::KMS
5011
5188
  # [2]: https://tools.ietf.org/html/rfc5958
5012
5189
  # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
5013
5190
  # [4]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
5014
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
5015
- # [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
5016
5193
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5017
5194
  # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5018
- # [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
5019
5196
  #
5020
5197
  # @option params [Hash<String,String>] :encryption_context
5021
5198
  # Specifies the encryption context that will be used when encrypting the
@@ -5038,7 +5215,7 @@ module Aws::KMS
5038
5215
  #
5039
5216
  #
5040
5217
  #
5041
- # [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
5042
5219
  #
5043
5220
  # @option params [required, String] :key_id
5044
5221
  # Specifies the symmetric encryption KMS key that encrypts the private
@@ -5069,10 +5246,11 @@ module Aws::KMS
5069
5246
  # Determines the type of data key pair that is generated.
5070
5247
  #
5071
5248
  # The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys
5072
- # to encrypt and decrypt or to sign and verify (but not both), and the
5073
- # rule that permits you to use ECC KMS keys only to sign and verify, are
5074
- # not effective on data key pairs, which are used outside of KMS. The
5075
- # 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.
5076
5254
  #
5077
5255
  # @option params [Array<String>] :grant_tokens
5078
5256
  # A list of grant tokens.
@@ -5085,50 +5263,55 @@ module Aws::KMS
5085
5263
  #
5086
5264
  #
5087
5265
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
5088
- # [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
5089
5267
  #
5090
5268
  # @option params [Types::RecipientInfo] :recipient
5091
5269
  # A signed [attestation document][1] from an Amazon Web Services Nitro
5092
- # enclave and the encryption algorithm to use with the enclave's public
5093
- # 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`.
5094
5273
  #
5095
5274
  # This parameter only supports attestation documents for Amazon Web
5096
- # Services Nitro Enclaves. To call DeriveSharedSecret for an Amazon Web
5097
- # Services Nitro Enclaves, use the [Amazon Web Services Nitro Enclaves
5098
- # SDK][2] to generate the attestation document and then use the
5099
- # Recipient parameter from any Amazon Web Services SDK to provide the
5100
- # 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.
5101
5282
  #
5102
5283
  # When you use this parameter, instead of returning a plaintext copy of
5103
5284
  # the private data key, KMS encrypts the plaintext private data key
5104
5285
  # under the public key in the attestation document, and returns the
5105
5286
  # resulting ciphertext in the `CiphertextForRecipient` field in the
5106
5287
  # response. This ciphertext can be decrypted only with the private key
5107
- # in the enclave. The `CiphertextBlob` field in the response contains a
5108
- # copy of the private data key encrypted under the KMS key specified by
5109
- # the `KeyId` parameter. The `PrivateKeyPlaintext` field in the response
5110
- # 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.
5111
5292
  #
5112
5293
  # For information about the interaction between KMS and Amazon Web
5113
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
5114
- # 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*.
5115
5297
  #
5116
5298
  #
5117
5299
  #
5118
5300
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
5119
5301
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
5120
- # [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
5121
5304
  #
5122
5305
  # @option params [Boolean] :dry_run
5123
5306
  # Checks if your request will succeed. `DryRun` is an optional
5124
5307
  # parameter.
5125
5308
  #
5126
- # To learn more about how to use this parameter, see [Testing your KMS
5127
- # 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*.
5128
5311
  #
5129
5312
  #
5130
5313
  #
5131
- # [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
5132
5315
  #
5133
5316
  # @return [Types::GenerateDataKeyPairResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5134
5317
  #
@@ -5138,6 +5321,7 @@ module Aws::KMS
5138
5321
  # * {Types::GenerateDataKeyPairResponse#key_id #key_id} => String
5139
5322
  # * {Types::GenerateDataKeyPairResponse#key_pair_spec #key_pair_spec} => String
5140
5323
  # * {Types::GenerateDataKeyPairResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String
5324
+ # * {Types::GenerateDataKeyPairResponse#key_material_id #key_material_id} => String
5141
5325
  #
5142
5326
  #
5143
5327
  # @example Example: To generate an RSA key pair for encryption and decryption
@@ -5153,19 +5337,20 @@ module Aws::KMS
5153
5337
  # resp.to_h outputs the following:
5154
5338
  # {
5155
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.
5156
5341
  # key_pair_spec: "RSA_3072", # The actual key spec of the RSA data key pair.
5157
5342
  # private_key_ciphertext_blob: "<binary data>", # The encrypted private key of the RSA data key pair.
5158
5343
  # private_key_plaintext: "<binary data>", # The plaintext private key of the RSA data key pair.
5159
5344
  # public_key: "<binary data>", # The public key (plaintext) of the RSA data key pair.
5160
5345
  # }
5161
5346
  #
5162
- # @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
5163
5348
  #
5164
- # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave.
5165
- # # Instead of returning a plaintext copy of the private data key, GenerateDataKeyPair returns a copy of the private data
5166
- # # key encrypted by the public key from the attestation document (CiphertextForRecipient). It returns the public data key
5167
- # # (PublicKey) and a copy of private data key encrypted under the specified KMS key (PrivateKeyCiphertextBlob), as usual,
5168
- # # 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.
5169
5354
  #
5170
5355
  # resp = client.generate_data_key_pair({
5171
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.
@@ -5173,13 +5358,14 @@ module Aws::KMS
5173
5358
  # recipient: {
5174
5359
  # attestation_document: "<attestation document>",
5175
5360
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
5176
- # }, # 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.
5177
5362
  # })
5178
5363
  #
5179
5364
  # resp.to_h outputs the following:
5180
5365
  # {
5181
5366
  # ciphertext_for_recipient: "<binary data>", # The private key of the RSA data key pair encrypted by the public key from the attestation document
5182
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.
5183
5369
  # key_pair_spec: "RSA_3072", # The actual key spec of the RSA data key pair.
5184
5370
  # private_key_ciphertext_blob: "<binary data>", # The private key of the RSA data key pair encrypted by the KMS key.
5185
5371
  # private_key_plaintext: "", # This field is null or empty
@@ -5193,7 +5379,7 @@ module Aws::KMS
5193
5379
  # "EncryptionContextKey" => "EncryptionContextValue",
5194
5380
  # },
5195
5381
  # key_id: "KeyIdType", # required
5196
- # 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
5197
5383
  # grant_tokens: ["GrantTokenType"],
5198
5384
  # recipient: {
5199
5385
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256
@@ -5208,8 +5394,9 @@ module Aws::KMS
5208
5394
  # resp.private_key_plaintext #=> String
5209
5395
  # resp.public_key #=> String
5210
5396
  # resp.key_id #=> String
5211
- # 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"
5212
5398
  # resp.ciphertext_for_recipient #=> String
5399
+ # resp.key_material_id #=> String
5213
5400
  #
5214
5401
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPair AWS API Documentation
5215
5402
  #
@@ -5288,10 +5475,10 @@ module Aws::KMS
5288
5475
  #
5289
5476
  #
5290
5477
  # [1]: https://tools.ietf.org/html/rfc5280
5291
- # [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
5292
5479
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5293
5480
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5294
- # [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
5295
5482
  #
5296
5483
  # @option params [Hash<String,String>] :encryption_context
5297
5484
  # Specifies the encryption context that will be used when encrypting the
@@ -5314,7 +5501,7 @@ module Aws::KMS
5314
5501
  #
5315
5502
  #
5316
5503
  #
5317
- # [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
5318
5505
  #
5319
5506
  # @option params [required, String] :key_id
5320
5507
  # Specifies the symmetric encryption KMS key that encrypts the private
@@ -5345,10 +5532,11 @@ module Aws::KMS
5345
5532
  # Determines the type of data key pair that is generated.
5346
5533
  #
5347
5534
  # The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys
5348
- # to encrypt and decrypt or to sign and verify (but not both), and the
5349
- # rule that permits you to use ECC KMS keys only to sign and verify, are
5350
- # not effective on data key pairs, which are used outside of KMS. The
5351
- # 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.
5352
5540
  #
5353
5541
  # @option params [Array<String>] :grant_tokens
5354
5542
  # A list of grant tokens.
@@ -5361,18 +5549,18 @@ module Aws::KMS
5361
5549
  #
5362
5550
  #
5363
5551
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
5364
- # [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
5365
5553
  #
5366
5554
  # @option params [Boolean] :dry_run
5367
5555
  # Checks if your request will succeed. `DryRun` is an optional
5368
5556
  # parameter.
5369
5557
  #
5370
- # To learn more about how to use this parameter, see [Testing your KMS
5371
- # 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*.
5372
5560
  #
5373
5561
  #
5374
5562
  #
5375
- # [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
5376
5564
  #
5377
5565
  # @return [Types::GenerateDataKeyPairWithoutPlaintextResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5378
5566
  #
@@ -5380,6 +5568,7 @@ module Aws::KMS
5380
5568
  # * {Types::GenerateDataKeyPairWithoutPlaintextResponse#public_key #public_key} => String
5381
5569
  # * {Types::GenerateDataKeyPairWithoutPlaintextResponse#key_id #key_id} => String
5382
5570
  # * {Types::GenerateDataKeyPairWithoutPlaintextResponse#key_pair_spec #key_pair_spec} => String
5571
+ # * {Types::GenerateDataKeyPairWithoutPlaintextResponse#key_material_id #key_material_id} => String
5383
5572
  #
5384
5573
  #
5385
5574
  # @example Example: To generate an asymmetric data key pair without a plaintext key
@@ -5395,6 +5584,7 @@ module Aws::KMS
5395
5584
  # resp.to_h outputs the following:
5396
5585
  # {
5397
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.
5398
5588
  # key_pair_spec: "ECC_NIST_P521", # The actual key spec of the ECC asymmetric data key pair.
5399
5589
  # private_key_ciphertext_blob: "<binary data>", # The encrypted private key of the asymmetric ECC data key pair.
5400
5590
  # public_key: "<binary data>", # The public key (plaintext).
@@ -5407,7 +5597,7 @@ module Aws::KMS
5407
5597
  # "EncryptionContextKey" => "EncryptionContextValue",
5408
5598
  # },
5409
5599
  # key_id: "KeyIdType", # required
5410
- # 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
5411
5601
  # grant_tokens: ["GrantTokenType"],
5412
5602
  # dry_run: false,
5413
5603
  # })
@@ -5417,7 +5607,8 @@ module Aws::KMS
5417
5607
  # resp.private_key_ciphertext_blob #=> String
5418
5608
  # resp.public_key #=> String
5419
5609
  # resp.key_id #=> String
5420
- # 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
5421
5612
  #
5422
5613
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintext AWS API Documentation
5423
5614
  #
@@ -5507,10 +5698,10 @@ module Aws::KMS
5507
5698
  #
5508
5699
  #
5509
5700
  #
5510
- # [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
5511
5702
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5512
5703
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5513
- # [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
5514
5705
  #
5515
5706
  # @option params [required, String] :key_id
5516
5707
  # Specifies the symmetric encryption KMS key that encrypts the data key.
@@ -5558,7 +5749,7 @@ module Aws::KMS
5558
5749
  #
5559
5750
  #
5560
5751
  #
5561
- # [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
5562
5753
  #
5563
5754
  # @option params [String] :key_spec
5564
5755
  # The length of the data key. Use `AES_128` to generate a 128-bit
@@ -5581,23 +5772,24 @@ module Aws::KMS
5581
5772
  #
5582
5773
  #
5583
5774
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
5584
- # [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
5585
5776
  #
5586
5777
  # @option params [Boolean] :dry_run
5587
5778
  # Checks if your request will succeed. `DryRun` is an optional
5588
5779
  # parameter.
5589
5780
  #
5590
- # To learn more about how to use this parameter, see [Testing your KMS
5591
- # 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*.
5592
5783
  #
5593
5784
  #
5594
5785
  #
5595
- # [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
5596
5787
  #
5597
5788
  # @return [Types::GenerateDataKeyWithoutPlaintextResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5598
5789
  #
5599
5790
  # * {Types::GenerateDataKeyWithoutPlaintextResponse#ciphertext_blob #ciphertext_blob} => String
5600
5791
  # * {Types::GenerateDataKeyWithoutPlaintextResponse#key_id #key_id} => String
5792
+ # * {Types::GenerateDataKeyWithoutPlaintextResponse#key_material_id #key_material_id} => String
5601
5793
  #
5602
5794
  #
5603
5795
  # @example Example: To generate an encrypted data key
@@ -5614,6 +5806,7 @@ module Aws::KMS
5614
5806
  # {
5615
5807
  # ciphertext_blob: "<binary data>", # The encrypted data key.
5616
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.
5617
5810
  # }
5618
5811
  #
5619
5812
  # @example Request syntax with placeholder values
@@ -5633,6 +5826,7 @@ module Aws::KMS
5633
5826
  #
5634
5827
  # resp.ciphertext_blob #=> String
5635
5828
  # resp.key_id #=> String
5829
+ # resp.key_material_id #=> String
5636
5830
  #
5637
5831
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintext AWS API Documentation
5638
5832
  #
@@ -5687,7 +5881,7 @@ module Aws::KMS
5687
5881
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
5688
5882
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
5689
5883
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5690
- # [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
5691
5885
  #
5692
5886
  # @option params [required, String, StringIO, File] :message
5693
5887
  # The message to be hashed. Specify a message of up to 4,096 bytes.
@@ -5726,18 +5920,18 @@ module Aws::KMS
5726
5920
  #
5727
5921
  #
5728
5922
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
5729
- # [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
5730
5924
  #
5731
5925
  # @option params [Boolean] :dry_run
5732
5926
  # Checks if your request will succeed. `DryRun` is an optional
5733
5927
  # parameter.
5734
5928
  #
5735
- # To learn more about how to use this parameter, see [Testing your KMS
5736
- # 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*.
5737
5931
  #
5738
5932
  #
5739
5933
  #
5740
- # [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
5741
5935
  #
5742
5936
  # @return [Types::GenerateMacResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5743
5937
  #
@@ -5800,18 +5994,19 @@ module Aws::KMS
5800
5994
  #
5801
5995
  # `GenerateRandom` also supports [Amazon Web Services Nitro
5802
5996
  # Enclaves][1], which provide an isolated compute environment in Amazon
5803
- # EC2. To call `GenerateRandom` for a Nitro enclave, use the [Amazon Web
5804
- # Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK. Use
5805
- # the `Recipient` parameter to provide the attestation document for the
5806
- # enclave. Instead of plaintext bytes, the response includes the
5807
- # plaintext bytes encrypted under the public key from the attestation
5808
- # document (`CiphertextForRecipient`).For information about the
5809
- # interaction between KMS and Amazon Web Services Nitro Enclaves, see
5810
- # [How Amazon Web Services Nitro Enclaves uses KMS][3] in the *Key
5811
- # 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*.
5812
6006
  #
5813
6007
  # For more information about entropy and random number generation, see
5814
- # [Key Management Service Cryptographic Details][4].
6008
+ # [Entropy and random number generation][4] in the *Key Management
6009
+ # Service Developer Guide*.
5815
6010
  #
5816
6011
  # **Cross-account use**: Not applicable. `GenerateRandom` does not use
5817
6012
  # any account-specific resources, such as KMS keys.
@@ -5825,10 +6020,10 @@ module Aws::KMS
5825
6020
  #
5826
6021
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
5827
6022
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
5828
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
5829
- # [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
5830
6025
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5831
- # [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
5832
6027
  #
5833
6028
  # @option params [Integer] :number_of_bytes
5834
6029
  # The length of the random byte string. This parameter is required.
@@ -5844,29 +6039,32 @@ module Aws::KMS
5844
6039
  #
5845
6040
  # @option params [Types::RecipientInfo] :recipient
5846
6041
  # A signed [attestation document][1] from an Amazon Web Services Nitro
5847
- # enclave and the encryption algorithm to use with the enclave's public
5848
- # 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`.
5849
6045
  #
5850
- # This parameter only supports attestation documents for Amazon Web
5851
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
5852
- # 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.
5853
6050
  #
5854
6051
  # When you use this parameter, instead of returning plaintext bytes, KMS
5855
6052
  # encrypts the plaintext bytes under the public key in the attestation
5856
6053
  # document, and returns the resulting ciphertext in the
5857
6054
  # `CiphertextForRecipient` field in the response. This ciphertext can be
5858
- # decrypted only with the private key in the enclave. The `Plaintext`
5859
- # 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.
5860
6057
  #
5861
6058
  # For information about the interaction between KMS and Amazon Web
5862
- # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
5863
- # 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*.
5864
6062
  #
5865
6063
  #
5866
6064
  #
5867
6065
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
5868
6066
  # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
5869
- # [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
5870
6068
  #
5871
6069
  # @return [Types::GenerateRandomResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5872
6070
  #
@@ -5887,18 +6085,18 @@ module Aws::KMS
5887
6085
  # plaintext: "<binary data>", # The random data.
5888
6086
  # }
5889
6087
  #
5890
- # @example Example: To generate random data
6088
+ # @example Example: To generate random data for a Nitro enclave or NitroTPM
5891
6089
  #
5892
- # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave.
5893
- # # Instead of returning a plaintext (unencrypted) byte string, GenerateRandom returns the byte string encrypted by the
5894
- # # 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.
5895
6093
  #
5896
6094
  # resp = client.generate_random({
5897
6095
  # number_of_bytes: 1024, # The length of the random byte string
5898
6096
  # recipient: {
5899
6097
  # attestation_document: "<attestation document>",
5900
6098
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256",
5901
- # }, # 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
5902
6100
  # })
5903
6101
  #
5904
6102
  # resp.to_h outputs the following:
@@ -5948,7 +6146,7 @@ module Aws::KMS
5948
6146
  #
5949
6147
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
5950
6148
  # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html
5951
- # [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
5952
6150
  #
5953
6151
  # @option params [required, String] :key_id
5954
6152
  # Gets the key policy for the specified KMS key.
@@ -6016,16 +6214,16 @@ module Aws::KMS
6016
6214
  # enabled for the specified KMS key, the [rotation period][2], and the
6017
6215
  # next scheduled rotation date.
6018
6216
  #
6019
- # Automatic key rotation is supported only on [symmetric encryption KMS
6020
- # keys][3]. You cannot enable automatic rotation of [asymmetric KMS
6021
- # keys][4], [HMAC KMS keys][5], KMS keys with [imported key
6022
- # material][6], or KMS keys in a [custom key store][7]. To enable or
6023
- # disable automatic rotation of a set of related [multi-Region keys][8],
6024
- # 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.
6025
6223
  #
6026
6224
  # You can enable (EnableKeyRotation) and disable automatic rotation
6027
6225
  # (DisableKeyRotation) of the key material in customer managed KMS keys.
6028
- # 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
6029
6227
  # not configurable. KMS always rotates the key material in Amazon Web
6030
6228
  # Services managed KMS keys every year. The key rotation status for
6031
6229
  # Amazon Web Services managed KMS keys is always `true`.
@@ -6044,7 +6242,7 @@ module Aws::KMS
6044
6242
  # </note>
6045
6243
  #
6046
6244
  # The KMS key that you use for this operation must be in a compatible
6047
- # 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
6048
6246
  # Management Service Developer Guide*.
6049
6247
  #
6050
6248
  # * Disabled: The key rotation status does not change when you disable a
@@ -6065,7 +6263,7 @@ module Aws::KMS
6065
6263
  # a different Amazon Web Services account, specify the key ARN in the
6066
6264
  # value of the `KeyId` parameter.
6067
6265
  #
6068
- # **Required permissions**: [kms:GetKeyRotationStatus][11] (key policy)
6266
+ # **Required permissions**: [kms:GetKeyRotationStatus][10] (key policy)
6069
6267
  #
6070
6268
  # **Related operations:**
6071
6269
  #
@@ -6078,22 +6276,21 @@ module Aws::KMS
6078
6276
  # * RotateKeyOnDemand
6079
6277
  #
6080
6278
  # **Eventual consistency**: The KMS API follows an eventual consistency
6081
- # model. For more information, see [KMS eventual consistency][12].
6279
+ # model. For more information, see [KMS eventual consistency][11].
6082
6280
  #
6083
6281
  #
6084
6282
  #
6085
- # [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
6086
6284
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotation-period
6087
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks
6088
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
6089
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
6090
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
6091
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
6092
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
6093
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
6094
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6095
- # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6096
- # [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
6097
6294
  #
6098
6295
  # @option params [required, String] :key_id
6099
6296
  # Gets the rotation status for the specified KMS key.
@@ -6167,9 +6364,7 @@ module Aws::KMS
6167
6364
  # By default, KMS keys are created with key material that KMS generates.
6168
6365
  # This operation supports [Importing key material][1], an advanced
6169
6366
  # feature that lets you generate and import the cryptographic key
6170
- # material for a KMS key. For more information about importing key
6171
- # material into KMS, see [Importing key material][1] in the *Key
6172
- # Management Service Developer Guide*.
6367
+ # material for a KMS key.
6173
6368
  #
6174
6369
  # Before calling `GetParametersForImport`, use the CreateKey operation
6175
6370
  # with an `Origin` value of `EXTERNAL` to create a KMS key with no key
@@ -6238,11 +6433,11 @@ module Aws::KMS
6238
6433
  #
6239
6434
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
6240
6435
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
6241
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
6242
- # [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
6243
6438
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6244
6439
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6245
- # [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
6246
6441
  #
6247
6442
  # @option params [required, String] :key_id
6248
6443
  # The identifier of the KMS key that will be associated with the
@@ -6266,9 +6461,8 @@ module Aws::KMS
6266
6461
  # @option params [required, String] :wrapping_algorithm
6267
6462
  # The algorithm you will use with the RSA public key (`PublicKey`) in
6268
6463
  # the response to protect your key material during import. For more
6269
- # information, see [Select a wrapping
6270
- # algorithm](kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm)
6271
- # in the *Key Management Service Developer Guide*.
6464
+ # information, see [Select a wrapping algorithm][1] in the *Key
6465
+ # Management Service Developer Guide*.
6272
6466
  #
6273
6467
  # For RSA\_AES wrapping algorithms, you encrypt your key material with
6274
6468
  # an AES key that you generate, then encrypt your AES key with the RSA
@@ -6300,6 +6494,10 @@ module Aws::KMS
6300
6494
  # * **RSAES\_PKCS1\_V1\_5** (Deprecated) — As of October 10, 2023, KMS
6301
6495
  # does not support the RSAES\_PKCS1\_V1\_5 wrapping algorithm.
6302
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
+ #
6303
6501
  # @option params [required, String] :wrapping_key_spec
6304
6502
  # The type of RSA public key to return in the response. You will use
6305
6503
  # this wrapping key with the specified wrapping algorithm to protect
@@ -6447,8 +6645,9 @@ module Aws::KMS
6447
6645
  # * [KeyUsage][3]: Whether the key is used for encryption, signing, or
6448
6646
  # deriving a shared secret.
6449
6647
  #
6450
- # * [EncryptionAlgorithms][4] or [SigningAlgorithms][5]: A list of the
6451
- # 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.
6452
6651
  #
6453
6652
  # Although KMS cannot enforce these restrictions on external operations,
6454
6653
  # it is crucial that you use this information to prevent the public key
@@ -6461,22 +6660,22 @@ module Aws::KMS
6461
6660
  # To verify a signature outside of KMS with an SM2 public key (China
6462
6661
  # Regions only), you must specify the distinguishing ID. By default, KMS
6463
6662
  # uses `1234567812345678` as the distinguishing ID. For more
6464
- # information, see [Offline verification with SM2 key pairs][6].
6663
+ # information, see [Offline verification with SM2 key pairs][7].
6465
6664
  #
6466
6665
  # The KMS key that you use for this operation must be in a compatible
6467
- # 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
6468
6667
  # Management Service Developer Guide*.
6469
6668
  #
6470
6669
  # **Cross-account use**: Yes. To perform this operation with a KMS key
6471
6670
  # in a different Amazon Web Services account, specify the key ARN or
6472
6671
  # alias ARN in the value of the `KeyId` parameter.
6473
6672
  #
6474
- # **Required permissions**: [kms:GetPublicKey][8] (key policy)
6673
+ # **Required permissions**: [kms:GetPublicKey][9] (key policy)
6475
6674
  #
6476
6675
  # **Related operations**: CreateKey
6477
6676
  #
6478
6677
  # **Eventual consistency**: The KMS API follows an eventual consistency
6479
- # model. For more information, see [KMS eventual consistency][9].
6678
+ # model. For more information, see [KMS eventual consistency][10].
6480
6679
  #
6481
6680
  #
6482
6681
  #
@@ -6484,11 +6683,12 @@ module Aws::KMS
6484
6683
  # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeySpec
6485
6684
  # [3]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyUsage
6486
6685
  # [4]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-EncryptionAlgorithms
6487
- # [5]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-SigningAlgorithms
6488
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification
6489
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6490
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6491
- # [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
6492
6692
  #
6493
6693
  # @option params [required, String] :key_id
6494
6694
  # Identifies the asymmetric KMS key that includes the public key.
@@ -6523,7 +6723,7 @@ module Aws::KMS
6523
6723
  #
6524
6724
  #
6525
6725
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
6526
- # [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
6527
6727
  #
6528
6728
  # @return [Types::GetPublicKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6529
6729
  #
@@ -6571,12 +6771,12 @@ module Aws::KMS
6571
6771
  # resp.key_id #=> String
6572
6772
  # resp.public_key #=> String
6573
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"
6574
- # 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"
6575
6775
  # resp.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT"
6576
6776
  # resp.encryption_algorithms #=> Array
6577
6777
  # resp.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
6578
6778
  # resp.signing_algorithms #=> Array
6579
- # 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"
6580
6780
  # resp.key_agreement_algorithms #=> Array
6581
6781
  # resp.key_agreement_algorithms[0] #=> String, one of "ECDH"
6582
6782
  #
@@ -6590,53 +6790,65 @@ module Aws::KMS
6590
6790
  end
6591
6791
 
6592
6792
  # Imports or reimports key material into an existing KMS key that was
6593
- # created without key material. `ImportKeyMaterial` also sets the
6594
- # expiration model and expiration date of the imported key material.
6595
- #
6596
- # By default, KMS keys are created with key material that KMS generates.
6597
- # This operation supports [Importing key material][1], an advanced
6598
- # feature that lets you generate and import the cryptographic key
6599
- # material for a KMS key. For more information about importing key
6600
- # material into KMS, see [Importing key material][1] in the *Key
6601
- # 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.
6602
6796
  #
6603
- # After you successfully import key material into a KMS key, you can
6604
- # [reimport the same key material][2] into that KMS key, but you cannot
6605
- # import different key material. You might reimport key material to
6606
- # replace key material that expired or key material that you deleted.
6607
- # You might also reimport key material to change the expiration model or
6608
- # 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.
6609
6833
  #
6610
6834
  # Each time you import key material into KMS, you can determine whether
6611
6835
  # (`ExpirationModel`) and when (`ValidTo`) the key material expires. To
6612
6836
  # change the expiration of your key material, you must import it again,
6613
6837
  # either by calling `ImportKeyMaterial` or using the [import
6614
- # features](kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-import-key-material-console)
6615
- # of the KMS console.
6838
+ # features][3] of the KMS console.
6616
6839
  #
6617
- # Before calling `ImportKeyMaterial`:
6840
+ # Before you call `ImportKeyMaterial`, complete these steps:
6618
6841
  #
6619
- # * Create or identify a KMS key with no key material. The KMS key must
6620
- # have an `Origin` value of `EXTERNAL`, which indicates that the KMS
6621
- # 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.
6622
6844
  #
6623
- # 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
6624
6846
  # CreateKey operation with an `Origin` value of `EXTERNAL`. You can
6625
6847
  # create a symmetric encryption KMS key, HMAC KMS key, asymmetric
6626
- # encryption KMS key, or asymmetric signing KMS key. You can also
6627
- # import key material into a [multi-Region
6628
- # key](kms/latest/developerguide/multi-region-keys-overview.html) of
6629
- # any supported type. However, you can't import key material into a
6630
- # KMS key in a [custom key
6631
- # store](kms/latest/developerguide/custom-key-store-overview.html).
6632
- #
6633
- # * Use the DescribeKey operation to verify that the `KeyState` of the
6634
- # KMS key is `PendingImport`, which indicates that the KMS key has no
6635
- # key material.
6636
- #
6637
- # If you are reimporting the same key material into an existing KMS
6638
- # key, you might need to call the DeleteImportedKeyMaterial to delete
6639
- # 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].
6640
6852
  #
6641
6853
  # * Call the GetParametersForImport operation to get a public key and
6642
6854
  # import token set for importing key material.
@@ -6650,11 +6862,10 @@ module Aws::KMS
6650
6862
  #
6651
6863
  # * The key ID or key ARN of the KMS key to associate with the imported
6652
6864
  # key material. Its `Origin` must be `EXTERNAL` and its `KeyState`
6653
- # must be `PendingImport`. You cannot perform this operation on a KMS
6654
- # key in a [custom key
6655
- # store](kms/latest/developerguide/custom-key-store-overview.html), or
6656
- # on a KMS key in a different Amazon Web Services account. To get the
6657
- # `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.
6658
6869
  #
6659
6870
  # * The encrypted key material.
6660
6871
  #
@@ -6664,7 +6875,7 @@ module Aws::KMS
6664
6875
  #
6665
6876
  # * Whether the key material expires (`ExpirationModel`) and, if so,
6666
6877
  # when (`ValidTo`). For help with this choice, see [Setting an
6667
- # expiration time][3] in the *Key Management Service Developer Guide*.
6878
+ # expiration time][6] in the *Key Management Service Developer Guide*.
6668
6879
  #
6669
6880
  # If you set an expiration date, KMS deletes the key material from the
6670
6881
  # KMS key on the specified date, making the KMS key unusable. To use
@@ -6674,25 +6885,28 @@ module Aws::KMS
6674
6885
  # Each time you reimport, you can eliminate or reset the expiration
6675
6886
  # time.
6676
6887
  #
6677
- # When this operation is successful, the key state of the KMS key
6678
- # changes from `PendingImport` to `Enabled`, and you can use the KMS key
6679
- # 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.
6680
6894
  #
6681
6895
  # If this operation fails, use the exception to help determine the
6682
6896
  # problem. If the error is related to the key material, the import
6683
6897
  # token, or wrapping key, use GetParametersForImport to get a new public
6684
6898
  # key and import token for the KMS key and repeat the import procedure.
6685
- # For help, see [How To Import Key Material][4] in the *Key Management
6686
- # Service Developer Guide*.
6899
+ # For help, see [Create a KMS key with imported key material][7] in the
6900
+ # *Key Management Service Developer Guide*.
6687
6901
  #
6688
6902
  # The KMS key that you use for this operation must be in a compatible
6689
- # 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
6690
6904
  # Management Service Developer Guide*.
6691
6905
  #
6692
6906
  # **Cross-account use**: No. You cannot perform this operation on a KMS
6693
6907
  # key in a different Amazon Web Services account.
6694
6908
  #
6695
- # **Required permissions**: [kms:ImportKeyMaterial][6] (key policy)
6909
+ # **Required permissions**: [kms:ImportKeyMaterial][9] (key policy)
6696
6910
  #
6697
6911
  # **Related operations:**
6698
6912
  #
@@ -6700,18 +6914,25 @@ module Aws::KMS
6700
6914
  #
6701
6915
  # * GetParametersForImport
6702
6916
  #
6917
+ # * ListKeyRotations
6918
+ #
6919
+ # * RotateKeyOnDemand
6920
+ #
6703
6921
  # **Eventual consistency**: The KMS API follows an eventual consistency
6704
- # model. For more information, see [KMS eventual consistency][7].
6922
+ # model. For more information, see [KMS eventual consistency][10].
6705
6923
  #
6706
6924
  #
6707
6925
  #
6708
6926
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
6709
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#reimport-key-material
6710
- # [3]: https://docs.aws.amazon.com/en_us/kms/latest/developerguide/importing-keys.html#importing-keys-expiration
6711
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#importing-keys-overview
6712
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
6713
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6714
- # [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
6715
6936
  #
6716
6937
  # @option params [required, String] :key_id
6717
6938
  # The identifier of the KMS key that will be associated with the
@@ -6722,11 +6943,9 @@ module Aws::KMS
6722
6943
  #
6723
6944
  # The KMS key can be a symmetric encryption KMS key, HMAC KMS key,
6724
6945
  # asymmetric encryption KMS key, or asymmetric signing KMS key,
6725
- # including a [multi-Region
6726
- # key](kms/latest/developerguide/multi-region-keys-overview.html) of any
6727
- # supported type. You cannot perform this operation on a KMS key in a
6728
- # custom key store, or on a KMS key in a different Amazon Web Services
6729
- # 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.
6730
6949
  #
6731
6950
  # Specify the key ID or key ARN of the KMS key.
6732
6951
  #
@@ -6740,6 +6959,10 @@ module Aws::KMS
6740
6959
  # To get the key ID and key ARN for a KMS key, use ListKeys or
6741
6960
  # DescribeKey.
6742
6961
  #
6962
+ #
6963
+ #
6964
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
6965
+ #
6743
6966
  # @option params [required, String, StringIO, File] :import_token
6744
6967
  # The import token that you received in the response to a previous
6745
6968
  # GetParametersForImport request. It must be from the same response that
@@ -6784,9 +7007,54 @@ module Aws::KMS
6784
7007
  #
6785
7008
  #
6786
7009
  #
6787
- # [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
6788
7011
  #
6789
- # @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
6790
7058
  #
6791
7059
  #
6792
7060
  # @example Example: To import key material into a KMS key
@@ -6800,6 +7068,12 @@ module Aws::KMS
6800
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.
6801
7069
  # })
6802
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
+ #
6803
7077
  # @example Example: To import key material into a KMS key
6804
7078
  #
6805
7079
  # # The following example imports key material that expires in 3 days. It might be part of an application that frequently
@@ -6813,6 +7087,12 @@ module Aws::KMS
6813
7087
  # valid_to: Time.parse("2023-09-30T00:00:00-00:00"), # Specifies the date and time when the imported key material expires.
6814
7088
  # })
6815
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
+ #
6816
7096
  # @example Request syntax with placeholder values
6817
7097
  #
6818
7098
  # resp = client.import_key_material({
@@ -6821,8 +7101,16 @@ module Aws::KMS
6821
7101
  # encrypted_key_material: "data", # required
6822
7102
  # valid_to: Time.now,
6823
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",
6824
7107
  # })
6825
7108
  #
7109
+ # @example Response structure
7110
+ #
7111
+ # resp.key_id #=> String
7112
+ # resp.key_material_id #=> String
7113
+ #
6826
7114
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterial AWS API Documentation
6827
7115
  #
6828
7116
  # @overload import_key_material(params = {})
@@ -6873,10 +7161,10 @@ module Aws::KMS
6873
7161
  #
6874
7162
  #
6875
7163
  #
6876
- # [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
6877
7165
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
6878
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access
6879
- # [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
6880
7168
  #
6881
7169
  # @option params [String] :key_id
6882
7170
  # Lists only aliases that are associated with the specified KMS key.
@@ -7008,8 +7296,9 @@ module Aws::KMS
7008
7296
  #
7009
7297
  # For detailed information about grants, including grant terminology,
7010
7298
  # see [Grants in KMS][1] in the <i> <i>Key Management Service Developer
7011
- # Guide</i> </i>. For examples of working with grants in several
7012
- # 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].
7013
7302
  #
7014
7303
  # <note markdown="1"> The `GranteePrincipal` field in the `ListGrants` response usually
7015
7304
  # contains the user or role designated as the grantee principal in the
@@ -7042,10 +7331,10 @@ module Aws::KMS
7042
7331
  #
7043
7332
  #
7044
7333
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
7045
- # [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
7046
7335
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services
7047
7336
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7048
- # [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
7049
7338
  #
7050
7339
  # @option params [Integer] :limit
7051
7340
  # Use this parameter to specify the maximum number of items to return.
@@ -7221,7 +7510,7 @@ module Aws::KMS
7221
7510
  #
7222
7511
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7223
7512
  # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html
7224
- # [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
7225
7514
  #
7226
7515
  # @option params [required, String] :key_id
7227
7516
  # Gets the names of key policies for the specified KMS key.
@@ -7303,14 +7592,15 @@ module Aws::KMS
7303
7592
  req.send_request(options)
7304
7593
  end
7305
7594
 
7306
- # Returns information about all completed key material rotations for the
7307
- # 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.
7308
7598
  #
7309
7599
  # You must specify the KMS key in all requests. You can refine the key
7310
7600
  # rotations list by limiting the number of rotations returned.
7311
7601
  #
7312
7602
  # For detailed information about automatic and on-demand key rotations,
7313
- # see [Rotating KMS keys][1] in the *Key Management Service Developer
7603
+ # see [Rotate KMS keys][1] in the *Key Management Service Developer
7314
7604
  # Guide*.
7315
7605
  #
7316
7606
  # **Cross-account use**: No. You cannot perform this operation on a KMS
@@ -7322,10 +7612,14 @@ module Aws::KMS
7322
7612
  #
7323
7613
  # * EnableKeyRotation
7324
7614
  #
7615
+ # * DeleteImportedKeyMaterial
7616
+ #
7325
7617
  # * DisableKeyRotation
7326
7618
  #
7327
7619
  # * GetKeyRotationStatus
7328
7620
  #
7621
+ # * ImportKeyMaterial
7622
+ #
7329
7623
  # * RotateKeyOnDemand
7330
7624
  #
7331
7625
  # **Eventual consistency**: The KMS API follows an eventual consistency
@@ -7335,7 +7629,7 @@ module Aws::KMS
7335
7629
  #
7336
7630
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
7337
7631
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7338
- # [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
7339
7633
  #
7340
7634
  # @option params [required, String] :key_id
7341
7635
  # Gets the key rotations for the specified KMS key.
@@ -7352,6 +7646,16 @@ module Aws::KMS
7352
7646
  # To get the key ID and key ARN for a KMS key, use ListKeys or
7353
7647
  # DescribeKey.
7354
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
+ #
7355
7659
  # @option params [Integer] :limit
7356
7660
  # Use this parameter to specify the maximum number of items to return.
7357
7661
  # When this value is present, KMS does not return more than the
@@ -7404,6 +7708,7 @@ module Aws::KMS
7404
7708
  #
7405
7709
  # resp = client.list_key_rotations({
7406
7710
  # key_id: "KeyIdType", # required
7711
+ # include_key_material: "ALL_KEY_MATERIAL", # accepts ALL_KEY_MATERIAL, ROTATIONS_ONLY
7407
7712
  # limit: 1,
7408
7713
  # marker: "MarkerType",
7409
7714
  # })
@@ -7412,6 +7717,12 @@ module Aws::KMS
7412
7717
  #
7413
7718
  # resp.rotations #=> Array
7414
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
7415
7726
  # resp.rotations[0].rotation_date #=> Time
7416
7727
  # resp.rotations[0].rotation_type #=> String, one of "AUTOMATIC", "ON_DEMAND"
7417
7728
  # resp.next_marker #=> String
@@ -7450,7 +7761,7 @@ module Aws::KMS
7450
7761
  #
7451
7762
  #
7452
7763
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7453
- # [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
7454
7765
  #
7455
7766
  # @option params [Integer] :limit
7456
7767
  # Use this parameter to specify the maximum number of items to return.
@@ -7546,7 +7857,7 @@ module Aws::KMS
7546
7857
  # For general information about tags, including the format and syntax,
7547
7858
  # see [Tagging Amazon Web Services resources][1] in the *Amazon Web
7548
7859
  # Services General Reference*. For information about using tags in KMS,
7549
- # see [Tagging keys][2].
7860
+ # see [Tags in KMS][2].
7550
7861
  #
7551
7862
  # **Cross-account use**: No. You cannot perform this operation on a KMS
7552
7863
  # key in a different Amazon Web Services account.
@@ -7571,7 +7882,7 @@ module Aws::KMS
7571
7882
  # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
7572
7883
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
7573
7884
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7574
- # [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
7575
7886
  #
7576
7887
  # @option params [required, String] :key_id
7577
7888
  # Gets tags on the specified KMS key.
@@ -7676,8 +7987,9 @@ module Aws::KMS
7676
7987
  #
7677
7988
  # For detailed information about grants, including grant terminology,
7678
7989
  # see [Grants in KMS][1] in the <i> <i>Key Management Service Developer
7679
- # Guide</i> </i>. For examples of working with grants in several
7680
- # 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].
7681
7993
  #
7682
7994
  # **Cross-account use**: You must specify a principal in your Amazon Web
7683
7995
  # Services account. This operation returns a list of grants where the
@@ -7715,9 +8027,9 @@ module Aws::KMS
7715
8027
  #
7716
8028
  #
7717
8029
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
7718
- # [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
7719
8031
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7720
- # [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
7721
8033
  #
7722
8034
  # @option params [Integer] :limit
7723
8035
  # Use this parameter to specify the maximum number of items to return.
@@ -7827,8 +8139,9 @@ module Aws::KMS
7827
8139
  # formatting a JSON policy document, see the [IAM JSON Policy
7828
8140
  # Reference][2] in the <i> <i>Identity and Access Management User
7829
8141
  # Guide</i> </i>. For examples of adding a key policy in multiple
7830
- # programming languages, see [Setting a key policy][3] in the *Key
7831
- # 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*.
7832
8145
  #
7833
8146
  # **Cross-account use**: No. You cannot perform this operation on a KMS
7834
8147
  # key in a different Amazon Web Services account.
@@ -7844,9 +8157,9 @@ module Aws::KMS
7844
8157
  #
7845
8158
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
7846
8159
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
7847
- # [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
7848
8161
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
7849
- # [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
7850
8163
  #
7851
8164
  # @option params [required, String] :key_id
7852
8165
  # Sets the key policy on the specified KMS key.
@@ -7887,6 +8200,17 @@ module Aws::KMS
7887
8200
  # not always immediately visible][2] in the *Amazon Web Services
7888
8201
  # Identity and Access Management User Guide*.
7889
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
+ #
7890
8214
  # A key policy document can include only the following characters:
7891
8215
  #
7892
8216
  # * Printable ASCII characters from the space character (`\u0020`)
@@ -7898,18 +8222,24 @@ module Aws::KMS
7898
8222
  # * The tab (`\u0009`), line feed (`\u000A`), and carriage return
7899
8223
  # (`\u000D`) special characters
7900
8224
  #
7901
- # 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
7902
8231
  # the *Key Management Service Developer Guide*.For help writing and
7903
8232
  # formatting a JSON policy document, see the [IAM JSON Policy
7904
- # Reference][4] in the <i> <i>Identity and Access Management User
8233
+ # Reference][5] in the <i> <i>Identity and Access Management User
7905
8234
  # Guide</i> </i>.
7906
8235
  #
7907
8236
  #
7908
8237
  #
7909
8238
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
7910
8239
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
7911
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
7912
- # [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
7913
8243
  #
7914
8244
  # @option params [Boolean] :bypass_policy_lockout_safety_check
7915
8245
  # Skips ("bypasses") the key policy lockout safety check. The default
@@ -8058,15 +8388,15 @@ module Aws::KMS
8058
8388
  #
8059
8389
  #
8060
8390
  #
8061
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-manually
8062
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
8063
- # [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
8064
8394
  # [4]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
8065
8395
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
8066
8396
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
8067
8397
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
8068
8398
  # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
8069
- # [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
8070
8400
  #
8071
8401
  # @option params [required, String, StringIO, File] :ciphertext_blob
8072
8402
  # Ciphertext of the data to reencrypt.
@@ -8089,7 +8419,7 @@ module Aws::KMS
8089
8419
  #
8090
8420
  #
8091
8421
  #
8092
- # [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
8093
8423
  #
8094
8424
  # @option params [String] :source_key_id
8095
8425
  # Specifies the KMS key that KMS will use to decrypt the ciphertext
@@ -8175,7 +8505,7 @@ module Aws::KMS
8175
8505
  #
8176
8506
  #
8177
8507
  #
8178
- # [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
8179
8509
  #
8180
8510
  # @option params [String] :source_encryption_algorithm
8181
8511
  # Specifies the encryption algorithm that KMS will use to decrypt the
@@ -8209,18 +8539,18 @@ module Aws::KMS
8209
8539
  #
8210
8540
  #
8211
8541
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
8212
- # [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
8213
8543
  #
8214
8544
  # @option params [Boolean] :dry_run
8215
8545
  # Checks if your request will succeed. `DryRun` is an optional
8216
8546
  # parameter.
8217
8547
  #
8218
- # To learn more about how to use this parameter, see [Testing your KMS
8219
- # 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*.
8220
8550
  #
8221
8551
  #
8222
8552
  #
8223
- # [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
8224
8554
  #
8225
8555
  # @return [Types::ReEncryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
8226
8556
  #
@@ -8229,6 +8559,8 @@ module Aws::KMS
8229
8559
  # * {Types::ReEncryptResponse#key_id #key_id} => String
8230
8560
  # * {Types::ReEncryptResponse#source_encryption_algorithm #source_encryption_algorithm} => String
8231
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
8232
8564
  #
8233
8565
  #
8234
8566
  # @example Example: To reencrypt data
@@ -8243,8 +8575,12 @@ module Aws::KMS
8243
8575
  # resp.to_h outputs the following:
8244
8576
  # {
8245
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.
8246
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.
8247
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.
8248
8584
  # }
8249
8585
  #
8250
8586
  # @example Request syntax with placeholder values
@@ -8272,6 +8608,8 @@ module Aws::KMS
8272
8608
  # resp.key_id #=> String
8273
8609
  # resp.source_encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
8274
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
8275
8613
  #
8276
8614
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncrypt AWS API Documentation
8277
8615
  #
@@ -8303,12 +8641,12 @@ module Aws::KMS
8303
8641
  # independently of its primary and peer replica keys. A primary key and
8304
8642
  # its replica keys share properties that make them interoperable. They
8305
8643
  # have the same [key ID][2] and key material. They also have the same
8306
- # [key spec][3], [key usage][4], [key material origin][5], and
8307
- # [automatic key rotation status][6]. KMS automatically synchronizes
8308
- # these shared properties among related multi-Region keys. All other
8309
- # properties of a replica key can differ, including its [key policy][7],
8310
- # [tags][8], [aliases][9], and [Key states of KMS keys][10]. KMS pricing
8311
- # 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.
8312
8650
  #
8313
8651
  # When this operation completes, the new replica key has a transient key
8314
8652
  # state of `Creating`. This key state changes to `Enabled` (or
@@ -8318,7 +8656,7 @@ module Aws::KMS
8318
8656
  # If you are creating and using the replica key programmatically, retry
8319
8657
  # on `KMSInvalidStateException` or call `DescribeKey` to check its
8320
8658
  # `KeyState` value before using it. For details about the `Creating` key
8321
- # 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
8322
8660
  # Developer Guide*.
8323
8661
  #
8324
8662
  # You cannot create more than one replica of a primary key in any
@@ -8327,7 +8665,7 @@ module Aws::KMS
8327
8665
  # `AlreadyExistsException` error. If the key state of the existing
8328
8666
  # replica is `PendingDeletion`, you can cancel the scheduled key
8329
8667
  # deletion (CancelKeyDeletion) or wait for the key to be deleted. The
8330
- # 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]
8331
8669
  # as the original replica key.
8332
8670
  #
8333
8671
  # The CloudTrail log of a `ReplicateKey` operation records a
@@ -8337,8 +8675,6 @@ module Aws::KMS
8337
8675
  # If you replicate a multi-Region primary key with imported key
8338
8676
  # material, the replica key is created with no key material. You must
8339
8677
  # import the same key material that you imported into the primary key.
8340
- # For details, see [Importing key material into multi-Region keys][12]
8341
- # in the *Key Management Service Developer Guide*.
8342
8678
  #
8343
8679
  # To convert a replica key to a primary key, use the UpdatePrimaryRegion
8344
8680
  # operation.
@@ -8369,23 +8705,18 @@ module Aws::KMS
8369
8705
  # * UpdatePrimaryRegion
8370
8706
  #
8371
8707
  # **Eventual consistency**: The KMS API follows an eventual consistency
8372
- # model. For more information, see [KMS eventual consistency][13].
8708
+ # model. For more information, see [KMS eventual consistency][8].
8373
8709
  #
8374
8710
  #
8375
8711
  #
8376
8712
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
8377
8713
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id
8378
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-spec
8379
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-usage
8380
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-origin
8381
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
8382
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
8383
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
8384
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html
8385
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
8386
- # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-sync-properties
8387
- # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-import.html
8388
- # [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
8389
8720
  #
8390
8721
  # @option params [required, String] :key_id
8391
8722
  # Identifies the multi-Region primary key that is being replicated. To
@@ -8413,33 +8744,23 @@ module Aws::KMS
8413
8744
  # [KMS service endpoints][1] in the *Amazon Web Services General
8414
8745
  # Reference*.
8415
8746
  #
8416
- # <note markdown="1"> HMAC KMS keys are not supported in all Amazon Web Services Regions. If
8417
- # you try to replicate an HMAC KMS key in an Amazon Web Services Region
8418
- # in which HMAC keys are not supported, the `ReplicateKey` operation
8419
- # returns an `UnsupportedOperationException`. For a list of Regions in
8420
- # which HMAC KMS keys are supported, see [HMAC keys in KMS][2] in the
8421
- # *Key Management Service Developer Guide*.
8422
- #
8423
- # </note>
8424
- #
8425
8747
  # The replica must be in a different Amazon Web Services Region than its
8426
8748
  # primary key and other replicas of that primary key, but in the same
8427
8749
  # Amazon Web Services partition. KMS must be available in the replica
8428
8750
  # Region. If the Region is not enabled by default, the Amazon Web
8429
8751
  # Services account must be enabled in the Region. For information about
8430
- # Amazon Web Services partitions, see [Amazon Resource Names (ARNs)][3]
8752
+ # Amazon Web Services partitions, see [Amazon Resource Names (ARNs)][2]
8431
8753
  # in the *Amazon Web Services General Reference*. For information about
8432
- # enabling and disabling Regions, see [Enabling a Region][4] and
8433
- # [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
8434
8756
  # Reference*.
8435
8757
  #
8436
8758
  #
8437
8759
  #
8438
8760
  # [1]: https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region
8439
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
8440
- # [3]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
8441
- # [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable
8442
- # [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
8443
8764
  #
8444
8765
  # @option params [String] :policy
8445
8766
  # The key policy to attach to the KMS key. This parameter is optional.
@@ -8487,7 +8808,7 @@ module Aws::KMS
8487
8808
  #
8488
8809
  #
8489
8810
  #
8490
- # [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
8491
8812
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key
8492
8813
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
8493
8814
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
@@ -8556,7 +8877,7 @@ module Aws::KMS
8556
8877
  # When you add tags to an Amazon Web Services resource, Amazon Web
8557
8878
  # Services generates a cost allocation report with usage and costs
8558
8879
  # aggregated by tags. Tags can also be used to control access to a KMS
8559
- # key. For details, see [Tagging Keys][3].
8880
+ # key. For details, see [Tags in KMS][3].
8560
8881
  #
8561
8882
  #
8562
8883
  #
@@ -8651,11 +8972,11 @@ module Aws::KMS
8651
8972
  # resp.replica_key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
8652
8973
  # resp.replica_key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
8653
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"
8654
- # 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"
8655
8976
  # resp.replica_key_metadata.encryption_algorithms #=> Array
8656
8977
  # resp.replica_key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
8657
8978
  # resp.replica_key_metadata.signing_algorithms #=> Array
8658
- # 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"
8659
8980
  # resp.replica_key_metadata.key_agreement_algorithms #=> Array
8660
8981
  # resp.replica_key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH"
8661
8982
  # resp.replica_key_metadata.multi_region #=> Boolean
@@ -8669,6 +8990,7 @@ module Aws::KMS
8669
8990
  # resp.replica_key_metadata.mac_algorithms #=> Array
8670
8991
  # resp.replica_key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512"
8671
8992
  # resp.replica_key_metadata.xks_key_configuration.id #=> String
8993
+ # resp.replica_key_metadata.current_key_material_id #=> String
8672
8994
  # resp.replica_policy #=> String
8673
8995
  # resp.replica_tags #=> Array
8674
8996
  # resp.replica_tags[0].tag_key #=> String
@@ -8692,20 +9014,20 @@ module Aws::KMS
8692
9014
  # by the *grantee principal* if the grant allows the `RetireGrant`
8693
9015
  # operation, and by the Amazon Web Services account in which the grant
8694
9016
  # is created. It can also be called by principals to whom permission for
8695
- # retiring a grant is delegated. For details, see [Retiring and revoking
8696
- # grants][2] in the *Key Management Service Developer Guide*.
9017
+ # retiring a grant is delegated.
8697
9018
  #
8698
9019
  # For detailed information about grants, including grant terminology,
8699
- # see [Grants in KMS][3] in the <i> <i>Key Management Service Developer
8700
- # Guide</i> </i>. For examples of working with grants in several
8701
- # 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].
8702
9024
  #
8703
9025
  # **Cross-account use**: Yes. You can retire a grant on a KMS key in a
8704
9026
  # different Amazon Web Services account.
8705
9027
  #
8706
9028
  # **Required permissions**: Permission to retire a grant is determined
8707
9029
  # primarily by the grant. For details, see [Retiring and revoking
8708
- # grants][2] in the *Key Management Service Developer Guide*.
9030
+ # grants][4] in the *Key Management Service Developer Guide*.
8709
9031
  #
8710
9032
  # **Related operations:**
8711
9033
  #
@@ -8723,10 +9045,10 @@ module Aws::KMS
8723
9045
  #
8724
9046
  #
8725
9047
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
8726
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete
8727
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
8728
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html
8729
- # [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
8730
9052
  #
8731
9053
  # @option params [String] :grant_token
8732
9054
  # Identifies the grant to be retired. You can use a grant token to
@@ -8761,12 +9083,12 @@ module Aws::KMS
8761
9083
  # Checks if your request will succeed. `DryRun` is an optional
8762
9084
  # parameter.
8763
9085
  #
8764
- # To learn more about how to use this parameter, see [Testing your KMS
8765
- # 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*.
8766
9088
  #
8767
9089
  #
8768
9090
  #
8769
- # [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
8770
9092
  #
8771
9093
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
8772
9094
  #
@@ -8811,8 +9133,9 @@ module Aws::KMS
8811
9133
  #
8812
9134
  # For detailed information about grants, including grant terminology,
8813
9135
  # see [Grants in KMS][3] in the <i> <i>Key Management Service Developer
8814
- # Guide</i> </i>. For examples of working with grants in several
8815
- # 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].
8816
9139
  #
8817
9140
  # **Cross-account use**: Yes. To perform this operation on a KMS key in
8818
9141
  # a different Amazon Web Services account, specify the key ARN in the
@@ -8835,12 +9158,12 @@ module Aws::KMS
8835
9158
  #
8836
9159
  #
8837
9160
  #
8838
- # [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
8839
9162
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-eventual-consistency
8840
9163
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html
8841
- # [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
8842
9165
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
8843
- # [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
8844
9167
  #
8845
9168
  # @option params [required, String] :key_id
8846
9169
  # A unique identifier for the KMS key associated with the grant. To get
@@ -8867,12 +9190,12 @@ module Aws::KMS
8867
9190
  # Checks if your request will succeed. `DryRun` is an optional
8868
9191
  # parameter.
8869
9192
  #
8870
- # To learn more about how to use this parameter, see [Testing your KMS
8871
- # 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*.
8872
9195
  #
8873
9196
  #
8874
9197
  #
8875
- # [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
8876
9199
  #
8877
9200
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
8878
9201
  #
@@ -8928,27 +9251,33 @@ module Aws::KMS
8928
9251
  # of the key material for your KMS keys in CloudTrail and Amazon
8929
9252
  # CloudWatch.
8930
9253
  #
8931
- # On-demand key rotation is supported only on [symmetric encryption KMS
8932
- # keys][3]. You cannot perform on-demand rotation of [asymmetric KMS
8933
- # keys][4], [HMAC KMS keys][5], KMS keys with [imported key
8934
- # material][6], or KMS keys in a [custom key store][7]. To perform
8935
- # on-demand rotation of a set of related [multi-Region keys][8], invoke
8936
- # 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.
8937
9266
  #
8938
9267
  # You cannot initiate on-demand rotation of [Amazon Web Services managed
8939
- # 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
8940
9269
  # Services managed keys every year. Rotation of [Amazon Web Services
8941
- # 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
8942
9271
  # owns the key.
8943
9272
  #
8944
9273
  # The KMS key that you use for this operation must be in a compatible
8945
- # 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
8946
9275
  # Management Service Developer Guide*.
8947
9276
  #
8948
9277
  # **Cross-account use**: No. You cannot perform this operation on a KMS
8949
9278
  # key in a different Amazon Web Services account.
8950
9279
  #
8951
- # **Required permissions**: [kms:RotateKeyOnDemand][12] (key policy)
9280
+ # **Required permissions**: [kms:RotateKeyOnDemand][11] (key policy)
8952
9281
  #
8953
9282
  # **Related operations:**
8954
9283
  #
@@ -8958,34 +9287,35 @@ module Aws::KMS
8958
9287
  #
8959
9288
  # * GetKeyRotationStatus
8960
9289
  #
9290
+ # * ImportKeyMaterial
9291
+ #
8961
9292
  # * ListKeyRotations
8962
9293
  #
8963
9294
  # **Eventual consistency**: The KMS API follows an eventual consistency
8964
- # model. For more information, see [KMS eventual consistency][13].
9295
+ # model. For more information, see [KMS eventual consistency][12].
8965
9296
  #
8966
9297
  #
8967
9298
  #
8968
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-on-demand
8969
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-enable-disable
8970
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks
8971
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
8972
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
8973
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
8974
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
8975
- # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
8976
- # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
8977
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
8978
- # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
8979
- # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
8980
- # [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
8981
9311
  #
8982
9312
  # @option params [required, String] :key_id
8983
9313
  # Identifies a symmetric encryption KMS key. You cannot perform
8984
9314
  # on-demand rotation of [asymmetric KMS keys][1], [HMAC KMS keys][2],
8985
- # KMS keys with [imported key material][3], or KMS keys in a [custom key
8986
- # store][4]. To perform on-demand rotation of a set of related
8987
- # [multi-Region keys][5], invoke the on-demand rotation on the primary
8988
- # 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.
8989
9319
  #
8990
9320
  # Specify the key ID or key ARN of the KMS key.
8991
9321
  #
@@ -9004,8 +9334,8 @@ module Aws::KMS
9004
9334
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
9005
9335
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
9006
9336
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
9007
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
9008
- # [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
9009
9339
  #
9010
9340
  # @return [Types::RotateKeyOnDemandResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9011
9341
  #
@@ -9059,9 +9389,8 @@ module Aws::KMS
9059
9389
  # operation. When a KMS key is deleted, all data that was encrypted
9060
9390
  # under the KMS key is unrecoverable. (The only exception is a
9061
9391
  # [multi-Region replica key][1], or an [asymmetric or HMAC KMS key with
9062
- # imported key
9063
- # material](kms/latest/developerguide/importing-keys-managing.html#import-delete-key).)
9064
- # 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.
9065
9394
  #
9066
9395
  # You can schedule the deletion of a multi-Region primary key and its
9067
9396
  # replica keys at any time. However, KMS will not delete a multi-Region
@@ -9072,13 +9401,13 @@ module Aws::KMS
9072
9401
  # the last of its replicas keys is deleted (not just scheduled), the key
9073
9402
  # state of the primary key changes to `PendingDeletion` and its waiting
9074
9403
  # period (`PendingWindowInDays`) begins. For details, see [Deleting
9075
- # multi-Region keys][1] in the *Key Management Service Developer Guide*.
9404
+ # multi-Region keys][3] in the *Key Management Service Developer Guide*.
9076
9405
  #
9077
- # 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
9078
9407
  # best effort to delete the associated key material from the associated
9079
9408
  # CloudHSM cluster. However, you might need to manually [delete the
9080
- # orphaned key material][3] from the cluster and its backups. [Deleting
9081
- # 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
9082
9411
  # associated external key. However, for both types of custom key stores,
9083
9412
  # deleting a KMS key is destructive and irreversible. You cannot decrypt
9084
9413
  # ciphertext encrypted under the KMS key by using only its associated
@@ -9087,11 +9416,11 @@ module Aws::KMS
9087
9416
  # material.
9088
9417
  #
9089
9418
  # For more information about scheduling a KMS key for deletion, see
9090
- # [Deleting KMS keys][5] in the *Key Management Service Developer
9419
+ # [Deleting KMS keys][7] in the *Key Management Service Developer
9091
9420
  # Guide*.
9092
9421
  #
9093
9422
  # The KMS key that you use for this operation must be in a compatible
9094
- # 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
9095
9424
  # Management Service Developer Guide*.
9096
9425
  #
9097
9426
  # **Cross-account use**: No. You cannot perform this operation on a KMS
@@ -9106,17 +9435,19 @@ module Aws::KMS
9106
9435
  # * DisableKey
9107
9436
  #
9108
9437
  # **Eventual consistency**: The KMS API follows an eventual consistency
9109
- # model. For more information, see [KMS eventual consistency][7].
9438
+ # model. For more information, see [KMS eventual consistency][9].
9110
9439
  #
9111
9440
  #
9112
9441
  #
9113
9442
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html
9114
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/delete-cmk-keystore.html
9115
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key
9116
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/delete-xks-key.html
9117
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html
9118
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9119
- # [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
9120
9451
  #
9121
9452
  # @option params [required, String] :key_id
9122
9453
  # The unique identifier of the KMS key to delete.
@@ -9205,11 +9536,11 @@ module Aws::KMS
9205
9536
  # Developer Guide*.
9206
9537
  #
9207
9538
  # Digital signatures are generated and verified by using asymmetric key
9208
- # pair, such as an RSA or ECC pair that is represented by an asymmetric
9209
- # KMS key. The key owner (or an authorized user) uses their private key
9210
- # to sign a message. Anyone with the public key can verify that the
9211
- # message was signed with that particular private key and that the
9212
- # 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.
9213
9544
  #
9214
9545
  # To use the `Sign` operation, provide the following information:
9215
9546
  #
@@ -9222,8 +9553,8 @@ module Aws::KMS
9222
9553
  # to sign. You can submit messages of up to 4096 bytes. To sign a
9223
9554
  # larger message, generate a hash digest of the message, and then
9224
9555
  # provide the hash digest in the `Message` parameter. To indicate
9225
- # whether the message is a full message or a digest, use the
9226
- # `MessageType` parameter.
9556
+ # whether the message is a full message, a digest, or an ML-DSA
9557
+ # EXTERNAL\_MU, use the `MessageType` parameter.
9227
9558
  #
9228
9559
  # * Choose a signing algorithm that is compatible with the KMS key.
9229
9560
  #
@@ -9265,7 +9596,7 @@ module Aws::KMS
9265
9596
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
9266
9597
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9267
9598
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9268
- # [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
9269
9600
  #
9270
9601
  # @option params [required, String] :key_id
9271
9602
  # Identifies an asymmetric KMS key. KMS uses the private key in the
@@ -9303,26 +9634,41 @@ module Aws::KMS
9303
9634
  # @option params [String] :message_type
9304
9635
  # Tells KMS whether the value of the `Message` parameter should be
9305
9636
  # hashed as part of the signing algorithm. Use `RAW` for unhashed
9306
- # 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.
9307
9640
  #
9308
9641
  # When the value of `MessageType` is `RAW`, KMS uses the standard
9309
9642
  # signing algorithm, which begins with a hash function. When the value
9310
- # 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.
9646
+ #
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.
9651
+ #
9652
+ # When using ECC\_NIST\_EDWARDS25519 KMS keys:
9653
+ #
9654
+ # * ED25519\_SHA\_512 signing algorithm requires KMS `MessageType:RAW`
9311
9655
  #
9312
- # Use the `DIGEST` value only when the value of the `Message` parameter
9313
- # is a message digest. If you use the `DIGEST` value with an unhashed
9314
- # message, the security of the signing operation can be compromised.
9656
+ # * ED25519\_PH\_SHA\_512 signing algorithm requires KMS
9657
+ # `MessageType:DIGEST`
9315
9658
  #
9316
- # When the value of `MessageType`is `DIGEST`, the length of the
9659
+ # When the value of `MessageType` is `DIGEST`, the length of the
9317
9660
  # `Message` value must match the length of hashed messages for the
9318
9661
  # specified signing algorithm.
9319
9662
  #
9663
+ # When the value of `MessageType` is `EXTERNAL_MU` the length of the
9664
+ # `Message` value must be 64 bytes.
9665
+ #
9320
9666
  # You can submit a message digest and omit the `MessageType` or specify
9321
9667
  # `RAW` so the digest is hashed again while signing. However, this can
9322
9668
  # cause verification failures when verifying with a system that assumes
9323
9669
  # a single hash.
9324
9670
  #
9325
- # The hashing algorithm in that `Sign` uses is based on the
9671
+ # The hashing algorithm that `Sign` uses is based on the
9326
9672
  # `SigningAlgorithm` value.
9327
9673
  #
9328
9674
  # * Signing algorithms that end in SHA\_256 use the SHA\_256 hashing
@@ -9334,12 +9680,15 @@ module Aws::KMS
9334
9680
  # * Signing algorithms that end in SHA\_512 use the SHA\_512 hashing
9335
9681
  # algorithm.
9336
9682
  #
9683
+ # * Signing algorithms that end in SHAKE\_256 use the SHAKE\_256 hashing
9684
+ # algorithm.
9685
+ #
9337
9686
  # * SM2DSA uses the SM3 hashing algorithm. For details, see [Offline
9338
9687
  # verification with SM2 key pairs][1].
9339
9688
  #
9340
9689
  #
9341
9690
  #
9342
- # [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
9343
9692
  #
9344
9693
  # @option params [Array<String>] :grant_tokens
9345
9694
  # A list of grant tokens.
@@ -9352,7 +9701,7 @@ module Aws::KMS
9352
9701
  #
9353
9702
  #
9354
9703
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
9355
- # [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
9356
9705
  #
9357
9706
  # @option params [required, String] :signing_algorithm
9358
9707
  # Specifies the signing algorithm to use when signing the message.
@@ -9366,12 +9715,12 @@ module Aws::KMS
9366
9715
  # Checks if your request will succeed. `DryRun` is an optional
9367
9716
  # parameter.
9368
9717
  #
9369
- # To learn more about how to use this parameter, see [Testing your KMS
9370
- # 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*.
9371
9720
  #
9372
9721
  #
9373
9722
  #
9374
- # [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
9375
9724
  #
9376
9725
  # @return [Types::SignResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9377
9726
  #
@@ -9424,9 +9773,9 @@ module Aws::KMS
9424
9773
  # resp = client.sign({
9425
9774
  # key_id: "KeyIdType", # required
9426
9775
  # message: "data", # required
9427
- # message_type: "RAW", # accepts RAW, DIGEST
9776
+ # message_type: "RAW", # accepts RAW, DIGEST, EXTERNAL_MU
9428
9777
  # grant_tokens: ["GrantTokenType"],
9429
- # 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
9430
9779
  # dry_run: false,
9431
9780
  # })
9432
9781
  #
@@ -9434,7 +9783,7 @@ module Aws::KMS
9434
9783
  #
9435
9784
  # resp.key_id #=> String
9436
9785
  # resp.signature #=> String
9437
- # 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"
9438
9787
  #
9439
9788
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Sign AWS API Documentation
9440
9789
  #
@@ -9494,17 +9843,17 @@ module Aws::KMS
9494
9843
  #
9495
9844
  #
9496
9845
  #
9497
- # [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
9498
9847
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
9499
- # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
9500
- # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk
9501
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#keystore-concept
9502
- # [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
9503
9852
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
9504
9853
  # [8]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
9505
9854
  # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9506
9855
  # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9507
- # [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
9508
9857
  #
9509
9858
  # @option params [required, String] :key_id
9510
9859
  # Identifies a customer managed key in the account and Region.
@@ -9614,13 +9963,13 @@ module Aws::KMS
9614
9963
  #
9615
9964
  #
9616
9965
  #
9617
- # [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
9618
9967
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
9619
9968
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
9620
9969
  # [4]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
9621
9970
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9622
9971
  # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9623
- # [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
9624
9973
  #
9625
9974
  # @option params [required, String] :key_id
9626
9975
  # Identifies the KMS key from which you are removing tags.
@@ -9733,7 +10082,7 @@ module Aws::KMS
9733
10082
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
9734
10083
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9735
10084
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access
9736
- # [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
9737
10086
  #
9738
10087
  # @option params [required, String] :alias_name
9739
10088
  # Identifies the alias that is changing its KMS key. This value must
@@ -9772,8 +10121,8 @@ module Aws::KMS
9772
10121
  #
9773
10122
  #
9774
10123
  #
9775
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
9776
- # [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
9777
10126
  #
9778
10127
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
9779
10128
  #
@@ -9813,9 +10162,9 @@ module Aws::KMS
9813
10162
  # verify the updated property values, use the DescribeCustomKeyStores
9814
10163
  # operation.
9815
10164
  #
9816
- # This operation is part of the [custom key stores][1] feature in KMS,
9817
- # which combines the convenience and extensive integration of KMS with
9818
- # 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.
9819
10168
  #
9820
10169
  # When updating the properties of an external key store, verify that the
9821
10170
  # updated settings connect your key store, via the external key store
@@ -9885,7 +10234,7 @@ module Aws::KMS
9885
10234
  # **Cross-account use**: No. You cannot perform this operation on a
9886
10235
  # custom key store in a different Amazon Web Services account.
9887
10236
  #
9888
- # **Required permissions**: [kms:UpdateCustomKeyStore][2] (IAM policy)
10237
+ # **Required permissions**: [kms:UpdateCustomKeyStore][1] (IAM policy)
9889
10238
  #
9890
10239
  # **Related operations:**
9891
10240
  #
@@ -9900,13 +10249,12 @@ module Aws::KMS
9900
10249
  # * DisconnectCustomKeyStore
9901
10250
  #
9902
10251
  # **Eventual consistency**: The KMS API follows an eventual consistency
9903
- # model. For more information, see [KMS eventual consistency][3].
10252
+ # model. For more information, see [KMS eventual consistency][2].
9904
10253
  #
9905
10254
  #
9906
10255
  #
9907
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
9908
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
9909
- # [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
9910
10258
  #
9911
10259
  # @option params [required, String] :custom_key_store_id
9912
10260
  # Identifies the custom key store that you want to update. Enter the ID
@@ -10002,6 +10350,15 @@ module Aws::KMS
10002
10350
  #
10003
10351
  # To change this value, the external key store must be disconnected.
10004
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
+ #
10005
10362
  # @option params [Types::XksProxyAuthenticationCredentialType] :xks_proxy_authentication_credential
10006
10363
  # Changes the credentials that KMS uses to sign requests to the external
10007
10364
  # key store proxy (XKS proxy). This parameter is valid only for custom
@@ -10143,6 +10500,7 @@ module Aws::KMS
10143
10500
  # xks_proxy_uri_endpoint: "XksProxyUriEndpointType",
10144
10501
  # xks_proxy_uri_path: "XksProxyUriPathType",
10145
10502
  # xks_proxy_vpc_endpoint_service_name: "XksProxyVpcEndpointServiceNameType",
10503
+ # xks_proxy_vpc_endpoint_service_owner: "AccountIdType",
10146
10504
  # xks_proxy_authentication_credential: {
10147
10505
  # access_key_id: "XksProxyAuthenticationAccessKeyIdType", # required
10148
10506
  # raw_secret_access_key: "XksProxyAuthenticationRawSecretAccessKeyType", # required
@@ -10184,7 +10542,7 @@ module Aws::KMS
10184
10542
  #
10185
10543
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
10186
10544
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
10187
- # [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
10188
10546
  #
10189
10547
  # @option params [required, String] :key_id
10190
10548
  # Updates the description of the specified KMS key.
@@ -10244,8 +10602,8 @@ module Aws::KMS
10244
10602
  # key in `eu-west-2`. If you run `UpdatePrimaryRegion` with a
10245
10603
  # `PrimaryRegion` value of `eu-west-2`, the primary key is now the key
10246
10604
  # in `eu-west-2`, and the key in `us-east-1` becomes a replica key. For
10247
- # details, see [Updating the primary Region][1] in the *Key Management
10248
- # 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*.
10249
10607
  #
10250
10608
  # This operation supports *multi-Region keys*, an KMS feature that lets
10251
10609
  # you create multiple interoperable KMS keys in different Amazon Web
@@ -10313,7 +10671,7 @@ module Aws::KMS
10313
10671
  #
10314
10672
  #
10315
10673
  #
10316
- # [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
10317
10675
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
10318
10676
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id
10319
10677
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-spec
@@ -10322,7 +10680,7 @@ module Aws::KMS
10322
10680
  # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
10323
10681
  # [8]: https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html
10324
10682
  # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
10325
- # [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
10326
10684
  #
10327
10685
  # @option params [required, String] :key_id
10328
10686
  # Identifies the current primary key. When the operation completes, this
@@ -10437,10 +10795,10 @@ module Aws::KMS
10437
10795
  #
10438
10796
  #
10439
10797
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
10440
- # [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
10441
10799
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
10442
10800
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
10443
- # [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
10444
10802
  #
10445
10803
  # @option params [required, String] :key_id
10446
10804
  # Identifies the asymmetric KMS key that will be used to verify the
@@ -10479,27 +10837,41 @@ module Aws::KMS
10479
10837
  # @option params [String] :message_type
10480
10838
  # Tells KMS whether the value of the `Message` parameter should be
10481
10839
  # hashed as part of the signing algorithm. Use `RAW` for unhashed
10482
- # 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.
10483
10843
  #
10484
10844
  # When the value of `MessageType` is `RAW`, KMS uses the standard
10485
10845
  # signing algorithm, which begins with a hash function. When the value
10486
- # 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.
10487
10849
  #
10488
- # Use the `DIGEST` value only when the value of the `Message` parameter
10489
- # is a message digest. If you use the `DIGEST` value with an unhashed
10490
- # 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
10491
10853
  # compromised.
10492
10854
  #
10493
- # 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
10494
10863
  # `Message` value must match the length of hashed messages for the
10495
10864
  # specified signing algorithm.
10496
10865
  #
10866
+ # When the value of `MessageType` is `EXTERNAL_MU` the length of the
10867
+ # `Message` value must be 64 bytes.
10868
+ #
10497
10869
  # You can submit a message digest and omit the `MessageType` or specify
10498
10870
  # `RAW` so the digest is hashed again while signing. However, if the
10499
10871
  # signed message is hashed once while signing, but twice while
10500
10872
  # verifying, verification fails, even when the message hasn't changed.
10501
10873
  #
10502
- # The hashing algorithm in that `Verify` uses is based on the
10874
+ # The hashing algorithm that `Verify` uses is based on the
10503
10875
  # `SigningAlgorithm` value.
10504
10876
  #
10505
10877
  # * Signing algorithms that end in SHA\_256 use the SHA\_256 hashing
@@ -10511,12 +10883,15 @@ module Aws::KMS
10511
10883
  # * Signing algorithms that end in SHA\_512 use the SHA\_512 hashing
10512
10884
  # algorithm.
10513
10885
  #
10886
+ # * Signing algorithms that end in SHAKE\_256 use the SHAKE\_256 hashing
10887
+ # algorithm.
10888
+ #
10514
10889
  # * SM2DSA uses the SM3 hashing algorithm. For details, see [Offline
10515
10890
  # verification with SM2 key pairs][1].
10516
10891
  #
10517
10892
  #
10518
10893
  #
10519
- # [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
10520
10895
  #
10521
10896
  # @option params [required, String, StringIO, File] :signature
10522
10897
  # The signature that the `Sign` operation generated.
@@ -10536,18 +10911,18 @@ module Aws::KMS
10536
10911
  #
10537
10912
  #
10538
10913
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
10539
- # [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
10540
10915
  #
10541
10916
  # @option params [Boolean] :dry_run
10542
10917
  # Checks if your request will succeed. `DryRun` is an optional
10543
10918
  # parameter.
10544
10919
  #
10545
- # To learn more about how to use this parameter, see [Testing your KMS
10546
- # 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*.
10547
10922
  #
10548
10923
  #
10549
10924
  #
10550
- # [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
10551
10926
  #
10552
10927
  # @return [Types::VerifyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10553
10928
  #
@@ -10602,9 +10977,9 @@ module Aws::KMS
10602
10977
  # resp = client.verify({
10603
10978
  # key_id: "KeyIdType", # required
10604
10979
  # message: "data", # required
10605
- # message_type: "RAW", # accepts RAW, DIGEST
10980
+ # message_type: "RAW", # accepts RAW, DIGEST, EXTERNAL_MU
10606
10981
  # signature: "data", # required
10607
- # 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
10608
10983
  # grant_tokens: ["GrantTokenType"],
10609
10984
  # dry_run: false,
10610
10985
  # })
@@ -10613,7 +10988,7 @@ module Aws::KMS
10613
10988
  #
10614
10989
  # resp.key_id #=> String
10615
10990
  # resp.signature_valid #=> Boolean
10616
- # 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"
10617
10992
  #
10618
10993
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Verify AWS API Documentation
10619
10994
  #
@@ -10661,7 +11036,7 @@ module Aws::KMS
10661
11036
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
10662
11037
  # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
10663
11038
  # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
10664
- # [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
10665
11040
  #
10666
11041
  # @option params [required, String, StringIO, File] :message
10667
11042
  # The message that will be used in the verification. Enter the same
@@ -10699,18 +11074,18 @@ module Aws::KMS
10699
11074
  #
10700
11075
  #
10701
11076
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
10702
- # [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
10703
11078
  #
10704
11079
  # @option params [Boolean] :dry_run
10705
11080
  # Checks if your request will succeed. `DryRun` is an optional
10706
11081
  # parameter.
10707
11082
  #
10708
- # To learn more about how to use this parameter, see [Testing your KMS
10709
- # 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*.
10710
11085
  #
10711
11086
  #
10712
11087
  #
10713
- # [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
10714
11089
  #
10715
11090
  # @return [Types::VerifyMacResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10716
11091
  #
@@ -10782,7 +11157,7 @@ module Aws::KMS
10782
11157
  tracer: tracer
10783
11158
  )
10784
11159
  context[:gem_name] = 'aws-sdk-kms'
10785
- context[:gem_version] = '1.94.0'
11160
+ context[:gem_version] = '1.118.0'
10786
11161
  Seahorse::Client::Request.new(handlers, context)
10787
11162
  end
10788
11163