@aws-sdk/client-kms 3.554.0 → 3.555.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 (34) hide show
  1. package/README.md +16 -0
  2. package/dist-cjs/index.js +151 -1
  3. package/dist-es/KMS.js +4 -0
  4. package/dist-es/commands/ListKeyRotationsCommand.js +24 -0
  5. package/dist-es/commands/RotateKeyOnDemandCommand.js +24 -0
  6. package/dist-es/commands/index.js +2 -0
  7. package/dist-es/models/models_0.js +16 -0
  8. package/dist-es/pagination/ListKeyRotationsPaginator.js +4 -0
  9. package/dist-es/pagination/index.js +1 -0
  10. package/dist-es/protocols/Aws_json1_1.js +83 -2
  11. package/dist-types/KMS.d.ts +14 -0
  12. package/dist-types/KMSClient.d.ts +4 -2
  13. package/dist-types/commands/CreateCustomKeyStoreCommand.d.ts +2 -2
  14. package/dist-types/commands/DisableKeyRotationCommand.d.ts +10 -0
  15. package/dist-types/commands/EnableKeyRotationCommand.d.ts +29 -7
  16. package/dist-types/commands/GetKeyRotationStatusCommand.d.ts +22 -6
  17. package/dist-types/commands/ListKeyRotationsCommand.d.ts +146 -0
  18. package/dist-types/commands/RotateKeyOnDemandCommand.d.ts +170 -0
  19. package/dist-types/commands/UpdateCustomKeyStoreCommand.d.ts +2 -2
  20. package/dist-types/commands/index.d.ts +2 -0
  21. package/dist-types/models/models_0.d.ts +194 -8
  22. package/dist-types/pagination/ListKeyRotationsPaginator.d.ts +7 -0
  23. package/dist-types/pagination/index.d.ts +1 -0
  24. package/dist-types/protocols/Aws_json1_1.d.ts +18 -0
  25. package/dist-types/ts3.4/KMS.d.ts +34 -0
  26. package/dist-types/ts3.4/KMSClient.d.ts +12 -0
  27. package/dist-types/ts3.4/commands/ListKeyRotationsCommand.d.ts +38 -0
  28. package/dist-types/ts3.4/commands/RotateKeyOnDemandCommand.d.ts +39 -0
  29. package/dist-types/ts3.4/commands/index.d.ts +2 -0
  30. package/dist-types/ts3.4/models/models_0.d.ts +36 -0
  31. package/dist-types/ts3.4/pagination/ListKeyRotationsPaginator.d.ts +11 -0
  32. package/dist-types/ts3.4/pagination/index.d.ts +1 -0
  33. package/dist-types/ts3.4/protocols/Aws_json1_1.d.ts +24 -0
  34. package/package.json +1 -1
@@ -31,6 +31,7 @@ import { ImportKeyMaterialCommandInput, ImportKeyMaterialCommandOutput } from ".
31
31
  import { ListAliasesCommandInput, ListAliasesCommandOutput } from "./commands/ListAliasesCommand";
32
32
  import { ListGrantsCommandInput, ListGrantsCommandOutput } from "./commands/ListGrantsCommand";
33
33
  import { ListKeyPoliciesCommandInput, ListKeyPoliciesCommandOutput } from "./commands/ListKeyPoliciesCommand";
34
+ import { ListKeyRotationsCommandInput, ListKeyRotationsCommandOutput } from "./commands/ListKeyRotationsCommand";
34
35
  import { ListKeysCommandInput, ListKeysCommandOutput } from "./commands/ListKeysCommand";
35
36
  import { ListResourceTagsCommandInput, ListResourceTagsCommandOutput } from "./commands/ListResourceTagsCommand";
36
37
  import { ListRetirableGrantsCommandInput, ListRetirableGrantsCommandOutput } from "./commands/ListRetirableGrantsCommand";
@@ -39,6 +40,7 @@ import { ReEncryptCommandInput, ReEncryptCommandOutput } from "./commands/ReEncr
39
40
  import { ReplicateKeyCommandInput, ReplicateKeyCommandOutput } from "./commands/ReplicateKeyCommand";
40
41
  import { RetireGrantCommandInput, RetireGrantCommandOutput } from "./commands/RetireGrantCommand";
41
42
  import { RevokeGrantCommandInput, RevokeGrantCommandOutput } from "./commands/RevokeGrantCommand";
43
+ import { RotateKeyOnDemandCommandInput, RotateKeyOnDemandCommandOutput } from "./commands/RotateKeyOnDemandCommand";
42
44
  import { ScheduleKeyDeletionCommandInput, ScheduleKeyDeletionCommandOutput } from "./commands/ScheduleKeyDeletionCommand";
43
45
  import { SignCommandInput, SignCommandOutput } from "./commands/SignCommand";
44
46
  import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand";
@@ -247,6 +249,12 @@ export interface KMS {
247
249
  listKeyPolicies(args: ListKeyPoliciesCommandInput, options?: __HttpHandlerOptions): Promise<ListKeyPoliciesCommandOutput>;
248
250
  listKeyPolicies(args: ListKeyPoliciesCommandInput, cb: (err: any, data?: ListKeyPoliciesCommandOutput) => void): void;
249
251
  listKeyPolicies(args: ListKeyPoliciesCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: ListKeyPoliciesCommandOutput) => void): void;
252
+ /**
253
+ * @see {@link ListKeyRotationsCommand}
254
+ */
255
+ listKeyRotations(args: ListKeyRotationsCommandInput, options?: __HttpHandlerOptions): Promise<ListKeyRotationsCommandOutput>;
256
+ listKeyRotations(args: ListKeyRotationsCommandInput, cb: (err: any, data?: ListKeyRotationsCommandOutput) => void): void;
257
+ listKeyRotations(args: ListKeyRotationsCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: ListKeyRotationsCommandOutput) => void): void;
250
258
  /**
251
259
  * @see {@link ListKeysCommand}
252
260
  */
@@ -297,6 +305,12 @@ export interface KMS {
297
305
  revokeGrant(args: RevokeGrantCommandInput, options?: __HttpHandlerOptions): Promise<RevokeGrantCommandOutput>;
298
306
  revokeGrant(args: RevokeGrantCommandInput, cb: (err: any, data?: RevokeGrantCommandOutput) => void): void;
299
307
  revokeGrant(args: RevokeGrantCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: RevokeGrantCommandOutput) => void): void;
308
+ /**
309
+ * @see {@link RotateKeyOnDemandCommand}
310
+ */
311
+ rotateKeyOnDemand(args: RotateKeyOnDemandCommandInput, options?: __HttpHandlerOptions): Promise<RotateKeyOnDemandCommandOutput>;
312
+ rotateKeyOnDemand(args: RotateKeyOnDemandCommandInput, cb: (err: any, data?: RotateKeyOnDemandCommandOutput) => void): void;
313
+ rotateKeyOnDemand(args: RotateKeyOnDemandCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: RotateKeyOnDemandCommandOutput) => void): void;
300
314
  /**
301
315
  * @see {@link ScheduleKeyDeletionCommand}
302
316
  */
@@ -39,6 +39,7 @@ import { ImportKeyMaterialCommandInput, ImportKeyMaterialCommandOutput } from ".
39
39
  import { ListAliasesCommandInput, ListAliasesCommandOutput } from "./commands/ListAliasesCommand";
40
40
  import { ListGrantsCommandInput, ListGrantsCommandOutput } from "./commands/ListGrantsCommand";
41
41
  import { ListKeyPoliciesCommandInput, ListKeyPoliciesCommandOutput } from "./commands/ListKeyPoliciesCommand";
42
+ import { ListKeyRotationsCommandInput, ListKeyRotationsCommandOutput } from "./commands/ListKeyRotationsCommand";
42
43
  import { ListKeysCommandInput, ListKeysCommandOutput } from "./commands/ListKeysCommand";
43
44
  import { ListResourceTagsCommandInput, ListResourceTagsCommandOutput } from "./commands/ListResourceTagsCommand";
44
45
  import { ListRetirableGrantsCommandInput, ListRetirableGrantsCommandOutput } from "./commands/ListRetirableGrantsCommand";
@@ -47,6 +48,7 @@ import { ReEncryptCommandInput, ReEncryptCommandOutput } from "./commands/ReEncr
47
48
  import { ReplicateKeyCommandInput, ReplicateKeyCommandOutput } from "./commands/ReplicateKeyCommand";
48
49
  import { RetireGrantCommandInput, RetireGrantCommandOutput } from "./commands/RetireGrantCommand";
49
50
  import { RevokeGrantCommandInput, RevokeGrantCommandOutput } from "./commands/RevokeGrantCommand";
51
+ import { RotateKeyOnDemandCommandInput, RotateKeyOnDemandCommandOutput } from "./commands/RotateKeyOnDemandCommand";
50
52
  import { ScheduleKeyDeletionCommandInput, ScheduleKeyDeletionCommandOutput } from "./commands/ScheduleKeyDeletionCommand";
51
53
  import { SignCommandInput, SignCommandOutput } from "./commands/SignCommand";
52
54
  import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand";
@@ -63,11 +65,11 @@ export { __Client };
63
65
  /**
64
66
  * @public
65
67
  */
66
- export type ServiceInputTypes = CancelKeyDeletionCommandInput | ConnectCustomKeyStoreCommandInput | CreateAliasCommandInput | CreateCustomKeyStoreCommandInput | CreateGrantCommandInput | CreateKeyCommandInput | DecryptCommandInput | DeleteAliasCommandInput | DeleteCustomKeyStoreCommandInput | DeleteImportedKeyMaterialCommandInput | DescribeCustomKeyStoresCommandInput | DescribeKeyCommandInput | DisableKeyCommandInput | DisableKeyRotationCommandInput | DisconnectCustomKeyStoreCommandInput | EnableKeyCommandInput | EnableKeyRotationCommandInput | EncryptCommandInput | GenerateDataKeyCommandInput | GenerateDataKeyPairCommandInput | GenerateDataKeyPairWithoutPlaintextCommandInput | GenerateDataKeyWithoutPlaintextCommandInput | GenerateMacCommandInput | GenerateRandomCommandInput | GetKeyPolicyCommandInput | GetKeyRotationStatusCommandInput | GetParametersForImportCommandInput | GetPublicKeyCommandInput | ImportKeyMaterialCommandInput | ListAliasesCommandInput | ListGrantsCommandInput | ListKeyPoliciesCommandInput | ListKeysCommandInput | ListResourceTagsCommandInput | ListRetirableGrantsCommandInput | PutKeyPolicyCommandInput | ReEncryptCommandInput | ReplicateKeyCommandInput | RetireGrantCommandInput | RevokeGrantCommandInput | ScheduleKeyDeletionCommandInput | SignCommandInput | TagResourceCommandInput | UntagResourceCommandInput | UpdateAliasCommandInput | UpdateCustomKeyStoreCommandInput | UpdateKeyDescriptionCommandInput | UpdatePrimaryRegionCommandInput | VerifyCommandInput | VerifyMacCommandInput;
68
+ export type ServiceInputTypes = CancelKeyDeletionCommandInput | ConnectCustomKeyStoreCommandInput | CreateAliasCommandInput | CreateCustomKeyStoreCommandInput | CreateGrantCommandInput | CreateKeyCommandInput | DecryptCommandInput | DeleteAliasCommandInput | DeleteCustomKeyStoreCommandInput | DeleteImportedKeyMaterialCommandInput | DescribeCustomKeyStoresCommandInput | DescribeKeyCommandInput | DisableKeyCommandInput | DisableKeyRotationCommandInput | DisconnectCustomKeyStoreCommandInput | EnableKeyCommandInput | EnableKeyRotationCommandInput | EncryptCommandInput | GenerateDataKeyCommandInput | GenerateDataKeyPairCommandInput | GenerateDataKeyPairWithoutPlaintextCommandInput | GenerateDataKeyWithoutPlaintextCommandInput | GenerateMacCommandInput | GenerateRandomCommandInput | GetKeyPolicyCommandInput | GetKeyRotationStatusCommandInput | GetParametersForImportCommandInput | GetPublicKeyCommandInput | ImportKeyMaterialCommandInput | ListAliasesCommandInput | ListGrantsCommandInput | ListKeyPoliciesCommandInput | ListKeyRotationsCommandInput | ListKeysCommandInput | ListResourceTagsCommandInput | ListRetirableGrantsCommandInput | PutKeyPolicyCommandInput | ReEncryptCommandInput | ReplicateKeyCommandInput | RetireGrantCommandInput | RevokeGrantCommandInput | RotateKeyOnDemandCommandInput | ScheduleKeyDeletionCommandInput | SignCommandInput | TagResourceCommandInput | UntagResourceCommandInput | UpdateAliasCommandInput | UpdateCustomKeyStoreCommandInput | UpdateKeyDescriptionCommandInput | UpdatePrimaryRegionCommandInput | VerifyCommandInput | VerifyMacCommandInput;
67
69
  /**
68
70
  * @public
69
71
  */
70
- export type ServiceOutputTypes = CancelKeyDeletionCommandOutput | ConnectCustomKeyStoreCommandOutput | CreateAliasCommandOutput | CreateCustomKeyStoreCommandOutput | CreateGrantCommandOutput | CreateKeyCommandOutput | DecryptCommandOutput | DeleteAliasCommandOutput | DeleteCustomKeyStoreCommandOutput | DeleteImportedKeyMaterialCommandOutput | DescribeCustomKeyStoresCommandOutput | DescribeKeyCommandOutput | DisableKeyCommandOutput | DisableKeyRotationCommandOutput | DisconnectCustomKeyStoreCommandOutput | EnableKeyCommandOutput | EnableKeyRotationCommandOutput | EncryptCommandOutput | GenerateDataKeyCommandOutput | GenerateDataKeyPairCommandOutput | GenerateDataKeyPairWithoutPlaintextCommandOutput | GenerateDataKeyWithoutPlaintextCommandOutput | GenerateMacCommandOutput | GenerateRandomCommandOutput | GetKeyPolicyCommandOutput | GetKeyRotationStatusCommandOutput | GetParametersForImportCommandOutput | GetPublicKeyCommandOutput | ImportKeyMaterialCommandOutput | ListAliasesCommandOutput | ListGrantsCommandOutput | ListKeyPoliciesCommandOutput | ListKeysCommandOutput | ListResourceTagsCommandOutput | ListRetirableGrantsCommandOutput | PutKeyPolicyCommandOutput | ReEncryptCommandOutput | ReplicateKeyCommandOutput | RetireGrantCommandOutput | RevokeGrantCommandOutput | ScheduleKeyDeletionCommandOutput | SignCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput | UpdateAliasCommandOutput | UpdateCustomKeyStoreCommandOutput | UpdateKeyDescriptionCommandOutput | UpdatePrimaryRegionCommandOutput | VerifyCommandOutput | VerifyMacCommandOutput;
72
+ export type ServiceOutputTypes = CancelKeyDeletionCommandOutput | ConnectCustomKeyStoreCommandOutput | CreateAliasCommandOutput | CreateCustomKeyStoreCommandOutput | CreateGrantCommandOutput | CreateKeyCommandOutput | DecryptCommandOutput | DeleteAliasCommandOutput | DeleteCustomKeyStoreCommandOutput | DeleteImportedKeyMaterialCommandOutput | DescribeCustomKeyStoresCommandOutput | DescribeKeyCommandOutput | DisableKeyCommandOutput | DisableKeyRotationCommandOutput | DisconnectCustomKeyStoreCommandOutput | EnableKeyCommandOutput | EnableKeyRotationCommandOutput | EncryptCommandOutput | GenerateDataKeyCommandOutput | GenerateDataKeyPairCommandOutput | GenerateDataKeyPairWithoutPlaintextCommandOutput | GenerateDataKeyWithoutPlaintextCommandOutput | GenerateMacCommandOutput | GenerateRandomCommandOutput | GetKeyPolicyCommandOutput | GetKeyRotationStatusCommandOutput | GetParametersForImportCommandOutput | GetPublicKeyCommandOutput | ImportKeyMaterialCommandOutput | ListAliasesCommandOutput | ListGrantsCommandOutput | ListKeyPoliciesCommandOutput | ListKeyRotationsCommandOutput | ListKeysCommandOutput | ListResourceTagsCommandOutput | ListRetirableGrantsCommandOutput | PutKeyPolicyCommandOutput | ReEncryptCommandOutput | ReplicateKeyCommandOutput | RetireGrantCommandOutput | RevokeGrantCommandOutput | RotateKeyOnDemandCommandOutput | ScheduleKeyDeletionCommandOutput | SignCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput | UpdateAliasCommandOutput | UpdateCustomKeyStoreCommandOutput | UpdateKeyDescriptionCommandOutput | UpdatePrimaryRegionCommandOutput | VerifyCommandOutput | VerifyMacCommandOutput;
71
73
  /**
72
74
  * @public
73
75
  */
@@ -242,8 +242,8 @@ declare const CreateCustomKeyStoreCommand_base: {
242
242
  *
243
243
  * @throws {@link XksProxyUriEndpointInUseException} (client fault)
244
244
  * <p>The request was rejected because the <code>XksProxyUriEndpoint</code> is already
245
- * associated with another external key store in this Amazon Web Services Region. To identify the cause,
246
- * see the error message that accompanies the exception. </p>
245
+ * associated with another external key store in this Amazon Web Services Region. To identify the cause, see
246
+ * the error message that accompanies the exception. </p>
247
247
  *
248
248
  * @throws {@link XksProxyUriInUseException} (client fault)
249
249
  * <p>The request was rejected because the concatenation of the <code>XksProxyUriEndpoint</code>
@@ -58,6 +58,16 @@ declare const DisableKeyRotationCommand_base: {
58
58
  * <a>GetKeyRotationStatus</a>
59
59
  * </p>
60
60
  * </li>
61
+ * <li>
62
+ * <p>
63
+ * <a>ListKeyRotations</a>
64
+ * </p>
65
+ * </li>
66
+ * <li>
67
+ * <p>
68
+ * <a>RotateKeyOnDemand</a>
69
+ * </p>
70
+ * </li>
61
71
  * </ul>
62
72
  * <p>
63
73
  * <b>Eventual consistency</b>: The KMS API follows an eventual consistency model.
@@ -26,18 +26,25 @@ declare const EnableKeyRotationCommand_base: {
26
26
  getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions;
27
27
  };
28
28
  /**
29
- * <p>Enables <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html">automatic rotation
29
+ * <p>Enables <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-enable-disable">automatic rotation
30
30
  * of the key material</a> of the specified symmetric encryption KMS key. </p>
31
- * <p>When you enable automatic rotation of a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed KMS key</a>, KMS
31
+ * <p>By default, when you enable automatic rotation of a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed KMS key</a>, KMS
32
32
  * rotates the key material of the KMS key one year (approximately 365 days) from the enable date
33
- * and every year thereafter. You can monitor rotation of the key material for your KMS keys in
34
- * CloudTrail and Amazon CloudWatch. To disable rotation of the key material in a customer
35
- * managed KMS key, use the <a>DisableKeyRotation</a> operation.</p>
33
+ * and every year thereafter. You can use the optional <code>RotationPeriodInDays</code>
34
+ * parameter to specify a custom rotation period when you enable key rotation, or you can use
35
+ * <code>RotationPeriodInDays</code> to modify the rotation period of a key that you previously
36
+ * enabled automatic key rotation on.</p>
37
+ * <p>You can monitor rotation of the key material
38
+ * for your KMS keys in CloudTrail and Amazon CloudWatch. To disable rotation of the key
39
+ * material in a customer managed KMS key, use the <a>DisableKeyRotation</a>
40
+ * operation. You can use the <a>GetKeyRotationStatus</a> operation to identify any in progress
41
+ * rotations. You can use the <a>ListKeyRotations</a> operation to view the details of
42
+ * completed rotations.</p>
36
43
  * <p>Automatic key rotation is supported only on <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks">symmetric encryption KMS keys</a>.
37
44
  * 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>
38
- * <p>You cannot enable or disable automatic rotation <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed KMS keys</a>. KMS
45
+ * <p>You cannot enable or disable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed KMS keys</a>. KMS
39
46
  * always rotates the key material of Amazon Web Services managed keys every year. Rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk">Amazon Web Services owned KMS
40
- * keys</a> varies.</p>
47
+ * keys</a> is managed by the Amazon Web Services service that owns the key.</p>
41
48
  * <note>
42
49
  * <p>In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three
43
50
  * years (approximately 1,095 days) to every year (approximately 365 days).</p>
@@ -66,6 +73,20 @@ declare const EnableKeyRotationCommand_base: {
66
73
  * <a>GetKeyRotationStatus</a>
67
74
  * </p>
68
75
  * </li>
76
+ * <li>
77
+ * <p>
78
+ * <a>ListKeyRotations</a>
79
+ * </p>
80
+ * </li>
81
+ * <li>
82
+ * <p>
83
+ * <a>RotateKeyOnDemand</a>
84
+ * </p>
85
+ * <note>
86
+ * <p>You can perform on-demand (<a>RotateKeyOnDemand</a>) rotation of the
87
+ * key material in customer managed KMS keys, regardless of whether or not automatic key rotation is enabled.</p>
88
+ * </note>
89
+ * </li>
69
90
  * </ul>
70
91
  * <p>
71
92
  * <b>Eventual consistency</b>: The KMS API follows an eventual consistency model.
@@ -78,6 +99,7 @@ declare const EnableKeyRotationCommand_base: {
78
99
  * const client = new KMSClient(config);
79
100
  * const input = { // EnableKeyRotationRequest
80
101
  * KeyId: "STRING_VALUE", // required
102
+ * RotationPeriodInDays: Number("int"),
81
103
  * };
82
104
  * const command = new EnableKeyRotationCommand(input);
83
105
  * const response = await client.send(command);
@@ -26,18 +26,20 @@ declare const GetKeyRotationStatusCommand_base: {
26
26
  getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions;
27
27
  };
28
28
  /**
29
- * <p>Gets a Boolean value that indicates whether <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html">automatic rotation of the key material</a> is
30
- * enabled for the specified KMS key.</p>
31
- * <p>When you enable automatic rotation for <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed KMS keys</a>, KMS
32
- * rotates the key material of the KMS key one year (approximately 365 days) from the enable date
33
- * and every year thereafter. You can monitor rotation of the key material for your KMS keys in
34
- * CloudTrail and Amazon CloudWatch.</p>
29
+ * <p>Provides detailed information about the rotation status for a KMS key, including
30
+ * whether <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html">automatic rotation of the key material</a> is enabled for the specified KMS key, the
31
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotation-period">rotation period</a>, and the next scheduled
32
+ * rotation date.</p>
35
33
  * <p>Automatic key rotation is supported only on <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks">symmetric encryption KMS keys</a>.
36
34
  * 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>
37
35
  * <p>You can enable (<a>EnableKeyRotation</a>) and disable automatic rotation (<a>DisableKeyRotation</a>) of the key material in customer managed KMS keys. Key
38
36
  * material rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed KMS keys</a> is not
39
37
  * configurable. KMS always rotates the key material in Amazon Web Services managed KMS keys every year. The
40
38
  * key rotation status for Amazon Web Services managed KMS keys is always <code>true</code>.</p>
39
+ * <p>You can perform on-demand (<a>RotateKeyOnDemand</a>) rotation of the
40
+ * key material in customer managed KMS keys, regardless of whether or not automatic key rotation is enabled.
41
+ * You can use GetKeyRotationStatus to identify the date and time that an in progress on-demand rotation
42
+ * was initiated. You can use <a>ListKeyRotations</a> to view the details of completed rotations.</p>
41
43
  * <note>
42
44
  * <p>In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three
43
45
  * years to every year. For details, see <a>EnableKeyRotation</a>.</p>
@@ -78,6 +80,16 @@ declare const GetKeyRotationStatusCommand_base: {
78
80
  * <a>EnableKeyRotation</a>
79
81
  * </p>
80
82
  * </li>
83
+ * <li>
84
+ * <p>
85
+ * <a>ListKeyRotations</a>
86
+ * </p>
87
+ * </li>
88
+ * <li>
89
+ * <p>
90
+ * <a>RotateKeyOnDemand</a>
91
+ * </p>
92
+ * </li>
81
93
  * </ul>
82
94
  * <p>
83
95
  * <b>Eventual consistency</b>: The KMS API follows an eventual consistency model.
@@ -95,6 +107,10 @@ declare const GetKeyRotationStatusCommand_base: {
95
107
  * const response = await client.send(command);
96
108
  * // { // GetKeyRotationStatusResponse
97
109
  * // KeyRotationEnabled: true || false,
110
+ * // KeyId: "STRING_VALUE",
111
+ * // RotationPeriodInDays: Number("int"),
112
+ * // NextRotationDate: new Date("TIMESTAMP"),
113
+ * // OnDemandRotationStartDate: new Date("TIMESTAMP"),
98
114
  * // };
99
115
  *
100
116
  * ```
@@ -0,0 +1,146 @@
1
+ import { Command as $Command } from "@smithy/smithy-client";
2
+ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
3
+ import { KMSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../KMSClient";
4
+ import { ListKeyRotationsRequest, ListKeyRotationsResponse } from "../models/models_0";
5
+ /**
6
+ * @public
7
+ */
8
+ export { __MetadataBearer, $Command };
9
+ /**
10
+ * @public
11
+ *
12
+ * The input for {@link ListKeyRotationsCommand}.
13
+ */
14
+ export interface ListKeyRotationsCommandInput extends ListKeyRotationsRequest {
15
+ }
16
+ /**
17
+ * @public
18
+ *
19
+ * The output of {@link ListKeyRotationsCommand}.
20
+ */
21
+ export interface ListKeyRotationsCommandOutput extends ListKeyRotationsResponse, __MetadataBearer {
22
+ }
23
+ declare const ListKeyRotationsCommand_base: {
24
+ new (input: ListKeyRotationsCommandInput): import("@smithy/smithy-client").CommandImpl<ListKeyRotationsCommandInput, ListKeyRotationsCommandOutput, KMSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
25
+ new (__0_0: ListKeyRotationsCommandInput): import("@smithy/smithy-client").CommandImpl<ListKeyRotationsCommandInput, ListKeyRotationsCommandOutput, KMSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
26
+ getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions;
27
+ };
28
+ /**
29
+ * <p>Returns information about all completed key material rotations for the specified KMS
30
+ * key.</p>
31
+ * <p>You must specify the KMS key in all requests. You can refine the key rotations list by
32
+ * limiting the number of rotations returned.</p>
33
+ * <p>For detailed information about automatic and on-demand key rotations, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html">Rotating KMS keys</a> in the
34
+ * <i>Key Management Service Developer Guide</i>.</p>
35
+ * <p>
36
+ * <b>Cross-account use</b>: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.</p>
37
+ * <p>
38
+ * <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:ListKeyRotations</a> (key policy)</p>
39
+ * <p>
40
+ * <b>Related operations:</b>
41
+ * </p>
42
+ * <ul>
43
+ * <li>
44
+ * <p>
45
+ * <a>EnableKeyRotation</a>
46
+ * </p>
47
+ * </li>
48
+ * <li>
49
+ * <p>
50
+ * <a>DisableKeyRotation</a>
51
+ * </p>
52
+ * </li>
53
+ * <li>
54
+ * <p>
55
+ * <a>GetKeyRotationStatus</a>
56
+ * </p>
57
+ * </li>
58
+ * <li>
59
+ * <p>
60
+ * <a>RotateKeyOnDemand</a>
61
+ * </p>
62
+ * </li>
63
+ * </ul>
64
+ * <p>
65
+ * <b>Eventual consistency</b>: The KMS API follows an eventual consistency model.
66
+ * For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html">KMS eventual consistency</a>.</p>
67
+ * @example
68
+ * Use a bare-bones client and the command you need to make an API call.
69
+ * ```javascript
70
+ * import { KMSClient, ListKeyRotationsCommand } from "@aws-sdk/client-kms"; // ES Modules import
71
+ * // const { KMSClient, ListKeyRotationsCommand } = require("@aws-sdk/client-kms"); // CommonJS import
72
+ * const client = new KMSClient(config);
73
+ * const input = { // ListKeyRotationsRequest
74
+ * KeyId: "STRING_VALUE", // required
75
+ * Limit: Number("int"),
76
+ * Marker: "STRING_VALUE",
77
+ * };
78
+ * const command = new ListKeyRotationsCommand(input);
79
+ * const response = await client.send(command);
80
+ * // { // ListKeyRotationsResponse
81
+ * // Rotations: [ // RotationsList
82
+ * // { // RotationsListEntry
83
+ * // KeyId: "STRING_VALUE",
84
+ * // RotationDate: new Date("TIMESTAMP"),
85
+ * // RotationType: "AUTOMATIC" || "ON_DEMAND",
86
+ * // },
87
+ * // ],
88
+ * // NextMarker: "STRING_VALUE",
89
+ * // Truncated: true || false,
90
+ * // };
91
+ *
92
+ * ```
93
+ *
94
+ * @param ListKeyRotationsCommandInput - {@link ListKeyRotationsCommandInput}
95
+ * @returns {@link ListKeyRotationsCommandOutput}
96
+ * @see {@link ListKeyRotationsCommandInput} for command's `input` shape.
97
+ * @see {@link ListKeyRotationsCommandOutput} for command's `response` shape.
98
+ * @see {@link KMSClientResolvedConfig | config} for KMSClient's `config` shape.
99
+ *
100
+ * @throws {@link InvalidArnException} (client fault)
101
+ * <p>The request was rejected because a specified ARN, or an ARN in a key policy, is not
102
+ * valid.</p>
103
+ *
104
+ * @throws {@link InvalidMarkerException} (client fault)
105
+ * <p>The request was rejected because the marker that specifies where pagination should next
106
+ * begin is not valid.</p>
107
+ *
108
+ * @throws {@link KMSInternalException} (server fault)
109
+ * <p>The request was rejected because an internal exception occurred. The request can be
110
+ * retried.</p>
111
+ *
112
+ * @throws {@link KMSInvalidStateException} (client fault)
113
+ * <p>The request was rejected because the state of the specified resource is not valid for this
114
+ * request.</p>
115
+ * <p>This exceptions means one of the following:</p>
116
+ * <ul>
117
+ * <li>
118
+ * <p>The key state of the KMS key is not compatible with the operation. </p>
119
+ * <p>To find the key state, use the <a>DescribeKey</a> operation. For more
120
+ * information about which key states are compatible with each KMS operation, see
121
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a> in the <i>
122
+ * <i>Key Management Service Developer Guide</i>
123
+ * </i>.</p>
124
+ * </li>
125
+ * <li>
126
+ * <p>For cryptographic operations on KMS keys in custom key stores, this exception
127
+ * represents a general failure with many possible causes. To identify the cause, see the
128
+ * error message that accompanies the exception.</p>
129
+ * </li>
130
+ * </ul>
131
+ *
132
+ * @throws {@link NotFoundException} (client fault)
133
+ * <p>The request was rejected because the specified entity or resource could not be
134
+ * found.</p>
135
+ *
136
+ * @throws {@link UnsupportedOperationException} (client fault)
137
+ * <p>The request was rejected because a specified parameter is not supported or a specified
138
+ * resource is not valid for this operation.</p>
139
+ *
140
+ * @throws {@link KMSServiceException}
141
+ * <p>Base exception class for all service exceptions from KMS service.</p>
142
+ *
143
+ * @public
144
+ */
145
+ export declare class ListKeyRotationsCommand extends ListKeyRotationsCommand_base {
146
+ }
@@ -0,0 +1,170 @@
1
+ import { Command as $Command } from "@smithy/smithy-client";
2
+ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
3
+ import { KMSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../KMSClient";
4
+ import { RotateKeyOnDemandRequest, RotateKeyOnDemandResponse } from "../models/models_0";
5
+ /**
6
+ * @public
7
+ */
8
+ export { __MetadataBearer, $Command };
9
+ /**
10
+ * @public
11
+ *
12
+ * The input for {@link RotateKeyOnDemandCommand}.
13
+ */
14
+ export interface RotateKeyOnDemandCommandInput extends RotateKeyOnDemandRequest {
15
+ }
16
+ /**
17
+ * @public
18
+ *
19
+ * The output of {@link RotateKeyOnDemandCommand}.
20
+ */
21
+ export interface RotateKeyOnDemandCommandOutput extends RotateKeyOnDemandResponse, __MetadataBearer {
22
+ }
23
+ declare const RotateKeyOnDemandCommand_base: {
24
+ new (input: RotateKeyOnDemandCommandInput): import("@smithy/smithy-client").CommandImpl<RotateKeyOnDemandCommandInput, RotateKeyOnDemandCommandOutput, KMSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
25
+ new (__0_0: RotateKeyOnDemandCommandInput): import("@smithy/smithy-client").CommandImpl<RotateKeyOnDemandCommandInput, RotateKeyOnDemandCommandOutput, KMSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
26
+ getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions;
27
+ };
28
+ /**
29
+ * <p>Immediately initiates rotation of the key material of the specified symmetric encryption
30
+ * KMS key.</p>
31
+ * <p>You can perform <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-on-demand">on-demand rotation</a>
32
+ * of the key material in customer managed KMS keys,
33
+ * regardless of whether or not <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-enable-disable">automatic key rotation</a> is enabled.
34
+ * On-demand rotations do not change existing automatic rotation schedules. For example, consider a KMS key that
35
+ * has automatic key rotation enabled with a rotation period of 730 days. If the key is scheduled to
36
+ * automatically rotate on April 14, 2024, and you perform an on-demand rotation on April 10, 2024, the key will automatically rotate,
37
+ * as scheduled, on April 14, 2024 and every 730 days thereafter.</p>
38
+ * <note>
39
+ * <p>You can perform on-demand key rotation a <b>maximum of 10 times</b>
40
+ * per KMS key. You can use the KMS console
41
+ * to view the number of remaining on-demand rotations available for a KMS key.</p>
42
+ * </note>
43
+ * <p>You can use <a>GetKeyRotationStatus</a> to identify any in progress
44
+ * on-demand rotations. You can use <a>ListKeyRotations</a> to identify the date that
45
+ * completed on-demand rotations were performed. You can monitor rotation of the key material
46
+ * for your KMS keys in CloudTrail and Amazon CloudWatch.</p>
47
+ * <p>On-demand key rotation is supported only on <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks">symmetric encryption KMS keys</a>.
48
+ * You cannot perform on-demand rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">asymmetric KMS keys</a>,
49
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html">HMAC KMS keys</a>,
50
+ * 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 perform
51
+ * on-demand 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>,
52
+ * invoke the on-demand rotation on the primary key.</p>
53
+ * <p>You cannot initiate on-demand rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed KMS keys</a>. KMS
54
+ * always rotates the key material of Amazon Web Services managed keys every year. Rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk">Amazon Web Services owned KMS
55
+ * keys</a> is managed by the Amazon Web Services service that owns the key.</p>
56
+ * <p>The KMS key that you use for this operation must be in a compatible key state. For
57
+ * details, 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>
58
+ * <p>
59
+ * <b>Cross-account use</b>: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.</p>
60
+ * <p>
61
+ * <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:RotateKeyOnDemand</a> (key policy)</p>
62
+ * <p>
63
+ * <b>Related operations:</b>
64
+ * </p>
65
+ * <ul>
66
+ * <li>
67
+ * <p>
68
+ * <a>EnableKeyRotation</a>
69
+ * </p>
70
+ * </li>
71
+ * <li>
72
+ * <p>
73
+ * <a>DisableKeyRotation</a>
74
+ * </p>
75
+ * </li>
76
+ * <li>
77
+ * <p>
78
+ * <a>GetKeyRotationStatus</a>
79
+ * </p>
80
+ * </li>
81
+ * <li>
82
+ * <p>
83
+ * <a>ListKeyRotations</a>
84
+ * </p>
85
+ * </li>
86
+ * </ul>
87
+ * <p>
88
+ * <b>Eventual consistency</b>: The KMS API follows an eventual consistency model.
89
+ * For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html">KMS eventual consistency</a>.</p>
90
+ * @example
91
+ * Use a bare-bones client and the command you need to make an API call.
92
+ * ```javascript
93
+ * import { KMSClient, RotateKeyOnDemandCommand } from "@aws-sdk/client-kms"; // ES Modules import
94
+ * // const { KMSClient, RotateKeyOnDemandCommand } = require("@aws-sdk/client-kms"); // CommonJS import
95
+ * const client = new KMSClient(config);
96
+ * const input = { // RotateKeyOnDemandRequest
97
+ * KeyId: "STRING_VALUE", // required
98
+ * };
99
+ * const command = new RotateKeyOnDemandCommand(input);
100
+ * const response = await client.send(command);
101
+ * // { // RotateKeyOnDemandResponse
102
+ * // KeyId: "STRING_VALUE",
103
+ * // };
104
+ *
105
+ * ```
106
+ *
107
+ * @param RotateKeyOnDemandCommandInput - {@link RotateKeyOnDemandCommandInput}
108
+ * @returns {@link RotateKeyOnDemandCommandOutput}
109
+ * @see {@link RotateKeyOnDemandCommandInput} for command's `input` shape.
110
+ * @see {@link RotateKeyOnDemandCommandOutput} for command's `response` shape.
111
+ * @see {@link KMSClientResolvedConfig | config} for KMSClient's `config` shape.
112
+ *
113
+ * @throws {@link ConflictException} (client fault)
114
+ * <p>The request was rejected because an automatic rotation of this key is currently in
115
+ * progress or scheduled to begin within the next 20 minutes. </p>
116
+ *
117
+ * @throws {@link DependencyTimeoutException} (server fault)
118
+ * <p>The system timed out while trying to fulfill the request. You can retry the
119
+ * request.</p>
120
+ *
121
+ * @throws {@link DisabledException} (client fault)
122
+ * <p>The request was rejected because the specified KMS key is not enabled.</p>
123
+ *
124
+ * @throws {@link InvalidArnException} (client fault)
125
+ * <p>The request was rejected because a specified ARN, or an ARN in a key policy, is not
126
+ * valid.</p>
127
+ *
128
+ * @throws {@link KMSInternalException} (server fault)
129
+ * <p>The request was rejected because an internal exception occurred. The request can be
130
+ * retried.</p>
131
+ *
132
+ * @throws {@link KMSInvalidStateException} (client fault)
133
+ * <p>The request was rejected because the state of the specified resource is not valid for this
134
+ * request.</p>
135
+ * <p>This exceptions means one of the following:</p>
136
+ * <ul>
137
+ * <li>
138
+ * <p>The key state of the KMS key is not compatible with the operation. </p>
139
+ * <p>To find the key state, use the <a>DescribeKey</a> operation. For more
140
+ * information about which key states are compatible with each KMS operation, see
141
+ * <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a> in the <i>
142
+ * <i>Key Management Service Developer Guide</i>
143
+ * </i>.</p>
144
+ * </li>
145
+ * <li>
146
+ * <p>For cryptographic operations on KMS keys in custom key stores, this exception
147
+ * represents a general failure with many possible causes. To identify the cause, see the
148
+ * error message that accompanies the exception.</p>
149
+ * </li>
150
+ * </ul>
151
+ *
152
+ * @throws {@link LimitExceededException} (client fault)
153
+ * <p>The request was rejected because a quota was exceeded. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/limits.html">Quotas</a> in the
154
+ * <i>Key Management Service Developer Guide</i>.</p>
155
+ *
156
+ * @throws {@link NotFoundException} (client fault)
157
+ * <p>The request was rejected because the specified entity or resource could not be
158
+ * found.</p>
159
+ *
160
+ * @throws {@link UnsupportedOperationException} (client fault)
161
+ * <p>The request was rejected because a specified parameter is not supported or a specified
162
+ * resource is not valid for this operation.</p>
163
+ *
164
+ * @throws {@link KMSServiceException}
165
+ * <p>Base exception class for all service exceptions from KMS service.</p>
166
+ *
167
+ * @public
168
+ */
169
+ export declare class RotateKeyOnDemandCommand extends RotateKeyOnDemandCommand_base {
170
+ }
@@ -275,8 +275,8 @@ declare const UpdateCustomKeyStoreCommand_base: {
275
275
  *
276
276
  * @throws {@link XksProxyUriEndpointInUseException} (client fault)
277
277
  * <p>The request was rejected because the <code>XksProxyUriEndpoint</code> is already
278
- * associated with another external key store in this Amazon Web Services Region. To identify the cause,
279
- * see the error message that accompanies the exception. </p>
278
+ * associated with another external key store in this Amazon Web Services Region. To identify the cause, see
279
+ * the error message that accompanies the exception. </p>
280
280
  *
281
281
  * @throws {@link XksProxyUriInUseException} (client fault)
282
282
  * <p>The request was rejected because the concatenation of the <code>XksProxyUriEndpoint</code>
@@ -30,6 +30,7 @@ export * from "./ImportKeyMaterialCommand";
30
30
  export * from "./ListAliasesCommand";
31
31
  export * from "./ListGrantsCommand";
32
32
  export * from "./ListKeyPoliciesCommand";
33
+ export * from "./ListKeyRotationsCommand";
33
34
  export * from "./ListKeysCommand";
34
35
  export * from "./ListResourceTagsCommand";
35
36
  export * from "./ListRetirableGrantsCommand";
@@ -38,6 +39,7 @@ export * from "./ReEncryptCommand";
38
39
  export * from "./ReplicateKeyCommand";
39
40
  export * from "./RetireGrantCommand";
40
41
  export * from "./RevokeGrantCommand";
42
+ export * from "./RotateKeyOnDemandCommand";
41
43
  export * from "./ScheduleKeyDeletionCommand";
42
44
  export * from "./SignCommand";
43
45
  export * from "./TagResourceCommand";