@aws-sdk/client-kms 3.218.0 → 3.220.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +12 -11
  2. package/dist-cjs/endpoint/ruleset.js +1 -1
  3. package/dist-cjs/models/models_0.js +206 -3
  4. package/dist-cjs/protocols/Aws_json1_1.js +284 -0
  5. package/dist-es/endpoint/ruleset.js +1 -1
  6. package/dist-es/models/models_0.js +187 -0
  7. package/dist-es/protocols/Aws_json1_1.js +285 -1
  8. package/dist-types/KMS.d.ts +457 -312
  9. package/dist-types/KMSClient.d.ts +12 -11
  10. package/dist-types/commands/CancelKeyDeletionCommand.d.ts +1 -2
  11. package/dist-types/commands/ConnectCustomKeyStoreCommand.d.ts +43 -17
  12. package/dist-types/commands/CreateAliasCommand.d.ts +1 -1
  13. package/dist-types/commands/CreateCustomKeyStoreCommand.d.ts +51 -13
  14. package/dist-types/commands/CreateGrantCommand.d.ts +1 -2
  15. package/dist-types/commands/CreateKeyCommand.d.ts +76 -35
  16. package/dist-types/commands/DecryptCommand.d.ts +16 -17
  17. package/dist-types/commands/DeleteAliasCommand.d.ts +1 -1
  18. package/dist-types/commands/DeleteCustomKeyStoreCommand.d.ts +21 -16
  19. package/dist-types/commands/DescribeCustomKeyStoresCommand.d.ts +22 -17
  20. package/dist-types/commands/DescribeKeyCommand.d.ts +7 -3
  21. package/dist-types/commands/DisableKeyCommand.d.ts +3 -2
  22. package/dist-types/commands/DisableKeyRotationCommand.d.ts +4 -6
  23. package/dist-types/commands/DisconnectCustomKeyStoreCommand.d.ts +12 -12
  24. package/dist-types/commands/EnableKeyCommand.d.ts +1 -2
  25. package/dist-types/commands/EnableKeyRotationCommand.d.ts +6 -8
  26. package/dist-types/commands/EncryptCommand.d.ts +11 -9
  27. package/dist-types/commands/GenerateDataKeyCommand.d.ts +1 -2
  28. package/dist-types/commands/GenerateDataKeyPairCommand.d.ts +8 -10
  29. package/dist-types/commands/GenerateDataKeyPairWithoutPlaintextCommand.d.ts +4 -6
  30. package/dist-types/commands/GenerateDataKeyWithoutPlaintextCommand.d.ts +9 -2
  31. package/dist-types/commands/GenerateMacCommand.d.ts +14 -14
  32. package/dist-types/commands/GenerateRandomCommand.d.ts +6 -3
  33. package/dist-types/commands/GetKeyRotationStatusCommand.d.ts +3 -3
  34. package/dist-types/commands/GetParametersForImportCommand.d.ts +3 -3
  35. package/dist-types/commands/GetPublicKeyCommand.d.ts +5 -4
  36. package/dist-types/commands/ImportKeyMaterialCommand.d.ts +8 -8
  37. package/dist-types/commands/ReEncryptCommand.d.ts +5 -5
  38. package/dist-types/commands/ReplicateKeyCommand.d.ts +5 -4
  39. package/dist-types/commands/ScheduleKeyDeletionCommand.d.ts +11 -8
  40. package/dist-types/commands/SignCommand.d.ts +8 -6
  41. package/dist-types/commands/TagResourceCommand.d.ts +1 -1
  42. package/dist-types/commands/UntagResourceCommand.d.ts +1 -1
  43. package/dist-types/commands/UpdateAliasCommand.d.ts +6 -6
  44. package/dist-types/commands/UpdateCustomKeyStoreCommand.d.ts +58 -38
  45. package/dist-types/commands/UpdateKeyDescriptionCommand.d.ts +1 -2
  46. package/dist-types/commands/VerifyCommand.d.ts +5 -6
  47. package/dist-types/commands/VerifyMacCommand.d.ts +6 -6
  48. package/dist-types/endpoint/EndpointParameters.d.ts +1 -1
  49. package/dist-types/models/models_0.d.ts +925 -224
  50. package/dist-types/ts3.4/endpoint/EndpointParameters.d.ts +1 -1
  51. package/dist-types/ts3.4/models/models_0.d.ts +166 -0
  52. package/package.json +1 -1
@@ -71,8 +71,8 @@ export interface CancelKeyDeletionResponse {
71
71
  KeyId?: string;
72
72
  }
73
73
  /**
74
- * <p>The system timed out while trying to fulfill the request. The request can be
75
- * retried.</p>
74
+ * <p>The system timed out while trying to fulfill the request. You can retry the
75
+ * request.</p>
76
76
  */
77
77
  export declare class DependencyTimeoutException extends __BaseException {
78
78
  readonly name: "DependencyTimeoutException";
@@ -109,9 +109,20 @@ export declare class KMSInternalException extends __BaseException {
109
109
  /**
110
110
  * <p>The request was rejected because the state of the specified resource is not valid for this
111
111
  * request.</p>
112
- * <p>For more information about how key state affects the use of a KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a> in the <i>
113
- * <i>Key Management Service Developer Guide</i>
114
- * </i>.</p>
112
+ * <p>This exceptions means one of the following:</p>
113
+ * <ul>
114
+ * <li>
115
+ * <p>The key state of the KMS key is not compatible with the operation. </p>
116
+ * <p>To find the key state, use the <a>DescribeKey</a> operation. For more
117
+ * information about which key states are compatible with each KMS operation, see
118
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a> in the <i>
119
+ * <i>Key Management Service Developer Guide</i>
120
+ * </i>.</p>
121
+ * </li>
122
+ * <li>
123
+ * <p>For cryptographic operations on KMS keys in custom key stores, this exception represents a general failure with many possible causes. To identify the cause, see the error message that accompanies the exception.</p>
124
+ * </li>
125
+ * </ul>
115
126
  */
116
127
  export declare class KMSInvalidStateException extends __BaseException {
117
128
  readonly name: "KMSInvalidStateException";
@@ -134,11 +145,12 @@ export declare class NotFoundException extends __BaseException {
134
145
  constructor(opts: __ExceptionOptionType<NotFoundException, __BaseException>);
135
146
  }
136
147
  /**
137
- * <p>The request was rejected because the specified CloudHSM cluster is already associated with a
138
- * custom key store or it shares a backup history with a cluster that is associated with a custom
139
- * key store. Each custom key store must be associated with a different CloudHSM cluster.</p>
140
- * <p>Clusters that share a backup history have the same cluster certificate. To view the
141
- * cluster certificate of a cluster, use the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html">DescribeClusters</a> operation.</p>
148
+ * <p>The request was rejected because the specified CloudHSM cluster is already associated with an
149
+ * CloudHSM key store in the account, or it shares a backup history with an CloudHSM key store in the
150
+ * account. Each CloudHSM key store in the account must be associated with a different CloudHSM
151
+ * cluster.</p>
152
+ * <p>CloudHSM clusters that share a backup history have the same cluster certificate. To view the
153
+ * cluster certificate of an CloudHSM cluster, use the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html">DescribeClusters</a> operation.</p>
142
154
  */
143
155
  export declare class CloudHsmClusterInUseException extends __BaseException {
144
156
  readonly name: "CloudHsmClusterInUseException";
@@ -150,11 +162,11 @@ export declare class CloudHsmClusterInUseException extends __BaseException {
150
162
  }
151
163
  /**
152
164
  * <p>The request was rejected because the associated CloudHSM cluster did not meet the
153
- * configuration requirements for a custom key store.</p>
165
+ * configuration requirements for an CloudHSM key store.</p>
154
166
  *
155
167
  * <ul>
156
168
  * <li>
157
- * <p>The cluster must be configured with private subnets in at least two different
169
+ * <p>The CloudHSM cluster must be configured with private subnets in at least two different
158
170
  * Availability Zones in the Region.</p>
159
171
  * </li>
160
172
  * <li>
@@ -162,19 +174,19 @@ export declare class CloudHsmClusterInUseException extends __BaseException {
162
174
  * the cluster</a> (cloudhsm-cluster-<i><cluster-id></i>-sg) must
163
175
  * include inbound rules and outbound rules that allow TCP traffic on ports 2223-2225. The
164
176
  * <b>Source</b> in the inbound rules and the <b>Destination</b> in the outbound rules must match the security group
165
- * ID. These rules are set by default when you create the cluster. Do not delete or change
166
- * them. To get information about a particular security group, use the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html">DescribeSecurityGroups</a> operation.</p>
177
+ * ID. These rules are set by default when you create the CloudHSM cluster. Do not delete or
178
+ * change them. To get information about a particular security group, use the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html">DescribeSecurityGroups</a> operation.</p>
167
179
  * </li>
168
180
  * <li>
169
- * <p>The cluster must contain at least as many HSMs as the operation requires. To add HSMs,
170
- * use the CloudHSM <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html">CreateHsm</a> operation.</p>
181
+ * <p>The CloudHSM cluster must contain at least as many HSMs as the operation requires. To add
182
+ * HSMs, use the CloudHSM <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html">CreateHsm</a> operation.</p>
171
183
  * <p>For the <a>CreateCustomKeyStore</a>, <a>UpdateCustomKeyStore</a>, and <a>CreateKey</a> operations, the CloudHSM cluster must have at least two
172
184
  * active HSMs, each in a different Availability Zone. For the <a>ConnectCustomKeyStore</a> operation, the CloudHSM must contain at least one active
173
185
  * HSM.</p>
174
186
  * </li>
175
187
  * </ul>
176
- * <p>For information about the requirements for an CloudHSM cluster that is associated with a
177
- * custom key store, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore">Assemble the Prerequisites</a>
188
+ * <p>For information about the requirements for an CloudHSM cluster that is associated with an
189
+ * CloudHSM key store, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore">Assemble the Prerequisites</a>
178
190
  * in the <i>Key Management Service Developer Guide</i>. For information about creating a private subnet for an CloudHSM cluster,
179
191
  * see <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html">Create a Private
180
192
  * Subnet</a> in the <i>CloudHSM User Guide</i>. For information about cluster security groups, see
@@ -192,9 +204,10 @@ export declare class CloudHsmClusterInvalidConfigurationException extends __Base
192
204
  constructor(opts: __ExceptionOptionType<CloudHsmClusterInvalidConfigurationException, __BaseException>);
193
205
  }
194
206
  /**
195
- * <p>The request was rejected because the CloudHSM cluster that is associated with the custom key
196
- * store is not active. Initialize and activate the cluster and try the command again. For
197
- * detailed instructions, see <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/getting-started.html">Getting Started</a> in the <i>CloudHSM User Guide</i>.</p>
207
+ * <p>The request was rejected because the CloudHSM cluster associated with the CloudHSM key store is
208
+ * not active. Initialize and activate the cluster and try the command again. For detailed
209
+ * instructions, see <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/getting-started.html">Getting
210
+ * Started</a> in the <i>CloudHSM User Guide</i>.</p>
198
211
  */
199
212
  export declare class CloudHsmClusterNotActiveException extends __BaseException {
200
213
  readonly name: "CloudHsmClusterNotActiveException";
@@ -219,12 +232,12 @@ export declare class CloudHsmClusterNotFoundException extends __BaseException {
219
232
  /**
220
233
  * <p>The request was rejected because the specified CloudHSM cluster has a different cluster
221
234
  * certificate than the original cluster. You cannot use the operation to specify an unrelated
222
- * cluster.</p>
223
- * <p>Specify a cluster that shares a backup history with the original cluster. This includes
224
- * clusters that were created from a backup of the current cluster, and clusters that were
225
- * created from the same backup that produced the current cluster.</p>
226
- * <p>Clusters that share a backup history have the same cluster certificate. To view the
227
- * cluster certificate of a cluster, use the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html">DescribeClusters</a> operation.</p>
235
+ * cluster for an CloudHSM key store.</p>
236
+ * <p>Specify an CloudHSM cluster that shares a backup history with the original cluster. This
237
+ * includes clusters that were created from a backup of the current cluster, and clusters that
238
+ * were created from the same backup that produced the current cluster.</p>
239
+ * <p>CloudHSM clusters that share a backup history have the same cluster certificate. To view the
240
+ * cluster certificate of an CloudHSM cluster, use the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html">DescribeClusters</a> operation.</p>
228
241
  */
229
242
  export declare class CloudHsmClusterNotRelatedException extends __BaseException {
230
243
  readonly name: "CloudHsmClusterNotRelatedException";
@@ -249,9 +262,23 @@ export interface ConnectCustomKeyStoreResponse {
249
262
  * <p>This exception is thrown under the following conditions:</p>
250
263
  * <ul>
251
264
  * <li>
252
- * <p>You requested the <a>CreateKey</a> or <a>GenerateRandom</a>
253
- * operation in a custom key store that is not connected. These operations are valid only
254
- * when the custom key store <code>ConnectionState</code> is <code>CONNECTED</code>.</p>
265
+ * <p>You requested the <a>ConnectCustomKeyStore</a> operation on a custom key
266
+ * store with a <code>ConnectionState</code> of <code>DISCONNECTING</code> or
267
+ * <code>FAILED</code>. This operation is valid for all other <code>ConnectionState</code>
268
+ * values. To reconnect a custom key store in a <code>FAILED</code> state, disconnect it
269
+ * (<a>DisconnectCustomKeyStore</a>), then connect it
270
+ * (<code>ConnectCustomKeyStore</code>).</p>
271
+ * </li>
272
+ * <li>
273
+ * <p>You requested the <a>CreateKey</a> operation in a custom key store that is
274
+ * not connected. This operations is valid only when the custom key store
275
+ * <code>ConnectionState</code> is <code>CONNECTED</code>.</p>
276
+ * </li>
277
+ * <li>
278
+ * <p>You requested the <a>DisconnectCustomKeyStore</a> operation on a custom key
279
+ * store with a <code>ConnectionState</code> of <code>DISCONNECTING</code> or
280
+ * <code>DISCONNECTED</code>. This operation is valid for all other
281
+ * <code>ConnectionState</code> values.</p>
255
282
  * </li>
256
283
  * <li>
257
284
  * <p>You requested the <a>UpdateCustomKeyStore</a> or <a>DeleteCustomKeyStore</a> operation on a custom key store that is not
@@ -259,10 +286,9 @@ export interface ConnectCustomKeyStoreResponse {
259
286
  * <code>ConnectionState</code> is <code>DISCONNECTED</code>.</p>
260
287
  * </li>
261
288
  * <li>
262
- * <p>You requested the <a>ConnectCustomKeyStore</a> operation on a custom key
263
- * store with a <code>ConnectionState</code> of <code>DISCONNECTING</code> or
264
- * <code>FAILED</code>. This operation is valid for all other <code>ConnectionState</code>
265
- * values.</p>
289
+ * <p>You requested the <a>GenerateRandom</a> operation in an CloudHSM key store
290
+ * that is not connected. This operation is valid only when the CloudHSM key store
291
+ * <code>ConnectionState</code> is <code>CONNECTED</code>. </p>
266
292
  * </li>
267
293
  * </ul>
268
294
  */
@@ -296,7 +322,15 @@ export declare enum ConnectionErrorCodeType {
296
322
  SUBNET_NOT_FOUND = "SUBNET_NOT_FOUND",
297
323
  USER_LOCKED_OUT = "USER_LOCKED_OUT",
298
324
  USER_LOGGED_IN = "USER_LOGGED_IN",
299
- USER_NOT_FOUND = "USER_NOT_FOUND"
325
+ USER_NOT_FOUND = "USER_NOT_FOUND",
326
+ XKS_PROXY_ACCESS_DENIED = "XKS_PROXY_ACCESS_DENIED",
327
+ XKS_PROXY_INVALID_CONFIGURATION = "XKS_PROXY_INVALID_CONFIGURATION",
328
+ XKS_PROXY_INVALID_RESPONSE = "XKS_PROXY_INVALID_RESPONSE",
329
+ XKS_PROXY_INVALID_TLS_CONFIGURATION = "XKS_PROXY_INVALID_TLS_CONFIGURATION",
330
+ XKS_PROXY_NOT_REACHABLE = "XKS_PROXY_NOT_REACHABLE",
331
+ XKS_PROXY_TIMED_OUT = "XKS_PROXY_TIMED_OUT",
332
+ XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION = "XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION",
333
+ XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND = "XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND"
300
334
  }
301
335
  export declare enum ConnectionStateType {
302
336
  CONNECTED = "CONNECTED",
@@ -325,6 +359,7 @@ export interface CreateAliasRequest {
325
359
  * ARN</a> in the <i>
326
360
  * <i>Key Management Service Developer Guide</i>
327
361
  * </i>.</p>
362
+ *
328
363
  * <p>Specify the key ID or key ARN of the KMS key.</p>
329
364
  * <p>For example:</p>
330
365
  * <ul>
@@ -364,25 +399,58 @@ export declare class LimitExceededException extends __BaseException {
364
399
  */
365
400
  constructor(opts: __ExceptionOptionType<LimitExceededException, __BaseException>);
366
401
  }
402
+ export declare enum CustomKeyStoreType {
403
+ AWS_CLOUDHSM = "AWS_CLOUDHSM",
404
+ EXTERNAL_KEY_STORE = "EXTERNAL_KEY_STORE"
405
+ }
406
+ /**
407
+ * <p>KMS uses the authentication credential to sign requests that it sends to the external
408
+ * key store proxy (XKS proxy) on your behalf. You establish these credentials on your external
409
+ * key store proxy and report them to KMS.</p>
410
+ * <p>The <code>XksProxyAuthenticationCredential</code> includes two required elements.</p>
411
+ */
412
+ export interface XksProxyAuthenticationCredentialType {
413
+ /**
414
+ * <p>A unique identifier for the raw secret access key.</p>
415
+ */
416
+ AccessKeyId: string | undefined;
417
+ /**
418
+ * <p>A secret string of 43-64 characters. Valid characters are a-z, A-Z, 0-9, /, +, and
419
+ * =.</p>
420
+ */
421
+ RawSecretAccessKey: string | undefined;
422
+ }
423
+ export declare enum XksProxyConnectivityType {
424
+ PUBLIC_ENDPOINT = "PUBLIC_ENDPOINT",
425
+ VPC_ENDPOINT_SERVICE = "VPC_ENDPOINT_SERVICE"
426
+ }
367
427
  export interface CreateCustomKeyStoreRequest {
368
428
  /**
369
429
  * <p>Specifies a friendly name for the custom key store. The name must be unique in your
370
- * Amazon Web Services account.</p>
430
+ * Amazon Web Services account and Region. This parameter is required for all custom key stores.</p>
371
431
  */
372
432
  CustomKeyStoreName: string | undefined;
373
433
  /**
374
- * <p>Identifies the CloudHSM cluster for the custom key store. Enter the cluster ID of any active
375
- * CloudHSM cluster that is not already associated with a custom key store. To find the cluster ID,
376
- * use the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html">DescribeClusters</a> operation.</p>
434
+ * <p>Identifies the CloudHSM cluster for an CloudHSM key store. This parameter is required for custom
435
+ * key stores with <code>CustomKeyStoreType</code> of <code>AWS_CLOUDHSM</code>.</p>
436
+ * <p>Enter the cluster ID of any active CloudHSM cluster that is not already associated with a
437
+ * custom key store. To find the cluster ID, use the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html">DescribeClusters</a> operation.</p>
377
438
  */
378
439
  CloudHsmClusterId?: string;
379
440
  /**
380
- * <p>Enter the content of the trust anchor certificate for the cluster. This is the content of
381
- * the <code>customerCA.crt</code> file that you created when you <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html">initialized the cluster</a>.</p>
441
+ * <p>* CreateCustom</p>
442
+ * <p>Specifies the certificate for an CloudHSM key store. This parameter is required for custom
443
+ * key stores with a <code>CustomKeyStoreType</code> of <code>AWS_CLOUDHSM</code>.</p>
444
+ * <p>Enter the content of the trust anchor certificate for the CloudHSM cluster. This is the
445
+ * content of the <code>customerCA.crt</code> file that you created when you <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html">initialized the
446
+ * cluster</a>.</p>
382
447
  */
383
448
  TrustAnchorCertificate?: string;
384
449
  /**
385
- * <p>Enter the password of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser">
450
+ * <p>Specifies the <code>kmsuser</code> password for an CloudHSM key store. This parameter is
451
+ * required for custom key stores with a <code>CustomKeyStoreType</code> of
452
+ * <code>AWS_CLOUDHSM</code>.</p>
453
+ * <p>Enter the password of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser">
386
454
  * <code>kmsuser</code> crypto user
387
455
  * (CU) account</a> in the specified CloudHSM cluster. KMS logs into the cluster as this
388
456
  * user to manage key material on your behalf.</p>
@@ -391,6 +459,126 @@ export interface CreateCustomKeyStoreRequest {
391
459
  * the password in the CloudHSM cluster.</p>
392
460
  */
393
461
  KeyStorePassword?: string;
462
+ /**
463
+ * <p>Specifies the type of custom key store. The default value is
464
+ * <code>AWS_CLOUDHSM</code>.</p>
465
+ * <p>For a custom key store backed by an CloudHSM cluster, omit the parameter or enter
466
+ * <code>AWS_CLOUDHSM</code>. For a custom key store backed by an external key manager outside
467
+ * of Amazon Web Services, enter <code>EXTERNAL_KEY_STORE</code>. You cannot change this property after the key
468
+ * store is created.</p>
469
+ */
470
+ CustomKeyStoreType?: CustomKeyStoreType | string;
471
+ /**
472
+ * <p>Specifies the endpoint that KMS uses to send requests to the external key store proxy
473
+ * (XKS proxy). This parameter is required for custom key stores with a
474
+ * <code>CustomKeyStoreType</code> of <code>EXTERNAL_KEY_STORE</code>.</p>
475
+ * <p>The protocol must be HTTPS. KMS communicates on port 443. Do not specify the port in the
476
+ * <code>XksProxyUriEndpoint</code> value.</p>
477
+ * <p>For external key stores with <code>XksProxyConnectivity</code> value of
478
+ * <code>VPC_ENDPOINT_SERVICE</code>, specify <code>https://</code> followed by the private DNS
479
+ * name of the VPC endpoint service.</p>
480
+ * <p>For external key stores with <code>PUBLIC_ENDPOINT</code> connectivity, this endpoint must
481
+ * be reachable before you create the custom key store. KMS connects to the external key store
482
+ * proxy while creating the custom key store. For external key stores with
483
+ * <code>VPC_ENDPOINT_SERVICE</code> connectivity, KMS connects when you call the <a>ConnectCustomKeyStore</a> operation.</p>
484
+ * <p>The value of this parameter must begin with <code>https://</code>. The remainder can
485
+ * contain upper and lower case letters (A-Z and a-z), numbers (0-9), dots (<code>.</code>), and
486
+ * hyphens (<code>-</code>). Additional slashes (<code>/</code> and <code>\</code>) are not
487
+ * permitted.</p>
488
+ * <p>
489
+ * <b>Uniqueness requirements: </b>
490
+ * </p>
491
+ * <ul>
492
+ * <li>
493
+ * <p>The combined <code>XksProxyUriEndpoint</code> and <code>XksProxyUriPath</code> values
494
+ * must be unique in the Amazon Web Services account and Region.</p>
495
+ * </li>
496
+ * <li>
497
+ * <p>An external key store with <code>PUBLIC_ENDPOINT</code> connectivity cannot use the
498
+ * same <code>XksProxyUriEndpoint</code> value as an external key store with
499
+ * <code>VPC_ENDPOINT_SERVICE</code> connectivity in the same Amazon Web Services Region.</p>
500
+ * </li>
501
+ * <li>
502
+ * <p>Each external key store with <code>VPC_ENDPOINT_SERVICE</code> connectivity must have
503
+ * its own private DNS name. The <code>XksProxyUriEndpoint</code> value for external key
504
+ * stores with <code>VPC_ENDPOINT_SERVICE</code> connectivity (private DNS name) must be
505
+ * unique in the Amazon Web Services account and Region.</p>
506
+ * </li>
507
+ * </ul>
508
+ */
509
+ XksProxyUriEndpoint?: string;
510
+ /**
511
+ * <p>Specifies the base path to the proxy APIs for this external key store. To find this value,
512
+ * see the documentation for your external key store proxy. This parameter is required for all
513
+ * custom key stores with a <code>CustomKeyStoreType</code> of
514
+ * <code>EXTERNAL_KEY_STORE</code>.</p>
515
+ * <p>The value must start with <code>/</code> and must end with <code>/kms/xks/v1</code> where
516
+ * <code>v1</code> represents the version of the KMS external key store proxy API. This path
517
+ * can include an optional prefix between the required elements such as
518
+ * <code>/<i>prefix</i>/kms/xks/v1</code>.</p>
519
+ * <p>
520
+ * <b>Uniqueness requirements: </b>
521
+ * </p>
522
+ * <ul>
523
+ * <li>
524
+ * <p>The combined <code>XksProxyUriEndpoint</code> and <code>XksProxyUriPath</code> values
525
+ * must be unique in the Amazon Web Services account and Region.</p>
526
+ * </li>
527
+ * </ul>
528
+ */
529
+ XksProxyUriPath?: string;
530
+ /**
531
+ * <p>Specifies the name of the Amazon VPC endpoint service for interface endpoints that is used to
532
+ * communicate with your external key store proxy (XKS proxy). This parameter is required when
533
+ * the value of <code>CustomKeyStoreType</code> is <code>EXTERNAL_KEY_STORE</code> and the value
534
+ * of <code>XksProxyConnectivity</code> is <code>VPC_ENDPOINT_SERVICE</code>.</p>
535
+ * <p>The Amazon VPC endpoint service must <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements">fulfill all requirements</a> for use with an external key
536
+ * store. </p>
537
+ * <p>
538
+ * <b>Uniqueness requirements:</b>
539
+ * </p>
540
+ * <ul>
541
+ * <li>
542
+ * <p>External key stores with <code>VPC_ENDPOINT_SERVICE</code> connectivity can share an
543
+ * Amazon VPC, but each external key store must have its own VPC endpoint service and private DNS
544
+ * name.</p>
545
+ * </li>
546
+ * </ul>
547
+ */
548
+ XksProxyVpcEndpointServiceName?: string;
549
+ /**
550
+ * <p>Specifies an authentication credential for the external key store proxy (XKS proxy). This
551
+ * parameter is required for all custom key stores with a <code>CustomKeyStoreType</code> of
552
+ * <code>EXTERNAL_KEY_STORE</code>.</p>
553
+ * <p>The <code>XksProxyAuthenticationCredential</code> has two required elements:
554
+ * <code>RawSecretAccessKey</code>, a secret key, and <code>AccessKeyId</code>, a unique
555
+ * identifier for the <code>RawSecretAccessKey</code>. For character requirements, see <a href="kms/latest/APIReference/API_XksProxyAuthenticationCredentialType.html">XksProxyAuthenticationCredentialType</a>.</p>
556
+ * <p>KMS uses this authentication credential to sign requests to the external key store proxy
557
+ * on your behalf. This credential is unrelated to Identity and Access Management (IAM) and Amazon Web Services credentials.</p>
558
+ * <p>This parameter doesn't set or change the authentication credentials on the XKS proxy. It
559
+ * just tells KMS the credential that you established on your external key store proxy. If you
560
+ * rotate your proxy authentication credential, use the <a>UpdateCustomKeyStore</a>
561
+ * operation to provide the new credential to KMS.</p>
562
+ */
563
+ XksProxyAuthenticationCredential?: XksProxyAuthenticationCredentialType;
564
+ /**
565
+ * <p>Indicates how KMS communicates with the external key store proxy. This parameter is
566
+ * required for custom key stores with a <code>CustomKeyStoreType</code> of
567
+ * <code>EXTERNAL_KEY_STORE</code>.</p>
568
+ * <p>If the external key store proxy uses a public endpoint, specify
569
+ * <code>PUBLIC_ENDPOINT</code>. If the external key store proxy uses a Amazon VPC
570
+ * endpoint service for communication with KMS, specify <code>VPC_ENDPOINT_SERVICE</code>. For
571
+ * help making this choice, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/plan-xks-keystore.html#choose-xks-connectivity">Choosing a connectivity option</a> in the <i>Key Management Service Developer Guide</i>.</p>
572
+ * <p>An Amazon VPC endpoint service keeps your communication with KMS in a private address space
573
+ * entirely within Amazon Web Services, but it requires more configuration, including establishing a Amazon VPC with multiple subnets, a VPC endpoint service, a network load balancer, and a
574
+ * verified private DNS name. A public endpoint is simpler to set up, but it might be slower and
575
+ * might not fulfill your security requirements. You might consider testing with a public
576
+ * endpoint, and then establishing a VPC endpoint service for production tasks. Note that this
577
+ * choice does not determine the location of the external key store proxy. Even if you choose a
578
+ * VPC endpoint service, the proxy can be hosted within the VPC or outside of Amazon Web Services such as in
579
+ * your corporate data center.</p>
580
+ */
581
+ XksProxyConnectivity?: XksProxyConnectivityType | string;
394
582
  }
395
583
  export interface CreateCustomKeyStoreResponse {
396
584
  /**
@@ -412,10 +600,10 @@ export declare class CustomKeyStoreNameInUseException extends __BaseException {
412
600
  constructor(opts: __ExceptionOptionType<CustomKeyStoreNameInUseException, __BaseException>);
413
601
  }
414
602
  /**
415
- * <p>The request was rejected because the trust anchor certificate in the request is not the
416
- * trust anchor certificate for the specified CloudHSM cluster.</p>
417
- * <p>When you <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr">initialize the cluster</a>, you create the trust anchor certificate and save it in the
418
- * <code>customerCA.crt</code> file.</p>
603
+ * <p>The request was rejected because the trust anchor certificate in the request to create an
604
+ * CloudHSM key store is not the trust anchor certificate for the specified CloudHSM cluster.</p>
605
+ * <p>When you <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr">initialize the CloudHSM cluster</a>, you create the trust anchor certificate and save it
606
+ * in the <code>customerCA.crt</code> file.</p>
419
607
  */
420
608
  export declare class IncorrectTrustAnchorException extends __BaseException {
421
609
  readonly name: "IncorrectTrustAnchorException";
@@ -425,13 +613,138 @@ export declare class IncorrectTrustAnchorException extends __BaseException {
425
613
  */
426
614
  constructor(opts: __ExceptionOptionType<IncorrectTrustAnchorException, __BaseException>);
427
615
  }
616
+ /**
617
+ * <p>The request was rejected because the proxy credentials failed to authenticate to the
618
+ * specified external key store proxy. The specified external key store proxy rejected a status
619
+ * request from KMS due to invalid credentials. This can indicate an error in the credentials
620
+ * or in the identification of the external key store proxy.</p>
621
+ */
622
+ export declare class XksProxyIncorrectAuthenticationCredentialException extends __BaseException {
623
+ readonly name: "XksProxyIncorrectAuthenticationCredentialException";
624
+ readonly $fault: "client";
625
+ /**
626
+ * @internal
627
+ */
628
+ constructor(opts: __ExceptionOptionType<XksProxyIncorrectAuthenticationCredentialException, __BaseException>);
629
+ }
630
+ /**
631
+ * <p>The request was rejected because the Amazon VPC endpoint service configuration does not fulfill
632
+ * the requirements for an external key store proxy. For details, see the exception
633
+ * message.</p>
634
+ */
635
+ export declare class XksProxyInvalidConfigurationException extends __BaseException {
636
+ readonly name: "XksProxyInvalidConfigurationException";
637
+ readonly $fault: "client";
638
+ /**
639
+ * @internal
640
+ */
641
+ constructor(opts: __ExceptionOptionType<XksProxyInvalidConfigurationException, __BaseException>);
642
+ }
643
+ /**
644
+ * <p></p>
645
+ * <p>KMS cannot interpret the response it received from the external key store proxy. The
646
+ * problem might be a poorly constructed response, but it could also be a transient network
647
+ * issue. If you see this error repeatedly, report it to the proxy vendor.</p>
648
+ */
649
+ export declare class XksProxyInvalidResponseException extends __BaseException {
650
+ readonly name: "XksProxyInvalidResponseException";
651
+ readonly $fault: "client";
652
+ /**
653
+ * @internal
654
+ */
655
+ constructor(opts: __ExceptionOptionType<XksProxyInvalidResponseException, __BaseException>);
656
+ }
657
+ /**
658
+ * <p>The request was rejected because the concatenation of the <code>XksProxyUriEndpoint</code>
659
+ * is already associated with an external key store in the Amazon Web Services account and Region. Each
660
+ * external key store in an account and Region must use a unique external key store proxy
661
+ * address.</p>
662
+ */
663
+ export declare class XksProxyUriEndpointInUseException extends __BaseException {
664
+ readonly name: "XksProxyUriEndpointInUseException";
665
+ readonly $fault: "client";
666
+ /**
667
+ * @internal
668
+ */
669
+ constructor(opts: __ExceptionOptionType<XksProxyUriEndpointInUseException, __BaseException>);
670
+ }
671
+ /**
672
+ * <p>The request was rejected because the concatenation of the <code>XksProxyUriEndpoint</code>
673
+ * and <code>XksProxyUriPath</code> is already associated with an external key store in the
674
+ * Amazon Web Services account and Region. Each external key store in an account and Region must use a unique
675
+ * external key store proxy API address.</p>
676
+ */
677
+ export declare class XksProxyUriInUseException extends __BaseException {
678
+ readonly name: "XksProxyUriInUseException";
679
+ readonly $fault: "client";
680
+ /**
681
+ * @internal
682
+ */
683
+ constructor(opts: __ExceptionOptionType<XksProxyUriInUseException, __BaseException>);
684
+ }
685
+ /**
686
+ * <p>KMS was unable to reach the specified <code>XksProxyUriPath</code>. The path must be
687
+ * reachable before you create the external key store or update its settings.</p>
688
+ * <p>This exception is also thrown when the external key store proxy response to a <code>GetHealthStatus</code>
689
+ * request indicates that all external key manager instances are unavailable.</p>
690
+ */
691
+ export declare class XksProxyUriUnreachableException extends __BaseException {
692
+ readonly name: "XksProxyUriUnreachableException";
693
+ readonly $fault: "client";
694
+ /**
695
+ * @internal
696
+ */
697
+ constructor(opts: __ExceptionOptionType<XksProxyUriUnreachableException, __BaseException>);
698
+ }
699
+ /**
700
+ * <p>The request was rejected because the specified Amazon VPC endpoint service is already
701
+ * associated with an external key store in the Amazon Web Services account and Region. Each external key store
702
+ * in an Amazon Web Services account and Region must use a different Amazon VPC endpoint service.</p>
703
+ */
704
+ export declare class XksProxyVpcEndpointServiceInUseException extends __BaseException {
705
+ readonly name: "XksProxyVpcEndpointServiceInUseException";
706
+ readonly $fault: "client";
707
+ /**
708
+ * @internal
709
+ */
710
+ constructor(opts: __ExceptionOptionType<XksProxyVpcEndpointServiceInUseException, __BaseException>);
711
+ }
712
+ /**
713
+ * <p>The request was rejected because the Amazon VPC endpoint service configuration does not fulfill
714
+ * the requirements for an external key store proxy. For details, see the exception message and
715
+ * <a href="kms/latest/developerguide/vpc-connectivity.html#xks-vpc-requirements">review the requirements</a> for Amazon VPC endpoint service connectivity for an external key
716
+ * store.</p>
717
+ */
718
+ export declare class XksProxyVpcEndpointServiceInvalidConfigurationException extends __BaseException {
719
+ readonly name: "XksProxyVpcEndpointServiceInvalidConfigurationException";
720
+ readonly $fault: "client";
721
+ /**
722
+ * @internal
723
+ */
724
+ constructor(opts: __ExceptionOptionType<XksProxyVpcEndpointServiceInvalidConfigurationException, __BaseException>);
725
+ }
726
+ /**
727
+ * <p>The request was rejected because KMS could not find the specified VPC endpoint service.
728
+ * Use <a>DescribeCustomKeyStores</a> to verify the VPC endpoint service name for the
729
+ * external key store. Also, confirm that the <code>Allow principals</code> list for the VPC
730
+ * endpoint service includes the KMS service principal for the Region, such as
731
+ * <code>cks.kms.us-east-1.amazonaws.com</code>.</p>
732
+ */
733
+ export declare class XksProxyVpcEndpointServiceNotFoundException extends __BaseException {
734
+ readonly name: "XksProxyVpcEndpointServiceNotFoundException";
735
+ readonly $fault: "client";
736
+ /**
737
+ * @internal
738
+ */
739
+ constructor(opts: __ExceptionOptionType<XksProxyVpcEndpointServiceNotFoundException, __BaseException>);
740
+ }
428
741
  /**
429
742
  * <p>Use this structure to allow <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> in the grant only when the operation request
430
743
  * includes the specified <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">encryption context</a>. </p>
431
744
  * <p>KMS applies the grant constraints only to cryptographic operations that support an
432
- * encryption context, that is, all cryptographic operations with a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#symmetric-cmks">symmetric encryption KMS key</a>. Grant
745
+ * encryption context, that is, all cryptographic operations with a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#symmetric-cmks">symmetric KMS key</a>. Grant
433
746
  * constraints are not applied to operations that do not support an encryption context, such as
434
- * cryptographic operations with HMAC KMS keys or asymmetric KMS keys, and management operations, such as <a>DescribeKey</a> or <a>RetireGrant</a>.</p>
747
+ * cryptographic operations with asymmetric KMS keys and management operations, such as <a>DescribeKey</a> or <a>RetireGrant</a>.</p>
435
748
  * <important>
436
749
  * <p>In a cryptographic operation, the encryption context in the decryption operation must be
437
750
  * an exact, case-sensitive match for the keys and values in the encryption context of the
@@ -483,6 +796,7 @@ export interface CreateGrantRequest {
483
796
  /**
484
797
  * <p>Identifies the KMS key for the grant. The grant gives principals permission to use this
485
798
  * KMS key.</p>
799
+ *
486
800
  * <p>Specify the key ID or key ARN of the KMS key. To specify a KMS key in a
487
801
  * different Amazon Web Services account, you must use the key ARN.</p>
488
802
  * <p>For example:</p>
@@ -527,7 +841,8 @@ export interface CreateGrantRequest {
527
841
  /**
528
842
  * <p>A list of operations that the grant permits. </p>
529
843
  * <p>This list must include only operations that are permitted in a grant. Also, the operation
530
- * must be supported on the KMS key. For example, you cannot create a grant for a symmetric encryption KMS key that allows the <a>Sign</a> operation, or a grant for an
844
+ * must be supported on the KMS key. For example, you cannot create a grant for a symmetric
845
+ * encryption KMS key that allows the <a>Sign</a> operation, or a grant for an
531
846
  * asymmetric KMS key that allows the <a>GenerateDataKey</a> operation. If you try,
532
847
  * KMS returns a <code>ValidationError</code> exception. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations">Grant
533
848
  * operations</a> in the <i>Key Management Service Developer Guide</i>.</p>
@@ -547,13 +862,12 @@ export interface CreateGrantRequest {
547
862
  * <p>The encryption context grant constraints allow the permissions in the grant only when the
548
863
  * encryption context in the request matches (<code>EncryptionContextEquals</code>) or includes
549
864
  * (<code>EncryptionContextSubset</code>) the encryption context specified in this structure. </p>
550
- * <p>The encryption context grant constraints are supported only on <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations">grant operations</a> that
551
- * include an <code>EncryptionContext</code> parameter, such as cryptographic operations on
552
- * symmetric encryption KMS keys. Grants with grant constraints can include the <a>DescribeKey</a> and <a>RetireGrant</a> operations, but the constraint
553
- * doesn't apply to these operations. If a grant with a grant constraint includes the
554
- * <code>CreateGrant</code> operation, the constraint requires that any grants created with the
555
- * <code>CreateGrant</code> permission have an equally strict or stricter encryption context
556
- * constraint.</p>
865
+ * <p>The encryption context grant constraints are supported only on <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations">grant operations</a> that include
866
+ * an <code>EncryptionContext</code> parameter, such as cryptographic operations on symmetric
867
+ * encryption KMS keys. Grants with grant constraints can include the <a>DescribeKey</a> and <a>RetireGrant</a> operations, but the constraint doesn't apply to these
868
+ * operations. If a grant with a grant constraint includes the <code>CreateGrant</code>
869
+ * operation, the constraint requires that any grants created with the <code>CreateGrant</code>
870
+ * permission have an equally strict or stricter encryption context constraint.</p>
557
871
  * <p>You cannot use an encryption context grant constraint for cryptographic operations with
558
872
  * asymmetric KMS keys or HMAC KMS keys. These keys don't support an encryption context. </p>
559
873
  * <p></p>
@@ -652,7 +966,8 @@ export declare enum KeyUsageType {
652
966
  export declare enum OriginType {
653
967
  AWS_CLOUDHSM = "AWS_CLOUDHSM",
654
968
  AWS_KMS = "AWS_KMS",
655
- EXTERNAL = "EXTERNAL"
969
+ EXTERNAL = "EXTERNAL",
970
+ EXTERNAL_KEY_STORE = "EXTERNAL_KEY_STORE"
656
971
  }
657
972
  /**
658
973
  * <p>A key-value pair. A tag consists of a tag key and a tag value. Tag keys and tag values are
@@ -672,13 +987,11 @@ export interface Tag {
672
987
  }
673
988
  export interface CreateKeyRequest {
674
989
  /**
675
- * <p>The key policy to attach to the KMS key. If you do not specify a key policy, KMS attaches a default key policy to the KMS key.
676
- * For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default">Default key policy</a> in the
677
- * <i>Key Management Service Developer Guide</i>.</p>
990
+ * <p>The key policy to attach to the KMS key.</p>
678
991
  * <p>If you provide a key policy, it must meet the following criteria:</p>
679
992
  * <ul>
680
993
  * <li>
681
- * <p>If you don't set <code>BypassPolicyLockoutSafetyCheck</code> to <code>True</code>, the key policy
994
+ * <p>If you don't set <code>BypassPolicyLockoutSafetyCheck</code> to true, the key policy
682
995
  * must allow the principal that is making the <code>CreateKey</code> request to make a
683
996
  * subsequent <a>PutKeyPolicy</a> request on the KMS key. This reduces the risk
684
997
  * that the KMS key becomes unmanageable. For more information, refer to the scenario in the
@@ -695,21 +1008,11 @@ export interface CreateKeyRequest {
695
1008
  * Identity and Access Management User Guide</i>.</p>
696
1009
  * </li>
697
1010
  * </ul>
698
- *
699
- * <p>A key policy document can include only the following characters:</p>
700
- * <ul>
701
- * <li>
702
- * <p>Printable ASCII characters from the space character (<code>\u0020</code>) through the end of the ASCII character range.</p>
703
- * </li>
704
- * <li>
705
- * <p>Printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>).</p>
706
- * </li>
707
- * <li>
708
- * <p>The tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) special characters</p>
709
- * </li>
710
- * </ul>
711
- * <p>For information about key policies, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">Key policies in KMS</a> in the
712
- * <i>Key Management Service Developer Guide</i>. For help writing and formatting a JSON policy document, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html">IAM JSON Policy Reference</a> in the <i>
1011
+ * <p>If you do not provide a key policy, KMS attaches a default key policy to the KMS key.
1012
+ * For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default">Default Key Policy</a> in the
1013
+ * <i>Key Management Service Developer Guide</i>. </p>
1014
+ * <p>The key policy size quota is 32 kilobytes (32768 bytes).</p>
1015
+ * <p>For help writing and formatting a JSON policy document, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html">IAM JSON Policy Reference</a> in the <i>
713
1016
  * <i>Identity and Access Management User Guide</i>
714
1017
  * </i>.</p>
715
1018
  */
@@ -724,13 +1027,13 @@ export interface CreateKeyRequest {
724
1027
  /**
725
1028
  * <p>Determines the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> for which you can use the KMS key. The default value is
726
1029
  * <code>ENCRYPT_DECRYPT</code>. This parameter is optional when you are creating a symmetric
727
- * encryption KMS key; otherwise, it is required. You
728
- * can't change the <code>KeyUsage</code> value after the KMS key is created.</p>
1030
+ * encryption KMS key; otherwise, it is required. You can't change the <code>KeyUsage</code>
1031
+ * value after the KMS key is created.</p>
729
1032
  * <p>Select only one valid value.</p>
730
1033
  * <ul>
731
1034
  * <li>
732
1035
  * <p>For symmetric encryption KMS keys, omit the parameter or specify
733
- * <code>ENCRYPT_DECRYPT</code>.</p>
1036
+ * <code>ENCRYPT_DECRYPT</code>.</p>
734
1037
  * </li>
735
1038
  * <li>
736
1039
  * <p>For HMAC KMS keys (symmetric), specify <code>GENERATE_VERIFY_MAC</code>.</p>
@@ -756,7 +1059,7 @@ export interface CreateKeyRequest {
756
1059
  * <p>Instead, use the <code>KeySpec</code> parameter.</p>
757
1060
  * <p>The <code>KeySpec</code> and <code>CustomerMasterKeySpec</code> parameters work the same
758
1061
  * way. Only the names differ. We recommend that you use <code>KeySpec</code> parameter in your
759
- * code. However, to avoid breaking changes, KMS will support both parameters.</p>
1062
+ * code. However, to avoid breaking changes, KMS supports both parameters.</p>
760
1063
  */
761
1064
  CustomerMasterKeySpec?: CustomerMasterKeySpec | string;
762
1065
  /**
@@ -766,10 +1069,10 @@ export interface CreateKeyRequest {
766
1069
  * <i>Key Management Service Developer Guide</i>
767
1070
  * </i>.</p>
768
1071
  * <p>The <code>KeySpec</code> determines whether the KMS key contains a symmetric key or an
769
- * asymmetric key pair. It also determines the cryptographic algorithms that the KMS key supports. You can't
770
- * change the <code>KeySpec</code> after the KMS key is created.
771
- * To further restrict the algorithms that can be used with the KMS key, use a condition key in
772
- * its key policy or IAM policy. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm">kms:EncryptionAlgorithm</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-mac-algorithm">kms:MacAlgorithm</a> or <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm">kms:Signing Algorithm</a> in the <i>
1072
+ * asymmetric key pair. It also determines the algorithms that the KMS key supports. You can't
1073
+ * change the <code>KeySpec</code> after the KMS key is created. To further restrict the
1074
+ * algorithms that can be used with the KMS key, use a condition key in its key policy or IAM
1075
+ * policy. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm">kms:EncryptionAlgorithm</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-mac-algorithm">kms:MacAlgorithm</a> or <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm">kms:Signing Algorithm</a> in the <i>
773
1076
  * <i>Key Management Service Developer Guide</i>
774
1077
  * </i>.</p>
775
1078
  * <important>
@@ -879,29 +1182,33 @@ export interface CreateKeyRequest {
879
1182
  * <p>The source of the key material for the KMS key. You cannot change the origin after you
880
1183
  * create the KMS key. The default is <code>AWS_KMS</code>, which means that KMS creates the
881
1184
  * key material.</p>
882
- * <p>To create a KMS key with no key material (for imported key material), set the value to
1185
+ * <p>To <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html">create a
1186
+ * KMS key with no key material</a> (for imported key material), set this value to
883
1187
  * <code>EXTERNAL</code>. For more information about importing key material into KMS, see
884
1188
  * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">Importing Key
885
- * Material</a> in the <i>Key Management Service Developer Guide</i>. This value is valid only for symmetric encryption KMS keys.</p>
886
- * <p>To create a KMS key in an KMS <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> and create its key material in the
887
- * associated CloudHSM cluster, set this value to <code>AWS_CLOUDHSM</code>. You must also use the
888
- * <code>CustomKeyStoreId</code> parameter to identify the custom key store. This value is
889
- * valid only for symmetric encryption KMS keys.</p>
1189
+ * Material</a> in the <i>Key Management Service Developer Guide</i>. The <code>EXTERNAL</code> origin value is valid
1190
+ * only for symmetric KMS keys.</p>
1191
+ * <p>To <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-cmk-keystore.html">create a KMS key in an CloudHSM key store</a> and create its key
1192
+ * material in the associated CloudHSM cluster, set this value to <code>AWS_CLOUDHSM</code>. You
1193
+ * must also use the <code>CustomKeyStoreId</code> parameter to identify the CloudHSM key store. The
1194
+ * <code>KeySpec</code> value must be <code>SYMMETRIC_DEFAULT</code>.</p>
1195
+ * <p>To <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html">create a KMS key in
1196
+ * an external key store</a>, set this value to <code>EXTERNAL_KEY_STORE</code>. You must
1197
+ * also use the <code>CustomKeyStoreId</code> parameter to identify the external key store and
1198
+ * the <code>XksKeyId</code> parameter to identify the associated external key. The
1199
+ * <code>KeySpec</code> value must be <code>SYMMETRIC_DEFAULT</code>.</p>
890
1200
  */
891
1201
  Origin?: OriginType | string;
892
1202
  /**
893
- * <p>Creates the KMS key in the specified <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> and the key material in its
894
- * associated CloudHSM cluster. To create a KMS key in a custom key store, you must also specify the
895
- * <code>Origin</code> parameter with a value of <code>AWS_CLOUDHSM</code>. The CloudHSM cluster
896
- * that is associated with the custom key store must have at least two active HSMs, each in a
897
- * different Availability Zone in the Region.</p>
1203
+ * <p>Creates the KMS key in the specified <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. The <code>ConnectionState</code> of
1204
+ * the custom key store must be <code>CONNECTED</code>. To find the CustomKeyStoreID and
1205
+ * ConnectionState use the <a>DescribeCustomKeyStores</a> operation.</p>
898
1206
  * <p>This parameter is valid only for symmetric encryption KMS keys in a single Region. You
899
1207
  * cannot create any other type of KMS key in a custom key store.</p>
900
- * <p>To find the ID of a custom key store, use the <a>DescribeCustomKeyStores</a> operation.</p>
901
- * <p>The response includes the custom key store ID and the ID of the CloudHSM cluster.</p>
902
- * <p>This operation is part of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store feature</a> feature in KMS, which
903
- * combines the convenience and extensive integration of KMS with the isolation and control of a
904
- * single-tenant key store.</p>
1208
+ * <p>When you create a KMS key in an CloudHSM key store, KMS generates a non-exportable 256-bit
1209
+ * symmetric key in its associated CloudHSM cluster and associates it with the KMS key. When you
1210
+ * create a KMS key in an external key store, you must use the <code>XksKeyId</code> parameter to specify an
1211
+ * external key that serves as key material for the KMS key.</p>
905
1212
  */
906
1213
  CustomKeyStoreId?: string;
907
1214
  /**
@@ -922,7 +1229,7 @@ export interface CreateKeyRequest {
922
1229
  * <p>Assigns one or more tags to the KMS key. Use this parameter to tag the KMS key when it is
923
1230
  * created. To tag an existing KMS key, use the <a>TagResource</a> operation.</p>
924
1231
  * <note>
925
- * <p>Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">ABAC in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
1232
+ * <p>Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">ABAC for KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
926
1233
  * </note>
927
1234
  * <p>To use this parameter, you must have <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:TagResource</a> permission in an IAM policy.</p>
928
1235
  * <p>Each tag consists of a tag key and a tag value. Both the tag key and the tag value are
@@ -946,11 +1253,34 @@ export interface CreateKeyRequest {
946
1253
  * it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Multi-Region keys in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
947
1254
  * <p>This value creates a <i>primary key</i>, not a replica. To create a
948
1255
  * <i>replica key</i>, use the <a>ReplicateKey</a> operation. </p>
949
- * <p>You can create a multi-Region version of a symmetric encryption KMS key, an HMAC KMS key, an asymmetric KMS key, or a
950
- * KMS key with imported key material. However, you cannot create a multi-Region key in
1256
+ * <p>You can create a symmetric or asymmetric multi-Region key, and you can create a
1257
+ * multi-Region key with imported key material. However, you cannot create a multi-Region key in
951
1258
  * a custom key store.</p>
952
1259
  */
953
1260
  MultiRegion?: boolean;
1261
+ /**
1262
+ * <p>Identifies the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key">external key</a> that
1263
+ * serves as key material for the KMS key in an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html">external key store</a>. Specify the ID that
1264
+ * the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-xks-proxy">external key store proxy</a> uses to refer to the external key. For help, see the
1265
+ * documentation for your external key store proxy.</p>
1266
+ * <p>This parameter is required for a KMS key with an <code>Origin</code> value of
1267
+ * <code>EXTERNAL_KEY_STORE</code>. It is not valid for KMS keys with any other
1268
+ * <code>Origin</code> value.</p>
1269
+ * <p>The external key must be an existing 256-bit AES symmetric encryption key hosted outside
1270
+ * of Amazon Web Services in an external key manager associated with the external key store specified by the
1271
+ * <code>CustomKeyStoreId</code> parameter. This key must be enabled and configured to perform
1272
+ * encryption and decryption. Each KMS key in an external key store must use a different external
1273
+ * key. For details, see <a href="https://docs.aws.amazon.com/create-xks-keys.html#xks-key-requirements">Requirements for a KMS key in an external
1274
+ * key store</a> in the <i>Key Management Service Developer Guide</i>.</p>
1275
+ * <p>Each KMS key in an external key store is associated two backing keys. One is key material
1276
+ * that KMS generates. The other is the external key specified by this parameter. When you use
1277
+ * the KMS key in an external key store to encrypt data, the encryption operation is performed
1278
+ * first by KMS using the KMS key material, and then by the external key manager using the
1279
+ * specified external key, a process known as <i>double encryption</i>. For
1280
+ * details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-double-encryption">Double
1281
+ * encryption</a> in the <i>Key Management Service Developer Guide</i>.</p>
1282
+ */
1283
+ XksKeyId?: string;
954
1284
  }
955
1285
  export declare enum EncryptionAlgorithmSpec {
956
1286
  RSAES_OAEP_SHA_1 = "RSAES_OAEP_SHA_1",
@@ -1034,9 +1364,25 @@ export declare enum SigningAlgorithmSpec {
1034
1364
  RSASSA_PSS_SHA_512 = "RSASSA_PSS_SHA_512",
1035
1365
  SM2DSA = "SM2DSA"
1036
1366
  }
1367
+ /**
1368
+ * <p>Information about the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key">external key </a>that is associated with a KMS key in an
1369
+ * external key store. </p>
1370
+ * <p>These fields appear in a <a>CreateKey</a> or <a>DescribeKey</a>
1371
+ * response only for a KMS key in an external key store.</p>
1372
+ * <p>The <i>external key</i> is a symmetric encryption key that is hosted by
1373
+ * an external key manager outside of Amazon Web Services. When you use the KMS key in an external key store
1374
+ * in a cryptographic operation, the cryptographic operation is performed in the
1375
+ * external key manager using the specified external key. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key">External key</a> in the <i>Key Management Service Developer Guide</i>.</p>
1376
+ */
1377
+ export interface XksKeyConfigurationType {
1378
+ /**
1379
+ * <p>The ID of the external key in its external key manager. This is the ID that the external key store proxy uses to identify the external key.</p>
1380
+ */
1381
+ Id?: string;
1382
+ }
1037
1383
  /**
1038
1384
  * <p>Contains metadata about a KMS key.</p>
1039
- * <p>This data type is used as a response element for the <a>CreateKey</a> and <a>DescribeKey</a> operations.</p>
1385
+ * <p>This data type is used as a response element for the <a>CreateKey</a>, <a>DescribeKey</a>, and <a>ReplicateKey</a> operations.</p>
1040
1386
  */
1041
1387
  export interface KeyMetadata {
1042
1388
  /**
@@ -1071,7 +1417,8 @@ export interface KeyMetadata {
1071
1417
  KeyUsage?: KeyUsageType | string;
1072
1418
  /**
1073
1419
  * <p>The current status of the KMS key.</p>
1074
- * <p>For more information about how key state affects the use of a KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>
1420
+ * <p>For more information about how key state affects the use of a KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a> in
1421
+ * the <i>Key Management Service Developer Guide</i>.</p>
1075
1422
  */
1076
1423
  KeyState?: KeyState | string;
1077
1424
  /**
@@ -1099,15 +1446,15 @@ export interface KeyMetadata {
1099
1446
  */
1100
1447
  Origin?: OriginType | string;
1101
1448
  /**
1102
- * <p>A unique identifier for the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> that contains the KMS key. This value is
1449
+ * <p>A unique identifier for the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> that contains the KMS key. This field is
1103
1450
  * present only when the KMS key is created in a custom key store.</p>
1104
1451
  */
1105
1452
  CustomKeyStoreId?: string;
1106
1453
  /**
1107
1454
  * <p>The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When
1108
- * you create a KMS key in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>, KMS creates the key material for the KMS key in
1109
- * the associated CloudHSM cluster. This value is present only when the KMS key is created in a
1110
- * custom key store.</p>
1455
+ * you create a KMS key in an CloudHSM <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>, KMS creates the key material for the KMS
1456
+ * key in the associated CloudHSM cluster. This field is present only when the KMS key is created in
1457
+ * an CloudHSM key store.</p>
1111
1458
  */
1112
1459
  CloudHsmClusterId?: string;
1113
1460
  /**
@@ -1126,7 +1473,7 @@ export interface KeyMetadata {
1126
1473
  * <p>Instead, use the <code>KeySpec</code> field.</p>
1127
1474
  * <p>The <code>KeySpec</code> and <code>CustomerMasterKeySpec</code> fields have the same
1128
1475
  * value. We recommend that you use the <code>KeySpec</code> field in your code. However, to
1129
- * avoid breaking changes, KMS will support both fields.</p>
1476
+ * avoid breaking changes, KMS supports both fields.</p>
1130
1477
  */
1131
1478
  CustomerMasterKeySpec?: CustomerMasterKeySpec | string;
1132
1479
  /**
@@ -1196,9 +1543,16 @@ export interface KeyMetadata {
1196
1543
  /**
1197
1544
  * <p>The message authentication code (MAC) algorithm that the HMAC KMS key supports.</p>
1198
1545
  * <p>This value is present only when the <code>KeyUsage</code> of the KMS key is
1199
- * <code>GENERATE_VERIFY_MAC</code>.</p>
1546
+ * <code>GENERATE_VERIFY_MAC</code>.</p>
1200
1547
  */
1201
1548
  MacAlgorithms?: (MacAlgorithmSpec | string)[];
1549
+ /**
1550
+ * <p>Information about the external key that is associated with a KMS key in an
1551
+ * external key store.</p>
1552
+ * <p>For more information, see
1553
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key">External key</a> in the <i>Key Management Service Developer Guide</i>.</p>
1554
+ */
1555
+ XksKeyConfiguration?: XksKeyConfigurationType;
1202
1556
  }
1203
1557
  export interface CreateKeyResponse {
1204
1558
  /**
@@ -1241,6 +1595,50 @@ export declare class UnsupportedOperationException extends __BaseException {
1241
1595
  */
1242
1596
  constructor(opts: __ExceptionOptionType<UnsupportedOperationException, __BaseException>);
1243
1597
  }
1598
+ /**
1599
+ * <p>The request was rejected because the (<code>XksKeyId</code>) is already associated with a
1600
+ * KMS key in this external key store. Each KMS key in an external key store must be associated
1601
+ * with a different external key.</p>
1602
+ */
1603
+ export declare class XksKeyAlreadyInUseException extends __BaseException {
1604
+ readonly name: "XksKeyAlreadyInUseException";
1605
+ readonly $fault: "client";
1606
+ /**
1607
+ * @internal
1608
+ */
1609
+ constructor(opts: __ExceptionOptionType<XksKeyAlreadyInUseException, __BaseException>);
1610
+ }
1611
+ /**
1612
+ * <p>The request was rejected because the external key specified by the <code>XksKeyId</code>
1613
+ * parameter did not meet the configuration requirements for an external key store.</p>
1614
+ * <p>The external key must be an AES-256 symmetric key that is enabled and performs encryption
1615
+ * and decryption.</p>
1616
+ */
1617
+ export declare class XksKeyInvalidConfigurationException extends __BaseException {
1618
+ readonly name: "XksKeyInvalidConfigurationException";
1619
+ readonly $fault: "client";
1620
+ /**
1621
+ * @internal
1622
+ */
1623
+ constructor(opts: __ExceptionOptionType<XksKeyInvalidConfigurationException, __BaseException>);
1624
+ }
1625
+ /**
1626
+ * <p>The request was rejected because the external key store proxy could not find the external key. This
1627
+ * exception is thrown when the value of the <code>XksKeyId</code> parameter doesn't identify a
1628
+ * key in the external key manager associated with the external key proxy.</p>
1629
+ * <p>Verify that the <code>XksKeyId</code> represents an existing key in the external key
1630
+ * manager. Use the key identifier that the external key store proxy uses to identify the key.
1631
+ * For details, see the documentation provided with your external key store proxy or key
1632
+ * manager.</p>
1633
+ */
1634
+ export declare class XksKeyNotFoundException extends __BaseException {
1635
+ readonly name: "XksKeyNotFoundException";
1636
+ readonly $fault: "client";
1637
+ /**
1638
+ * @internal
1639
+ */
1640
+ constructor(opts: __ExceptionOptionType<XksKeyNotFoundException, __BaseException>);
1641
+ }
1244
1642
  /**
1245
1643
  * <p>The request was rejected because the custom key store contains KMS keys. After verifying
1246
1644
  * that you do not need to use the KMS keys, use the <a>ScheduleKeyDeletion</a>
@@ -1255,6 +1653,41 @@ export declare class CustomKeyStoreHasCMKsException extends __BaseException {
1255
1653
  */
1256
1654
  constructor(opts: __ExceptionOptionType<CustomKeyStoreHasCMKsException, __BaseException>);
1257
1655
  }
1656
+ /**
1657
+ * <p>Detailed information about the external key store proxy (XKS proxy). Your external key
1658
+ * store proxy translates KMS requests into a format that your external key manager can
1659
+ * understand. These fields appear in a <a>DescribeCustomKeyStores</a> response only
1660
+ * when the <code>CustomKeyStoreType</code> is <code>EXTERNAL_KEY_STORE</code>.</p>
1661
+ */
1662
+ export interface XksProxyConfigurationType {
1663
+ /**
1664
+ * <p>Indicates whether the external key store proxy uses a public endpoint or an Amazon VPC endpoint
1665
+ * service to communicate with KMS.</p>
1666
+ */
1667
+ Connectivity?: XksProxyConnectivityType | string;
1668
+ /**
1669
+ * <p>The part of the external key store <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html#KMS-CreateCustomKeyStore-request-XksProxyAuthenticationCredential">proxy authentication credential</a>
1670
+ * that uniquely identifies the secret access key.</p>
1671
+ */
1672
+ AccessKeyId?: string;
1673
+ /**
1674
+ * <p>The URI endpoint for the external key store proxy.</p>
1675
+ * <p>If the external key store proxy has a public endpoint, it is displayed here.</p>
1676
+ * <p>If the external key store proxy uses an Amazon VPC endpoint service name, this field displays
1677
+ * the private DNS name associated with the VPC endpoint service.</p>
1678
+ */
1679
+ UriEndpoint?: string;
1680
+ /**
1681
+ * <p>The path to the external key store proxy APIs.</p>
1682
+ */
1683
+ UriPath?: string;
1684
+ /**
1685
+ * <p>The Amazon VPC endpoint service used to communicate with the external key store proxy. This
1686
+ * field appears only when the external key store proxy uses an Amazon VPC endpoint service to
1687
+ * communicate with KMS.</p>
1688
+ */
1689
+ VpcEndpointServiceName?: string;
1690
+ }
1258
1691
  /**
1259
1692
  * <p>Contains information about each custom key store in the custom key store list.</p>
1260
1693
  */
@@ -1268,69 +1701,99 @@ export interface CustomKeyStoresListEntry {
1268
1701
  */
1269
1702
  CustomKeyStoreName?: string;
1270
1703
  /**
1271
- * <p>A unique identifier for the CloudHSM cluster that is associated with the custom key
1272
- * store.</p>
1704
+ * <p>A unique identifier for the CloudHSM cluster that is associated with an CloudHSM key store. This
1705
+ * field appears only when the <code>CustomKeyStoreType</code> is
1706
+ * <code>AWS_CLOUDHSM</code>.</p>
1273
1707
  */
1274
1708
  CloudHsmClusterId?: string;
1275
1709
  /**
1276
- * <p>The trust anchor certificate of the associated CloudHSM cluster. When you <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr">initialize the
1277
- * cluster</a>, you create this certificate and save it in the <code>customerCA.crt</code>
1278
- * file.</p>
1710
+ * <p>The trust anchor certificate of the CloudHSM cluster associated with an CloudHSM key store. When
1711
+ * you <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr">initialize
1712
+ * the cluster</a>, you create this certificate and save it in the
1713
+ * <code>customerCA.crt</code> file.</p>
1714
+ * <p>This field appears only when the <code>CustomKeyStoreType</code> is
1715
+ * <code>AWS_CLOUDHSM</code>.</p>
1279
1716
  */
1280
1717
  TrustAnchorCertificate?: string;
1281
1718
  /**
1282
- * <p>Indicates whether the custom key store is connected to its CloudHSM cluster.</p>
1283
- * <p>You can create and use KMS keys in your custom key stores only when its connection state
1284
- * is <code>CONNECTED</code>.</p>
1285
- * <p>The value is <code>DISCONNECTED</code> if the key store has never been connected or you
1286
- * use the <a>DisconnectCustomKeyStore</a> operation to disconnect it. If the value is
1287
- * <code>CONNECTED</code> but you are having trouble using the custom key store, make sure that
1288
- * its associated CloudHSM cluster is active and contains at least one active HSM.</p>
1719
+ * <p>Indicates whether the custom key store is connected to its backing key store. For an CloudHSM
1720
+ * key store, the <code>ConnectionState</code> indicates whether it is connected to its CloudHSM
1721
+ * cluster. For an external key store, the <code>ConnectionState</code> indicates whether it is
1722
+ * connected to the external key store proxy that communicates with your external key
1723
+ * manager.</p>
1724
+ * <p>You can create and use KMS keys in your custom key stores only when its
1725
+ * <code>ConnectionState</code> is <code>CONNECTED</code>.</p>
1726
+ * <p>The <code>ConnectionState</code> value is <code>DISCONNECTED</code> only if the key store
1727
+ * has never been connected or you use the <a>DisconnectCustomKeyStore</a> operation
1728
+ * to disconnect it. If the value is <code>CONNECTED</code> but you are having trouble using the
1729
+ * custom key store, make sure that the backing key store is reachable and active. For an CloudHSM
1730
+ * key store, verify that its associated CloudHSM cluster is active and contains at least one active
1731
+ * HSM. For an external key store, verify that the external key store proxy and external key
1732
+ * manager are connected and enabled.</p>
1289
1733
  * <p>A value of <code>FAILED</code> indicates that an attempt to connect was unsuccessful. The
1290
1734
  * <code>ConnectionErrorCode</code> field in the response indicates the cause of the failure.
1291
- * For help resolving a connection failure, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html">Troubleshooting a Custom Key Store</a> in the
1735
+ * For help resolving a connection failure, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html">Troubleshooting a custom key store</a> in the
1292
1736
  * <i>Key Management Service Developer Guide</i>.</p>
1293
1737
  */
1294
1738
  ConnectionState?: ConnectionStateType | string;
1295
1739
  /**
1296
1740
  * <p>Describes the connection error. This field appears in the response only when the
1297
- * <code>ConnectionState</code> is <code>FAILED</code>. For help resolving these errors, see
1298
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed">How to
1299
- * Fix a Connection Failure</a> in <i>Key Management Service Developer Guide</i>.</p>
1300
- * <p>Valid values are:</p>
1741
+ * <code>ConnectionState</code> is <code>FAILED</code>.</p>
1742
+ * <p>Many failures can be resolved by updating the properties of the custom key store. To
1743
+ * update a custom key store, disconnect it (<a>DisconnectCustomKeyStore</a>), correct
1744
+ * the errors (<a>UpdateCustomKeyStore</a>), and try to connect again (<a>ConnectCustomKeyStore</a>). For additional help resolving these errors, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed">How to Fix a
1745
+ * Connection Failure</a> in <i>Key Management Service Developer Guide</i>.</p>
1746
+ * <p>
1747
+ * <b>All custom key stores:</b>
1748
+ * </p>
1301
1749
  * <ul>
1302
1750
  * <li>
1303
1751
  * <p>
1304
- * <code>CLUSTER_NOT_FOUND</code> - KMS cannot find the CloudHSM cluster with the
1305
- * specified cluster ID.</p>
1752
+ * <code>INTERNAL_ERROR</code> KMS could not complete the request due to an
1753
+ * internal error. Retry the request. For <code>ConnectCustomKeyStore</code> requests,
1754
+ * disconnect the custom key store before trying to connect again.</p>
1306
1755
  * </li>
1307
1756
  * <li>
1308
1757
  * <p>
1309
- * <code>INSUFFICIENT_CLOUDHSM_HSMS</code> - The associated CloudHSM cluster does not
1310
- * contain any active HSMs. To connect a custom key store to its CloudHSM cluster, the cluster
1311
- * must contain at least one active HSM.</p>
1758
+ * <code>NETWORK_ERRORS</code> Network errors are preventing KMS from
1759
+ * connecting the custom key store to its backing key store.</p>
1760
+ * </li>
1761
+ * </ul>
1762
+ *
1763
+ * <p>
1764
+ * <b>CloudHSM key stores:</b>
1765
+ * </p>
1766
+ * <ul>
1767
+ * <li>
1768
+ * <p>
1769
+ * <code>CLUSTER_NOT_FOUND</code> — KMS cannot find the CloudHSM cluster with the
1770
+ * specified cluster ID.</p>
1312
1771
  * </li>
1313
1772
  * <li>
1314
1773
  * <p>
1315
- * <code>INTERNAL_ERROR</code> - KMS could not complete the request due to an internal
1316
- * error. Retry the request. For <code>ConnectCustomKeyStore</code> requests, disconnect the
1317
- * custom key store before trying to connect again.</p>
1774
+ * <code>INSUFFICIENT_CLOUDHSM_HSMS</code> The associated CloudHSM cluster does not
1775
+ * contain any active HSMs. To connect a custom key store to its CloudHSM cluster, the cluster
1776
+ * must contain at least one active HSM.</p>
1318
1777
  * </li>
1319
1778
  * <li>
1320
1779
  * <p>
1321
- * <code>INVALID_CREDENTIALS</code> - KMS does not have the correct password for the
1322
- * <code>kmsuser</code> crypto user in the CloudHSM cluster. Before you can connect your
1323
- * custom key store to its CloudHSM cluster, you must change the <code>kmsuser</code> account
1324
- * password and update the key store password value for the custom key store.</p>
1780
+ * <code>INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET</code> At least one private subnet
1781
+ * associated with the CloudHSM cluster doesn't have any available IP addresses. A CloudHSM key
1782
+ * store connection requires one free IP address in each of the associated private subnets,
1783
+ * although two are preferable. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed">How to Fix a Connection
1784
+ * Failure</a> in the <i>Key Management Service Developer Guide</i>.</p>
1325
1785
  * </li>
1326
1786
  * <li>
1327
1787
  * <p>
1328
- * <code>NETWORK_ERRORS</code> - Network errors are preventing KMS from connecting to
1329
- * the custom key store.</p>
1788
+ * <code>INVALID_CREDENTIALS</code> The <code>KeyStorePassword</code> for the
1789
+ * custom key store doesn't match the current password of the <code>kmsuser</code> crypto
1790
+ * user in the CloudHSM cluster. Before you can connect your custom key store to its CloudHSM
1791
+ * cluster, you must change the <code>kmsuser</code> account password and update the
1792
+ * <code>KeyStorePassword</code> value for the custom key store.</p>
1330
1793
  * </li>
1331
1794
  * <li>
1332
1795
  * <p>
1333
- * <code>SUBNET_NOT_FOUND</code> - A subnet in the CloudHSM cluster configuration was
1796
+ * <code>SUBNET_NOT_FOUND</code> A subnet in the CloudHSM cluster configuration was
1334
1797
  * deleted. If KMS cannot find all of the subnets in the cluster configuration, attempts to
1335
1798
  * connect the custom key store to the CloudHSM cluster fail. To fix this error, create a
1336
1799
  * cluster from a recent backup and associate it with your custom key store. (This process
@@ -1340,28 +1803,126 @@ export interface CustomKeyStoresListEntry {
1340
1803
  * </li>
1341
1804
  * <li>
1342
1805
  * <p>
1343
- * <code>USER_LOCKED_OUT</code> - The <code>kmsuser</code> CU account is locked out of
1344
- * the associated CloudHSM cluster due to too many failed password attempts. Before you can
1345
- * connect your custom key store to its CloudHSM cluster, you must change the
1806
+ * <code>USER_LOCKED_OUT</code> The <code>kmsuser</code> CU account is locked
1807
+ * out of the associated CloudHSM cluster due to too many failed password attempts. Before you
1808
+ * can connect your custom key store to its CloudHSM cluster, you must change the
1346
1809
  * <code>kmsuser</code> account password and update the key store password value for the
1347
1810
  * custom key store.</p>
1348
1811
  * </li>
1349
1812
  * <li>
1350
1813
  * <p>
1351
- * <code>USER_LOGGED_IN</code> - The <code>kmsuser</code> CU account is logged into the
1352
- * the associated CloudHSM cluster. This prevents KMS from rotating the <code>kmsuser</code>
1353
- * account password and logging into the cluster. Before you can connect your custom key
1354
- * store to its CloudHSM cluster, you must log the <code>kmsuser</code> CU out of the cluster.
1355
- * If you changed the <code>kmsuser</code> password to log into the cluster, you must also
1356
- * and update the key store password value for the custom key store. For help, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#login-kmsuser-2">How to Log Out
1357
- * and Reconnect</a> in the <i>Key Management Service Developer Guide</i>.</p>
1814
+ * <code>USER_LOGGED_IN</code> The <code>kmsuser</code> CU account is logged
1815
+ * into the associated CloudHSM cluster. This prevents KMS from rotating the
1816
+ * <code>kmsuser</code> account password and logging into the cluster. Before you can
1817
+ * connect your custom key store to its CloudHSM cluster, you must log the <code>kmsuser</code>
1818
+ * CU out of the cluster. If you changed the <code>kmsuser</code> password to log into the
1819
+ * cluster, you must also and update the key store password value for the custom key store.
1820
+ * For help, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#login-kmsuser-2">How to Log Out and
1821
+ * Reconnect</a> in the <i>Key Management Service Developer Guide</i>.</p>
1822
+ * </li>
1823
+ * <li>
1824
+ * <p>
1825
+ * <code>USER_NOT_FOUND</code> — KMS cannot find a <code>kmsuser</code> CU
1826
+ * account in the associated CloudHSM cluster. Before you can connect your custom key store to
1827
+ * its CloudHSM cluster, you must create a <code>kmsuser</code> CU account in the cluster, and
1828
+ * then update the key store password value for the custom key store.</p>
1829
+ * </li>
1830
+ * </ul>
1831
+ *
1832
+ * <p>
1833
+ * <b>External key stores:</b>
1834
+ * </p>
1835
+ * <ul>
1836
+ * <li>
1837
+ * <p>
1838
+ * <code>INVALID_CREDENTIALS</code> — One or both of the
1839
+ * <code>XksProxyAuthenticationCredential</code> values is not valid on the specified
1840
+ * external key store proxy.</p>
1841
+ * </li>
1842
+ * <li>
1843
+ * <p>
1844
+ * <code>XKS_PROXY_ACCESS_DENIED</code> — KMS requests are denied access to the
1845
+ * external key store proxy. If the external key store proxy has authorization rules, verify
1846
+ * that they permit KMS to communicate with the proxy on your behalf.</p>
1847
+ * </li>
1848
+ * <li>
1849
+ * <p>
1850
+ * <code>XKS_PROXY_INVALID_CONFIGURATION</code> — A configuration error is
1851
+ * preventing the external key store from connecting to its proxy. Verify the value of the
1852
+ * <code>XksProxyUriPath</code>.</p>
1853
+ * </li>
1854
+ * <li>
1855
+ * <p>
1856
+ * <code>XKS_PROXY_INVALID_RESPONSE</code> — KMS cannot interpret the response
1857
+ * from the external key store proxy. If you see this connection error code repeatedly,
1858
+ * notify your external key store proxy vendor.</p>
1358
1859
  * </li>
1359
1860
  * <li>
1360
1861
  * <p>
1361
- * <code>USER_NOT_FOUND</code> - KMS cannot find a <code>kmsuser</code> CU account in
1362
- * the associated CloudHSM cluster. Before you can connect your custom key store to its CloudHSM
1363
- * cluster, you must create a <code>kmsuser</code> CU account in the cluster, and then update
1364
- * the key store password value for the custom key store.</p>
1862
+ * <code>XKS_PROXY_INVALID_TLS_CONFIGURATION</code> KMS cannot connect to the
1863
+ * external key store proxy because the TLS configuration is invalid. Verify that the XKS
1864
+ * proxy supports TLS 1.2 or 1.3. Also, verify that the TLS certificate is not expired, and
1865
+ * that it matches the hostname in the <code>XksProxyUriEndpoint</code> value, and that it is
1866
+ * signed by a certificate authority included in the <a href="https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/TrustedCertificateAuthorities">Trusted Certificate Authorities</a>
1867
+ * list.</p>
1868
+ * </li>
1869
+ * <li>
1870
+ * <p>
1871
+ * <code>XKS_PROXY_NOT_REACHABLE</code> — KMS can't communicate with your
1872
+ * external key store proxy. Verify that the <code>XksProxyUriEndpoint</code> and
1873
+ * <code>XksProxyUriPath</code> are correct. Use the tools for your external key store
1874
+ * proxy to verify that the proxy is active and available on its network. Also, verify that
1875
+ * your external key manager instances are operating properly. Connection attempts fail with
1876
+ * this connection error code if the proxy reports that all external key manager instances
1877
+ * are unavailable.</p>
1878
+ * </li>
1879
+ * <li>
1880
+ * <p>
1881
+ * <code>XKS_PROXY_TIMED_OUT</code> — KMS can connect to the external key store
1882
+ * proxy, but the proxy does not respond to KMS in the time allotted. If you see this
1883
+ * connection error code repeatedly, notify your external key store proxy vendor.</p>
1884
+ * </li>
1885
+ * <li>
1886
+ * <p>
1887
+ * <code>XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION</code> — The Amazon VPC
1888
+ * endpoint service configuration doesn't conform to the requirements for an KMS external
1889
+ * key store.</p>
1890
+ *
1891
+ *
1892
+ * <ul>
1893
+ * <li>
1894
+ * <p>The VPC endpoint service must be an endpoint service for interface endpoints in the caller's Amazon Web Services account.</p>
1895
+ * </li>
1896
+ * <li>
1897
+ * <p>It must have a network load balancer (NLB) connected to at least two subnets, each in a different Availability Zone.</p>
1898
+ * </li>
1899
+ * <li>
1900
+ * <p>The <code>Allow principals</code> list must include
1901
+ * the KMS service principal for the Region, <code>cks.kms.<region>.amazonaws.com</code>,
1902
+ * such as <code>cks.kms.us-east-1.amazonaws.com</code>.</p>
1903
+ * </li>
1904
+ * <li>
1905
+ * <p>It must <i>not</i> require <a href="https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html">acceptance</a> of connection requests.</p>
1906
+ * </li>
1907
+ * <li>
1908
+ * <p>It must have a private DNS name. The private DNS name for an external key store with <code>VPC_ENDPOINT_SERVICE</code> connectivity
1909
+ * must be unique in its Amazon Web Services Region.</p>
1910
+ * </li>
1911
+ * <li>
1912
+ * <p>The domain of the private DNS name must have a <a href="https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html">verification status</a> of
1913
+ * <code>verified</code>.</p>
1914
+ * </li>
1915
+ * <li>
1916
+ * <p>The <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html">TLS certificate</a> specifies the private DNS hostname at which the endpoint is reachable.</p>
1917
+ * </li>
1918
+ * </ul>
1919
+ * </li>
1920
+ * <li>
1921
+ * <p>
1922
+ * <code>XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND</code> — KMS can't find the VPC
1923
+ * endpoint service that it uses to communicate with the external key store proxy. Verify
1924
+ * that the <code>XksProxyVpcEndpointServiceName</code> is correct and the KMS service
1925
+ * principal has service consumer permissions on the Amazon VPC endpoint service.</p>
1365
1926
  * </li>
1366
1927
  * </ul>
1367
1928
  */
@@ -1370,6 +1931,21 @@ export interface CustomKeyStoresListEntry {
1370
1931
  * <p>The date and time when the custom key store was created.</p>
1371
1932
  */
1372
1933
  CreationDate?: Date;
1934
+ /**
1935
+ * <p>Indicates the type of the custom key store. <code>AWS_CLOUDHSM</code> indicates a custom
1936
+ * key store backed by an CloudHSM cluster. <code>EXTERNAL_KEY_STORE</code> indicates a custom key
1937
+ * store backed by an external key store proxy and external key manager outside of Amazon Web Services.</p>
1938
+ */
1939
+ CustomKeyStoreType?: CustomKeyStoreType | string;
1940
+ /**
1941
+ * <p>Configuration settings for the external key store proxy (XKS proxy). The external key
1942
+ * store proxy translates KMS requests into a format that your external key manager can
1943
+ * understand. The proxy configuration includes connection information that KMS
1944
+ * requires.</p>
1945
+ * <p>This field appears only when the <code>CustomKeyStoreType</code> is
1946
+ * <code>EXTERNAL_KEY_STORE</code>.</p>
1947
+ */
1948
+ XksProxyConfiguration?: XksProxyConfigurationType;
1373
1949
  }
1374
1950
  export declare enum DataKeyPairSpec {
1375
1951
  ECC_NIST_P256 = "ECC_NIST_P256",
@@ -1408,12 +1984,15 @@ export interface DecryptRequest {
1408
1984
  GrantTokens?: string[];
1409
1985
  /**
1410
1986
  * <p>Specifies the KMS key that KMS uses to decrypt the ciphertext.</p>
1411
- * <p>Enter a key ID of the KMS
1412
- * key that was used to encrypt the ciphertext. If you identify a different KMS key, the <code>Decrypt</code> operation throws an <code>IncorrectKeyException</code>.</p>
1987
+ *
1988
+ * <p>Enter a key ID of the KMS key that was used to encrypt the ciphertext. If you identify a
1989
+ * different KMS key, the <code>Decrypt</code> operation throws an
1990
+ * <code>IncorrectKeyException</code>.</p>
1991
+ *
1413
1992
  * <p>This parameter is required only when the ciphertext was encrypted under an asymmetric KMS
1414
- * key. If you used a symmetric encryption KMS key, KMS can get the KMS key from metadata that it adds to
1415
- * the symmetric ciphertext blob. However, it is always recommended as a best practice. This
1416
- * practice ensures that you use the KMS key that you intend.</p>
1993
+ * key. If you used a symmetric encryption KMS key, KMS can get the KMS key from metadata that
1994
+ * it adds to the symmetric ciphertext blob. However, it is always recommended as a best
1995
+ * practice. This practice ensures that you use the KMS key that you intend.</p>
1417
1996
  *
1418
1997
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
1419
1998
  * <p>For example:</p>
@@ -1464,7 +2043,7 @@ export interface DecryptResponse {
1464
2043
  }
1465
2044
  /**
1466
2045
  * <p>The request was rejected because the specified KMS key cannot decrypt the data. The
1467
- * <code>KeyId</code> in a <a>Decrypt</a> request and the <code>SourceKeyId</code>
2046
+ * <code>KeyId</code> in a <a>Decrypt</a> request and the <code>SourceKeyId</code>
1468
2047
  * in a <a>ReEncrypt</a> request must identify the same KMS key that was used to
1469
2048
  * encrypt the ciphertext.</p>
1470
2049
  */
@@ -1508,8 +2087,8 @@ export declare class InvalidCiphertextException extends __BaseException {
1508
2087
  * <code>KeyUsage</code> must be <code>ENCRYPT_DECRYPT</code>. For signing and verifying
1509
2088
  * messages, the <code>KeyUsage</code> must be <code>SIGN_VERIFY</code>. For generating and
1510
2089
  * verifying message authentication codes (MACs), the <code>KeyUsage</code> must be
1511
- * <code>GENERATE_VERIFY_MAC</code>. To find the <code>KeyUsage</code> of
1512
- * a KMS key, use the <a>DescribeKey</a> operation.</p>
2090
+ * <code>GENERATE_VERIFY_MAC</code>. To find the <code>KeyUsage</code> of a KMS key, use the
2091
+ * <a>DescribeKey</a> operation.</p>
1513
2092
  * <p>To find the encryption or signing algorithms supported for a particular KMS key, use the
1514
2093
  * <a>DescribeKey</a> operation.</p>
1515
2094
  */
@@ -1573,7 +2152,7 @@ export interface DescribeCustomKeyStoresRequest {
1573
2152
  /**
1574
2153
  * <p>Gets only information about the specified custom key store. Enter the key store ID.</p>
1575
2154
  * <p>By default, this operation gets information about all custom key stores in the account and
1576
- * Region. To limit the output to a particular custom key store, you can use either the
2155
+ * Region. To limit the output to a particular custom key store, provide either the
1577
2156
  * <code>CustomKeyStoreId</code> or <code>CustomKeyStoreName</code> parameter, but not
1578
2157
  * both.</p>
1579
2158
  */
@@ -1582,7 +2161,7 @@ export interface DescribeCustomKeyStoresRequest {
1582
2161
  * <p>Gets only information about the specified custom key store. Enter the friendly name of the
1583
2162
  * custom key store.</p>
1584
2163
  * <p>By default, this operation gets information about all custom key stores in the account and
1585
- * Region. To limit the output to a particular custom key store, you can use either the
2164
+ * Region. To limit the output to a particular custom key store, provide either the
1586
2165
  * <code>CustomKeyStoreId</code> or <code>CustomKeyStoreName</code> parameter, but not
1587
2166
  * both.</p>
1588
2167
  */
@@ -1676,6 +2255,7 @@ export interface DescribeKeyResponse {
1676
2255
  export interface DisableKeyRequest {
1677
2256
  /**
1678
2257
  * <p>Identifies the KMS key to disable.</p>
2258
+ *
1679
2259
  * <p>Specify the key ID or key ARN of the KMS key.</p>
1680
2260
  * <p>For example:</p>
1681
2261
  * <ul>
@@ -1694,9 +2274,11 @@ export interface DisableKeyRequest {
1694
2274
  }
1695
2275
  export interface DisableKeyRotationRequest {
1696
2276
  /**
1697
- * <p>Identifies a symmetric encryption KMS key. You cannot enable or disable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks">asymmetric
1698
- * KMS keys</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html">HMAC KMS keys</a>, KMS keys with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or KMS keys in a
2277
+ * <p>Identifies a symmetric encryption KMS key. You cannot enable or disable automatic rotation
2278
+ * of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks">asymmetric KMS keys</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html">HMAC
2279
+ * KMS keys</a>, KMS keys with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or KMS keys in a
1699
2280
  * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>.</p>
2281
+ *
1700
2282
  * <p>Specify the key ID or key ARN of the KMS key.</p>
1701
2283
  * <p>For example:</p>
1702
2284
  * <ul>
@@ -1724,6 +2306,7 @@ export interface DisconnectCustomKeyStoreResponse {
1724
2306
  export interface EnableKeyRequest {
1725
2307
  /**
1726
2308
  * <p>Identifies the KMS key to enable.</p>
2309
+ *
1727
2310
  * <p>Specify the key ID or key ARN of the KMS key.</p>
1728
2311
  * <p>For example:</p>
1729
2312
  * <ul>
@@ -1742,8 +2325,7 @@ export interface EnableKeyRequest {
1742
2325
  }
1743
2326
  export interface EnableKeyRotationRequest {
1744
2327
  /**
1745
- * <p>Identifies a symmetric encryption KMS key. You cannot enable or disable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">asymmetric KMS keys</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html">HMAC KMS keys</a>, KMS keys with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or KMS keys in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. The key rotation status of these KMS keys is always <code>false</code>.
1746
- * To enable or disable automatic rotation of a set of related <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate">multi-Region keys</a>, set the property on the primary key.</p>
2328
+ * <p>Identifies a symmetric encryption KMS key. You cannot enable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">asymmetric KMS keys</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html">HMAC KMS keys</a>, KMS keys with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or KMS keys in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. To enable or disable automatic rotation of a set of related <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate">multi-Region keys</a>, set the property on the primary key.</p>
1747
2329
  *
1748
2330
  * <p>Specify the key ID or key ARN of the KMS key.</p>
1749
2331
  * <p>For example:</p>
@@ -1816,6 +2398,7 @@ export interface EncryptRequest {
1816
2398
  * <p>This parameter is required only for asymmetric KMS keys. The default value,
1817
2399
  * <code>SYMMETRIC_DEFAULT</code>, is the algorithm used for symmetric encryption KMS keys. If you are
1818
2400
  * using an asymmetric KMS key, we recommend RSAES_OAEP_SHA_256.</p>
2401
+ * <p>The SM2PKE algorithm is only available in China Regions.</p>
1819
2402
  */
1820
2403
  EncryptionAlgorithm?: EncryptionAlgorithmSpec | string;
1821
2404
  }
@@ -1961,7 +2544,7 @@ export interface GenerateDataKeyPairRequest {
1961
2544
  KeyId: string | undefined;
1962
2545
  /**
1963
2546
  * <p>Determines the type of data key pair that is generated. </p>
1964
- * <p>The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC KMS keys only to sign and verify, are not effective on data key pairs, which are used outside of KMS. The SM2 key spec is only available in China Regions. RSA and ECC asymmetric key pairs are also available in China Regions.</p>
2547
+ * <p>The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC KMS keys only to sign and verify, are not effective on data key pairs, which are used outside of KMS. The SM2 key spec is only available in China Regions.</p>
1965
2548
  */
1966
2549
  KeyPairSpec: DataKeyPairSpec | string | undefined;
1967
2550
  /**
@@ -2007,8 +2590,8 @@ export interface GenerateDataKeyPairWithoutPlaintextRequest {
2007
2590
  /**
2008
2591
  * <p>Specifies the symmetric encryption KMS key that encrypts the private key in the data key
2009
2592
  * pair. You cannot specify an asymmetric KMS key or a KMS key in a custom key store. To get the
2010
- * type and origin of your KMS key, use the <a>DescribeKey</a> operation.
2011
- * </p>
2593
+ * type and origin of your KMS key, use the <a>DescribeKey</a> operation. </p>
2594
+ *
2012
2595
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
2013
2596
  * <p>For example:</p>
2014
2597
  * <ul>
@@ -2034,7 +2617,7 @@ export interface GenerateDataKeyPairWithoutPlaintextRequest {
2034
2617
  KeyId: string | undefined;
2035
2618
  /**
2036
2619
  * <p>Determines the type of data key pair that is generated.</p>
2037
- * <p>The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC KMS keys only to sign and verify, are not effective on data key pairs, which are used outside of KMS. The SM2 key spec is only available in China Regions. RSA and ECC asymmetric key pairs are also available in China Regions.</p>
2620
+ * <p>The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC KMS keys only to sign and verify, are not effective on data key pairs, which are used outside of KMS. The SM2 key spec is only available in China Regions.</p>
2038
2621
  */
2039
2622
  KeyPairSpec: DataKeyPairSpec | string | undefined;
2040
2623
  /**
@@ -2138,9 +2721,10 @@ export interface GenerateMacRequest {
2138
2721
  */
2139
2722
  Message: Uint8Array | undefined;
2140
2723
  /**
2141
- * <p>The HMAC KMS key to use in the operation. The MAC algorithm computes the HMAC for the message and the key as described in <a href="https://datatracker.ietf.org/doc/html/rfc2104">RFC 2104</a>.</p>
2724
+ * <p>The HMAC KMS key to use in the operation. The MAC algorithm computes the HMAC for the
2725
+ * message and the key as described in <a href="https://datatracker.ietf.org/doc/html/rfc2104">RFC 2104</a>.</p>
2142
2726
  * <p>To identify an HMAC KMS key, use the <a>DescribeKey</a> operation and see the
2143
- * <code>KeySpec</code> field in the response.</p>
2727
+ * <code>KeySpec</code> field in the response.</p>
2144
2728
  */
2145
2729
  KeyId: string | undefined;
2146
2730
  /**
@@ -2159,8 +2743,9 @@ export interface GenerateMacRequest {
2159
2743
  }
2160
2744
  export interface GenerateMacResponse {
2161
2745
  /**
2162
- * <p>The hash-based message authentication code (HMAC) for the given message, key, and MAC
2163
- * algorithm.</p>
2746
+ * <p>The hash-based message authentication code (HMAC) that was generated for the
2747
+ * specified message, HMAC KMS key, and MAC algorithm.</p>
2748
+ * <p>This is the standard, raw HMAC defined in <a href="https://datatracker.ietf.org/doc/html/rfc2104">RFC 2104</a>.</p>
2164
2749
  */
2165
2750
  Mac?: Uint8Array;
2166
2751
  /**
@@ -2179,7 +2764,10 @@ export interface GenerateRandomRequest {
2179
2764
  NumberOfBytes?: number;
2180
2765
  /**
2181
2766
  * <p>Generates the random byte string in the CloudHSM cluster that is associated with the
2182
- * specified <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. To find the ID of a custom key store, use the <a>DescribeCustomKeyStores</a> operation.</p>
2767
+ * specified CloudHSM key store. To find the ID of a custom key store, use the <a>DescribeCustomKeyStores</a> operation.</p>
2768
+ * <p>External key store IDs are not valid for this parameter. If you specify the ID of an
2769
+ * external key store, <code>GenerateRandom</code> throws an
2770
+ * <code>UnsupportedOperationException</code>.</p>
2183
2771
  */
2184
2772
  CustomKeyStoreId?: string;
2185
2773
  }
@@ -2192,6 +2780,7 @@ export interface GenerateRandomResponse {
2192
2780
  export interface GetKeyPolicyRequest {
2193
2781
  /**
2194
2782
  * <p>Gets the key policy for the specified KMS key.</p>
2783
+ *
2195
2784
  * <p>Specify the key ID or key ARN of the KMS key.</p>
2196
2785
  * <p>For example:</p>
2197
2786
  * <ul>
@@ -2251,8 +2840,8 @@ export declare enum WrappingKeySpec {
2251
2840
  }
2252
2841
  export interface GetParametersForImportRequest {
2253
2842
  /**
2254
- * <p>The identifier of the symmetric encryption KMS key into which you will import key material. The
2255
- * <code>Origin</code> of the KMS key must be <code>EXTERNAL</code>.</p>
2843
+ * <p>The identifier of the symmetric encryption KMS key into which you will import key
2844
+ * material. The <code>Origin</code> of the KMS key must be <code>EXTERNAL</code>.</p>
2256
2845
  *
2257
2846
  * <p>Specify the key ID or key ARN of the KMS key.</p>
2258
2847
  * <p>For example:</p>
@@ -2356,7 +2945,7 @@ export interface GetPublicKeyResponse {
2356
2945
  * response.</p>
2357
2946
  * <p>The <code>KeySpec</code> and <code>CustomerMasterKeySpec</code> fields have the same
2358
2947
  * value. We recommend that you use the <code>KeySpec</code> field in your code. However, to
2359
- * avoid breaking changes, KMS will support both fields.</p>
2948
+ * avoid breaking changes, KMS supports both fields.</p>
2360
2949
  */
2361
2950
  CustomerMasterKeySpec?: CustomerMasterKeySpec | string;
2362
2951
  /**
@@ -2435,10 +3024,12 @@ export interface GrantListEntry {
2435
3024
  export interface ImportKeyMaterialRequest {
2436
3025
  /**
2437
3026
  * <p>The identifier of the symmetric encryption KMS key that receives the imported key
2438
- * material. This must be the same KMS key specified in the <code>KeyID</code> parameter of the corresponding <a>GetParametersForImport</a> request. The <code>Origin</code> of the
3027
+ * material. This must be the same KMS key specified in the <code>KeyID</code> parameter of the
3028
+ * corresponding <a>GetParametersForImport</a> request. The <code>Origin</code> of the
2439
3029
  * KMS key must be <code>EXTERNAL</code>. You cannot perform this operation on an asymmetric KMS
2440
3030
  * key, an HMAC KMS key, a KMS key in a custom key store, or on a KMS key in a different
2441
3031
  * Amazon Web Services account</p>
3032
+ *
2442
3033
  * <p>Specify the key ID or key ARN of the KMS key.</p>
2443
3034
  * <p>For example:</p>
2444
3035
  * <ul>
@@ -2466,17 +3057,27 @@ export interface ImportKeyMaterialRequest {
2466
3057
  */
2467
3058
  EncryptedKeyMaterial: Uint8Array | undefined;
2468
3059
  /**
2469
- * <p>The time at which the imported key material expires. When the key material expires, KMS
2470
- * deletes the key material and the KMS key becomes unusable. You must omit this parameter when
2471
- * the <code>ExpirationModel</code> parameter is set to
2472
- * <code>KEY_MATERIAL_DOES_NOT_EXPIRE</code>. Otherwise it is required.</p>
3060
+ * <p>The date and time when the imported key material expires. This parameter is required when
3061
+ * the value of the <code>ExpirationModel</code> parameter is <code>KEY_MATERIAL_EXPIRES</code>.
3062
+ * Otherwise it is not valid.</p>
3063
+ * <p>The value of this parameter must be a future date and time. The maximum value is 365 days
3064
+ * from the request date.</p>
3065
+ * <p>When the key material expires, KMS deletes the key material from the KMS key. Without
3066
+ * its key material, the KMS key is unusable. To use the KMS key in cryptographic operations, you
3067
+ * must reimport the same key material.</p>
3068
+ * <p>You cannot change the <code>ExpirationModel</code> or <code>ValidTo</code> values for the
3069
+ * current import after the request completes. To change either value, you must delete (<a>DeleteImportedKeyMaterial</a>) and reimport the key material.</p>
2473
3070
  */
2474
3071
  ValidTo?: Date;
2475
3072
  /**
2476
3073
  * <p>Specifies whether the key material expires. The default is
2477
- * <code>KEY_MATERIAL_EXPIRES</code>, in which case you must include the <code>ValidTo</code>
2478
- * parameter. When this parameter is set to <code>KEY_MATERIAL_DOES_NOT_EXPIRE</code>, you must
2479
- * omit the <code>ValidTo</code> parameter.</p>
3074
+ * <code>KEY_MATERIAL_EXPIRES</code>.</p>
3075
+ * <p>When the value of <code>ExpirationModel</code> is <code>KEY_MATERIAL_EXPIRES</code>, you
3076
+ * must specify a value for the <code>ValidTo</code> parameter. When value is
3077
+ * <code>KEY_MATERIAL_DOES_NOT_EXPIRE</code>, you must omit the <code>ValidTo</code>
3078
+ * parameter.</p>
3079
+ * <p>You cannot change the <code>ExpirationModel</code> or <code>ValidTo</code> values for the
3080
+ * current import after the request completes. To change either value, you must delete (<a>DeleteImportedKeyMaterial</a>) and reimport the key material.</p>
2480
3081
  */
2481
3082
  ExpirationModel?: ExpirationModelType | string;
2482
3083
  }
@@ -2531,8 +3132,9 @@ export interface KeyListEntry {
2531
3132
  KeyArn?: string;
2532
3133
  }
2533
3134
  /**
2534
- * <p>The request was rejected because the HMAC verification failed. HMAC verification
2535
- * fails when the HMAC computed by using the specified message, HMAC KMS key, and MAC algorithm does not match the HMAC specified in the request.</p>
3135
+ * <p>The request was rejected because the HMAC verification failed. HMAC verification fails
3136
+ * when the HMAC computed by using the specified message, HMAC KMS key, and MAC algorithm does
3137
+ * not match the HMAC specified in the request.</p>
2536
3138
  */
2537
3139
  export declare class KMSInvalidMacException extends __BaseException {
2538
3140
  readonly name: "KMSInvalidMacException";
@@ -2561,6 +3163,7 @@ export interface ListAliasesRequest {
2561
3163
  * Amazon Web Services account. </p>
2562
3164
  * <p>This parameter is optional. If you omit it, <code>ListAliases</code> returns all aliases
2563
3165
  * in the account and Region.</p>
3166
+ *
2564
3167
  * <p>Specify the key ID or key ARN of the KMS key.</p>
2565
3168
  * <p>For example:</p>
2566
3169
  * <ul>
@@ -2675,6 +3278,7 @@ export interface ListGrantsResponse {
2675
3278
  export interface ListKeyPoliciesRequest {
2676
3279
  /**
2677
3280
  * <p>Gets the names of key policies for the specified KMS key.</p>
3281
+ *
2678
3282
  * <p>Specify the key ID or key ARN of the KMS key.</p>
2679
3283
  * <p>For example:</p>
2680
3284
  * <ul>
@@ -2761,6 +3365,7 @@ export interface ListKeysResponse {
2761
3365
  export interface ListResourceTagsRequest {
2762
3366
  /**
2763
3367
  * <p>Gets tags on the specified KMS key.</p>
3368
+ *
2764
3369
  * <p>Specify the key ID or key ARN of the KMS key.</p>
2765
3370
  * <p>For example:</p>
2766
3371
  * <ul>
@@ -2797,7 +3402,7 @@ export interface ListResourceTagsResponse {
2797
3402
  /**
2798
3403
  * <p>A list of tags. Each tag consists of a tag key and a tag value.</p>
2799
3404
  * <note>
2800
- * <p>Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">ABAC in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
3405
+ * <p>Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">ABAC for KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
2801
3406
  * </note>
2802
3407
  */
2803
3408
  Tags?: Tag[];
@@ -2848,6 +3453,7 @@ export declare enum MessageType {
2848
3453
  export interface PutKeyPolicyRequest {
2849
3454
  /**
2850
3455
  * <p>Sets the key policy on the specified KMS key.</p>
3456
+ *
2851
3457
  * <p>Specify the key ID or key ARN of the KMS key.</p>
2852
3458
  * <p>For example:</p>
2853
3459
  * <ul>
@@ -2901,7 +3507,7 @@ export interface PutKeyPolicyRequest {
2901
3507
  * </li>
2902
3508
  * </ul>
2903
3509
  * <p>For information about key policies, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">Key policies in KMS</a> in the
2904
- * <i>Key Management Service Developer Guide</i>. For help writing and formatting a JSON policy document, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html">IAM JSON Policy Reference</a> in the <i>
3510
+ * <i>Key Management Service Developer Guide</i>.For help writing and formatting a JSON policy document, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html">IAM JSON Policy Reference</a> in the <i>
2905
3511
  * <i>Identity and Access Management User Guide</i>
2906
3512
  * </i>.</p>
2907
3513
  */
@@ -2937,11 +3543,13 @@ export interface ReEncryptRequest {
2937
3543
  /**
2938
3544
  * <p>Specifies the KMS key that KMS will use to decrypt the ciphertext before it is
2939
3545
  * re-encrypted.</p>
2940
- * <p>Enter a key ID of the KMS key that was used to encrypt the ciphertext. If you identify a different KMS key, the <code>ReEncrypt</code> operation throws an <code>IncorrectKeyException</code>.</p>
3546
+ * <p>Enter a key ID of the KMS key that was used to encrypt the ciphertext. If you identify a
3547
+ * different KMS key, the <code>ReEncrypt</code> operation throws an
3548
+ * <code>IncorrectKeyException</code>.</p>
2941
3549
  * <p>This parameter is required only when the ciphertext was encrypted under an asymmetric KMS
2942
- * key. If you used a symmetric encryption KMS key, KMS can get the KMS key from metadata that it adds to
2943
- * the symmetric ciphertext blob. However, it is always recommended as a best practice. This
2944
- * practice ensures that you use the KMS key that you intend.</p>
3550
+ * key. If you used a symmetric encryption KMS key, KMS can get the KMS key from metadata that
3551
+ * it adds to the symmetric ciphertext blob. However, it is always recommended as a best
3552
+ * practice. This practice ensures that you use the KMS key that you intend.</p>
2945
3553
  *
2946
3554
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
2947
3555
  * <p>For example:</p>
@@ -2971,6 +3579,7 @@ export interface ReEncryptRequest {
2971
3579
  * symmetric encryption KMS key or an asymmetric KMS key with a <code>KeyUsage</code> value of
2972
3580
  * <code>ENCRYPT_DECRYPT</code>. To find the <code>KeyUsage</code> value of a KMS key, use the
2973
3581
  * <a>DescribeKey</a> operation.</p>
3582
+ *
2974
3583
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
2975
3584
  * <p>For example:</p>
2976
3585
  * <ul>
@@ -2996,8 +3605,9 @@ export interface ReEncryptRequest {
2996
3605
  DestinationKeyId: string | undefined;
2997
3606
  /**
2998
3607
  * <p>Specifies that encryption context to use when the reencrypting the data.</p>
2999
- * <p>A destination encryption context is valid only when the destination KMS key is a symmetric encryption KMS key. The standard ciphertext format for asymmetric KMS keys does not include fields for
3000
- * metadata.</p>
3608
+ * <p>A destination encryption context is valid only when the destination KMS key is a symmetric
3609
+ * encryption KMS key. The standard ciphertext format for asymmetric KMS keys does not include
3610
+ * fields for metadata.</p>
3001
3611
  * <p>An <i>encryption context</i> is a collection of non-secret key-value pairs that represent additional authenticated data.
3002
3612
  * When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported
3003
3613
  * only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.</p>
@@ -3082,14 +3692,14 @@ export interface ReplicateKeyRequest {
3082
3692
  * <note>
3083
3693
  * <p>HMAC KMS keys are not supported in all Amazon Web Services Regions. If you try to replicate an HMAC
3084
3694
  * KMS key in an Amazon Web Services Region in which HMAC keys are not supported, the
3085
- * <code>ReplicateKey</code> operation returns an <code>UnsupportedOperationException</code>.
3695
+ * <code>ReplicateKey</code> operation returns an <code>UnsupportedOperationException</code>.
3086
3696
  * For a list of Regions in which HMAC KMS keys are supported, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html">HMAC keys in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
3087
3697
  * </note>
3088
3698
  * <p>The replica must be in a different Amazon Web Services Region than its primary key and other replicas of
3089
3699
  * that primary key, but in the same Amazon Web Services partition. KMS must be available in the replica
3090
3700
  * Region. If the Region is not enabled by default, the Amazon Web Services account must be enabled in the
3091
3701
  * Region. For information about Amazon Web Services partitions, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the
3092
- * <i>Amazon Web Services General Reference</i>. For information about enabling and disabling Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable">Enabling a
3702
+ * <i>Amazon Web Services General Reference</i>. For information about enabling and disabling Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable">Enabling a
3093
3703
  * Region</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable">Disabling a Region</a> in the
3094
3704
  * <i>Amazon Web Services General Reference</i>.</p>
3095
3705
  */
@@ -3123,7 +3733,6 @@ export interface ReplicateKeyRequest {
3123
3733
  * </li>
3124
3734
  * </ul>
3125
3735
  *
3126
- *
3127
3736
  * <p>A key policy document can include only the following characters:</p>
3128
3737
  * <ul>
3129
3738
  * <li>
@@ -3136,8 +3745,8 @@ export interface ReplicateKeyRequest {
3136
3745
  * <p>The tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) special characters</p>
3137
3746
  * </li>
3138
3747
  * </ul>
3139
- * <p>For information about key policies, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">Key policies in KMS</a> in the
3140
- * <i>Key Management Service Developer Guide</i>. For help writing and formatting a JSON policy document, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html">IAM JSON Policy Reference</a> in the <i>
3748
+ * <p>For information about key policies, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">Key policies in KMS</a> in the <i>Key Management Service Developer Guide</i>.
3749
+ * For help writing and formatting a JSON policy document, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html">IAM JSON Policy Reference</a> in the <i>
3141
3750
  * <i>Identity and Access Management User Guide</i>
3142
3751
  * </i>.</p>
3143
3752
  */
@@ -3167,7 +3776,7 @@ export interface ReplicateKeyRequest {
3167
3776
  * is created. To tag an existing KMS key, use the <a>TagResource</a>
3168
3777
  * operation.</p>
3169
3778
  * <note>
3170
- * <p>Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">ABAC in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
3779
+ * <p>Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">ABAC for KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>
3171
3780
  * </note>
3172
3781
  * <p>To use this parameter, you must have <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:TagResource</a> permission in an IAM policy.</p>
3173
3782
  * <p>Tags are not a shared property of multi-Region keys. You can specify the same tags or
@@ -3186,8 +3795,8 @@ export interface ReplicateKeyRequest {
3186
3795
  export interface ReplicateKeyResponse {
3187
3796
  /**
3188
3797
  * <p>Displays details about the new replica key, including its Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) and
3189
- * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a>. It also
3190
- * includes the ARN and Amazon Web Services Region of its primary key and other replica keys.</p>
3798
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a>. It also includes the ARN and Amazon Web Services Region of its primary key and other
3799
+ * replica keys.</p>
3191
3800
  */
3192
3801
  ReplicaKeyMetadata?: KeyMetadata;
3193
3802
  /**
@@ -3258,6 +3867,7 @@ export interface RevokeGrantRequest {
3258
3867
  export interface ScheduleKeyDeletionRequest {
3259
3868
  /**
3260
3869
  * <p>The unique identifier of the KMS key to delete.</p>
3870
+ *
3261
3871
  * <p>Specify the key ID or key ARN of the KMS key.</p>
3262
3872
  * <p>For example:</p>
3263
3873
  * <ul>
@@ -3276,8 +3886,8 @@ export interface ScheduleKeyDeletionRequest {
3276
3886
  /**
3277
3887
  * <p>The waiting period, specified in number of days. After the waiting period ends, KMS
3278
3888
  * deletes the KMS key.</p>
3279
- * <p>If the KMS key is a multi-Region primary key with replica keys, the waiting period begins when
3280
- * the last of its replica keys is deleted. Otherwise, the waiting period begins
3889
+ * <p>If the KMS key is a multi-Region primary key with replica keys, the waiting period begins
3890
+ * when the last of its replica keys is deleted. Otherwise, the waiting period begins
3281
3891
  * immediately.</p>
3282
3892
  * <p>This value is optional. If you include a value, it must be between 7 and 30, inclusive. If
3283
3893
  * you do not include a value, it defaults to 30.</p>
@@ -3298,7 +3908,8 @@ export interface ScheduleKeyDeletionResponse {
3298
3908
  DeletionDate?: Date;
3299
3909
  /**
3300
3910
  * <p>The current status of the KMS key.</p>
3301
- * <p>For more information about how key state affects the use of a KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>
3911
+ * <p>For more information about how key state affects the use of a KMS key, see
3912
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>
3302
3913
  */
3303
3914
  KeyState?: KeyState | string;
3304
3915
  /**
@@ -3314,6 +3925,7 @@ export interface SignRequest {
3314
3925
  * <p>Identifies an asymmetric KMS key. KMS uses the private key in the asymmetric KMS key to
3315
3926
  * sign the message. The <code>KeyUsage</code> type of the KMS key must be
3316
3927
  * <code>SIGN_VERIFY</code>. To find the <code>KeyUsage</code> of a KMS key, use the <a>DescribeKey</a> operation.</p>
3928
+ *
3317
3929
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
3318
3930
  * <p>For example:</p>
3319
3931
  * <ul>
@@ -3457,7 +4069,8 @@ export interface UpdateAliasRequest {
3457
4069
  * associate an alias with an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed key</a>.</p>
3458
4070
  * <p>The KMS key must be in the same Amazon Web Services account and Region as the alias. Also, the new
3459
4071
  * target KMS key must be the same type as the current target KMS key (both symmetric or both
3460
- * asymmetric) and they must have the same key usage. </p>
4072
+ * asymmetric or both HMAC) and they must have the same key usage. </p>
4073
+ *
3461
4074
  * <p>Specify the key ID or key ARN of the KMS key.</p>
3462
4075
  * <p>For example:</p>
3463
4076
  * <ul>
@@ -3471,8 +4084,8 @@ export interface UpdateAliasRequest {
3471
4084
  * </li>
3472
4085
  * </ul>
3473
4086
  * <p>To get the key ID and key ARN for a KMS key, use <a>ListKeys</a> or <a>DescribeKey</a>.</p>
3474
- * <p>To
3475
- * verify that the alias is mapped to the correct KMS key, use <a>ListAliases</a>.</p>
4087
+ *
4088
+ * <p>To verify that the alias is mapped to the correct KMS key, use <a>ListAliases</a>.</p>
3476
4089
  */
3477
4090
  TargetKeyId: string | undefined;
3478
4091
  }
@@ -3485,25 +4098,95 @@ export interface UpdateCustomKeyStoreRequest {
3485
4098
  /**
3486
4099
  * <p>Changes the friendly name of the custom key store to the value that you specify. The
3487
4100
  * custom key store name must be unique in the Amazon Web Services account.</p>
4101
+ * <p>To change this value, an CloudHSM key store must be disconnected. An external key store can
4102
+ * be connected or disconnected.</p>
3488
4103
  */
3489
4104
  NewCustomKeyStoreName?: string;
3490
4105
  /**
3491
4106
  * <p>Enter the current password of the <code>kmsuser</code> crypto user (CU) in the CloudHSM
3492
- * cluster that is associated with the custom key store.</p>
4107
+ * cluster that is associated with the custom key store. This parameter is valid only for custom
4108
+ * key stores with a <code>CustomKeyStoreType</code> of <code>AWS_CLOUDHSM</code>.</p>
3493
4109
  * <p>This parameter tells KMS the current password of the <code>kmsuser</code> crypto user
3494
4110
  * (CU). It does not set or change the password of any users in the CloudHSM cluster.</p>
4111
+ * <p>To change this value, the CloudHSM key store must be disconnected.</p>
3495
4112
  */
3496
4113
  KeyStorePassword?: string;
3497
4114
  /**
3498
- * <p>Associates the custom key store with a related CloudHSM cluster. </p>
4115
+ * <p>Associates the custom key store with a related CloudHSM cluster. This parameter is valid only
4116
+ * for custom key stores with a <code>CustomKeyStoreType</code> of
4117
+ * <code>AWS_CLOUDHSM</code>.</p>
3499
4118
  * <p>Enter the cluster ID of the cluster that you used to create the custom key store or a
3500
4119
  * cluster that shares a backup history and has the same cluster certificate as the original
3501
4120
  * cluster. You cannot use this parameter to associate a custom key store with an unrelated
3502
4121
  * cluster. In addition, the replacement cluster must <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore">fulfill the requirements</a> for
3503
4122
  * a cluster associated with a custom key store. To view the cluster certificate of a cluster,
3504
4123
  * use the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html">DescribeClusters</a> operation.</p>
4124
+ * <p>To change this value, the CloudHSM key store must be disconnected.</p>
3505
4125
  */
3506
4126
  CloudHsmClusterId?: string;
4127
+ /**
4128
+ * <p>Changes the URI endpoint that KMS uses to connect to your external key store proxy (XKS
4129
+ * proxy). This parameter is valid only for custom key stores with a
4130
+ * <code>CustomKeyStoreType</code> of <code>EXTERNAL_KEY_STORE</code>.</p>
4131
+ * <p>For external key stores with an <code>XksProxyConnectivity</code> value of
4132
+ * <code>PUBLIC_ENDPOINT</code>, the protocol must be HTTPS.</p>
4133
+ * <p>For external key stores with an <code>XksProxyConnectivity</code> value of
4134
+ * <code>VPC_ENDPOINT_SERVICE</code>, specify <code>https://</code> followed by the private DNS
4135
+ * name associated with the VPC endpoint service. Each external key store must use a different
4136
+ * private DNS name.</p>
4137
+ * <p>The combined <code>XksProxyUriEndpoint</code> and <code>XksProxyUriPath</code> values must
4138
+ * be unique in the Amazon Web Services account and Region.</p>
4139
+ * <p>To change this value, the external key store must be disconnected.</p>
4140
+ */
4141
+ XksProxyUriEndpoint?: string;
4142
+ /**
4143
+ * <p>Changes the base path to the proxy APIs for this external key store. To find this value,
4144
+ * see the documentation for your external key manager and external key store proxy (XKS proxy).
4145
+ * This parameter is valid only for custom key stores with a <code>CustomKeyStoreType</code> of
4146
+ * <code>EXTERNAL_KEY_STORE</code>.</p>
4147
+ * <p>The value must start with <code>/</code> and must end with <code>/kms/xks/v1</code>, where
4148
+ * <code>v1</code> represents the version of the KMS external key store proxy API. You can
4149
+ * include an optional prefix between the required elements such as
4150
+ * <code>/<i>example</i>/kms/xks/v1</code>.</p>
4151
+ * <p>The combined <code>XksProxyUriEndpoint</code> and <code>XksProxyUriPath</code> values must
4152
+ * be unique in the Amazon Web Services account and Region.</p>
4153
+ * <p>You can change this value when the external key store is connected or disconnected.</p>
4154
+ */
4155
+ XksProxyUriPath?: string;
4156
+ /**
4157
+ * <p>Changes the name that KMS uses to identify the Amazon VPC endpoint service for your external
4158
+ * key store proxy (XKS proxy). This parameter is valid when the <code>CustomKeyStoreType</code>
4159
+ * is <code>EXTERNAL_KEY_STORE</code> and the <code>XksProxyConnectivity</code> is
4160
+ * <code>VPC_ENDPOINT_SERVICE</code>.</p>
4161
+ * <p>To change this value, the external key store must be disconnected.</p>
4162
+ */
4163
+ XksProxyVpcEndpointServiceName?: string;
4164
+ /**
4165
+ * <p>Changes the credentials that KMS uses to sign requests to the external key store proxy
4166
+ * (XKS proxy). This parameter is valid only for custom key stores with a
4167
+ * <code>CustomKeyStoreType</code> of <code>EXTERNAL_KEY_STORE</code>.</p>
4168
+ * <p>You must specify both the <code>AccessKeyId</code> and <code>SecretAccessKey</code> value
4169
+ * in the authentication credential, even if you are only updating one value.</p>
4170
+ * <p>This parameter doesn't establish or change your authentication credentials on the proxy.
4171
+ * It just tells KMS the credential that you established with your external key store proxy.
4172
+ * For example, if you rotate the credential on your external key store proxy, you can use this
4173
+ * parameter to update the credential in KMS.</p>
4174
+ * <p>You can change this value when the external key store is connected or disconnected.</p>
4175
+ */
4176
+ XksProxyAuthenticationCredential?: XksProxyAuthenticationCredentialType;
4177
+ /**
4178
+ * <p>Changes the connectivity setting for the external key store. To indicate that the external
4179
+ * key store proxy uses a Amazon VPC endpoint service to communicate with KMS, specify
4180
+ * <code>VPC_ENDPOINT_SERVICE</code>. Otherwise, specify <code>PUBLIC_ENDPOINT</code>.</p>
4181
+ * <p>If you change the <code>XksProxyConnectivity</code> to <code>VPC_ENDPOINT_SERVICE</code>,
4182
+ * you must also change the <code>XksProxyUriEndpoint</code> and add an
4183
+ * <code>XksProxyVpcEndpointServiceName</code> value. </p>
4184
+ * <p>If you change the <code>XksProxyConnectivity</code> to <code>PUBLIC_ENDPOINT</code>, you
4185
+ * must also change the <code>XksProxyUriEndpoint</code> and specify a null or empty string for
4186
+ * the <code>XksProxyVpcEndpointServiceName</code> value.</p>
4187
+ * <p>To change this value, the external key store must be disconnected.</p>
4188
+ */
4189
+ XksProxyConnectivity?: XksProxyConnectivityType | string;
3507
4190
  }
3508
4191
  export interface UpdateCustomKeyStoreResponse {
3509
4192
  }
@@ -3535,6 +4218,7 @@ export interface UpdatePrimaryRegionRequest {
3535
4218
  /**
3536
4219
  * <p>Identifies the current primary key. When the operation completes, this KMS key will be a
3537
4220
  * replica key.</p>
4221
+ *
3538
4222
  * <p>Specify the key ID or key ARN of a multi-Region primary key.</p>
3539
4223
  * <p>For example:</p>
3540
4224
  * <ul>
@@ -3564,6 +4248,7 @@ export interface VerifyRequest {
3564
4248
  * <p>Identifies the asymmetric KMS key that will be used to verify the signature. This must be
3565
4249
  * the same KMS key that was used to generate the signature. If you specify a different KMS key,
3566
4250
  * the signature verification fails.</p>
4251
+ *
3567
4252
  * <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p>
3568
4253
  * <p>For example:</p>
3569
4254
  * <ul>
@@ -3654,16 +4339,20 @@ export interface VerifyMacRequest {
3654
4339
  /**
3655
4340
  * <p>The KMS key that will be used in the verification.</p>
3656
4341
  *
3657
- * <p>Enter a key ID of the KMS
3658
- * key that was used to generate the HMAC. If you identify a different KMS key, the <code>VerifyMac</code> operation fails.</p>
4342
+ * <p>Enter a key ID of the KMS key that was used to generate the HMAC. If you identify a
4343
+ * different KMS key, the <code>VerifyMac</code> operation fails.</p>
3659
4344
  */
3660
4345
  KeyId: string | undefined;
3661
4346
  /**
3662
- * <p>The MAC algorithm that will be used in the verification. Enter the same MAC algorithm that was used to compute the HMAC. This algorithm must be supported by the HMAC KMS key identified by the <code>KeyId</code> parameter.</p>
4347
+ * <p>The MAC algorithm that will be used in the verification. Enter the same MAC algorithm that
4348
+ * was used to compute the HMAC. This algorithm must be supported by the HMAC KMS key identified
4349
+ * by the <code>KeyId</code> parameter.</p>
3663
4350
  */
3664
4351
  MacAlgorithm: MacAlgorithmSpec | string | undefined;
3665
4352
  /**
3666
- * <p>The HMAC to verify. Enter the HMAC that was generated by the <a>GenerateMac</a> operation when you specified the same message, HMAC KMS key, and MAC algorithm as the values specified in this request.</p>
4353
+ * <p>The HMAC to verify. Enter the HMAC that was generated by the <a>GenerateMac</a>
4354
+ * operation when you specified the same message, HMAC KMS key, and MAC algorithm as the values
4355
+ * specified in this request.</p>
3667
4356
  */
3668
4357
  Mac: Uint8Array | undefined;
3669
4358
  /**
@@ -3679,9 +4368,9 @@ export interface VerifyMacResponse {
3679
4368
  */
3680
4369
  KeyId?: string;
3681
4370
  /**
3682
- * <p>A Boolean value that indicates whether the HMAC was verified. A value of
3683
- * <code>True</code> indicates that the HMAC (<code>Mac</code>) was generated with the specified
3684
- * <code>Message</code>, HMAC KMS key (<code>KeyID</code>) and
4371
+ * <p>A Boolean value that indicates whether the HMAC was verified. A value of <code>True</code>
4372
+ * indicates that the HMAC (<code>Mac</code>) was generated with the specified
4373
+ * <code>Message</code>, HMAC KMS key (<code>KeyID</code>) and
3685
4374
  * <code>MacAlgorithm.</code>.</p>
3686
4375
  * <p>If the HMAC is not verified, the <code>VerifyMac</code> operation fails with a
3687
4376
  * <code>KMSInvalidMacException</code> exception. This exception indicates that one or more of
@@ -3717,6 +4406,10 @@ export declare const ConnectCustomKeyStoreResponseFilterSensitiveLog: (obj: Conn
3717
4406
  * @internal
3718
4407
  */
3719
4408
  export declare const CreateAliasRequestFilterSensitiveLog: (obj: CreateAliasRequest) => any;
4409
+ /**
4410
+ * @internal
4411
+ */
4412
+ export declare const XksProxyAuthenticationCredentialTypeFilterSensitiveLog: (obj: XksProxyAuthenticationCredentialType) => any;
3720
4413
  /**
3721
4414
  * @internal
3722
4415
  */
@@ -3753,6 +4446,10 @@ export declare const MultiRegionKeyFilterSensitiveLog: (obj: MultiRegionKey) =>
3753
4446
  * @internal
3754
4447
  */
3755
4448
  export declare const MultiRegionConfigurationFilterSensitiveLog: (obj: MultiRegionConfiguration) => any;
4449
+ /**
4450
+ * @internal
4451
+ */
4452
+ export declare const XksKeyConfigurationTypeFilterSensitiveLog: (obj: XksKeyConfigurationType) => any;
3756
4453
  /**
3757
4454
  * @internal
3758
4455
  */
@@ -3761,6 +4458,10 @@ export declare const KeyMetadataFilterSensitiveLog: (obj: KeyMetadata) => any;
3761
4458
  * @internal
3762
4459
  */
3763
4460
  export declare const CreateKeyResponseFilterSensitiveLog: (obj: CreateKeyResponse) => any;
4461
+ /**
4462
+ * @internal
4463
+ */
4464
+ export declare const XksProxyConfigurationTypeFilterSensitiveLog: (obj: XksProxyConfigurationType) => any;
3764
4465
  /**
3765
4466
  * @internal
3766
4467
  */