aws-sdk-kms 1.63.0 → 1.65.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-kms/client.rb +581 -204
- data/lib/aws-sdk-kms/client_api.rb +15 -0
- data/lib/aws-sdk-kms/types.rb +341 -34
- data/lib/aws-sdk-kms.rb +1 -1
- metadata +4 -4
    
        data/lib/aws-sdk-kms/client.rb
    CHANGED
    
    | @@ -275,6 +275,11 @@ module Aws::KMS | |
| 275 275 | 
             
                #       in the future.
         | 
| 276 276 | 
             
                #
         | 
| 277 277 | 
             
                #
         | 
| 278 | 
            +
                #   @option options [String] :sdk_ua_app_id
         | 
| 279 | 
            +
                #     A unique and opaque application ID that is appended to the
         | 
| 280 | 
            +
                #     User-Agent header as app/<sdk_ua_app_id>. It should have a
         | 
| 281 | 
            +
                #     maximum length of 50.
         | 
| 282 | 
            +
                #
         | 
| 278 283 | 
             
                #   @option options [String] :secret_access_key
         | 
| 279 284 | 
             
                #
         | 
| 280 285 | 
             
                #   @option options [String] :session_token
         | 
| @@ -390,12 +395,12 @@ module Aws::KMS | |
| 390 395 | 
             
                # key state. For details, see [Key states of KMS keys][2] in the *Key
         | 
| 391 396 | 
             
                # Management Service Developer Guide*.
         | 
| 392 397 | 
             
                #
         | 
| 393 | 
            -
                # **Cross-account use | 
| 398 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 394 399 | 
             
                # key in a different Amazon Web Services account.
         | 
| 395 400 | 
             
                #
         | 
| 396 | 
            -
                # **Required permissions | 
| 401 | 
            +
                # **Required permissions**: [kms:CancelKeyDeletion][3] (key policy)
         | 
| 397 402 | 
             
                #
         | 
| 398 | 
            -
                # **Related operations | 
| 403 | 
            +
                # **Related operations**: ScheduleKeyDeletion
         | 
| 399 404 | 
             
                #
         | 
| 400 405 | 
             
                #
         | 
| 401 406 | 
             
                #
         | 
| @@ -527,10 +532,10 @@ module Aws::KMS | |
| 527 532 | 
             
                # store, see [Troubleshooting an external key store][6] in the *Key
         | 
| 528 533 | 
             
                # Management Service Developer Guide*.
         | 
| 529 534 | 
             
                #
         | 
| 530 | 
            -
                # **Cross-account use | 
| 535 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a
         | 
| 531 536 | 
             
                # custom key store in a different Amazon Web Services account.
         | 
| 532 537 | 
             
                #
         | 
| 533 | 
            -
                # **Required permissions | 
| 538 | 
            +
                # **Required permissions**: [kms:ConnectCustomKeyStore][7] (IAM policy)
         | 
| 534 539 | 
             
                #
         | 
| 535 540 | 
             
                # **Related operations**
         | 
| 536 541 | 
             
                #
         | 
| @@ -624,7 +629,7 @@ module Aws::KMS | |
| 624 629 | 
             
                # key state. For details, see [Key states of KMS keys][4] in the *Key
         | 
| 625 630 | 
             
                # Management Service Developer Guide*.
         | 
| 626 631 | 
             
                #
         | 
| 627 | 
            -
                # **Cross-account use | 
| 632 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on an
         | 
| 628 633 | 
             
                # alias in a different Amazon Web Services account.
         | 
| 629 634 | 
             
                #
         | 
| 630 635 | 
             
                # **Required permissions**
         | 
| @@ -657,6 +662,10 @@ module Aws::KMS | |
| 657 662 | 
             
                #   Specifies the alias name. This value must begin with `alias/` followed
         | 
| 658 663 | 
             
                #   by a name, such as `alias/ExampleAlias`.
         | 
| 659 664 | 
             
                #
         | 
| 665 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 666 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 667 | 
            +
                #   output.
         | 
| 668 | 
            +
                #
         | 
| 660 669 | 
             
                #   The `AliasName` value must be string of 1-256 characters. It can
         | 
| 661 670 | 
             
                #   contain only alphanumeric characters, forward slashes (/), underscores
         | 
| 662 671 | 
             
                #   (\_), and dashes (-). The alias name cannot begin with `alias/aws/`.
         | 
| @@ -788,10 +797,10 @@ module Aws::KMS | |
| 788 797 | 
             
                # For help with failures, see [Troubleshooting a custom key store][7] in
         | 
| 789 798 | 
             
                # the *Key Management Service Developer Guide*.
         | 
| 790 799 | 
             
                #
         | 
| 791 | 
            -
                # **Cross-account use | 
| 800 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a
         | 
| 792 801 | 
             
                # custom key store in a different Amazon Web Services account.
         | 
| 793 802 | 
             
                #
         | 
| 794 | 
            -
                # **Required permissions | 
| 803 | 
            +
                # **Required permissions**: [kms:CreateCustomKeyStore][9] (IAM policy).
         | 
| 795 804 | 
             
                #
         | 
| 796 805 | 
             
                # **Related operations:**
         | 
| 797 806 | 
             
                #
         | 
| @@ -822,6 +831,10 @@ module Aws::KMS | |
| 822 831 | 
             
                #   unique in your Amazon Web Services account and Region. This parameter
         | 
| 823 832 | 
             
                #   is required for all custom key stores.
         | 
| 824 833 | 
             
                #
         | 
| 834 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 835 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 836 | 
            +
                #   output.
         | 
| 837 | 
            +
                #
         | 
| 825 838 | 
             
                # @option params [String] :cloud_hsm_cluster_id
         | 
| 826 839 | 
             
                #   Identifies the CloudHSM cluster for an CloudHSM key store. This
         | 
| 827 840 | 
             
                #   parameter is required for custom key stores with `CustomKeyStoreType`
         | 
| @@ -1018,7 +1031,7 @@ module Aws::KMS | |
| 1018 1031 | 
             
                #   # This example creates a custom key store that is associated with an AWS CloudHSM cluster.
         | 
| 1019 1032 | 
             
                #
         | 
| 1020 1033 | 
             
                #   resp = client.create_custom_key_store({
         | 
| 1021 | 
            -
                #     cloud_hsm_cluster_id: "cluster- | 
| 1034 | 
            +
                #     cloud_hsm_cluster_id: "cluster-234abcdefABC", # The ID of the CloudHSM cluster.
         | 
| 1022 1035 | 
             
                #     custom_key_store_name: "ExampleKeyStore", # A friendly name for the custom key store.
         | 
| 1023 1036 | 
             
                #     key_store_password: "kmsPswd", # The password for the kmsuser CU account in the specified cluster.
         | 
| 1024 1037 | 
             
                #     trust_anchor_certificate: "<certificate-goes-here>", # The content of the customerCA.crt file that you created when you initialized the cluster.
         | 
| @@ -1140,11 +1153,11 @@ module Aws::KMS | |
| 1140 1153 | 
             
                # key state. For details, see [Key states of KMS keys][4] in the *Key
         | 
| 1141 1154 | 
             
                # Management Service Developer Guide*.
         | 
| 1142 1155 | 
             
                #
         | 
| 1143 | 
            -
                # **Cross-account use | 
| 1156 | 
            +
                # **Cross-account use**: Yes. To perform this operation on a KMS key in
         | 
| 1144 1157 | 
             
                # a different Amazon Web Services account, specify the key ARN in the
         | 
| 1145 1158 | 
             
                # value of the `KeyId` parameter.
         | 
| 1146 1159 | 
             
                #
         | 
| 1147 | 
            -
                # **Required permissions | 
| 1160 | 
            +
                # **Required permissions**: [kms:CreateGrant][5] (key policy)
         | 
| 1148 1161 | 
             
                #
         | 
| 1149 1162 | 
             
                # **Related operations:**
         | 
| 1150 1163 | 
             
                #
         | 
| @@ -1235,22 +1248,19 @@ module Aws::KMS | |
| 1235 1248 | 
             
                # @option params [Types::GrantConstraints] :constraints
         | 
| 1236 1249 | 
             
                #   Specifies a grant constraint.
         | 
| 1237 1250 | 
             
                #
         | 
| 1251 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 1252 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 1253 | 
            +
                #   output.
         | 
| 1254 | 
            +
                #
         | 
| 1238 1255 | 
             
                #   KMS supports the `EncryptionContextEquals` and
         | 
| 1239 | 
            -
                #   `EncryptionContextSubset` grant constraints | 
| 1240 | 
            -
                #    | 
| 1241 | 
            -
                #    | 
| 1242 | 
            -
                #    | 
| 1243 | 
            -
                #    | 
| 1244 | 
            -
                #   encryption context, see [Encryption context][2] in the <i> <i>Key
         | 
| 1245 | 
            -
                #   Management Service Developer Guide</i> </i>.
         | 
| 1246 | 
            -
                #
         | 
| 1247 | 
            -
                #   The encryption context grant constraints allow the permissions in the
         | 
| 1248 | 
            -
                #   grant only when the encryption context in the request matches
         | 
| 1249 | 
            -
                #   (`EncryptionContextEquals`) or includes (`EncryptionContextSubset`)
         | 
| 1250 | 
            -
                #   the encryption context specified in this structure.
         | 
| 1256 | 
            +
                #   `EncryptionContextSubset` grant constraints, which allow the
         | 
| 1257 | 
            +
                #   permissions in the grant only when the encryption context in the
         | 
| 1258 | 
            +
                #   request matches (`EncryptionContextEquals`) or includes
         | 
| 1259 | 
            +
                #   (`EncryptionContextSubset`) the encryption context specified in the
         | 
| 1260 | 
            +
                #   constraint.
         | 
| 1251 1261 | 
             
                #
         | 
| 1252 1262 | 
             
                #   The encryption context grant constraints are supported only on [grant
         | 
| 1253 | 
            -
                #   operations][ | 
| 1263 | 
            +
                #   operations][1] that include an `EncryptionContext` parameter, such as
         | 
| 1254 1264 | 
             
                #   cryptographic operations on symmetric encryption KMS keys. Grants with
         | 
| 1255 1265 | 
             
                #   grant constraints can include the DescribeKey and RetireGrant
         | 
| 1256 1266 | 
             
                #   operations, but the constraint doesn't apply to these operations. If
         | 
| @@ -1261,15 +1271,20 @@ module Aws::KMS | |
| 1261 1271 | 
             
                #
         | 
| 1262 1272 | 
             
                #   You cannot use an encryption context grant constraint for
         | 
| 1263 1273 | 
             
                #   cryptographic operations with asymmetric KMS keys or HMAC KMS keys.
         | 
| 1264 | 
            -
                #    | 
| 1265 | 
            -
                #
         | 
| 1274 | 
            +
                #   Operations with these keys don't support an encryption context.
         | 
| 1266 1275 | 
             
                #
         | 
| 1276 | 
            +
                #   Each constraint value can include up to 8 encryption context pairs.
         | 
| 1277 | 
            +
                #   The encryption context value in each constraint cannot exceed 384
         | 
| 1278 | 
            +
                #   characters. For information about grant constraints, see [Using grant
         | 
| 1279 | 
            +
                #   constraints][2] in the *Key Management Service Developer Guide*. For
         | 
| 1280 | 
            +
                #   more information about encryption context, see [Encryption context][3]
         | 
| 1281 | 
            +
                #   in the <i> <i>Key Management Service Developer Guide</i> </i>.
         | 
| 1267 1282 | 
             
                #
         | 
| 1268 1283 | 
             
                #
         | 
| 1269 1284 | 
             
                #
         | 
| 1270 | 
            -
                #   [1]: https://docs.aws.amazon.com/kms/latest/developerguide/ | 
| 1271 | 
            -
                #   [2]: https://docs.aws.amazon.com/kms/latest/developerguide/ | 
| 1272 | 
            -
                #   [3]: https://docs.aws.amazon.com/kms/latest/developerguide/ | 
| 1285 | 
            +
                #   [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations
         | 
| 1286 | 
            +
                #   [2]: https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints
         | 
| 1287 | 
            +
                #   [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
         | 
| 1273 1288 | 
             
                #
         | 
| 1274 1289 | 
             
                # @option params [Array<String>] :grant_tokens
         | 
| 1275 1290 | 
             
                #   A list of grant tokens.
         | 
| @@ -1288,6 +1303,10 @@ module Aws::KMS | |
| 1288 1303 | 
             
                #   A friendly name for the grant. Use this value to prevent the
         | 
| 1289 1304 | 
             
                #   unintended creation of duplicate grants when retrying this request.
         | 
| 1290 1305 | 
             
                #
         | 
| 1306 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 1307 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 1308 | 
            +
                #   output.
         | 
| 1309 | 
            +
                #
         | 
| 1291 1310 | 
             
                #   When this value is absent, all `CreateGrant` requests result in a new
         | 
| 1292 1311 | 
             
                #   grant with a unique `GrantId` even if all the supplied parameters are
         | 
| 1293 1312 | 
             
                #   identical. This can result in unintended duplicates when you retry the
         | 
| @@ -1552,13 +1571,13 @@ module Aws::KMS | |
| 1552 1571 | 
             
                #
         | 
| 1553 1572 | 
             
                #    </note>
         | 
| 1554 1573 | 
             
                #
         | 
| 1555 | 
            -
                # **Cross-account use | 
| 1574 | 
            +
                # **Cross-account use**: No. You cannot use this operation to create a
         | 
| 1556 1575 | 
             
                # KMS key in a different Amazon Web Services account.
         | 
| 1557 1576 | 
             
                #
         | 
| 1558 | 
            -
                # **Required permissions | 
| 1559 | 
            -
                #  | 
| 1560 | 
            -
                #  | 
| 1561 | 
            -
                #  | 
| 1577 | 
            +
                # **Required permissions**: [kms:CreateKey][11] (IAM policy). To use the
         | 
| 1578 | 
            +
                # `Tags` parameter, [kms:TagResource][11] (IAM policy). For examples and
         | 
| 1579 | 
            +
                # information about related permissions, see [Allow a user to create KMS
         | 
| 1580 | 
            +
                # keys][12] in the *Key Management Service Developer Guide*.
         | 
| 1562 1581 | 
             
                #
         | 
| 1563 1582 | 
             
                # **Related operations:**
         | 
| 1564 1583 | 
             
                #
         | 
| @@ -1621,11 +1640,13 @@ module Aws::KMS | |
| 1621 1640 | 
             
                #   [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
         | 
| 1622 1641 | 
             
                #
         | 
| 1623 1642 | 
             
                # @option params [String] :description
         | 
| 1624 | 
            -
                #   A description of the KMS key.
         | 
| 1643 | 
            +
                #   A description of the KMS key. Use a description that helps you decide
         | 
| 1644 | 
            +
                #   whether the KMS key is appropriate for a task. The default value is an
         | 
| 1645 | 
            +
                #   empty string (no description).
         | 
| 1625 1646 | 
             
                #
         | 
| 1626 | 
            -
                #    | 
| 1627 | 
            -
                #    | 
| 1628 | 
            -
                #    | 
| 1647 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 1648 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 1649 | 
            +
                #   output.
         | 
| 1629 1650 | 
             
                #
         | 
| 1630 1651 | 
             
                #   To set or change the description after the key is created, use
         | 
| 1631 1652 | 
             
                #   UpdateKeyDescription.
         | 
| @@ -1813,6 +1834,10 @@ module Aws::KMS | |
| 1813 1834 | 
             
                #   KMS key when it is created. To tag an existing KMS key, use the
         | 
| 1814 1835 | 
             
                #   TagResource operation.
         | 
| 1815 1836 | 
             
                #
         | 
| 1837 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 1838 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 1839 | 
            +
                #   output.
         | 
| 1840 | 
            +
                #
         | 
| 1816 1841 | 
             
                #   <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the KMS
         | 
| 1817 1842 | 
             
                #   key. For details, see [ABAC for KMS][1] in the *Key Management Service
         | 
| 1818 1843 | 
             
                #   Developer Guide*.
         | 
| @@ -2125,7 +2150,7 @@ module Aws::KMS | |
| 2125 2150 | 
             
                #     key_metadata: {
         | 
| 2126 2151 | 
             
                #       aws_account_id: "111122223333", 
         | 
| 2127 2152 | 
             
                #       arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", 
         | 
| 2128 | 
            -
                #       cloud_hsm_cluster_id: "cluster- | 
| 2153 | 
            +
                #       cloud_hsm_cluster_id: "cluster-234abcdefABC", 
         | 
| 2129 2154 | 
             
                #       creation_date: Time.parse("2019-12-02T07:48:55-07:00"), 
         | 
| 2130 2155 | 
             
                #       custom_key_store_id: "cks-1234567890abcdef0", 
         | 
| 2131 2156 | 
             
                #       customer_master_key_spec: "SYMMETRIC_DEFAULT", 
         | 
| @@ -2297,21 +2322,27 @@ module Aws::KMS | |
| 2297 2322 | 
             
                # details, see [Best practices for IAM policies][4] in the *Key
         | 
| 2298 2323 | 
             
                # Management Service Developer Guide*.
         | 
| 2299 2324 | 
             
                #
         | 
| 2300 | 
            -
                #  | 
| 2301 | 
            -
                #  | 
| 2302 | 
            -
                #  | 
| 2303 | 
            -
                # Amazon Web Services  | 
| 2304 | 
            -
                #  | 
| 2325 | 
            +
                # `Decrypt` also supports [Amazon Web Services Nitro Enclaves][5], which
         | 
| 2326 | 
            +
                # provide an isolated compute environment in Amazon EC2. To call
         | 
| 2327 | 
            +
                # `Decrypt` for a Nitro enclave, use the [Amazon Web Services Nitro
         | 
| 2328 | 
            +
                # Enclaves SDK][6] or any Amazon Web Services SDK. Use the `Recipient`
         | 
| 2329 | 
            +
                # parameter to provide the attestation document for the enclave. Instead
         | 
| 2330 | 
            +
                # of the plaintext data, the response includes the plaintext data
         | 
| 2331 | 
            +
                # encrypted with the public key from the attestation document
         | 
| 2332 | 
            +
                # (`CiphertextForRecipient`).For information about the interaction
         | 
| 2333 | 
            +
                # between KMS and Amazon Web Services Nitro Enclaves, see [How Amazon
         | 
| 2334 | 
            +
                # Web Services Nitro Enclaves uses KMS][7] in the *Key Management
         | 
| 2335 | 
            +
                # Service Developer Guide*..
         | 
| 2305 2336 | 
             
                #
         | 
| 2306 2337 | 
             
                # The KMS key that you use for this operation must be in a compatible
         | 
| 2307 | 
            -
                # key state. For details, see [Key states of KMS keys][ | 
| 2338 | 
            +
                # key state. For details, see [Key states of KMS keys][8] in the *Key
         | 
| 2308 2339 | 
             
                # Management Service Developer Guide*.
         | 
| 2309 2340 | 
             
                #
         | 
| 2310 | 
            -
                # **Cross-account use | 
| 2341 | 
            +
                # **Cross-account use**: Yes. If you use the `KeyId` parameter to
         | 
| 2311 2342 | 
             
                # identify a KMS key in a different Amazon Web Services account, specify
         | 
| 2312 2343 | 
             
                # the key ARN or the alias ARN of the KMS key.
         | 
| 2313 2344 | 
             
                #
         | 
| 2314 | 
            -
                # **Required permissions | 
| 2345 | 
            +
                # **Required permissions**: [kms:Decrypt][9] (key policy)
         | 
| 2315 2346 | 
             
                #
         | 
| 2316 2347 | 
             
                # **Related operations:**
         | 
| 2317 2348 | 
             
                #
         | 
| @@ -2329,10 +2360,11 @@ module Aws::KMS | |
| 2329 2360 | 
             
                # [2]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
         | 
| 2330 2361 | 
             
                # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
         | 
| 2331 2362 | 
             
                # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policies-best-practices
         | 
| 2332 | 
            -
                # [5]: https:// | 
| 2333 | 
            -
                # [6]: https://docs.aws.amazon.com/ | 
| 2334 | 
            -
                # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/ | 
| 2335 | 
            -
                # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/ | 
| 2363 | 
            +
                # [5]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
         | 
| 2364 | 
            +
                # [6]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
         | 
| 2365 | 
            +
                # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
         | 
| 2366 | 
            +
                # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
         | 
| 2367 | 
            +
                # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
         | 
| 2336 2368 | 
             
                #
         | 
| 2337 2369 | 
             
                # @option params [required, String, StringIO, File] :ciphertext_blob
         | 
| 2338 2370 | 
             
                #   Ciphertext to be decrypted. The blob includes metadata.
         | 
| @@ -2417,16 +2449,44 @@ module Aws::KMS | |
| 2417 2449 | 
             
                #   represents the only supported algorithm that is valid for symmetric
         | 
| 2418 2450 | 
             
                #   encryption KMS keys.
         | 
| 2419 2451 | 
             
                #
         | 
| 2452 | 
            +
                # @option params [Types::RecipientInfo] :recipient
         | 
| 2453 | 
            +
                #   A signed [attestation document][1] from an Amazon Web Services Nitro
         | 
| 2454 | 
            +
                #   enclave and the encryption algorithm to use with the enclave's public
         | 
| 2455 | 
            +
                #   key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
         | 
| 2456 | 
            +
                #
         | 
| 2457 | 
            +
                #   This parameter only supports attestation documents for Amazon Web
         | 
| 2458 | 
            +
                #   Services Nitro Enclaves. To include this parameter, use the [Amazon
         | 
| 2459 | 
            +
                #   Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
         | 
| 2460 | 
            +
                #
         | 
| 2461 | 
            +
                #   When you use this parameter, instead of returning the plaintext data,
         | 
| 2462 | 
            +
                #   KMS encrypts the plaintext data with the public key in the attestation
         | 
| 2463 | 
            +
                #   document, and returns the resulting ciphertext in the
         | 
| 2464 | 
            +
                #   `CiphertextForRecipient` field in the response. This ciphertext can be
         | 
| 2465 | 
            +
                #   decrypted only with the private key in the enclave. The `Plaintext`
         | 
| 2466 | 
            +
                #   field in the response is null or empty.
         | 
| 2467 | 
            +
                #
         | 
| 2468 | 
            +
                #   For information about the interaction between KMS and Amazon Web
         | 
| 2469 | 
            +
                #   Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
         | 
| 2470 | 
            +
                #   uses KMS][3] in the *Key Management Service Developer Guide*.
         | 
| 2471 | 
            +
                #
         | 
| 2472 | 
            +
                #
         | 
| 2473 | 
            +
                #
         | 
| 2474 | 
            +
                #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
         | 
| 2475 | 
            +
                #   [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
         | 
| 2476 | 
            +
                #   [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
         | 
| 2477 | 
            +
                #
         | 
| 2420 2478 | 
             
                # @return [Types::DecryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
         | 
| 2421 2479 | 
             
                #
         | 
| 2422 2480 | 
             
                #   * {Types::DecryptResponse#key_id #key_id} => String
         | 
| 2423 2481 | 
             
                #   * {Types::DecryptResponse#plaintext #plaintext} => String
         | 
| 2424 2482 | 
             
                #   * {Types::DecryptResponse#encryption_algorithm #encryption_algorithm} => String
         | 
| 2483 | 
            +
                #   * {Types::DecryptResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String
         | 
| 2425 2484 | 
             
                #
         | 
| 2426 2485 | 
             
                #
         | 
| 2427 | 
            -
                # @example Example: To decrypt data
         | 
| 2486 | 
            +
                # @example Example: To decrypt data with a symmetric encryption KMS key
         | 
| 2428 2487 | 
             
                #
         | 
| 2429 | 
            -
                #   # The following example decrypts data that was encrypted with a KMS key.
         | 
| 2488 | 
            +
                #   # The following example decrypts data that was encrypted with a symmetric encryption KMS key. The KeyId is not required
         | 
| 2489 | 
            +
                #   # when decrypting with a symmetric encryption key, but it is a best practice.
         | 
| 2430 2490 | 
             
                #
         | 
| 2431 2491 | 
             
                #   resp = client.decrypt({
         | 
| 2432 2492 | 
             
                #     ciphertext_blob: "<binary data>", # The encrypted data (ciphertext).
         | 
| @@ -2435,10 +2495,51 @@ module Aws::KMS | |
| 2435 2495 | 
             
                #
         | 
| 2436 2496 | 
             
                #   resp.to_h outputs the following:
         | 
| 2437 2497 | 
             
                #   {
         | 
| 2498 | 
            +
                #     encryption_algorithm: "SYMMETRIC_DEFAULT", # The encryption algorithm that was used to decrypt the ciphertext. SYMMETRIC_DEFAULT is the only valid value for symmetric encryption in AWS KMS.
         | 
| 2438 2499 | 
             
                #     key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The Amazon Resource Name (ARN) of the KMS key that was used to decrypt the data.
         | 
| 2439 2500 | 
             
                #     plaintext: "<binary data>", # The decrypted (plaintext) data.
         | 
| 2440 2501 | 
             
                #   }
         | 
| 2441 2502 | 
             
                #
         | 
| 2503 | 
            +
                # @example Example: To decrypt data with an asymmetric encryption KMS key
         | 
| 2504 | 
            +
                #
         | 
| 2505 | 
            +
                #   # The following example decrypts data that was encrypted with an asymmetric encryption KMS key. When the KMS encryption
         | 
| 2506 | 
            +
                #   # key is asymmetric, you must specify the KMS key ID and the encryption algorithm that was used to encrypt the data.
         | 
| 2507 | 
            +
                #
         | 
| 2508 | 
            +
                #   resp = client.decrypt({
         | 
| 2509 | 
            +
                #     ciphertext_blob: "<binary data>", # The encrypted data (ciphertext).
         | 
| 2510 | 
            +
                #     encryption_algorithm: "RSAES_OAEP_SHA_256", # The encryption algorithm that was used to encrypt the data. This parameter is required to decrypt with an asymmetric KMS key.
         | 
| 2511 | 
            +
                #     key_id: "0987dcba-09fe-87dc-65ba-ab0987654321", # A key identifier for the KMS key to use to decrypt the data. This parameter is required to decrypt with an asymmetric KMS key.
         | 
| 2512 | 
            +
                #   })
         | 
| 2513 | 
            +
                #
         | 
| 2514 | 
            +
                #   resp.to_h outputs the following:
         | 
| 2515 | 
            +
                #   {
         | 
| 2516 | 
            +
                #     encryption_algorithm: "RSAES_OAEP_SHA_256", # The encryption algorithm that was used to decrypt the ciphertext.
         | 
| 2517 | 
            +
                #     key_id: "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", # The Amazon Resource Name (ARN) of the KMS key that was used to decrypt the data.
         | 
| 2518 | 
            +
                #     plaintext: "<binary data>", # The decrypted (plaintext) data.
         | 
| 2519 | 
            +
                #   }
         | 
| 2520 | 
            +
                #
         | 
| 2521 | 
            +
                # @example Example: To decrypt data for a Nitro enclave
         | 
| 2522 | 
            +
                #
         | 
| 2523 | 
            +
                #   # The following Decrypt example includes the Recipient parameter with a signed attestation document from an AWS Nitro
         | 
| 2524 | 
            +
                #   # enclave. Instead of returning the decrypted data in plaintext (Plaintext), the operation returns the decrypted data
         | 
| 2525 | 
            +
                #   # encrypted by the public key from the attestation document (CiphertextForRecipient).
         | 
| 2526 | 
            +
                #
         | 
| 2527 | 
            +
                #   resp = client.decrypt({
         | 
| 2528 | 
            +
                #     ciphertext_blob: "<binary data>", # The encrypted data. This ciphertext was encrypted with the KMS key
         | 
| 2529 | 
            +
                #     key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The KMS key to use to decrypt the ciphertext
         | 
| 2530 | 
            +
                #     recipient: {
         | 
| 2531 | 
            +
                #       attestation_document: "<attestation document>", 
         | 
| 2532 | 
            +
                #       key_encryption_algorithm: "RSAES_OAEP_SHA_256", 
         | 
| 2533 | 
            +
                #     }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document
         | 
| 2534 | 
            +
                #   })
         | 
| 2535 | 
            +
                #
         | 
| 2536 | 
            +
                #   resp.to_h outputs the following:
         | 
| 2537 | 
            +
                #   {
         | 
| 2538 | 
            +
                #     ciphertext_for_recipient: "<binary data>", # The decrypted CiphertextBlob encrypted with the public key from the attestation document
         | 
| 2539 | 
            +
                #     key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The KMS key that was used to decrypt the encrypted data (CiphertextBlob)
         | 
| 2540 | 
            +
                #     plaintext: "", # This field is null or empty
         | 
| 2541 | 
            +
                #   }
         | 
| 2542 | 
            +
                #
         | 
| 2442 2543 | 
             
                # @example Request syntax with placeholder values
         | 
| 2443 2544 | 
             
                #
         | 
| 2444 2545 | 
             
                #   resp = client.decrypt({
         | 
| @@ -2449,6 +2550,10 @@ module Aws::KMS | |
| 2449 2550 | 
             
                #     grant_tokens: ["GrantTokenType"],
         | 
| 2450 2551 | 
             
                #     key_id: "KeyIdType",
         | 
| 2451 2552 | 
             
                #     encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256, SM2PKE
         | 
| 2553 | 
            +
                #     recipient: {
         | 
| 2554 | 
            +
                #       key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256
         | 
| 2555 | 
            +
                #       attestation_document: "data",
         | 
| 2556 | 
            +
                #     },
         | 
| 2452 2557 | 
             
                #   })
         | 
| 2453 2558 | 
             
                #
         | 
| 2454 2559 | 
             
                # @example Response structure
         | 
| @@ -2456,6 +2561,7 @@ module Aws::KMS | |
| 2456 2561 | 
             
                #   resp.key_id #=> String
         | 
| 2457 2562 | 
             
                #   resp.plaintext #=> String
         | 
| 2458 2563 | 
             
                #   resp.encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
         | 
| 2564 | 
            +
                #   resp.ciphertext_for_recipient #=> String
         | 
| 2459 2565 | 
             
                #
         | 
| 2460 2566 | 
             
                # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Decrypt AWS API Documentation
         | 
| 2461 2567 | 
             
                #
         | 
| @@ -2484,7 +2590,7 @@ module Aws::KMS | |
| 2484 2590 | 
             
                # create a new alias. To associate an existing alias with a different
         | 
| 2485 2591 | 
             
                # KMS key, call UpdateAlias.
         | 
| 2486 2592 | 
             
                #
         | 
| 2487 | 
            -
                # **Cross-account use | 
| 2593 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on an
         | 
| 2488 2594 | 
             
                # alias in a different Amazon Web Services account.
         | 
| 2489 2595 | 
             
                #
         | 
| 2490 2596 | 
             
                # **Required permissions**
         | 
| @@ -2578,10 +2684,10 @@ module Aws::KMS | |
| 2578 2684 | 
             
                # If the operation succeeds, it returns a JSON object with no
         | 
| 2579 2685 | 
             
                # properties.
         | 
| 2580 2686 | 
             
                #
         | 
| 2581 | 
            -
                # **Cross-account use | 
| 2687 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a
         | 
| 2582 2688 | 
             
                # custom key store in a different Amazon Web Services account.
         | 
| 2583 2689 | 
             
                #
         | 
| 2584 | 
            -
                # **Required permissions | 
| 2690 | 
            +
                # **Required permissions**: [kms:DeleteCustomKeyStore][5] (IAM policy)
         | 
| 2585 2691 | 
             
                #
         | 
| 2586 2692 | 
             
                # **Related operations:**
         | 
| 2587 2693 | 
             
                #
         | 
| @@ -2655,10 +2761,10 @@ module Aws::KMS | |
| 2655 2761 | 
             
                # key state. For details, see [Key states of KMS keys][2] in the *Key
         | 
| 2656 2762 | 
             
                # Management Service Developer Guide*.
         | 
| 2657 2763 | 
             
                #
         | 
| 2658 | 
            -
                # **Cross-account use | 
| 2764 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 2659 2765 | 
             
                # key in a different Amazon Web Services account.
         | 
| 2660 2766 | 
             
                #
         | 
| 2661 | 
            -
                # **Required permissions | 
| 2767 | 
            +
                # **Required permissions**: [kms:DeleteImportedKeyMaterial][3] (key
         | 
| 2662 2768 | 
             
                # policy)
         | 
| 2663 2769 | 
             
                #
         | 
| 2664 2770 | 
             
                # **Related operations:**
         | 
| @@ -2750,10 +2856,10 @@ module Aws::KMS | |
| 2750 2856 | 
             
                # see the [Troubleshooting external key stores][3]. Both topics are in
         | 
| 2751 2857 | 
             
                # the *Key Management Service Developer Guide*.
         | 
| 2752 2858 | 
             
                #
         | 
| 2753 | 
            -
                # **Cross-account use | 
| 2859 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a
         | 
| 2754 2860 | 
             
                # custom key store in a different Amazon Web Services account.
         | 
| 2755 2861 | 
             
                #
         | 
| 2756 | 
            -
                # **Required permissions | 
| 2862 | 
            +
                # **Required permissions**: [kms:DescribeCustomKeyStores][4] (IAM
         | 
| 2757 2863 | 
             
                # policy)
         | 
| 2758 2864 | 
             
                #
         | 
| 2759 2865 | 
             
                # **Related operations:**
         | 
| @@ -2839,7 +2945,7 @@ module Aws::KMS | |
| 2839 2945 | 
             
                #   {
         | 
| 2840 2946 | 
             
                #     custom_key_stores: [
         | 
| 2841 2947 | 
             
                #       {
         | 
| 2842 | 
            -
                #         cloud_hsm_cluster_id: "cluster- | 
| 2948 | 
            +
                #         cloud_hsm_cluster_id: "cluster-234abcdefABC", 
         | 
| 2843 2949 | 
             
                #         connection_state: "CONNECTED", 
         | 
| 2844 2950 | 
             
                #         creation_date: Time.parse("1.499288695918E9"), 
         | 
| 2845 2951 | 
             
                #         custom_key_store_id: "cks-1234567890abcdef0", 
         | 
| @@ -2988,11 +3094,11 @@ module Aws::KMS | |
| 2988 3094 | 
             
                # services use `DescribeKey` to create [Amazon Web Services managed
         | 
| 2989 3095 | 
             
                # keys][2] from a *predefined Amazon Web Services alias* with no key ID.
         | 
| 2990 3096 | 
             
                #
         | 
| 2991 | 
            -
                # **Cross-account use | 
| 3097 | 
            +
                # **Cross-account use**: Yes. To perform this operation with a KMS key
         | 
| 2992 3098 | 
             
                # in a different Amazon Web Services account, specify the key ARN or
         | 
| 2993 3099 | 
             
                # alias ARN in the value of the `KeyId` parameter.
         | 
| 2994 3100 | 
             
                #
         | 
| 2995 | 
            -
                # **Required permissions | 
| 3101 | 
            +
                # **Required permissions**: [kms:DescribeKey][4] (key policy)
         | 
| 2996 3102 | 
             
                #
         | 
| 2997 3103 | 
             
                # **Related operations:**
         | 
| 2998 3104 | 
             
                #
         | 
| @@ -3224,7 +3330,7 @@ module Aws::KMS | |
| 3224 3330 | 
             
                #     key_metadata: {
         | 
| 3225 3331 | 
             
                #       aws_account_id: "123456789012", 
         | 
| 3226 3332 | 
             
                #       arn: "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", 
         | 
| 3227 | 
            -
                #       cloud_hsm_cluster_id: "cluster- | 
| 3333 | 
            +
                #       cloud_hsm_cluster_id: "cluster-234abcdefABC", 
         | 
| 3228 3334 | 
             
                #       creation_date: Time.parse(1646160362.664), 
         | 
| 3229 3335 | 
             
                #       custom_key_store_id: "cks-1234567890abcdef0", 
         | 
| 3230 3336 | 
             
                #       customer_master_key_spec: "SYMMETRIC_DEFAULT", 
         | 
| @@ -3339,12 +3445,12 @@ module Aws::KMS | |
| 3339 3445 | 
             
                # key state. For details, see [Key states of KMS keys][2] in the *Key
         | 
| 3340 3446 | 
             
                # Management Service Developer Guide*.
         | 
| 3341 3447 | 
             
                #
         | 
| 3342 | 
            -
                # **Cross-account use | 
| 3448 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 3343 3449 | 
             
                # key in a different Amazon Web Services account.
         | 
| 3344 3450 | 
             
                #
         | 
| 3345 | 
            -
                # **Required permissions | 
| 3451 | 
            +
                # **Required permissions**: [kms:DisableKey][3] (key policy)
         | 
| 3346 3452 | 
             
                #
         | 
| 3347 | 
            -
                # **Related operations | 
| 3453 | 
            +
                # **Related operations**: EnableKey
         | 
| 3348 3454 | 
             
                #
         | 
| 3349 3455 | 
             
                #
         | 
| 3350 3456 | 
             
                #
         | 
| @@ -3419,10 +3525,10 @@ module Aws::KMS | |
| 3419 3525 | 
             
                # key state. For details, see [Key states of KMS keys][10] in the *Key
         | 
| 3420 3526 | 
             
                # Management Service Developer Guide*.
         | 
| 3421 3527 | 
             
                #
         | 
| 3422 | 
            -
                # **Cross-account use | 
| 3528 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 3423 3529 | 
             
                # key in a different Amazon Web Services account.
         | 
| 3424 3530 | 
             
                #
         | 
| 3425 | 
            -
                # **Required permissions | 
| 3531 | 
            +
                # **Required permissions**: [kms:DisableKeyRotation][11] (key policy)
         | 
| 3426 3532 | 
             
                #
         | 
| 3427 3533 | 
             
                # **Related operations:**
         | 
| 3428 3534 | 
             
                #
         | 
| @@ -3524,10 +3630,10 @@ module Aws::KMS | |
| 3524 3630 | 
             
                # If the operation succeeds, it returns a JSON object with no
         | 
| 3525 3631 | 
             
                # properties.
         | 
| 3526 3632 | 
             
                #
         | 
| 3527 | 
            -
                # **Cross-account use | 
| 3633 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a
         | 
| 3528 3634 | 
             
                # custom key store in a different Amazon Web Services account.
         | 
| 3529 3635 | 
             
                #
         | 
| 3530 | 
            -
                # **Required permissions | 
| 3636 | 
            +
                # **Required permissions**: [kms:DisconnectCustomKeyStore][3] (IAM
         | 
| 3531 3637 | 
             
                # policy)
         | 
| 3532 3638 | 
             
                #
         | 
| 3533 3639 | 
             
                # **Related operations:**
         | 
| @@ -3593,12 +3699,12 @@ module Aws::KMS | |
| 3593 3699 | 
             
                # key state. For details, see [Key states of KMS keys][2] in the *Key
         | 
| 3594 3700 | 
             
                # Management Service Developer Guide*.
         | 
| 3595 3701 | 
             
                #
         | 
| 3596 | 
            -
                # **Cross-account use | 
| 3702 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 3597 3703 | 
             
                # key in a different Amazon Web Services account.
         | 
| 3598 3704 | 
             
                #
         | 
| 3599 | 
            -
                # **Required permissions | 
| 3705 | 
            +
                # **Required permissions**: [kms:EnableKey][3] (key policy)
         | 
| 3600 3706 | 
             
                #
         | 
| 3601 | 
            -
                # **Related operations | 
| 3707 | 
            +
                # **Related operations**: DisableKey
         | 
| 3602 3708 | 
             
                #
         | 
| 3603 3709 | 
             
                #
         | 
| 3604 3710 | 
             
                #
         | 
| @@ -3685,10 +3791,10 @@ module Aws::KMS | |
| 3685 3791 | 
             
                # key state. For details, see [Key states of KMS keys][11] in the *Key
         | 
| 3686 3792 | 
             
                # Management Service Developer Guide*.
         | 
| 3687 3793 | 
             
                #
         | 
| 3688 | 
            -
                # **Cross-account use | 
| 3794 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 3689 3795 | 
             
                # key in a different Amazon Web Services account.
         | 
| 3690 3796 | 
             
                #
         | 
| 3691 | 
            -
                # **Required permissions | 
| 3797 | 
            +
                # **Required permissions**: [kms:EnableKeyRotation][12] (key policy)
         | 
| 3692 3798 | 
             
                #
         | 
| 3693 3799 | 
             
                # **Related operations:**
         | 
| 3694 3800 | 
             
                #
         | 
| @@ -3804,39 +3910,39 @@ module Aws::KMS | |
| 3804 3910 | 
             
                #
         | 
| 3805 3911 | 
             
                # * Symmetric encryption KMS keys
         | 
| 3806 3912 | 
             
                #
         | 
| 3807 | 
            -
                #   * `SYMMETRIC_DEFAULT | 
| 3913 | 
            +
                #   * `SYMMETRIC_DEFAULT`: 4096 bytes
         | 
| 3808 3914 | 
             
                #
         | 
| 3809 3915 | 
             
                #   ^
         | 
| 3810 3916 | 
             
                #
         | 
| 3811 3917 | 
             
                # * `RSA_2048`
         | 
| 3812 3918 | 
             
                #
         | 
| 3813 | 
            -
                #   * `RSAES_OAEP_SHA_1 | 
| 3919 | 
            +
                #   * `RSAES_OAEP_SHA_1`: 214 bytes
         | 
| 3814 3920 | 
             
                #
         | 
| 3815 | 
            -
                #   * `RSAES_OAEP_SHA_256 | 
| 3921 | 
            +
                #   * `RSAES_OAEP_SHA_256`: 190 bytes
         | 
| 3816 3922 | 
             
                #
         | 
| 3817 3923 | 
             
                # * `RSA_3072`
         | 
| 3818 3924 | 
             
                #
         | 
| 3819 | 
            -
                #   * `RSAES_OAEP_SHA_1 | 
| 3925 | 
            +
                #   * `RSAES_OAEP_SHA_1`: 342 bytes
         | 
| 3820 3926 | 
             
                #
         | 
| 3821 | 
            -
                #   * `RSAES_OAEP_SHA_256 | 
| 3927 | 
            +
                #   * `RSAES_OAEP_SHA_256`: 318 bytes
         | 
| 3822 3928 | 
             
                #
         | 
| 3823 3929 | 
             
                # * `RSA_4096`
         | 
| 3824 3930 | 
             
                #
         | 
| 3825 | 
            -
                #   * `RSAES_OAEP_SHA_1 | 
| 3931 | 
            +
                #   * `RSAES_OAEP_SHA_1`: 470 bytes
         | 
| 3826 3932 | 
             
                #
         | 
| 3827 | 
            -
                #   * `RSAES_OAEP_SHA_256 | 
| 3933 | 
            +
                #   * `RSAES_OAEP_SHA_256`: 446 bytes
         | 
| 3828 3934 | 
             
                #
         | 
| 3829 | 
            -
                # * `SM2PKE | 
| 3935 | 
            +
                # * `SM2PKE`: 1024 bytes (China Regions only)
         | 
| 3830 3936 | 
             
                #
         | 
| 3831 3937 | 
             
                # The KMS key that you use for this operation must be in a compatible
         | 
| 3832 3938 | 
             
                # key state. For details, see [Key states of KMS keys][2] in the *Key
         | 
| 3833 3939 | 
             
                # Management Service Developer Guide*.
         | 
| 3834 3940 | 
             
                #
         | 
| 3835 | 
            -
                # **Cross-account use | 
| 3941 | 
            +
                # **Cross-account use**: Yes. To perform this operation with a KMS key
         | 
| 3836 3942 | 
             
                # in a different Amazon Web Services account, specify the key ARN or
         | 
| 3837 3943 | 
             
                # alias ARN in the value of the `KeyId` parameter.
         | 
| 3838 3944 | 
             
                #
         | 
| 3839 | 
            -
                # **Required permissions | 
| 3945 | 
            +
                # **Required permissions**: [kms:Encrypt][3] (key policy)
         | 
| 3840 3946 | 
             
                #
         | 
| 3841 3947 | 
             
                # **Related operations:**
         | 
| 3842 3948 | 
             
                #
         | 
| @@ -3886,6 +3992,10 @@ module Aws::KMS | |
| 3886 3992 | 
             
                #   asymmetric encryption algorithms and HMAC algorithms that KMS uses do
         | 
| 3887 3993 | 
             
                #   not support an encryption context.
         | 
| 3888 3994 | 
             
                #
         | 
| 3995 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 3996 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 3997 | 
            +
                #   output.
         | 
| 3998 | 
            +
                #
         | 
| 3889 3999 | 
             
                #   An *encryption context* is a collection of non-secret key-value pairs
         | 
| 3890 4000 | 
             
                #   that represent additional authenticated data. When you use an
         | 
| 3891 4001 | 
             
                #   encryption context to encrypt data, you must specify the same (an
         | 
| @@ -3934,9 +4044,9 @@ module Aws::KMS | |
| 3934 4044 | 
             
                #   * {Types::EncryptResponse#encryption_algorithm #encryption_algorithm} => String
         | 
| 3935 4045 | 
             
                #
         | 
| 3936 4046 | 
             
                #
         | 
| 3937 | 
            -
                # @example Example: To encrypt data
         | 
| 4047 | 
            +
                # @example Example: To encrypt data with a symmetric encryption KMS key
         | 
| 3938 4048 | 
             
                #
         | 
| 3939 | 
            -
                #   # The following example encrypts data with the specified KMS key.
         | 
| 4049 | 
            +
                #   # The following example encrypts data with the specified symmetric encryption KMS key.
         | 
| 3940 4050 | 
             
                #
         | 
| 3941 4051 | 
             
                #   resp = client.encrypt({
         | 
| 3942 4052 | 
             
                #     key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key to use for encryption. You can use the key ID or Amazon Resource Name (ARN) of the KMS key, or the name or ARN of an alias that refers to the KMS key.
         | 
| @@ -3946,9 +4056,28 @@ module Aws::KMS | |
| 3946 4056 | 
             
                #   resp.to_h outputs the following:
         | 
| 3947 4057 | 
             
                #   {
         | 
| 3948 4058 | 
             
                #     ciphertext_blob: "<binary data>", # The encrypted data (ciphertext).
         | 
| 4059 | 
            +
                #     encryption_algorithm: "SYMMETRIC_DEFAULT", # The encryption algorithm that was used in the operation. For symmetric encryption keys, the encryption algorithm is always SYMMETRIC_DEFAULT.
         | 
| 3949 4060 | 
             
                #     key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that was used to encrypt the data.
         | 
| 3950 4061 | 
             
                #   }
         | 
| 3951 4062 | 
             
                #
         | 
| 4063 | 
            +
                # @example Example: To encrypt data with an asymmetric encryption KMS key
         | 
| 4064 | 
            +
                #
         | 
| 4065 | 
            +
                #   # The following example encrypts data with the specified RSA asymmetric KMS key. When you encrypt with an asymmetric key,
         | 
| 4066 | 
            +
                #   # you must specify the encryption algorithm.
         | 
| 4067 | 
            +
                #
         | 
| 4068 | 
            +
                #   resp = client.encrypt({
         | 
| 4069 | 
            +
                #     encryption_algorithm: "RSAES_OAEP_SHA_256", # The encryption algorithm to use in the operation.
         | 
| 4070 | 
            +
                #     key_id: "0987dcba-09fe-87dc-65ba-ab0987654321", # The identifier of the KMS key to use for encryption. You can use the key ID or Amazon Resource Name (ARN) of the KMS key, or the name or ARN of an alias that refers to the KMS key.
         | 
| 4071 | 
            +
                #     plaintext: "<binary data>", # The data to encrypt.
         | 
| 4072 | 
            +
                #   })
         | 
| 4073 | 
            +
                #
         | 
| 4074 | 
            +
                #   resp.to_h outputs the following:
         | 
| 4075 | 
            +
                #   {
         | 
| 4076 | 
            +
                #     ciphertext_blob: "<binary data>", # The encrypted data (ciphertext).
         | 
| 4077 | 
            +
                #     encryption_algorithm: "RSAES_OAEP_SHA_256", # The encryption algorithm that was used in the operation.
         | 
| 4078 | 
            +
                #     key_id: "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", # The ARN of the KMS key that was used to encrypt the data.
         | 
| 4079 | 
            +
                #   }
         | 
| 4080 | 
            +
                #
         | 
| 3952 4081 | 
             
                # @example Request syntax with placeholder values
         | 
| 3953 4082 | 
             
                #
         | 
| 3954 4083 | 
             
                #   resp = client.encrypt({
         | 
| @@ -4012,14 +4141,22 @@ module Aws::KMS | |
| 4012 4141 | 
             
                # information, see [Encryption Context][1] in the *Key Management
         | 
| 4013 4142 | 
             
                # Service Developer Guide*.
         | 
| 4014 4143 | 
             
                #
         | 
| 4015 | 
            -
                #  | 
| 4016 | 
            -
                #  | 
| 4017 | 
            -
                #  | 
| 4018 | 
            -
                # Amazon Web Services Nitro Enclaves  | 
| 4019 | 
            -
                #  | 
| 4144 | 
            +
                # `GenerateDataKey` also supports [Amazon Web Services Nitro
         | 
| 4145 | 
            +
                # Enclaves][2], which provide an isolated compute environment in Amazon
         | 
| 4146 | 
            +
                # EC2. To call `GenerateDataKey` for an Amazon Web Services Nitro
         | 
| 4147 | 
            +
                # enclave, use the [Amazon Web Services Nitro Enclaves SDK][3] or any
         | 
| 4148 | 
            +
                # Amazon Web Services SDK. Use the `Recipient` parameter to provide the
         | 
| 4149 | 
            +
                # attestation document for the enclave. `GenerateDataKey` returns a copy
         | 
| 4150 | 
            +
                # of the data key encrypted under the specified KMS key, as usual. But
         | 
| 4151 | 
            +
                # instead of a plaintext copy of the data key, the response includes a
         | 
| 4152 | 
            +
                # copy of the data key encrypted under the public key from the
         | 
| 4153 | 
            +
                # attestation document (`CiphertextForRecipient`). For information about
         | 
| 4154 | 
            +
                # the interaction between KMS and Amazon Web Services Nitro Enclaves,
         | 
| 4155 | 
            +
                # see [How Amazon Web Services Nitro Enclaves uses KMS][4] in the *Key
         | 
| 4156 | 
            +
                # Management Service Developer Guide*..
         | 
| 4020 4157 | 
             
                #
         | 
| 4021 4158 | 
             
                # The KMS key that you use for this operation must be in a compatible
         | 
| 4022 | 
            -
                # key state. For details, see [Key states of KMS keys][ | 
| 4159 | 
            +
                # key state. For details, see [Key states of KMS keys][5] in the *Key
         | 
| 4023 4160 | 
             
                # Management Service Developer Guide*.
         | 
| 4024 4161 | 
             
                #
         | 
| 4025 4162 | 
             
                # **How to use your data key**
         | 
| @@ -4027,8 +4164,8 @@ module Aws::KMS | |
| 4027 4164 | 
             
                # We recommend that you use the following pattern to encrypt data
         | 
| 4028 4165 | 
             
                # locally in your application. You can write your own code or use a
         | 
| 4029 4166 | 
             
                # client-side encryption library, such as the [Amazon Web Services
         | 
| 4030 | 
            -
                # Encryption SDK][ | 
| 4031 | 
            -
                # [Amazon S3 client-side encryption][ | 
| 4167 | 
            +
                # Encryption SDK][6], the [Amazon DynamoDB Encryption Client][7], or
         | 
| 4168 | 
            +
                # [Amazon S3 client-side encryption][8] to do these tasks for you.
         | 
| 4032 4169 | 
             
                #
         | 
| 4033 4170 | 
             
                # To encrypt data outside of KMS:
         | 
| 4034 4171 | 
             
                #
         | 
| @@ -4049,11 +4186,11 @@ module Aws::KMS | |
| 4049 4186 | 
             
                # 2.  Use the plaintext data key to decrypt data outside of KMS, then
         | 
| 4050 4187 | 
             
                #     erase the plaintext data key from memory.
         | 
| 4051 4188 | 
             
                #
         | 
| 4052 | 
            -
                # **Cross-account use | 
| 4189 | 
            +
                # **Cross-account use**: Yes. To perform this operation with a KMS key
         | 
| 4053 4190 | 
             
                # in a different Amazon Web Services account, specify the key ARN or
         | 
| 4054 4191 | 
             
                # alias ARN in the value of the `KeyId` parameter.
         | 
| 4055 4192 | 
             
                #
         | 
| 4056 | 
            -
                # **Required permissions | 
| 4193 | 
            +
                # **Required permissions**: [kms:GenerateDataKey][9] (key policy)
         | 
| 4057 4194 | 
             
                #
         | 
| 4058 4195 | 
             
                # **Related operations:**
         | 
| 4059 4196 | 
             
                #
         | 
| @@ -4070,13 +4207,14 @@ module Aws::KMS | |
| 4070 4207 | 
             
                #
         | 
| 4071 4208 | 
             
                #
         | 
| 4072 4209 | 
             
                # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
         | 
| 4073 | 
            -
                # [2]: https:// | 
| 4074 | 
            -
                # [3]: https://docs.aws.amazon.com/ | 
| 4075 | 
            -
                # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/ | 
| 4076 | 
            -
                # [5]: https://docs.aws.amazon.com/ | 
| 4077 | 
            -
                # [6]: https://docs.aws.amazon.com/ | 
| 4078 | 
            -
                # [7]: https://docs.aws.amazon.com/ | 
| 4079 | 
            -
                # [8]: https://docs.aws.amazon.com/ | 
| 4210 | 
            +
                # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
         | 
| 4211 | 
            +
                # [3]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
         | 
| 4212 | 
            +
                # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
         | 
| 4213 | 
            +
                # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
         | 
| 4214 | 
            +
                # [6]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/
         | 
| 4215 | 
            +
                # [7]: https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/
         | 
| 4216 | 
            +
                # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
         | 
| 4217 | 
            +
                # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
         | 
| 4080 4218 | 
             
                #
         | 
| 4081 4219 | 
             
                # @option params [required, String] :key_id
         | 
| 4082 4220 | 
             
                #   Specifies the symmetric encryption KMS key that encrypts the data key.
         | 
| @@ -4107,6 +4245,10 @@ module Aws::KMS | |
| 4107 4245 | 
             
                #   Specifies the encryption context that will be used when encrypting the
         | 
| 4108 4246 | 
             
                #   data key.
         | 
| 4109 4247 | 
             
                #
         | 
| 4248 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 4249 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 4250 | 
            +
                #   output.
         | 
| 4251 | 
            +
                #
         | 
| 4110 4252 | 
             
                #   An *encryption context* is a collection of non-secret key-value pairs
         | 
| 4111 4253 | 
             
                #   that represent additional authenticated data. When you use an
         | 
| 4112 4254 | 
             
                #   encryption context to encrypt data, you must specify the same (an
         | 
| @@ -4152,11 +4294,40 @@ module Aws::KMS | |
| 4152 4294 | 
             
                #   [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
         | 
| 4153 4295 | 
             
                #   [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
         | 
| 4154 4296 | 
             
                #
         | 
| 4297 | 
            +
                # @option params [Types::RecipientInfo] :recipient
         | 
| 4298 | 
            +
                #   A signed [attestation document][1] from an Amazon Web Services Nitro
         | 
| 4299 | 
            +
                #   enclave and the encryption algorithm to use with the enclave's public
         | 
| 4300 | 
            +
                #   key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
         | 
| 4301 | 
            +
                #
         | 
| 4302 | 
            +
                #   This parameter only supports attestation documents for Amazon Web
         | 
| 4303 | 
            +
                #   Services Nitro Enclaves. To include this parameter, use the [Amazon
         | 
| 4304 | 
            +
                #   Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
         | 
| 4305 | 
            +
                #
         | 
| 4306 | 
            +
                #   When you use this parameter, instead of returning the plaintext data
         | 
| 4307 | 
            +
                #   key, KMS encrypts the plaintext data key under the public key in the
         | 
| 4308 | 
            +
                #   attestation document, and returns the resulting ciphertext in the
         | 
| 4309 | 
            +
                #   `CiphertextForRecipient` field in the response. This ciphertext can be
         | 
| 4310 | 
            +
                #   decrypted only with the private key in the enclave. The
         | 
| 4311 | 
            +
                #   `CiphertextBlob` field in the response contains a copy of the data key
         | 
| 4312 | 
            +
                #   encrypted under the KMS key specified by the `KeyId` parameter. The
         | 
| 4313 | 
            +
                #   `Plaintext` field in the response is null or empty.
         | 
| 4314 | 
            +
                #
         | 
| 4315 | 
            +
                #   For information about the interaction between KMS and Amazon Web
         | 
| 4316 | 
            +
                #   Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
         | 
| 4317 | 
            +
                #   uses KMS][3] in the *Key Management Service Developer Guide*.
         | 
| 4318 | 
            +
                #
         | 
| 4319 | 
            +
                #
         | 
| 4320 | 
            +
                #
         | 
| 4321 | 
            +
                #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
         | 
| 4322 | 
            +
                #   [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
         | 
| 4323 | 
            +
                #   [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
         | 
| 4324 | 
            +
                #
         | 
| 4155 4325 | 
             
                # @return [Types::GenerateDataKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
         | 
| 4156 4326 | 
             
                #
         | 
| 4157 4327 | 
             
                #   * {Types::GenerateDataKeyResponse#ciphertext_blob #ciphertext_blob} => String
         | 
| 4158 4328 | 
             
                #   * {Types::GenerateDataKeyResponse#plaintext #plaintext} => String
         | 
| 4159 4329 | 
             
                #   * {Types::GenerateDataKeyResponse#key_id #key_id} => String
         | 
| 4330 | 
            +
                #   * {Types::GenerateDataKeyResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String
         | 
| 4160 4331 | 
             
                #
         | 
| 4161 4332 | 
             
                #
         | 
| 4162 4333 | 
             
                # @example Example: To generate a data key
         | 
| @@ -4176,6 +4347,31 @@ module Aws::KMS | |
| 4176 4347 | 
             
                #     plaintext: "<binary data>", # The unencrypted (plaintext) data key.
         | 
| 4177 4348 | 
             
                #   }
         | 
| 4178 4349 | 
             
                #
         | 
| 4350 | 
            +
                # @example Example: To generate a data key pair for a Nitro enclave
         | 
| 4351 | 
            +
                #
         | 
| 4352 | 
            +
                #   # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave.
         | 
| 4353 | 
            +
                #   # Instead of returning a copy of the data key encrypted by the KMS key and a plaintext copy of the data key,
         | 
| 4354 | 
            +
                #   # GenerateDataKey returns one copy of the data key encrypted by the KMS key (CiphertextBlob) and one copy of the data key
         | 
| 4355 | 
            +
                #   # encrypted by the public key from the attestation document (CiphertextForRecipient). The operation doesn't return a
         | 
| 4356 | 
            +
                #   # plaintext data key. 
         | 
| 4357 | 
            +
                #
         | 
| 4358 | 
            +
                #   resp = client.generate_data_key({
         | 
| 4359 | 
            +
                #     key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # Identifies the KMS key used to encrypt the encrypted data key (CiphertextBlob)
         | 
| 4360 | 
            +
                #     key_spec: "AES_256", # Specifies the type of data key to return
         | 
| 4361 | 
            +
                #     recipient: {
         | 
| 4362 | 
            +
                #       attestation_document: "<attestation document>", 
         | 
| 4363 | 
            +
                #       key_encryption_algorithm: "RSAES_OAEP_SHA_256", 
         | 
| 4364 | 
            +
                #     }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document
         | 
| 4365 | 
            +
                #   })
         | 
| 4366 | 
            +
                #
         | 
| 4367 | 
            +
                #   resp.to_h outputs the following:
         | 
| 4368 | 
            +
                #   {
         | 
| 4369 | 
            +
                #     ciphertext_blob: "<binary data>", # The data key encrypted by the specified KMS key
         | 
| 4370 | 
            +
                #     ciphertext_for_recipient: "<binary data>", # The plaintext data key encrypted by the public key from the attestation document
         | 
| 4371 | 
            +
                #     key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The KMS key used to encrypt the CiphertextBlob (encrypted data key)
         | 
| 4372 | 
            +
                #     plaintext: "", # This field is null or empty
         | 
| 4373 | 
            +
                #   }
         | 
| 4374 | 
            +
                #
         | 
| 4179 4375 | 
             
                # @example Request syntax with placeholder values
         | 
| 4180 4376 | 
             
                #
         | 
| 4181 4377 | 
             
                #   resp = client.generate_data_key({
         | 
| @@ -4186,6 +4382,10 @@ module Aws::KMS | |
| 4186 4382 | 
             
                #     number_of_bytes: 1,
         | 
| 4187 4383 | 
             
                #     key_spec: "AES_256", # accepts AES_256, AES_128
         | 
| 4188 4384 | 
             
                #     grant_tokens: ["GrantTokenType"],
         | 
| 4385 | 
            +
                #     recipient: {
         | 
| 4386 | 
            +
                #       key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256
         | 
| 4387 | 
            +
                #       attestation_document: "data",
         | 
| 4388 | 
            +
                #     },
         | 
| 4189 4389 | 
             
                #   })
         | 
| 4190 4390 | 
             
                #
         | 
| 4191 4391 | 
             
                # @example Response structure
         | 
| @@ -4193,6 +4393,7 @@ module Aws::KMS | |
| 4193 4393 | 
             
                #   resp.ciphertext_blob #=> String
         | 
| 4194 4394 | 
             
                #   resp.plaintext #=> String
         | 
| 4195 4395 | 
             
                #   resp.key_id #=> String
         | 
| 4396 | 
            +
                #   resp.ciphertext_for_recipient #=> String
         | 
| 4196 4397 | 
             
                #
         | 
| 4197 4398 | 
             
                # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKey AWS API Documentation
         | 
| 4198 4399 | 
             
                #
         | 
| @@ -4245,23 +4446,38 @@ module Aws::KMS | |
| 4245 4446 | 
             
                # 5280][1]. The private key is a DER-encoded PKCS8 PrivateKeyInfo, as
         | 
| 4246 4447 | 
             
                # specified in [RFC 5958][2].
         | 
| 4247 4448 | 
             
                #
         | 
| 4449 | 
            +
                # `GenerateDataKeyPair` also supports [Amazon Web Services Nitro
         | 
| 4450 | 
            +
                # Enclaves][3], which provide an isolated compute environment in Amazon
         | 
| 4451 | 
            +
                # EC2. To call `GenerateDataKeyPair` for an Amazon Web Services Nitro
         | 
| 4452 | 
            +
                # enclave, use the [Amazon Web Services Nitro Enclaves SDK][4] or any
         | 
| 4453 | 
            +
                # Amazon Web Services SDK. Use the `Recipient` parameter to provide the
         | 
| 4454 | 
            +
                # attestation document for the enclave. `GenerateDataKeyPair` returns
         | 
| 4455 | 
            +
                # the public data key and a copy of the private data key encrypted under
         | 
| 4456 | 
            +
                # the specified KMS key, as usual. But instead of a plaintext copy of
         | 
| 4457 | 
            +
                # the private data key (`PrivateKeyPlaintext`), the response includes a
         | 
| 4458 | 
            +
                # copy of the private data key encrypted under the public key from the
         | 
| 4459 | 
            +
                # attestation document (`CiphertextForRecipient`). For information about
         | 
| 4460 | 
            +
                # the interaction between KMS and Amazon Web Services Nitro Enclaves,
         | 
| 4461 | 
            +
                # see [How Amazon Web Services Nitro Enclaves uses KMS][5] in the *Key
         | 
| 4462 | 
            +
                # Management Service Developer Guide*..
         | 
| 4463 | 
            +
                #
         | 
| 4248 4464 | 
             
                # You can use an optional encryption context to add additional security
         | 
| 4249 4465 | 
             
                # to the encryption operation. If you specify an `EncryptionContext`,
         | 
| 4250 4466 | 
             
                # you must specify the same encryption context (a case-sensitive exact
         | 
| 4251 4467 | 
             
                # match) when decrypting the encrypted data key. Otherwise, the request
         | 
| 4252 4468 | 
             
                # to decrypt fails with an `InvalidCiphertextException`. For more
         | 
| 4253 | 
            -
                # information, see [Encryption Context][ | 
| 4469 | 
            +
                # information, see [Encryption Context][6] in the *Key Management
         | 
| 4254 4470 | 
             
                # Service Developer Guide*.
         | 
| 4255 4471 | 
             
                #
         | 
| 4256 4472 | 
             
                # The KMS key that you use for this operation must be in a compatible
         | 
| 4257 | 
            -
                # key state. For details, see [Key states of KMS keys][ | 
| 4473 | 
            +
                # key state. For details, see [Key states of KMS keys][7] in the *Key
         | 
| 4258 4474 | 
             
                # Management Service Developer Guide*.
         | 
| 4259 4475 | 
             
                #
         | 
| 4260 | 
            -
                # **Cross-account use | 
| 4476 | 
            +
                # **Cross-account use**: Yes. To perform this operation with a KMS key
         | 
| 4261 4477 | 
             
                # in a different Amazon Web Services account, specify the key ARN or
         | 
| 4262 4478 | 
             
                # alias ARN in the value of the `KeyId` parameter.
         | 
| 4263 4479 | 
             
                #
         | 
| 4264 | 
            -
                # **Required permissions | 
| 4480 | 
            +
                # **Required permissions**: [kms:GenerateDataKeyPair][8] (key policy)
         | 
| 4265 4481 | 
             
                #
         | 
| 4266 4482 | 
             
                # **Related operations:**
         | 
| 4267 4483 | 
             
                #
         | 
| @@ -4279,14 +4495,21 @@ module Aws::KMS | |
| 4279 4495 | 
             
                #
         | 
| 4280 4496 | 
             
                # [1]: https://tools.ietf.org/html/rfc5280
         | 
| 4281 4497 | 
             
                # [2]: https://tools.ietf.org/html/rfc5958
         | 
| 4282 | 
            -
                # [3]: https://docs.aws.amazon.com/ | 
| 4283 | 
            -
                # [4]: https://docs.aws.amazon.com/ | 
| 4284 | 
            -
                # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/ | 
| 4498 | 
            +
                # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
         | 
| 4499 | 
            +
                # [4]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
         | 
| 4500 | 
            +
                # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
         | 
| 4501 | 
            +
                # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
         | 
| 4502 | 
            +
                # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
         | 
| 4503 | 
            +
                # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
         | 
| 4285 4504 | 
             
                #
         | 
| 4286 4505 | 
             
                # @option params [Hash<String,String>] :encryption_context
         | 
| 4287 4506 | 
             
                #   Specifies the encryption context that will be used when encrypting the
         | 
| 4288 4507 | 
             
                #   private key in the data key pair.
         | 
| 4289 4508 | 
             
                #
         | 
| 4509 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 4510 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 4511 | 
            +
                #   output.
         | 
| 4512 | 
            +
                #
         | 
| 4290 4513 | 
             
                #   An *encryption context* is a collection of non-secret key-value pairs
         | 
| 4291 4514 | 
             
                #   that represent additional authenticated data. When you use an
         | 
| 4292 4515 | 
             
                #   encryption context to encrypt data, you must specify the same (an
         | 
| @@ -4349,6 +4572,35 @@ module Aws::KMS | |
| 4349 4572 | 
             
                #   [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
         | 
| 4350 4573 | 
             
                #   [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
         | 
| 4351 4574 | 
             
                #
         | 
| 4575 | 
            +
                # @option params [Types::RecipientInfo] :recipient
         | 
| 4576 | 
            +
                #   A signed [attestation document][1] from an Amazon Web Services Nitro
         | 
| 4577 | 
            +
                #   enclave and the encryption algorithm to use with the enclave's public
         | 
| 4578 | 
            +
                #   key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
         | 
| 4579 | 
            +
                #
         | 
| 4580 | 
            +
                #   This parameter only supports attestation documents for Amazon Web
         | 
| 4581 | 
            +
                #   Services Nitro Enclaves. To include this parameter, use the [Amazon
         | 
| 4582 | 
            +
                #   Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
         | 
| 4583 | 
            +
                #
         | 
| 4584 | 
            +
                #   When you use this parameter, instead of returning a plaintext copy of
         | 
| 4585 | 
            +
                #   the private data key, KMS encrypts the plaintext private data key
         | 
| 4586 | 
            +
                #   under the public key in the attestation document, and returns the
         | 
| 4587 | 
            +
                #   resulting ciphertext in the `CiphertextForRecipient` field in the
         | 
| 4588 | 
            +
                #   response. This ciphertext can be decrypted only with the private key
         | 
| 4589 | 
            +
                #   in the enclave. The `CiphertextBlob` field in the response contains a
         | 
| 4590 | 
            +
                #   copy of the private data key encrypted under the KMS key specified by
         | 
| 4591 | 
            +
                #   the `KeyId` parameter. The `PrivateKeyPlaintext` field in the response
         | 
| 4592 | 
            +
                #   is null or empty.
         | 
| 4593 | 
            +
                #
         | 
| 4594 | 
            +
                #   For information about the interaction between KMS and Amazon Web
         | 
| 4595 | 
            +
                #   Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
         | 
| 4596 | 
            +
                #   uses KMS][3] in the *Key Management Service Developer Guide*.
         | 
| 4597 | 
            +
                #
         | 
| 4598 | 
            +
                #
         | 
| 4599 | 
            +
                #
         | 
| 4600 | 
            +
                #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
         | 
| 4601 | 
            +
                #   [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
         | 
| 4602 | 
            +
                #   [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
         | 
| 4603 | 
            +
                #
         | 
| 4352 4604 | 
             
                # @return [Types::GenerateDataKeyPairResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
         | 
| 4353 4605 | 
             
                #
         | 
| 4354 4606 | 
             
                #   * {Types::GenerateDataKeyPairResponse#private_key_ciphertext_blob #private_key_ciphertext_blob} => String
         | 
| @@ -4356,6 +4608,7 @@ module Aws::KMS | |
| 4356 4608 | 
             
                #   * {Types::GenerateDataKeyPairResponse#public_key #public_key} => String
         | 
| 4357 4609 | 
             
                #   * {Types::GenerateDataKeyPairResponse#key_id #key_id} => String
         | 
| 4358 4610 | 
             
                #   * {Types::GenerateDataKeyPairResponse#key_pair_spec #key_pair_spec} => String
         | 
| 4611 | 
            +
                #   * {Types::GenerateDataKeyPairResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String
         | 
| 4359 4612 | 
             
                #
         | 
| 4360 4613 | 
             
                #
         | 
| 4361 4614 | 
             
                # @example Example: To generate an RSA key pair for encryption and decryption
         | 
| @@ -4377,6 +4630,33 @@ module Aws::KMS | |
| 4377 4630 | 
             
                #     public_key: "<binary data>", # The public key (plaintext) of the RSA data key pair.
         | 
| 4378 4631 | 
             
                #   }
         | 
| 4379 4632 | 
             
                #
         | 
| 4633 | 
            +
                # @example Example: To generate a data key pair for a Nitro enclave
         | 
| 4634 | 
            +
                #
         | 
| 4635 | 
            +
                #   # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave.
         | 
| 4636 | 
            +
                #   # Instead of returning a plaintext copy of the private data key, GenerateDataKeyPair returns a copy of the private data
         | 
| 4637 | 
            +
                #   # key encrypted by the public key from the attestation document (CiphertextForRecipient). It returns the public data key
         | 
| 4638 | 
            +
                #   # (PublicKey) and a copy of private data key encrypted under the specified KMS key (PrivateKeyCiphertextBlob), as usual,
         | 
| 4639 | 
            +
                #   # but plaintext private data key field (PrivateKeyPlaintext) is null or empty. 
         | 
| 4640 | 
            +
                #
         | 
| 4641 | 
            +
                #   resp = client.generate_data_key_pair({
         | 
| 4642 | 
            +
                #     key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ID of the symmetric encryption KMS key that encrypts the private RSA key in the data key pair.
         | 
| 4643 | 
            +
                #     key_pair_spec: "RSA_3072", # The requested key spec of the RSA data key pair.
         | 
| 4644 | 
            +
                #     recipient: {
         | 
| 4645 | 
            +
                #       attestation_document: "<attestation document>", 
         | 
| 4646 | 
            +
                #       key_encryption_algorithm: "RSAES_OAEP_SHA_256", 
         | 
| 4647 | 
            +
                #     }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document.
         | 
| 4648 | 
            +
                #   })
         | 
| 4649 | 
            +
                #
         | 
| 4650 | 
            +
                #   resp.to_h outputs the following:
         | 
| 4651 | 
            +
                #   {
         | 
| 4652 | 
            +
                #     ciphertext_for_recipient: "<binary data>", # The private key of the RSA data key pair encrypted by the public key from the attestation document
         | 
| 4653 | 
            +
                #     key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the symmetric encryption KMS key that was used to encrypt the PrivateKeyCiphertextBlob.
         | 
| 4654 | 
            +
                #     key_pair_spec: "RSA_3072", # The actual key spec of the RSA data key pair.
         | 
| 4655 | 
            +
                #     private_key_ciphertext_blob: "<binary data>", # The private key of the RSA data key pair encrypted by the KMS key.
         | 
| 4656 | 
            +
                #     private_key_plaintext: "", # This field is null or empty
         | 
| 4657 | 
            +
                #     public_key: "<binary data>", # The public key (plaintext) of the RSA data key pair.
         | 
| 4658 | 
            +
                #   }
         | 
| 4659 | 
            +
                #
         | 
| 4380 4660 | 
             
                # @example Request syntax with placeholder values
         | 
| 4381 4661 | 
             
                #
         | 
| 4382 4662 | 
             
                #   resp = client.generate_data_key_pair({
         | 
| @@ -4386,6 +4666,10 @@ module Aws::KMS | |
| 4386 4666 | 
             
                #     key_id: "KeyIdType", # required
         | 
| 4387 4667 | 
             
                #     key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2
         | 
| 4388 4668 | 
             
                #     grant_tokens: ["GrantTokenType"],
         | 
| 4669 | 
            +
                #     recipient: {
         | 
| 4670 | 
            +
                #       key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256
         | 
| 4671 | 
            +
                #       attestation_document: "data",
         | 
| 4672 | 
            +
                #     },
         | 
| 4389 4673 | 
             
                #   })
         | 
| 4390 4674 | 
             
                #
         | 
| 4391 4675 | 
             
                # @example Response structure
         | 
| @@ -4395,6 +4679,7 @@ module Aws::KMS | |
| 4395 4679 | 
             
                #   resp.public_key #=> String
         | 
| 4396 4680 | 
             
                #   resp.key_id #=> String
         | 
| 4397 4681 | 
             
                #   resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2"
         | 
| 4682 | 
            +
                #   resp.ciphertext_for_recipient #=> String
         | 
| 4398 4683 | 
             
                #
         | 
| 4399 4684 | 
             
                # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPair AWS API Documentation
         | 
| 4400 4685 | 
             
                #
         | 
| @@ -4448,12 +4733,12 @@ module Aws::KMS | |
| 4448 4733 | 
             
                # key state. For details, see [Key states of KMS keys][3] in the *Key
         | 
| 4449 4734 | 
             
                # Management Service Developer Guide*.
         | 
| 4450 4735 | 
             
                #
         | 
| 4451 | 
            -
                # **Cross-account use | 
| 4736 | 
            +
                # **Cross-account use**: Yes. To perform this operation with a KMS key
         | 
| 4452 4737 | 
             
                # in a different Amazon Web Services account, specify the key ARN or
         | 
| 4453 4738 | 
             
                # alias ARN in the value of the `KeyId` parameter.
         | 
| 4454 4739 | 
             
                #
         | 
| 4455 | 
            -
                # **Required permissions | 
| 4456 | 
            -
                #  | 
| 4740 | 
            +
                # **Required permissions**: [kms:GenerateDataKeyPairWithoutPlaintext][4]
         | 
| 4741 | 
            +
                # (key policy)
         | 
| 4457 4742 | 
             
                #
         | 
| 4458 4743 | 
             
                # **Related operations:**
         | 
| 4459 4744 | 
             
                #
         | 
| @@ -4478,6 +4763,10 @@ module Aws::KMS | |
| 4478 4763 | 
             
                #   Specifies the encryption context that will be used when encrypting the
         | 
| 4479 4764 | 
             
                #   private key in the data key pair.
         | 
| 4480 4765 | 
             
                #
         | 
| 4766 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 4767 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 4768 | 
            +
                #   output.
         | 
| 4769 | 
            +
                #
         | 
| 4481 4770 | 
             
                #   An *encryption context* is a collection of non-secret key-value pairs
         | 
| 4482 4771 | 
             
                #   that represent additional authenticated data. When you use an
         | 
| 4483 4772 | 
             
                #   encryption context to encrypt data, you must specify the same (an
         | 
| @@ -4629,7 +4918,7 @@ module Aws::KMS | |
| 4629 4918 | 
             
                # and 256-bit data keys, use the `KeySpec` parameter.
         | 
| 4630 4919 | 
             
                #
         | 
| 4631 4920 | 
             
                # To generate an SM4 data key (China Regions only), specify a `KeySpec`
         | 
| 4632 | 
            -
                # value of `AES_128` or `NumberOfBytes` value of ` | 
| 4921 | 
            +
                # value of `AES_128` or `NumberOfBytes` value of `16`. The symmetric
         | 
| 4633 4922 | 
             
                # encryption key used in China Regions to encrypt your data key is an
         | 
| 4634 4923 | 
             
                # SM4 encryption key.
         | 
| 4635 4924 | 
             
                #
         | 
| @@ -4648,11 +4937,11 @@ module Aws::KMS | |
| 4648 4937 | 
             
                # key state. For details, see [Key states of KMS keys][2] in the *Key
         | 
| 4649 4938 | 
             
                # Management Service Developer Guide*.
         | 
| 4650 4939 | 
             
                #
         | 
| 4651 | 
            -
                # **Cross-account use | 
| 4940 | 
            +
                # **Cross-account use**: Yes. To perform this operation with a KMS key
         | 
| 4652 4941 | 
             
                # in a different Amazon Web Services account, specify the key ARN or
         | 
| 4653 4942 | 
             
                # alias ARN in the value of the `KeyId` parameter.
         | 
| 4654 4943 | 
             
                #
         | 
| 4655 | 
            -
                # **Required permissions | 
| 4944 | 
            +
                # **Required permissions**: [kms:GenerateDataKeyWithoutPlaintext][3]
         | 
| 4656 4945 | 
             
                # (key policy)
         | 
| 4657 4946 | 
             
                #
         | 
| 4658 4947 | 
             
                # **Related operations:**
         | 
| @@ -4702,6 +4991,10 @@ module Aws::KMS | |
| 4702 4991 | 
             
                #   Specifies the encryption context that will be used when encrypting the
         | 
| 4703 4992 | 
             
                #   data key.
         | 
| 4704 4993 | 
             
                #
         | 
| 4994 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 4995 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 4996 | 
            +
                #   output.
         | 
| 4997 | 
            +
                #
         | 
| 4705 4998 | 
             
                #   An *encryption context* is a collection of non-secret key-value pairs
         | 
| 4706 4999 | 
             
                #   that represent additional authenticated data. When you use an
         | 
| 4707 5000 | 
             
                #   encryption context to encrypt data, you must specify the same (an
         | 
| @@ -4815,13 +5108,13 @@ module Aws::KMS | |
| 4815 5108 | 
             
                # key state. For details, see [Key states of KMS keys][3] in the *Key
         | 
| 4816 5109 | 
             
                # Management Service Developer Guide*.
         | 
| 4817 5110 | 
             
                #
         | 
| 4818 | 
            -
                # **Cross-account use | 
| 5111 | 
            +
                # **Cross-account use**: Yes. To perform this operation with a KMS key
         | 
| 4819 5112 | 
             
                # in a different Amazon Web Services account, specify the key ARN or
         | 
| 4820 5113 | 
             
                # alias ARN in the value of the `KeyId` parameter.
         | 
| 4821 5114 | 
             
                #
         | 
| 4822 | 
            -
                # **Required permissions | 
| 5115 | 
            +
                # **Required permissions**: [kms:GenerateMac][4] (key policy)
         | 
| 4823 5116 | 
             
                #
         | 
| 4824 | 
            -
                # **Related operations | 
| 5117 | 
            +
                # **Related operations**: VerifyMac
         | 
| 4825 5118 | 
             
                #
         | 
| 4826 5119 | 
             
                #
         | 
| 4827 5120 | 
             
                #
         | 
| @@ -4927,26 +5220,33 @@ module Aws::KMS | |
| 4927 5220 | 
             
                # the byte string in the CloudHSM cluster associated with an CloudHSM
         | 
| 4928 5221 | 
             
                # key store, use the `CustomKeyStoreId` parameter.
         | 
| 4929 5222 | 
             
                #
         | 
| 4930 | 
            -
                #  | 
| 4931 | 
            -
                #  | 
| 4932 | 
            -
                #  | 
| 4933 | 
            -
                #  | 
| 4934 | 
            -
                #  | 
| 5223 | 
            +
                # `GenerateRandom` also supports [Amazon Web Services Nitro
         | 
| 5224 | 
            +
                # Enclaves][1], which provide an isolated compute environment in Amazon
         | 
| 5225 | 
            +
                # EC2. To call `GenerateRandom` for a Nitro enclave, use the [Amazon Web
         | 
| 5226 | 
            +
                # Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK. Use
         | 
| 5227 | 
            +
                # the `Recipient` parameter to provide the attestation document for the
         | 
| 5228 | 
            +
                # enclave. Instead of plaintext bytes, the response includes the
         | 
| 5229 | 
            +
                # plaintext bytes encrypted under the public key from the attestation
         | 
| 5230 | 
            +
                # document (`CiphertextForRecipient`).For information about the
         | 
| 5231 | 
            +
                # interaction between KMS and Amazon Web Services Nitro Enclaves, see
         | 
| 5232 | 
            +
                # [How Amazon Web Services Nitro Enclaves uses KMS][3] in the *Key
         | 
| 5233 | 
            +
                # Management Service Developer Guide*.
         | 
| 4935 5234 | 
             
                #
         | 
| 4936 5235 | 
             
                # For more information about entropy and random number generation, see
         | 
| 4937 | 
            -
                # [Key Management Service Cryptographic Details][ | 
| 5236 | 
            +
                # [Key Management Service Cryptographic Details][4].
         | 
| 4938 5237 | 
             
                #
         | 
| 4939 | 
            -
                # **Cross-account use | 
| 5238 | 
            +
                # **Cross-account use**: Not applicable. `GenerateRandom` does not use
         | 
| 4940 5239 | 
             
                # any account-specific resources, such as KMS keys.
         | 
| 4941 5240 | 
             
                #
         | 
| 4942 | 
            -
                # **Required permissions | 
| 5241 | 
            +
                # **Required permissions**: [kms:GenerateRandom][5] (IAM policy)
         | 
| 4943 5242 | 
             
                #
         | 
| 4944 5243 | 
             
                #
         | 
| 4945 5244 | 
             
                #
         | 
| 4946 | 
            -
                # [1]: https:// | 
| 4947 | 
            -
                # [2]: https://docs.aws.amazon.com/ | 
| 4948 | 
            -
                # [3]: https://docs.aws.amazon.com/kms/latest/ | 
| 4949 | 
            -
                # [4]: https://docs.aws.amazon.com/kms/latest/ | 
| 5245 | 
            +
                # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html
         | 
| 5246 | 
            +
                # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
         | 
| 5247 | 
            +
                # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
         | 
| 5248 | 
            +
                # [4]: https://docs.aws.amazon.com/kms/latest/cryptographic-details/
         | 
| 5249 | 
            +
                # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
         | 
| 4950 5250 | 
             
                #
         | 
| 4951 5251 | 
             
                # @option params [Integer] :number_of_bytes
         | 
| 4952 5252 | 
             
                #   The length of the random byte string. This parameter is required.
         | 
| @@ -4960,9 +5260,36 @@ module Aws::KMS | |
| 4960 5260 | 
             
                #   specify the ID of an external key store, `GenerateRandom` throws an
         | 
| 4961 5261 | 
             
                #   `UnsupportedOperationException`.
         | 
| 4962 5262 | 
             
                #
         | 
| 5263 | 
            +
                # @option params [Types::RecipientInfo] :recipient
         | 
| 5264 | 
            +
                #   A signed [attestation document][1] from an Amazon Web Services Nitro
         | 
| 5265 | 
            +
                #   enclave and the encryption algorithm to use with the enclave's public
         | 
| 5266 | 
            +
                #   key. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`.
         | 
| 5267 | 
            +
                #
         | 
| 5268 | 
            +
                #   This parameter only supports attestation documents for Amazon Web
         | 
| 5269 | 
            +
                #   Services Nitro Enclaves. To include this parameter, use the [Amazon
         | 
| 5270 | 
            +
                #   Web Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK.
         | 
| 5271 | 
            +
                #
         | 
| 5272 | 
            +
                #   When you use this parameter, instead of returning plaintext bytes, KMS
         | 
| 5273 | 
            +
                #   encrypts the plaintext bytes under the public key in the attestation
         | 
| 5274 | 
            +
                #   document, and returns the resulting ciphertext in the
         | 
| 5275 | 
            +
                #   `CiphertextForRecipient` field in the response. This ciphertext can be
         | 
| 5276 | 
            +
                #   decrypted only with the private key in the enclave. The `Plaintext`
         | 
| 5277 | 
            +
                #   field in the response is null or empty.
         | 
| 5278 | 
            +
                #
         | 
| 5279 | 
            +
                #   For information about the interaction between KMS and Amazon Web
         | 
| 5280 | 
            +
                #   Services Nitro Enclaves, see [How Amazon Web Services Nitro Enclaves
         | 
| 5281 | 
            +
                #   uses KMS][3] in the *Key Management Service Developer Guide*.
         | 
| 5282 | 
            +
                #
         | 
| 5283 | 
            +
                #
         | 
| 5284 | 
            +
                #
         | 
| 5285 | 
            +
                #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc
         | 
| 5286 | 
            +
                #   [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk
         | 
| 5287 | 
            +
                #   [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html
         | 
| 5288 | 
            +
                #
         | 
| 4963 5289 | 
             
                # @return [Types::GenerateRandomResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
         | 
| 4964 5290 | 
             
                #
         | 
| 4965 5291 | 
             
                #   * {Types::GenerateRandomResponse#plaintext #plaintext} => String
         | 
| 5292 | 
            +
                #   * {Types::GenerateRandomResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String
         | 
| 4966 5293 | 
             
                #
         | 
| 4967 5294 | 
             
                #
         | 
| 4968 5295 | 
             
                # @example Example: To generate random data
         | 
| @@ -4978,16 +5305,41 @@ module Aws::KMS | |
| 4978 5305 | 
             
                #     plaintext: "<binary data>", # The random data.
         | 
| 4979 5306 | 
             
                #   }
         | 
| 4980 5307 | 
             
                #
         | 
| 5308 | 
            +
                # @example Example: To generate random data
         | 
| 5309 | 
            +
                #
         | 
| 5310 | 
            +
                #   # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave.
         | 
| 5311 | 
            +
                #   # Instead of returning a plaintext (unencrypted) byte string, GenerateRandom returns the byte string encrypted by the
         | 
| 5312 | 
            +
                #   # public key from the enclave's attestation document.
         | 
| 5313 | 
            +
                #
         | 
| 5314 | 
            +
                #   resp = client.generate_random({
         | 
| 5315 | 
            +
                #     number_of_bytes: 1024, # The length of the random byte string
         | 
| 5316 | 
            +
                #     recipient: {
         | 
| 5317 | 
            +
                #       attestation_document: "<attestation document>", 
         | 
| 5318 | 
            +
                #       key_encryption_algorithm: "RSAES_OAEP_SHA_256", 
         | 
| 5319 | 
            +
                #     }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document
         | 
| 5320 | 
            +
                #   })
         | 
| 5321 | 
            +
                #
         | 
| 5322 | 
            +
                #   resp.to_h outputs the following:
         | 
| 5323 | 
            +
                #   {
         | 
| 5324 | 
            +
                #     ciphertext_for_recipient: "<binary data>", # The random data encrypted under the public key from the attestation document
         | 
| 5325 | 
            +
                #     plaintext: "", # This field is null or empty
         | 
| 5326 | 
            +
                #   }
         | 
| 5327 | 
            +
                #
         | 
| 4981 5328 | 
             
                # @example Request syntax with placeholder values
         | 
| 4982 5329 | 
             
                #
         | 
| 4983 5330 | 
             
                #   resp = client.generate_random({
         | 
| 4984 5331 | 
             
                #     number_of_bytes: 1,
         | 
| 4985 5332 | 
             
                #     custom_key_store_id: "CustomKeyStoreIdType",
         | 
| 5333 | 
            +
                #     recipient: {
         | 
| 5334 | 
            +
                #       key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256
         | 
| 5335 | 
            +
                #       attestation_document: "data",
         | 
| 5336 | 
            +
                #     },
         | 
| 4986 5337 | 
             
                #   })
         | 
| 4987 5338 | 
             
                #
         | 
| 4988 5339 | 
             
                # @example Response structure
         | 
| 4989 5340 | 
             
                #
         | 
| 4990 5341 | 
             
                #   resp.plaintext #=> String
         | 
| 5342 | 
            +
                #   resp.ciphertext_for_recipient #=> String
         | 
| 4991 5343 | 
             
                #
         | 
| 4992 5344 | 
             
                # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandom AWS API Documentation
         | 
| 4993 5345 | 
             
                #
         | 
| @@ -5000,12 +5352,12 @@ module Aws::KMS | |
| 5000 5352 |  | 
| 5001 5353 | 
             
                # Gets a key policy attached to the specified KMS key.
         | 
| 5002 5354 | 
             
                #
         | 
| 5003 | 
            -
                # **Cross-account use | 
| 5355 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 5004 5356 | 
             
                # key in a different Amazon Web Services account.
         | 
| 5005 5357 | 
             
                #
         | 
| 5006 | 
            -
                # **Required permissions | 
| 5358 | 
            +
                # **Required permissions**: [kms:GetKeyPolicy][1] (key policy)
         | 
| 5007 5359 | 
             
                #
         | 
| 5008 | 
            -
                # **Related operations | 
| 5360 | 
            +
                # **Related operations**: PutKeyPolicy
         | 
| 5009 5361 | 
             
                #
         | 
| 5010 5362 | 
             
                #
         | 
| 5011 5363 | 
             
                #
         | 
| @@ -5116,11 +5468,11 @@ module Aws::KMS | |
| 5116 5468 | 
             
                #   If you cancel the deletion, the original key rotation status returns
         | 
| 5117 5469 | 
             
                #   to `true`.
         | 
| 5118 5470 | 
             
                #
         | 
| 5119 | 
            -
                # **Cross-account use | 
| 5471 | 
            +
                # **Cross-account use**: Yes. To perform this operation on a KMS key in
         | 
| 5120 5472 | 
             
                # a different Amazon Web Services account, specify the key ARN in the
         | 
| 5121 5473 | 
             
                # value of the `KeyId` parameter.
         | 
| 5122 5474 | 
             
                #
         | 
| 5123 | 
            -
                # **Required permissions | 
| 5475 | 
            +
                # **Required permissions**: [kms:GetKeyRotationStatus][11] (key policy)
         | 
| 5124 5476 | 
             
                #
         | 
| 5125 5477 | 
             
                # **Related operations:**
         | 
| 5126 5478 | 
             
                #
         | 
| @@ -5223,11 +5575,10 @@ module Aws::KMS | |
| 5223 5575 | 
             
                # key state. For details, see [Key states of KMS keys][2] in the *Key
         | 
| 5224 5576 | 
             
                # Management Service Developer Guide*.
         | 
| 5225 5577 | 
             
                #
         | 
| 5226 | 
            -
                # **Cross-account use | 
| 5578 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 5227 5579 | 
             
                # key in a different Amazon Web Services account.
         | 
| 5228 5580 | 
             
                #
         | 
| 5229 | 
            -
                # **Required permissions | 
| 5230 | 
            -
                # policy)
         | 
| 5581 | 
            +
                # **Required permissions**: [kms:GetParametersForImport][3] (key policy)
         | 
| 5231 5582 | 
             
                #
         | 
| 5232 5583 | 
             
                # **Related operations:**
         | 
| 5233 5584 | 
             
                #
         | 
| @@ -5348,12 +5699,12 @@ module Aws::KMS | |
| 5348 5699 | 
             
                # returns important information about the public key in the response,
         | 
| 5349 5700 | 
             
                # including:
         | 
| 5350 5701 | 
             
                #
         | 
| 5351 | 
            -
                # * [KeySpec][2] | 
| 5702 | 
            +
                # * [KeySpec][2]: The type of key material in the public key, such as
         | 
| 5352 5703 | 
             
                #   `RSA_4096` or `ECC_NIST_P521`.
         | 
| 5353 5704 | 
             
                #
         | 
| 5354 | 
            -
                # * [KeyUsage][3] | 
| 5705 | 
            +
                # * [KeyUsage][3]: Whether the key is used for encryption or signing.
         | 
| 5355 5706 | 
             
                #
         | 
| 5356 | 
            -
                # * [EncryptionAlgorithms][4] or [SigningAlgorithms][5] | 
| 5707 | 
            +
                # * [EncryptionAlgorithms][4] or [SigningAlgorithms][5]: A list of the
         | 
| 5357 5708 | 
             
                #   encryption algorithms or the signing algorithms for the key.
         | 
| 5358 5709 | 
             
                #
         | 
| 5359 5710 | 
             
                # Although KMS cannot enforce these restrictions on external operations,
         | 
| @@ -5373,13 +5724,13 @@ module Aws::KMS | |
| 5373 5724 | 
             
                # key state. For details, see [Key states of KMS keys][7] in the *Key
         | 
| 5374 5725 | 
             
                # Management Service Developer Guide*.
         | 
| 5375 5726 | 
             
                #
         | 
| 5376 | 
            -
                # **Cross-account use | 
| 5727 | 
            +
                # **Cross-account use**: Yes. To perform this operation with a KMS key
         | 
| 5377 5728 | 
             
                # in a different Amazon Web Services account, specify the key ARN or
         | 
| 5378 5729 | 
             
                # alias ARN in the value of the `KeyId` parameter.
         | 
| 5379 5730 | 
             
                #
         | 
| 5380 | 
            -
                # **Required permissions | 
| 5731 | 
            +
                # **Required permissions**: [kms:GetPublicKey][8] (key policy)
         | 
| 5381 5732 | 
             
                #
         | 
| 5382 | 
            -
                # **Related operations | 
| 5733 | 
            +
                # **Related operations**: CreateKey
         | 
| 5383 5734 | 
             
                #
         | 
| 5384 5735 | 
             
                #
         | 
| 5385 5736 | 
             
                #
         | 
| @@ -5544,10 +5895,10 @@ module Aws::KMS | |
| 5544 5895 | 
             
                # key state. For details, see [Key states of KMS keys][4] in the *Key
         | 
| 5545 5896 | 
             
                # Management Service Developer Guide*.
         | 
| 5546 5897 | 
             
                #
         | 
| 5547 | 
            -
                # **Cross-account use | 
| 5898 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 5548 5899 | 
             
                # key in a different Amazon Web Services account.
         | 
| 5549 5900 | 
             
                #
         | 
| 5550 | 
            -
                # **Required permissions | 
| 5901 | 
            +
                # **Required permissions**: [kms:ImportKeyMaterial][5] (key policy)
         | 
| 5551 5902 | 
             
                #
         | 
| 5552 5903 | 
             
                # **Related operations:**
         | 
| 5553 5904 | 
             
                #
         | 
| @@ -5679,10 +6030,10 @@ module Aws::KMS | |
| 5679 6030 | 
             
                # Web Services creates in your account, including predefined aliases, do
         | 
| 5680 6031 | 
             
                # not count against your [KMS aliases quota][1].
         | 
| 5681 6032 | 
             
                #
         | 
| 5682 | 
            -
                # **Cross-account use | 
| 6033 | 
            +
                # **Cross-account use**: No. `ListAliases` does not return aliases in
         | 
| 5683 6034 | 
             
                # other Amazon Web Services accounts.
         | 
| 5684 6035 | 
             
                #
         | 
| 5685 | 
            -
                # **Required permissions | 
| 6036 | 
            +
                # **Required permissions**: [kms:ListAliases][2] (IAM policy)
         | 
| 5686 6037 | 
             
                #
         | 
| 5687 6038 | 
             
                # For details, see [Controlling access to aliases][3] in the *Key
         | 
| 5688 6039 | 
             
                # Management Service Developer Guide*.
         | 
| @@ -5843,11 +6194,11 @@ module Aws::KMS | |
| 5843 6194 | 
             
                #
         | 
| 5844 6195 | 
             
                #  </note>
         | 
| 5845 6196 | 
             
                #
         | 
| 5846 | 
            -
                # **Cross-account use | 
| 6197 | 
            +
                # **Cross-account use**: Yes. To perform this operation on a KMS key in
         | 
| 5847 6198 | 
             
                # a different Amazon Web Services account, specify the key ARN in the
         | 
| 5848 6199 | 
             
                # value of the `KeyId` parameter.
         | 
| 5849 6200 | 
             
                #
         | 
| 5850 | 
            -
                # **Required permissions | 
| 6201 | 
            +
                # **Required permissions**: [kms:ListGrants][4] (key policy)
         | 
| 5851 6202 | 
             
                #
         | 
| 5852 6203 | 
             
                # **Related operations:**
         | 
| 5853 6204 | 
             
                #
         | 
| @@ -6022,10 +6373,10 @@ module Aws::KMS | |
| 6022 6373 | 
             
                # GetKeyPolicy operation. However, the only valid policy name is
         | 
| 6023 6374 | 
             
                # `default`.
         | 
| 6024 6375 | 
             
                #
         | 
| 6025 | 
            -
                # **Cross-account use | 
| 6376 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 6026 6377 | 
             
                # key in a different Amazon Web Services account.
         | 
| 6027 6378 | 
             
                #
         | 
| 6028 | 
            -
                # **Required permissions | 
| 6379 | 
            +
                # **Required permissions**: [kms:ListKeyPolicies][1] (key policy)
         | 
| 6029 6380 | 
             
                #
         | 
| 6030 6381 | 
             
                # **Related operations:**
         | 
| 6031 6382 | 
             
                #
         | 
| @@ -6120,10 +6471,10 @@ module Aws::KMS | |
| 6120 6471 | 
             
                # Gets a list of all KMS keys in the caller's Amazon Web Services
         | 
| 6121 6472 | 
             
                # account and Region.
         | 
| 6122 6473 | 
             
                #
         | 
| 6123 | 
            -
                # **Cross-account use | 
| 6474 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 6124 6475 | 
             
                # key in a different Amazon Web Services account.
         | 
| 6125 6476 | 
             
                #
         | 
| 6126 | 
            -
                # **Required permissions | 
| 6477 | 
            +
                # **Required permissions**: [kms:ListKeys][1] (IAM policy)
         | 
| 6127 6478 | 
             
                #
         | 
| 6128 6479 | 
             
                # **Related operations:**
         | 
| 6129 6480 | 
             
                #
         | 
| @@ -6235,10 +6586,10 @@ module Aws::KMS | |
| 6235 6586 | 
             
                # Services General Reference*. For information about using tags in KMS,
         | 
| 6236 6587 | 
             
                # see [Tagging keys][2].
         | 
| 6237 6588 | 
             
                #
         | 
| 6238 | 
            -
                # **Cross-account use | 
| 6589 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 6239 6590 | 
             
                # key in a different Amazon Web Services account.
         | 
| 6240 6591 | 
             
                #
         | 
| 6241 | 
            -
                # **Required permissions | 
| 6592 | 
            +
                # **Required permissions**: [kms:ListResourceTags][3] (key policy)
         | 
| 6242 6593 | 
             
                #
         | 
| 6243 6594 | 
             
                # **Related operations:**
         | 
| 6244 6595 | 
             
                #
         | 
| @@ -6362,14 +6713,14 @@ module Aws::KMS | |
| 6362 6713 | 
             
                # Guide</i> </i>. For examples of working with grants in several
         | 
| 6363 6714 | 
             
                # programming languages, see [Programming grants][2].
         | 
| 6364 6715 | 
             
                #
         | 
| 6365 | 
            -
                # **Cross-account use | 
| 6366 | 
            -
                #  | 
| 6716 | 
            +
                # **Cross-account use**: You must specify a principal in your Amazon Web
         | 
| 6717 | 
            +
                # Services account. However, this operation can return grants in any
         | 
| 6367 6718 | 
             
                # Amazon Web Services account. You do not need `kms:ListRetirableGrants`
         | 
| 6368 6719 | 
             
                # permission (or any other additional permission) in any Amazon Web
         | 
| 6369 6720 | 
             
                # Services account other than your own.
         | 
| 6370 6721 | 
             
                #
         | 
| 6371 | 
            -
                # **Required permissions | 
| 6372 | 
            -
                #  | 
| 6722 | 
            +
                # **Required permissions**: [kms:ListRetirableGrants][3] (IAM policy) in
         | 
| 6723 | 
            +
                # your Amazon Web Services account.
         | 
| 6373 6724 | 
             
                #
         | 
| 6374 6725 | 
             
                # **Related operations:**
         | 
| 6375 6726 | 
             
                #
         | 
| @@ -6498,12 +6849,12 @@ module Aws::KMS | |
| 6498 6849 | 
             
                # programming languages, see [Setting a key policy][3] in the *Key
         | 
| 6499 6850 | 
             
                # Management Service Developer Guide*.
         | 
| 6500 6851 | 
             
                #
         | 
| 6501 | 
            -
                # **Cross-account use | 
| 6852 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 6502 6853 | 
             
                # key in a different Amazon Web Services account.
         | 
| 6503 6854 | 
             
                #
         | 
| 6504 | 
            -
                # **Required permissions | 
| 6855 | 
            +
                # **Required permissions**: [kms:PutKeyPolicy][4] (key policy)
         | 
| 6505 6856 | 
             
                #
         | 
| 6506 | 
            -
                # **Related operations | 
| 6857 | 
            +
                # **Related operations**: GetKeyPolicy
         | 
| 6507 6858 | 
             
                #
         | 
| 6508 6859 | 
             
                #
         | 
| 6509 6860 | 
             
                #
         | 
| @@ -6686,12 +7037,12 @@ module Aws::KMS | |
| 6686 7037 | 
             
                # key state. For details, see [Key states of KMS keys][6] in the *Key
         | 
| 6687 7038 | 
             
                # Management Service Developer Guide*.
         | 
| 6688 7039 | 
             
                #
         | 
| 6689 | 
            -
                # **Cross-account use | 
| 6690 | 
            -
                #  | 
| 6691 | 
            -
                #  | 
| 6692 | 
            -
                #  | 
| 7040 | 
            +
                # **Cross-account use**: Yes. The source KMS key and destination KMS key
         | 
| 7041 | 
            +
                # can be in different Amazon Web Services accounts. Either or both KMS
         | 
| 7042 | 
            +
                # keys can be in a different account than the caller. To specify a KMS
         | 
| 7043 | 
            +
                # key in a different account, you must use its key ARN or alias ARN.
         | 
| 6693 7044 | 
             
                #
         | 
| 6694 | 
            -
                # **Required permissions | 
| 7045 | 
            +
                # **Required permissions**:
         | 
| 6695 7046 | 
             
                #
         | 
| 6696 7047 | 
             
                # * [kms:ReEncryptFrom][7] permission on the source KMS key (key policy)
         | 
| 6697 7048 | 
             
                #
         | 
| @@ -6812,6 +7163,10 @@ module Aws::KMS | |
| 6812 7163 | 
             
                #   Specifies that encryption context to use when the reencrypting the
         | 
| 6813 7164 | 
             
                #   data.
         | 
| 6814 7165 | 
             
                #
         | 
| 7166 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 7167 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 7168 | 
            +
                #   output.
         | 
| 7169 | 
            +
                #
         | 
| 6815 7170 | 
             
                #   A destination encryption context is valid only when the destination
         | 
| 6816 7171 | 
             
                #   KMS key is a symmetric encryption KMS key. The standard ciphertext
         | 
| 6817 7172 | 
             
                #   format for asymmetric KMS keys does not include fields for metadata.
         | 
| @@ -6992,10 +7347,10 @@ module Aws::KMS | |
| 6992 7347 | 
             
                #
         | 
| 6993 7348 | 
             
                #  </note>
         | 
| 6994 7349 | 
             
                #
         | 
| 6995 | 
            -
                # **Cross-account use | 
| 7350 | 
            +
                # **Cross-account use**: No. You cannot use this operation to create a
         | 
| 6996 7351 | 
             
                # replica key in a different Amazon Web Services account.
         | 
| 6997 7352 | 
             
                #
         | 
| 6998 | 
            -
                # **Required permissions | 
| 7353 | 
            +
                # **Required permissions**:
         | 
| 6999 7354 | 
             
                #
         | 
| 7000 7355 | 
             
                # * `kms:ReplicateKey` on the primary key (in the primary key's
         | 
| 7001 7356 | 
             
                #   Region). Include this permission in the primary key's key policy.
         | 
| @@ -7153,6 +7508,10 @@ module Aws::KMS | |
| 7153 7508 | 
             
                #   A description of the KMS key. The default value is an empty string (no
         | 
| 7154 7509 | 
             
                #   description).
         | 
| 7155 7510 | 
             
                #
         | 
| 7511 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 7512 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 7513 | 
            +
                #   output.
         | 
| 7514 | 
            +
                #
         | 
| 7156 7515 | 
             
                #   The description is not a shared property of multi-Region keys. You can
         | 
| 7157 7516 | 
             
                #   specify the same description or a different description for each key
         | 
| 7158 7517 | 
             
                #   in a set of related multi-Region keys. KMS does not synchronize this
         | 
| @@ -7163,6 +7522,10 @@ module Aws::KMS | |
| 7163 7522 | 
             
                #   the KMS key when it is created. To tag an existing KMS key, use the
         | 
| 7164 7523 | 
             
                #   TagResource operation.
         | 
| 7165 7524 | 
             
                #
         | 
| 7525 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 7526 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 7527 | 
            +
                #   output.
         | 
| 7528 | 
            +
                #
         | 
| 7166 7529 | 
             
                #   <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the KMS
         | 
| 7167 7530 | 
             
                #   key. For details, see [ABAC for KMS][1] in the *Key Management Service
         | 
| 7168 7531 | 
             
                #   Developer Guide*.
         | 
| @@ -7327,10 +7690,10 @@ module Aws::KMS | |
| 7327 7690 | 
             
                # Guide</i> </i>. For examples of working with grants in several
         | 
| 7328 7691 | 
             
                # programming languages, see [Programming grants][4].
         | 
| 7329 7692 | 
             
                #
         | 
| 7330 | 
            -
                # **Cross-account use | 
| 7693 | 
            +
                # **Cross-account use**: Yes. You can retire a grant on a KMS key in a
         | 
| 7331 7694 | 
             
                # different Amazon Web Services account.
         | 
| 7332 7695 | 
             
                #
         | 
| 7333 | 
            -
                # **Required permissions | 
| 7696 | 
            +
                # **Required permissions:**:Permission to retire a grant is determined
         | 
| 7334 7697 | 
             
                # primarily by the grant. For details, see [Retiring and revoking
         | 
| 7335 7698 | 
             
                # grants][2] in the *Key Management Service Developer Guide*.
         | 
| 7336 7699 | 
             
                #
         | 
| @@ -7425,11 +7788,11 @@ module Aws::KMS | |
| 7425 7788 | 
             
                # Guide</i> </i>. For examples of working with grants in several
         | 
| 7426 7789 | 
             
                # programming languages, see [Programming grants][4].
         | 
| 7427 7790 | 
             
                #
         | 
| 7428 | 
            -
                # **Cross-account use | 
| 7791 | 
            +
                # **Cross-account use**: Yes. To perform this operation on a KMS key in
         | 
| 7429 7792 | 
             
                # a different Amazon Web Services account, specify the key ARN in the
         | 
| 7430 7793 | 
             
                # value of the `KeyId` parameter.
         | 
| 7431 7794 | 
             
                #
         | 
| 7432 | 
            -
                # **Required permissions | 
| 7795 | 
            +
                # **Required permissions**: [kms:RevokeGrant][5] (key policy).
         | 
| 7433 7796 | 
             
                #
         | 
| 7434 7797 | 
             
                # **Related operations:**
         | 
| 7435 7798 | 
             
                #
         | 
| @@ -7546,10 +7909,10 @@ module Aws::KMS | |
| 7546 7909 | 
             
                # key state. For details, see [Key states of KMS keys][6] in the *Key
         | 
| 7547 7910 | 
             
                # Management Service Developer Guide*.
         | 
| 7548 7911 | 
             
                #
         | 
| 7549 | 
            -
                # **Cross-account use | 
| 7912 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 7550 7913 | 
             
                # key in a different Amazon Web Services account.
         | 
| 7551 7914 | 
             
                #
         | 
| 7552 | 
            -
                # **Required permissions | 
| 7915 | 
            +
                # **Required permissions**: kms:ScheduleKeyDeletion (key policy)
         | 
| 7553 7916 | 
             
                #
         | 
| 7554 7917 | 
             
                # **Related operations**
         | 
| 7555 7918 | 
             
                #
         | 
| @@ -7689,13 +8052,13 @@ module Aws::KMS | |
| 7689 8052 | 
             
                # key state. For details, see [Key states of KMS keys][3] in the *Key
         | 
| 7690 8053 | 
             
                # Management Service Developer Guide*.
         | 
| 7691 8054 | 
             
                #
         | 
| 7692 | 
            -
                # **Cross-account use | 
| 8055 | 
            +
                # **Cross-account use**: Yes. To perform this operation with a KMS key
         | 
| 7693 8056 | 
             
                # in a different Amazon Web Services account, specify the key ARN or
         | 
| 7694 8057 | 
             
                # alias ARN in the value of the `KeyId` parameter.
         | 
| 7695 8058 | 
             
                #
         | 
| 7696 | 
            -
                # **Required permissions | 
| 8059 | 
            +
                # **Required permissions**: [kms:Sign][4] (key policy)
         | 
| 7697 8060 | 
             
                #
         | 
| 7698 | 
            -
                # **Related operations | 
| 8061 | 
            +
                # **Related operations**: Verify
         | 
| 7699 8062 | 
             
                #
         | 
| 7700 8063 | 
             
                #
         | 
| 7701 8064 | 
             
                #
         | 
| @@ -7899,10 +8262,10 @@ module Aws::KMS | |
| 7899 8262 | 
             
                # key state. For details, see [Key states of KMS keys][9] in the *Key
         | 
| 7900 8263 | 
             
                # Management Service Developer Guide*.
         | 
| 7901 8264 | 
             
                #
         | 
| 7902 | 
            -
                # **Cross-account use | 
| 8265 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 7903 8266 | 
             
                # key in a different Amazon Web Services account.
         | 
| 7904 8267 | 
             
                #
         | 
| 7905 | 
            -
                # **Required permissions | 
| 8268 | 
            +
                # **Required permissions**: [kms:TagResource][10] (key policy)
         | 
| 7906 8269 | 
             
                #
         | 
| 7907 8270 | 
             
                # **Related operations**
         | 
| 7908 8271 | 
             
                #
         | 
| @@ -7943,10 +8306,12 @@ module Aws::KMS | |
| 7943 8306 | 
             
                #   DescribeKey.
         | 
| 7944 8307 | 
             
                #
         | 
| 7945 8308 | 
             
                # @option params [required, Array<Types::Tag>] :tags
         | 
| 7946 | 
            -
                #   One or more tags.
         | 
| 8309 | 
            +
                #   One or more tags. Each tag consists of a tag key and a tag value. The
         | 
| 8310 | 
            +
                #   tag value can be an empty (null) string.
         | 
| 7947 8311 | 
             
                #
         | 
| 7948 | 
            -
                #    | 
| 7949 | 
            -
                #    | 
| 8312 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 8313 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 8314 | 
            +
                #   output.
         | 
| 7950 8315 | 
             
                #
         | 
| 7951 8316 | 
             
                #   You cannot have more than one tag on a KMS key with the same tag key.
         | 
| 7952 8317 | 
             
                #   If you specify an existing tag key with a different tag value, KMS
         | 
| @@ -8013,10 +8378,10 @@ module Aws::KMS | |
| 8013 8378 | 
             
                # key state. For details, see [Key states of KMS keys][5] in the *Key
         | 
| 8014 8379 | 
             
                # Management Service Developer Guide*.
         | 
| 8015 8380 | 
             
                #
         | 
| 8016 | 
            -
                # **Cross-account use | 
| 8381 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 8017 8382 | 
             
                # key in a different Amazon Web Services account.
         | 
| 8018 8383 | 
             
                #
         | 
| 8019 | 
            -
                # **Required permissions | 
| 8384 | 
            +
                # **Required permissions**: [kms:UntagResource][6] (key policy)
         | 
| 8020 8385 | 
             
                #
         | 
| 8021 8386 | 
             
                # **Related operations**
         | 
| 8022 8387 | 
             
                #
         | 
| @@ -8117,7 +8482,7 @@ module Aws::KMS | |
| 8117 8482 | 
             
                # key state. For details, see [Key states of KMS keys][2] in the *Key
         | 
| 8118 8483 | 
             
                # Management Service Developer Guide*.
         | 
| 8119 8484 | 
             
                #
         | 
| 8120 | 
            -
                # **Cross-account use | 
| 8485 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 8121 8486 | 
             
                # key in a different Amazon Web Services account.
         | 
| 8122 8487 | 
             
                #
         | 
| 8123 8488 | 
             
                # **Required permissions**
         | 
| @@ -8152,6 +8517,10 @@ module Aws::KMS | |
| 8152 8517 | 
             
                #   `alias/ExampleAlias`. You cannot use `UpdateAlias` to change the alias
         | 
| 8153 8518 | 
             
                #   name.
         | 
| 8154 8519 | 
             
                #
         | 
| 8520 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 8521 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 8522 | 
            +
                #   output.
         | 
| 8523 | 
            +
                #
         | 
| 8155 8524 | 
             
                # @option params [required, String] :target_key_id
         | 
| 8156 8525 | 
             
                #   Identifies the [customer managed key][1] to associate with the alias.
         | 
| 8157 8526 | 
             
                #   You don't have permission to associate an alias with an [Amazon Web
         | 
| @@ -8289,10 +8658,10 @@ module Aws::KMS | |
| 8289 8658 | 
             
                # If the operation succeeds, it returns a JSON object with no
         | 
| 8290 8659 | 
             
                # properties.
         | 
| 8291 8660 | 
             
                #
         | 
| 8292 | 
            -
                # **Cross-account use | 
| 8661 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a
         | 
| 8293 8662 | 
             
                # custom key store in a different Amazon Web Services account.
         | 
| 8294 8663 | 
             
                #
         | 
| 8295 | 
            -
                # **Required permissions | 
| 8664 | 
            +
                # **Required permissions**: [kms:UpdateCustomKeyStore][2] (IAM policy)
         | 
| 8296 8665 | 
             
                #
         | 
| 8297 8666 | 
             
                # **Related operations:**
         | 
| 8298 8667 | 
             
                #
         | 
| @@ -8321,6 +8690,10 @@ module Aws::KMS | |
| 8321 8690 | 
             
                #   you specify. The custom key store name must be unique in the Amazon
         | 
| 8322 8691 | 
             
                #   Web Services account.
         | 
| 8323 8692 | 
             
                #
         | 
| 8693 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 8694 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 8695 | 
            +
                #   output.
         | 
| 8696 | 
            +
                #
         | 
| 8324 8697 | 
             
                #   To change this value, an CloudHSM key store must be disconnected. An
         | 
| 8325 8698 | 
             
                #   external key store can be connected or disconnected.
         | 
| 8326 8699 | 
             
                #
         | 
| @@ -8474,7 +8847,7 @@ module Aws::KMS | |
| 8474 8847 | 
             
                #   # worked, use the DescribeCustomKeyStores operation.
         | 
| 8475 8848 | 
             
                #
         | 
| 8476 8849 | 
             
                #   resp = client.update_custom_key_store({
         | 
| 8477 | 
            -
                #     cloud_hsm_cluster_id: "cluster- | 
| 8850 | 
            +
                #     cloud_hsm_cluster_id: "cluster-234abcdefABC", # The ID of the AWS CloudHSM cluster that you want to associate with the custom key store. This cluster must be related to the original CloudHSM cluster for this key store.
         | 
| 8478 8851 | 
             
                #     custom_key_store_id: "cks-1234567890abcdef0", # The ID of the custom key store that you are updating.
         | 
| 8479 8852 | 
             
                #   })
         | 
| 8480 8853 | 
             
                #
         | 
| @@ -8565,10 +8938,10 @@ module Aws::KMS | |
| 8565 8938 | 
             
                # key state. For details, see [Key states of KMS keys][1] in the *Key
         | 
| 8566 8939 | 
             
                # Management Service Developer Guide*.
         | 
| 8567 8940 | 
             
                #
         | 
| 8568 | 
            -
                # **Cross-account use | 
| 8941 | 
            +
                # **Cross-account use**: No. You cannot perform this operation on a KMS
         | 
| 8569 8942 | 
             
                # key in a different Amazon Web Services account.
         | 
| 8570 8943 | 
             
                #
         | 
| 8571 | 
            -
                # **Required permissions | 
| 8944 | 
            +
                # **Required permissions**: [kms:UpdateKeyDescription][2] (key policy)
         | 
| 8572 8945 | 
             
                #
         | 
| 8573 8946 | 
             
                # **Related operations**
         | 
| 8574 8947 | 
             
                #
         | 
| @@ -8599,6 +8972,10 @@ module Aws::KMS | |
| 8599 8972 | 
             
                # @option params [required, String] :description
         | 
| 8600 8973 | 
             
                #   New description for the KMS key.
         | 
| 8601 8974 | 
             
                #
         | 
| 8975 | 
            +
                #   Do not include confidential or sensitive information in this field.
         | 
| 8976 | 
            +
                #   This field may be displayed in plaintext in CloudTrail logs and other
         | 
| 8977 | 
            +
                #   output.
         | 
| 8978 | 
            +
                #
         | 
| 8602 8979 | 
             
                # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
         | 
| 8603 8980 | 
             
                #
         | 
| 8604 8981 | 
             
                #
         | 
| @@ -8681,10 +9058,10 @@ module Aws::KMS | |
| 8681 9058 | 
             
                # This operation does not return any output. To verify that primary key
         | 
| 8682 9059 | 
             
                # is changed, use the DescribeKey operation.
         | 
| 8683 9060 | 
             
                #
         | 
| 8684 | 
            -
                # **Cross-account use | 
| 9061 | 
            +
                # **Cross-account use**: No. You cannot use this operation in a
         | 
| 8685 9062 | 
             
                # different Amazon Web Services account.
         | 
| 8686 9063 | 
             
                #
         | 
| 8687 | 
            -
                # **Required permissions | 
| 9064 | 
            +
                # **Required permissions**:
         | 
| 8688 9065 | 
             
                #
         | 
| 8689 9066 | 
             
                # * `kms:UpdatePrimaryRegion` on the current primary key (in the primary
         | 
| 8690 9067 | 
             
                #   key's Region). Include this permission primary key's key policy.
         | 
| @@ -8810,13 +9187,13 @@ module Aws::KMS | |
| 8810 9187 | 
             
                # key state. For details, see [Key states of KMS keys][3] in the *Key
         | 
| 8811 9188 | 
             
                # Management Service Developer Guide*.
         | 
| 8812 9189 | 
             
                #
         | 
| 8813 | 
            -
                # **Cross-account use | 
| 9190 | 
            +
                # **Cross-account use**: Yes. To perform this operation with a KMS key
         | 
| 8814 9191 | 
             
                # in a different Amazon Web Services account, specify the key ARN or
         | 
| 8815 9192 | 
             
                # alias ARN in the value of the `KeyId` parameter.
         | 
| 8816 9193 | 
             
                #
         | 
| 8817 | 
            -
                # **Required permissions | 
| 9194 | 
            +
                # **Required permissions**: [kms:Verify][4] (key policy)
         | 
| 8818 9195 | 
             
                #
         | 
| 8819 | 
            -
                # **Related operations | 
| 9196 | 
            +
                # **Related operations**: Sign
         | 
| 8820 9197 | 
             
                #
         | 
| 8821 9198 | 
             
                #
         | 
| 8822 9199 | 
             
                #
         | 
| @@ -9015,13 +9392,13 @@ module Aws::KMS | |
| 9015 9392 | 
             
                # key state. For details, see [Key states of KMS keys][3] in the *Key
         | 
| 9016 9393 | 
             
                # Management Service Developer Guide*.
         | 
| 9017 9394 | 
             
                #
         | 
| 9018 | 
            -
                # **Cross-account use | 
| 9395 | 
            +
                # **Cross-account use**: Yes. To perform this operation with a KMS key
         | 
| 9019 9396 | 
             
                # in a different Amazon Web Services account, specify the key ARN or
         | 
| 9020 9397 | 
             
                # alias ARN in the value of the `KeyId` parameter.
         | 
| 9021 9398 | 
             
                #
         | 
| 9022 | 
            -
                # **Required permissions | 
| 9399 | 
            +
                # **Required permissions**: [kms:VerifyMac][4] (key policy)
         | 
| 9023 9400 | 
             
                #
         | 
| 9024 | 
            -
                # **Related operations | 
| 9401 | 
            +
                # **Related operations**: GenerateMac
         | 
| 9025 9402 | 
             
                #
         | 
| 9026 9403 | 
             
                #
         | 
| 9027 9404 | 
             
                #
         | 
| @@ -9132,7 +9509,7 @@ module Aws::KMS | |
| 9132 9509 | 
             
                    params: params,
         | 
| 9133 9510 | 
             
                    config: config)
         | 
| 9134 9511 | 
             
                  context[:gem_name] = 'aws-sdk-kms'
         | 
| 9135 | 
            -
                  context[:gem_version] = '1. | 
| 9512 | 
            +
                  context[:gem_version] = '1.65.0'
         | 
| 9136 9513 | 
             
                  Seahorse::Client::Request.new(handlers, context)
         | 
| 9137 9514 | 
             
                end
         | 
| 9138 9515 |  |