aws-sdk-kms 1.76.0 → 1.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -242,6 +242,21 @@ module Aws::KMS
242
242
  include Aws::Structure
243
243
  end
244
244
 
245
+ # The request was rejected because an automatic rotation of this key is
246
+ # currently in progress or scheduled to begin within the next 20
247
+ # minutes.
248
+ #
249
+ # @!attribute [rw] message
250
+ # @return [String]
251
+ #
252
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ConflictException AWS API Documentation
253
+ #
254
+ class ConflictException < Struct.new(
255
+ :message)
256
+ SENSITIVE = []
257
+ include Aws::Structure
258
+ end
259
+
245
260
  # @!attribute [rw] custom_key_store_id
246
261
  # Enter the key store ID of the custom key store that you want to
247
262
  # connect. To find the ID of a custom key store, use the
@@ -826,14 +841,17 @@ module Aws::KMS
826
841
  #
827
842
  # * For HMAC KMS keys (symmetric), specify `GENERATE_VERIFY_MAC`.
828
843
  #
829
- # * For asymmetric KMS keys with RSA key material, specify
844
+ # * For asymmetric KMS keys with RSA key pairs, specify
830
845
  # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
831
846
  #
832
- # * For asymmetric KMS keys with ECC key material, specify
847
+ # * For asymmetric KMS keys with NIST-recommended elliptic curve key
848
+ # pairs, specify `SIGN_VERIFY` or `KEY_AGREEMENT`.
849
+ #
850
+ # * For asymmetric KMS keys with `ECC_SECG_P256K1` key pairs specify
833
851
  # `SIGN_VERIFY`.
834
852
  #
835
- # * For asymmetric KMS keys with SM2 key material (China Regions
836
- # only), specify `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
853
+ # * For asymmetric KMS keys with SM2 key pairs (China Regions only),
854
+ # specify `ENCRYPT_DECRYPT`, `SIGN_VERIFY`, or `KEY_AGREEMENT`.
837
855
  #
838
856
  #
839
857
  #
@@ -889,7 +907,8 @@ module Aws::KMS
889
907
  #
890
908
  # * `HMAC_512`
891
909
  #
892
- # * Asymmetric RSA key pairs
910
+ # * Asymmetric RSA key pairs (encryption and decryption -or- signing
911
+ # and verification)
893
912
  #
894
913
  # * `RSA_2048`
895
914
  #
@@ -897,7 +916,8 @@ module Aws::KMS
897
916
  #
898
917
  # * `RSA_4096`
899
918
  #
900
- # * Asymmetric NIST-recommended elliptic curve key pairs
919
+ # * Asymmetric NIST-recommended elliptic curve key pairs (signing and
920
+ # verification -or- deriving shared secrets)
901
921
  #
902
922
  # * `ECC_NIST_P256` (secp256r1)
903
923
  #
@@ -905,16 +925,18 @@ module Aws::KMS
905
925
  #
906
926
  # * `ECC_NIST_P521` (secp521r1)
907
927
  #
908
- # * Other asymmetric elliptic curve key pairs
928
+ # * Other asymmetric elliptic curve key pairs (signing and
929
+ # verification)
909
930
  #
910
931
  # * `ECC_SECG_P256K1` (secp256k1), commonly used for
911
932
  # cryptocurrencies.
912
933
  #
913
934
  # ^
914
935
  #
915
- # * SM2 key pairs (China Regions only)
936
+ # * SM2 key pairs (encryption and decryption -or- signing and
937
+ # verification -or- deriving shared secrets)
916
938
  #
917
- # * `SM2`
939
+ # * `SM2` (China Regions only)
918
940
  #
919
941
  # ^
920
942
  #
@@ -1746,6 +1768,195 @@ module Aws::KMS
1746
1768
  include Aws::Structure
1747
1769
  end
1748
1770
 
1771
+ # @!attribute [rw] key_id
1772
+ # Identifies an asymmetric NIST-recommended ECC or SM2 (China Regions
1773
+ # only) KMS key. KMS uses the private key in the specified key pair to
1774
+ # derive the shared secret. The key usage of the KMS key must be
1775
+ # `KEY_AGREEMENT`. To find the `KeyUsage` of a KMS key, use the
1776
+ # DescribeKey operation.
1777
+ #
1778
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
1779
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
1780
+ # a KMS key in a different Amazon Web Services account, you must use
1781
+ # the key ARN or alias ARN.
1782
+ #
1783
+ # For example:
1784
+ #
1785
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
1786
+ #
1787
+ # * Key ARN:
1788
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
1789
+ #
1790
+ # * Alias name: `alias/ExampleAlias`
1791
+ #
1792
+ # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
1793
+ #
1794
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1795
+ # DescribeKey. To get the alias name and alias ARN, use ListAliases.
1796
+ # @return [String]
1797
+ #
1798
+ # @!attribute [rw] key_agreement_algorithm
1799
+ # Specifies the key agreement algorithm used to derive the shared
1800
+ # secret. The only valid value is `ECDH`.
1801
+ # @return [String]
1802
+ #
1803
+ # @!attribute [rw] public_key
1804
+ # Specifies the public key in your peer's NIST-recommended elliptic
1805
+ # curve (ECC) or SM2 (China Regions only) key pair.
1806
+ #
1807
+ # The public key must be a DER-encoded X.509 public key, also known as
1808
+ # `SubjectPublicKeyInfo` (SPKI), as defined in [RFC 5280][1].
1809
+ #
1810
+ # GetPublicKey returns the public key of an asymmetric KMS key pair in
1811
+ # the required DER-encoded format.
1812
+ #
1813
+ # <note markdown="1"> If you use [Amazon Web Services CLI version 1][2], you must provide
1814
+ # the DER-encoded X.509 public key in a file. Otherwise, the Amazon
1815
+ # Web Services CLI Base64-encodes the public key a second time,
1816
+ # resulting in a `ValidationException`.
1817
+ #
1818
+ # </note>
1819
+ #
1820
+ # You can specify the public key as binary data in a file using fileb
1821
+ # (`fileb://<path-to-file>`) or in-line using a Base64 encoded string.
1822
+ #
1823
+ #
1824
+ #
1825
+ # [1]: https://tools.ietf.org/html/rfc5280
1826
+ # [2]: https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html
1827
+ # @return [String]
1828
+ #
1829
+ # @!attribute [rw] grant_tokens
1830
+ # A list of grant tokens.
1831
+ #
1832
+ # Use a grant token when your permission to call this operation comes
1833
+ # from a new grant that has not yet achieved *eventual consistency*.
1834
+ # For more information, see [Grant token][1] and [Using a grant
1835
+ # token][2] in the *Key Management Service Developer Guide*.
1836
+ #
1837
+ #
1838
+ #
1839
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1840
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
1841
+ # @return [Array<String>]
1842
+ #
1843
+ # @!attribute [rw] dry_run
1844
+ # Checks if your request will succeed. `DryRun` is an optional
1845
+ # parameter.
1846
+ #
1847
+ # To learn more about how to use this parameter, see [Testing your KMS
1848
+ # API calls][1] in the *Key Management Service Developer Guide*.
1849
+ #
1850
+ #
1851
+ #
1852
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html
1853
+ # @return [Boolean]
1854
+ #
1855
+ # @!attribute [rw] recipient
1856
+ # A signed [attestation document][1] from an Amazon Web Services Nitro
1857
+ # enclave and the encryption algorithm to use with the enclave's
1858
+ # public key. The only valid encryption algorithm is
1859
+ # `RSAES_OAEP_SHA_256`.
1860
+ #
1861
+ # This parameter only supports attestation documents for Amazon Web
1862
+ # Services Nitro Enclaves. To call DeriveSharedSecret for an Amazon
1863
+ # Web Services Nitro Enclaves, use the [Amazon Web Services Nitro
1864
+ # Enclaves SDK][2] to generate the attestation document and then use
1865
+ # the Recipient parameter from any Amazon Web Services SDK to provide
1866
+ # the attestation document for the enclave.
1867
+ #
1868
+ # When you use this parameter, instead of returning a plaintext copy
1869
+ # of the shared secret, KMS encrypts the plaintext shared secret under
1870
+ # the public key in the attestation document, and returns the
1871
+ # resulting ciphertext in the `CiphertextForRecipient` field in the
1872
+ # response. This ciphertext can be decrypted only with the private key
1873
+ # in the enclave. The `CiphertextBlob` field in the response contains
1874
+ # the encrypted shared secret derived from the KMS key specified by
1875
+ # the `KeyId` parameter and public key specified by the `PublicKey`
1876
+ # parameter. The `SharedSecret` field in the response is null or
1877
+ # empty.
1878
+ #
1879
+ # For information about the interaction between KMS and Amazon Web
1880
+ # Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
1881
+ # uses KMS][3] in the *Key Management Service Developer Guide*.
1882
+ #
1883
+ #
1884
+ #
1885
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
1886
+ # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
1887
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
1888
+ # @return [Types::RecipientInfo]
1889
+ #
1890
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeriveSharedSecretRequest AWS API Documentation
1891
+ #
1892
+ class DeriveSharedSecretRequest < Struct.new(
1893
+ :key_id,
1894
+ :key_agreement_algorithm,
1895
+ :public_key,
1896
+ :grant_tokens,
1897
+ :dry_run,
1898
+ :recipient)
1899
+ SENSITIVE = []
1900
+ include Aws::Structure
1901
+ end
1902
+
1903
+ # @!attribute [rw] key_id
1904
+ # Identifies the KMS key used to derive the shared secret.
1905
+ # @return [String]
1906
+ #
1907
+ # @!attribute [rw] shared_secret
1908
+ # The raw secret derived from the specified key agreement algorithm,
1909
+ # private key in the asymmetric KMS key, and your peer's public key.
1910
+ #
1911
+ # If the response includes the `CiphertextForRecipient` field, the
1912
+ # `SharedSecret` field is null or empty.
1913
+ # @return [String]
1914
+ #
1915
+ # @!attribute [rw] ciphertext_for_recipient
1916
+ # The plaintext shared secret encrypted with the public key in the
1917
+ # attestation document.
1918
+ #
1919
+ # This field is included in the response only when the `Recipient`
1920
+ # parameter in the request includes a valid attestation document from
1921
+ # an Amazon Web Services Nitro enclave. For information about the
1922
+ # interaction between KMS and Amazon Web Services Nitro Enclaves, see
1923
+ # [How Amazon Web Services Nitro Enclaves uses KMS][1] in the *Key
1924
+ # Management Service Developer Guide*.
1925
+ #
1926
+ #
1927
+ #
1928
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
1929
+ # @return [String]
1930
+ #
1931
+ # @!attribute [rw] key_agreement_algorithm
1932
+ # Identifies the key agreement algorithm used to derive the shared
1933
+ # secret.
1934
+ # @return [String]
1935
+ #
1936
+ # @!attribute [rw] key_origin
1937
+ # The source of the key material for the specified KMS key.
1938
+ #
1939
+ # When this value is `AWS_KMS`, KMS created the key material. When
1940
+ # this value is `EXTERNAL`, the key material was imported or the KMS
1941
+ # key doesn't have any key material.
1942
+ #
1943
+ # The only valid values for DeriveSharedSecret are `AWS_KMS` and
1944
+ # `EXTERNAL`. DeriveSharedSecret does not support KMS keys with a
1945
+ # `KeyOrigin` value of `AWS_CLOUDHSM` or `EXTERNAL_KEY_STORE`.
1946
+ # @return [String]
1947
+ #
1948
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeriveSharedSecretResponse AWS API Documentation
1949
+ #
1950
+ class DeriveSharedSecretResponse < Struct.new(
1951
+ :key_id,
1952
+ :shared_secret,
1953
+ :ciphertext_for_recipient,
1954
+ :key_agreement_algorithm,
1955
+ :key_origin)
1956
+ SENSITIVE = [:shared_secret]
1957
+ include Aws::Structure
1958
+ end
1959
+
1749
1960
  # @!attribute [rw] custom_key_store_id
1750
1961
  # Gets only information about the specified custom key store. Enter
1751
1962
  # the key store ID.
@@ -1801,8 +2012,8 @@ module Aws::KMS
1801
2012
  # @!attribute [rw] truncated
1802
2013
  # A flag that indicates whether there are more items in the list. When
1803
2014
  # this value is true, the list in this response is truncated. To get
1804
- # more items, pass the value of the `NextMarker` element in
1805
- # thisresponse to the `Marker` parameter in a subsequent request.
2015
+ # more items, pass the value of the `NextMarker` element in this
2016
+ # response to the `Marker` parameter in a subsequent request.
1806
2017
  # @return [Boolean]
1807
2018
  #
1808
2019
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeCustomKeyStoresResponse AWS API Documentation
@@ -2036,10 +2247,31 @@ module Aws::KMS
2036
2247
  # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
2037
2248
  # @return [String]
2038
2249
  #
2250
+ # @!attribute [rw] rotation_period_in_days
2251
+ # Use this parameter to specify a custom period of time between each
2252
+ # rotation date. If no value is specified, the default value is 365
2253
+ # days.
2254
+ #
2255
+ # The rotation period defines the number of days after you enable
2256
+ # automatic key rotation that KMS will rotate your key material, and
2257
+ # the number of days between each automatic rotation thereafter.
2258
+ #
2259
+ # You can use the [ `kms:RotationPeriodInDays` ][1] condition key to
2260
+ # further constrain the values that principals can specify in the
2261
+ # `RotationPeriodInDays` parameter.
2262
+ #
2263
+ #
2264
+ #
2265
+ #
2266
+ #
2267
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-rotation-period-in-days
2268
+ # @return [Integer]
2269
+ #
2039
2270
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRotationRequest AWS API Documentation
2040
2271
  #
2041
2272
  class EnableKeyRotationRequest < Struct.new(
2042
- :key_id)
2273
+ :key_id,
2274
+ :rotation_period_in_days)
2043
2275
  SENSITIVE = []
2044
2276
  include Aws::Structure
2045
2277
  end
@@ -2281,8 +2513,11 @@ module Aws::KMS
2281
2513
  # `RSAES_OAEP_SHA_256`.
2282
2514
  #
2283
2515
  # This parameter only supports attestation documents for Amazon Web
2284
- # Services Nitro Enclaves. To include this parameter, use the [Amazon
2285
- # Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
2516
+ # Services Nitro Enclaves. To call DeriveSharedSecret for an Amazon
2517
+ # Web Services Nitro Enclaves, use the [Amazon Web Services Nitro
2518
+ # Enclaves SDK][2] to generate the attestation document and then use
2519
+ # the Recipient parameter from any Amazon Web Services SDK to provide
2520
+ # the attestation document for the enclave.
2286
2521
  #
2287
2522
  # When you use this parameter, instead of returning a plaintext copy
2288
2523
  # of the private data key, KMS encrypts the plaintext private data key
@@ -3048,7 +3283,8 @@ module Aws::KMS
3048
3283
  # @return [String]
3049
3284
  #
3050
3285
  # @!attribute [rw] policy_name
3051
- # Specifies the name of the key policy. The only valid name is
3286
+ # Specifies the name of the key policy. If no policy name is
3287
+ # specified, the default value is `default`. The only valid name is
3052
3288
  # `default`. To get the names of key policies, use ListKeyPolicies.
3053
3289
  # @return [String]
3054
3290
  #
@@ -3065,10 +3301,15 @@ module Aws::KMS
3065
3301
  # A key policy document in JSON format.
3066
3302
  # @return [String]
3067
3303
  #
3304
+ # @!attribute [rw] policy_name
3305
+ # The name of the key policy. The only valid value is `default`.
3306
+ # @return [String]
3307
+ #
3068
3308
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyPolicyResponse AWS API Documentation
3069
3309
  #
3070
3310
  class GetKeyPolicyResponse < Struct.new(
3071
- :policy)
3311
+ :policy,
3312
+ :policy_name)
3072
3313
  SENSITIVE = []
3073
3314
  include Aws::Structure
3074
3315
  end
@@ -3103,10 +3344,42 @@ module Aws::KMS
3103
3344
  # A Boolean value that specifies whether key rotation is enabled.
3104
3345
  # @return [Boolean]
3105
3346
  #
3347
+ # @!attribute [rw] key_id
3348
+ # Identifies the specified symmetric encryption KMS key.
3349
+ # @return [String]
3350
+ #
3351
+ # @!attribute [rw] rotation_period_in_days
3352
+ # The number of days between each automatic rotation. The default
3353
+ # value is 365 days.
3354
+ # @return [Integer]
3355
+ #
3356
+ # @!attribute [rw] next_rotation_date
3357
+ # The next date that KMS will automatically rotate the key material.
3358
+ # @return [Time]
3359
+ #
3360
+ # @!attribute [rw] on_demand_rotation_start_date
3361
+ # Identifies the date and time that an in progress on-demand rotation
3362
+ # was initiated.
3363
+ #
3364
+ # The KMS API follows an [eventual consistency][1] model due to the
3365
+ # distributed nature of the system. As a result, there might be a
3366
+ # slight delay between initiating on-demand key rotation and the
3367
+ # rotation's completion. Once the on-demand rotation is complete, use
3368
+ # ListKeyRotations to view the details of the on-demand rotation.
3369
+ #
3370
+ #
3371
+ #
3372
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html
3373
+ # @return [Time]
3374
+ #
3106
3375
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyRotationStatusResponse AWS API Documentation
3107
3376
  #
3108
3377
  class GetKeyRotationStatusResponse < Struct.new(
3109
- :key_rotation_enabled)
3378
+ :key_rotation_enabled,
3379
+ :key_id,
3380
+ :rotation_period_in_days,
3381
+ :next_rotation_date,
3382
+ :on_demand_rotation_start_date)
3110
3383
  SENSITIVE = []
3111
3384
  include Aws::Structure
3112
3385
  end
@@ -3314,12 +3587,12 @@ module Aws::KMS
3314
3587
  # @return [String]
3315
3588
  #
3316
3589
  # @!attribute [rw] key_usage
3317
- # The permitted use of the public key. Valid values are
3318
- # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
3590
+ # The permitted use of the public key. Valid values for asymmetric key
3591
+ # pairs are `ENCRYPT_DECRYPT`, `SIGN_VERIFY`, and `KEY_AGREEMENT`.
3319
3592
  #
3320
- # This information is critical. If a public key with `SIGN_VERIFY` key
3321
- # usage encrypts data outside of KMS, the ciphertext cannot be
3322
- # decrypted.
3593
+ # This information is critical. For example, if a public key with
3594
+ # `SIGN_VERIFY` key usage encrypts data outside of KMS, the ciphertext
3595
+ # cannot be decrypted.
3323
3596
  # @return [String]
3324
3597
  #
3325
3598
  # @!attribute [rw] encryption_algorithms
@@ -3340,6 +3613,12 @@ module Aws::KMS
3340
3613
  # public key is `SIGN_VERIFY`.
3341
3614
  # @return [Array<String>]
3342
3615
  #
3616
+ # @!attribute [rw] key_agreement_algorithms
3617
+ # The key agreement algorithm used to derive a shared secret. This
3618
+ # field is present only when the KMS key has a `KeyUsage` value of
3619
+ # `KEY_AGREEMENT`.
3620
+ # @return [Array<String>]
3621
+ #
3343
3622
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKeyResponse AWS API Documentation
3344
3623
  #
3345
3624
  class GetPublicKeyResponse < Struct.new(
@@ -3349,7 +3628,8 @@ module Aws::KMS
3349
3628
  :key_spec,
3350
3629
  :key_usage,
3351
3630
  :encryption_algorithms,
3352
- :signing_algorithms)
3631
+ :signing_algorithms,
3632
+ :key_agreement_algorithms)
3353
3633
  SENSITIVE = []
3354
3634
  include Aws::Structure
3355
3635
  end
@@ -3737,8 +4017,9 @@ module Aws::KMS
3737
4017
  # the `KeyUsage` must be `ENCRYPT_DECRYPT`. For signing and verifying
3738
4018
  # messages, the `KeyUsage` must be `SIGN_VERIFY`. For generating and
3739
4019
  # verifying message authentication codes (MACs), the `KeyUsage` must be
3740
- # `GENERATE_VERIFY_MAC`. To find the `KeyUsage` of a KMS key, use the
3741
- # DescribeKey operation.
4020
+ # `GENERATE_VERIFY_MAC`. For deriving key agreement secrets, the
4021
+ # `KeyUsage` must be `KEY_AGREEMENT`. To find the `KeyUsage` of a KMS
4022
+ # key, use the DescribeKey operation.
3742
4023
  #
3743
4024
  # To find the encryption or signing algorithms supported for a
3744
4025
  # particular KMS key, use the DescribeKey operation.
@@ -4017,6 +4298,10 @@ module Aws::KMS
4017
4298
  # `SIGN_VERIFY`.
4018
4299
  # @return [Array<String>]
4019
4300
  #
4301
+ # @!attribute [rw] key_agreement_algorithms
4302
+ # The key agreement algorithm used to derive a shared secret.
4303
+ # @return [Array<String>]
4304
+ #
4020
4305
  # @!attribute [rw] multi_region
4021
4306
  # Indicates whether the KMS key is a multi-Region (`True`) or regional
4022
4307
  # (`False`) key. This value is `True` for multi-Region primary and
@@ -4110,6 +4395,7 @@ module Aws::KMS
4110
4395
  :key_spec,
4111
4396
  :encryption_algorithms,
4112
4397
  :signing_algorithms,
4398
+ :key_agreement_algorithms,
4113
4399
  :multi_region,
4114
4400
  :multi_region_configuration,
4115
4401
  :pending_deletion_window_in_days,
@@ -4210,8 +4496,8 @@ module Aws::KMS
4210
4496
  # @!attribute [rw] truncated
4211
4497
  # A flag that indicates whether there are more items in the list. When
4212
4498
  # this value is true, the list in this response is truncated. To get
4213
- # more items, pass the value of the `NextMarker` element in
4214
- # thisresponse to the `Marker` parameter in a subsequent request.
4499
+ # more items, pass the value of the `NextMarker` element in this
4500
+ # response to the `Marker` parameter in a subsequent request.
4215
4501
  # @return [Boolean]
4216
4502
  #
4217
4503
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListAliasesResponse AWS API Documentation
@@ -4293,8 +4579,8 @@ module Aws::KMS
4293
4579
  # @!attribute [rw] truncated
4294
4580
  # A flag that indicates whether there are more items in the list. When
4295
4581
  # this value is true, the list in this response is truncated. To get
4296
- # more items, pass the value of the `NextMarker` element in
4297
- # thisresponse to the `Marker` parameter in a subsequent request.
4582
+ # more items, pass the value of the `NextMarker` element in this
4583
+ # response to the `Marker` parameter in a subsequent request.
4298
4584
  # @return [Boolean]
4299
4585
  #
4300
4586
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListGrantsResponse AWS API Documentation
@@ -4363,8 +4649,8 @@ module Aws::KMS
4363
4649
  # @!attribute [rw] truncated
4364
4650
  # A flag that indicates whether there are more items in the list. When
4365
4651
  # this value is true, the list in this response is truncated. To get
4366
- # more items, pass the value of the `NextMarker` element in
4367
- # thisresponse to the `Marker` parameter in a subsequent request.
4652
+ # more items, pass the value of the `NextMarker` element in this
4653
+ # response to the `Marker` parameter in a subsequent request.
4368
4654
  # @return [Boolean]
4369
4655
  #
4370
4656
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyPoliciesResponse AWS API Documentation
@@ -4377,6 +4663,74 @@ module Aws::KMS
4377
4663
  include Aws::Structure
4378
4664
  end
4379
4665
 
4666
+ # @!attribute [rw] key_id
4667
+ # Gets the key rotations for the specified KMS key.
4668
+ #
4669
+ # Specify the key ID or key ARN of the KMS key.
4670
+ #
4671
+ # For example:
4672
+ #
4673
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
4674
+ #
4675
+ # * Key ARN:
4676
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4677
+ #
4678
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4679
+ # DescribeKey.
4680
+ # @return [String]
4681
+ #
4682
+ # @!attribute [rw] limit
4683
+ # Use this parameter to specify the maximum number of items to return.
4684
+ # When this value is present, KMS does not return more than the
4685
+ # specified number of items, but it might return fewer.
4686
+ #
4687
+ # This value is optional. If you include a value, it must be between 1
4688
+ # and 1000, inclusive. If you do not include a value, it defaults to
4689
+ # 100.
4690
+ # @return [Integer]
4691
+ #
4692
+ # @!attribute [rw] marker
4693
+ # Use this parameter in a subsequent request after you receive a
4694
+ # response with truncated results. Set it to the value of `NextMarker`
4695
+ # from the truncated response you just received.
4696
+ # @return [String]
4697
+ #
4698
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyRotationsRequest AWS API Documentation
4699
+ #
4700
+ class ListKeyRotationsRequest < Struct.new(
4701
+ :key_id,
4702
+ :limit,
4703
+ :marker)
4704
+ SENSITIVE = []
4705
+ include Aws::Structure
4706
+ end
4707
+
4708
+ # @!attribute [rw] rotations
4709
+ # A list of completed key material rotations.
4710
+ # @return [Array<Types::RotationsListEntry>]
4711
+ #
4712
+ # @!attribute [rw] next_marker
4713
+ # When `Truncated` is true, this element is present and contains the
4714
+ # value to use for the `Marker` parameter in a subsequent request.
4715
+ # @return [String]
4716
+ #
4717
+ # @!attribute [rw] truncated
4718
+ # A flag that indicates whether there are more items in the list. When
4719
+ # this value is true, the list in this response is truncated. To get
4720
+ # more items, pass the value of the `NextMarker` element in this
4721
+ # response to the `Marker` parameter in a subsequent request.
4722
+ # @return [Boolean]
4723
+ #
4724
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyRotationsResponse AWS API Documentation
4725
+ #
4726
+ class ListKeyRotationsResponse < Struct.new(
4727
+ :rotations,
4728
+ :next_marker,
4729
+ :truncated)
4730
+ SENSITIVE = []
4731
+ include Aws::Structure
4732
+ end
4733
+
4380
4734
  # @!attribute [rw] limit
4381
4735
  # Use this parameter to specify the maximum number of items to return.
4382
4736
  # When this value is present, KMS does not return more than the
@@ -4414,8 +4768,8 @@ module Aws::KMS
4414
4768
  # @!attribute [rw] truncated
4415
4769
  # A flag that indicates whether there are more items in the list. When
4416
4770
  # this value is true, the list in this response is truncated. To get
4417
- # more items, pass the value of the `NextMarker` element in
4418
- # thisresponse to the `Marker` parameter in a subsequent request.
4771
+ # more items, pass the value of the `NextMarker` element in this
4772
+ # response to the `Marker` parameter in a subsequent request.
4419
4773
  # @return [Boolean]
4420
4774
  #
4421
4775
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeysResponse AWS API Documentation
@@ -4496,8 +4850,8 @@ module Aws::KMS
4496
4850
  # @!attribute [rw] truncated
4497
4851
  # A flag that indicates whether there are more items in the list. When
4498
4852
  # this value is true, the list in this response is truncated. To get
4499
- # more items, pass the value of the `NextMarker` element in
4500
- # thisresponse to the `Marker` parameter in a subsequent request.
4853
+ # more items, pass the value of the `NextMarker` element in this
4854
+ # response to the `Marker` parameter in a subsequent request.
4501
4855
  # @return [Boolean]
4502
4856
  #
4503
4857
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListResourceTagsResponse AWS API Documentation
@@ -4650,7 +5004,8 @@ module Aws::KMS
4650
5004
  # @return [String]
4651
5005
  #
4652
5006
  # @!attribute [rw] policy_name
4653
- # The name of the key policy. The only valid value is `default`.
5007
+ # The name of the key policy. If no policy name is specified, the
5008
+ # default value is `default`. The only valid value is `default`.
4654
5009
  # @return [String]
4655
5010
  #
4656
5011
  # @!attribute [rw] policy
@@ -5320,6 +5675,87 @@ module Aws::KMS
5320
5675
  include Aws::Structure
5321
5676
  end
5322
5677
 
5678
+ # @!attribute [rw] key_id
5679
+ # Identifies a symmetric encryption KMS key. You cannot perform
5680
+ # on-demand rotation of [asymmetric KMS keys][1], [HMAC KMS keys][2],
5681
+ # KMS keys with [imported key material][3], or KMS keys in a [custom
5682
+ # key store][4]. To perform on-demand rotation of a set of related
5683
+ # [multi-Region keys][5], invoke the on-demand rotation on the primary
5684
+ # key.
5685
+ #
5686
+ # Specify the key ID or key ARN of the KMS key.
5687
+ #
5688
+ # For example:
5689
+ #
5690
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
5691
+ #
5692
+ # * Key ARN:
5693
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
5694
+ #
5695
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
5696
+ # DescribeKey.
5697
+ #
5698
+ #
5699
+ #
5700
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
5701
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html
5702
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
5703
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
5704
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate
5705
+ # @return [String]
5706
+ #
5707
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotateKeyOnDemandRequest AWS API Documentation
5708
+ #
5709
+ class RotateKeyOnDemandRequest < Struct.new(
5710
+ :key_id)
5711
+ SENSITIVE = []
5712
+ include Aws::Structure
5713
+ end
5714
+
5715
+ # @!attribute [rw] key_id
5716
+ # Identifies the symmetric encryption KMS key that you initiated
5717
+ # on-demand rotation on.
5718
+ # @return [String]
5719
+ #
5720
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotateKeyOnDemandResponse AWS API Documentation
5721
+ #
5722
+ class RotateKeyOnDemandResponse < Struct.new(
5723
+ :key_id)
5724
+ SENSITIVE = []
5725
+ include Aws::Structure
5726
+ end
5727
+
5728
+ # Contains information about completed key material rotations.
5729
+ #
5730
+ # @!attribute [rw] key_id
5731
+ # Unique identifier of the key.
5732
+ # @return [String]
5733
+ #
5734
+ # @!attribute [rw] rotation_date
5735
+ # Date and time that the key material rotation completed. Formatted as
5736
+ # Unix time.
5737
+ # @return [Time]
5738
+ #
5739
+ # @!attribute [rw] rotation_type
5740
+ # Identifies whether the key material rotation was a scheduled
5741
+ # [automatic rotation][1] or an [on-demand rotation][2].
5742
+ #
5743
+ #
5744
+ #
5745
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-enable-disable
5746
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-on-demand
5747
+ # @return [String]
5748
+ #
5749
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotationsListEntry AWS API Documentation
5750
+ #
5751
+ class RotationsListEntry < Struct.new(
5752
+ :key_id,
5753
+ :rotation_date,
5754
+ :rotation_type)
5755
+ SENSITIVE = []
5756
+ include Aws::Structure
5757
+ end
5758
+
5323
5759
  # @!attribute [rw] key_id
5324
5760
  # The unique identifier of the KMS key to delete.
5325
5761
  #