aws-sdk-kms 1.40.0 → 1.44.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.
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -150,7 +150,12 @@ module Aws::KMS
150
150
  MalformedPolicyDocumentException = Shapes::StructureShape.new(name: 'MalformedPolicyDocumentException')
151
151
  MarkerType = Shapes::StringShape.new(name: 'MarkerType')
152
152
  MessageType = Shapes::StringShape.new(name: 'MessageType')
153
+ MultiRegionConfiguration = Shapes::StructureShape.new(name: 'MultiRegionConfiguration')
154
+ MultiRegionKey = Shapes::StructureShape.new(name: 'MultiRegionKey')
155
+ MultiRegionKeyList = Shapes::ListShape.new(name: 'MultiRegionKeyList')
156
+ MultiRegionKeyType = Shapes::StringShape.new(name: 'MultiRegionKeyType')
153
157
  NotFoundException = Shapes::StructureShape.new(name: 'NotFoundException')
158
+ NullableBooleanType = Shapes::BooleanShape.new(name: 'NullableBooleanType')
154
159
  NumberOfBytesType = Shapes::IntegerShape.new(name: 'NumberOfBytesType')
155
160
  OriginType = Shapes::StringShape.new(name: 'OriginType')
156
161
  PendingWindowInDaysType = Shapes::IntegerShape.new(name: 'PendingWindowInDaysType')
@@ -163,6 +168,9 @@ module Aws::KMS
163
168
  PutKeyPolicyRequest = Shapes::StructureShape.new(name: 'PutKeyPolicyRequest')
164
169
  ReEncryptRequest = Shapes::StructureShape.new(name: 'ReEncryptRequest')
165
170
  ReEncryptResponse = Shapes::StructureShape.new(name: 'ReEncryptResponse')
171
+ RegionType = Shapes::StringShape.new(name: 'RegionType')
172
+ ReplicateKeyRequest = Shapes::StructureShape.new(name: 'ReplicateKeyRequest')
173
+ ReplicateKeyResponse = Shapes::StructureShape.new(name: 'ReplicateKeyResponse')
166
174
  RetireGrantRequest = Shapes::StructureShape.new(name: 'RetireGrantRequest')
167
175
  RevokeGrantRequest = Shapes::StructureShape.new(name: 'RevokeGrantRequest')
168
176
  ScheduleKeyDeletionRequest = Shapes::StructureShape.new(name: 'ScheduleKeyDeletionRequest')
@@ -185,6 +193,7 @@ module Aws::KMS
185
193
  UpdateCustomKeyStoreRequest = Shapes::StructureShape.new(name: 'UpdateCustomKeyStoreRequest')
186
194
  UpdateCustomKeyStoreResponse = Shapes::StructureShape.new(name: 'UpdateCustomKeyStoreResponse')
187
195
  UpdateKeyDescriptionRequest = Shapes::StructureShape.new(name: 'UpdateKeyDescriptionRequest')
196
+ UpdatePrimaryRegionRequest = Shapes::StructureShape.new(name: 'UpdatePrimaryRegionRequest')
188
197
  VerifyRequest = Shapes::StructureShape.new(name: 'VerifyRequest')
189
198
  VerifyResponse = Shapes::StructureShape.new(name: 'VerifyResponse')
190
199
  WrappingKeySpec = Shapes::StringShape.new(name: 'WrappingKeySpec')
@@ -261,6 +270,7 @@ module Aws::KMS
261
270
  CreateKeyRequest.add_member(:custom_key_store_id, Shapes::ShapeRef.new(shape: CustomKeyStoreIdType, location_name: "CustomKeyStoreId"))
262
271
  CreateKeyRequest.add_member(:bypass_policy_lockout_safety_check, Shapes::ShapeRef.new(shape: BooleanType, location_name: "BypassPolicyLockoutSafetyCheck"))
263
272
  CreateKeyRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
273
+ CreateKeyRequest.add_member(:multi_region, Shapes::ShapeRef.new(shape: NullableBooleanType, location_name: "MultiRegion"))
264
274
  CreateKeyRequest.struct_class = Types::CreateKeyRequest
265
275
 
266
276
  CreateKeyResponse.add_member(:key_metadata, Shapes::ShapeRef.new(shape: KeyMetadata, location_name: "KeyMetadata"))
@@ -560,6 +570,9 @@ module Aws::KMS
560
570
  KeyMetadata.add_member(:customer_master_key_spec, Shapes::ShapeRef.new(shape: CustomerMasterKeySpec, location_name: "CustomerMasterKeySpec"))
561
571
  KeyMetadata.add_member(:encryption_algorithms, Shapes::ShapeRef.new(shape: EncryptionAlgorithmSpecList, location_name: "EncryptionAlgorithms"))
562
572
  KeyMetadata.add_member(:signing_algorithms, Shapes::ShapeRef.new(shape: SigningAlgorithmSpecList, location_name: "SigningAlgorithms"))
573
+ KeyMetadata.add_member(:multi_region, Shapes::ShapeRef.new(shape: NullableBooleanType, location_name: "MultiRegion"))
574
+ KeyMetadata.add_member(:multi_region_configuration, Shapes::ShapeRef.new(shape: MultiRegionConfiguration, location_name: "MultiRegionConfiguration"))
575
+ KeyMetadata.add_member(:pending_deletion_window_in_days, Shapes::ShapeRef.new(shape: PendingWindowInDaysType, location_name: "PendingDeletionWindowInDays"))
563
576
  KeyMetadata.struct_class = Types::KeyMetadata
564
577
 
565
578
  KeyUnavailableException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessageType, location_name: "message"))
@@ -581,6 +594,8 @@ module Aws::KMS
581
594
  ListGrantsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: LimitType, location_name: "Limit"))
582
595
  ListGrantsRequest.add_member(:marker, Shapes::ShapeRef.new(shape: MarkerType, location_name: "Marker"))
583
596
  ListGrantsRequest.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, required: true, location_name: "KeyId"))
597
+ ListGrantsRequest.add_member(:grant_id, Shapes::ShapeRef.new(shape: GrantIdType, location_name: "GrantId"))
598
+ ListGrantsRequest.add_member(:grantee_principal, Shapes::ShapeRef.new(shape: PrincipalIdType, location_name: "GranteePrincipal"))
584
599
  ListGrantsRequest.struct_class = Types::ListGrantsRequest
585
600
 
586
601
  ListGrantsResponse.add_member(:grants, Shapes::ShapeRef.new(shape: GrantList, location_name: "Grants"))
@@ -625,6 +640,17 @@ module Aws::KMS
625
640
  MalformedPolicyDocumentException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessageType, location_name: "message"))
626
641
  MalformedPolicyDocumentException.struct_class = Types::MalformedPolicyDocumentException
627
642
 
643
+ MultiRegionConfiguration.add_member(:multi_region_key_type, Shapes::ShapeRef.new(shape: MultiRegionKeyType, location_name: "MultiRegionKeyType"))
644
+ MultiRegionConfiguration.add_member(:primary_key, Shapes::ShapeRef.new(shape: MultiRegionKey, location_name: "PrimaryKey"))
645
+ MultiRegionConfiguration.add_member(:replica_keys, Shapes::ShapeRef.new(shape: MultiRegionKeyList, location_name: "ReplicaKeys"))
646
+ MultiRegionConfiguration.struct_class = Types::MultiRegionConfiguration
647
+
648
+ MultiRegionKey.add_member(:arn, Shapes::ShapeRef.new(shape: ArnType, location_name: "Arn"))
649
+ MultiRegionKey.add_member(:region, Shapes::ShapeRef.new(shape: RegionType, location_name: "Region"))
650
+ MultiRegionKey.struct_class = Types::MultiRegionKey
651
+
652
+ MultiRegionKeyList.member = Shapes::ShapeRef.new(shape: MultiRegionKey)
653
+
628
654
  NotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessageType, location_name: "message"))
629
655
  NotFoundException.struct_class = Types::NotFoundException
630
656
 
@@ -653,6 +679,19 @@ module Aws::KMS
653
679
  ReEncryptResponse.add_member(:destination_encryption_algorithm, Shapes::ShapeRef.new(shape: EncryptionAlgorithmSpec, location_name: "DestinationEncryptionAlgorithm"))
654
680
  ReEncryptResponse.struct_class = Types::ReEncryptResponse
655
681
 
682
+ ReplicateKeyRequest.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, required: true, location_name: "KeyId"))
683
+ ReplicateKeyRequest.add_member(:replica_region, Shapes::ShapeRef.new(shape: RegionType, required: true, location_name: "ReplicaRegion"))
684
+ ReplicateKeyRequest.add_member(:policy, Shapes::ShapeRef.new(shape: PolicyType, location_name: "Policy"))
685
+ ReplicateKeyRequest.add_member(:bypass_policy_lockout_safety_check, Shapes::ShapeRef.new(shape: BooleanType, location_name: "BypassPolicyLockoutSafetyCheck"))
686
+ ReplicateKeyRequest.add_member(:description, Shapes::ShapeRef.new(shape: DescriptionType, location_name: "Description"))
687
+ ReplicateKeyRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
688
+ ReplicateKeyRequest.struct_class = Types::ReplicateKeyRequest
689
+
690
+ ReplicateKeyResponse.add_member(:replica_key_metadata, Shapes::ShapeRef.new(shape: KeyMetadata, location_name: "ReplicaKeyMetadata"))
691
+ ReplicateKeyResponse.add_member(:replica_policy, Shapes::ShapeRef.new(shape: PolicyType, location_name: "ReplicaPolicy"))
692
+ ReplicateKeyResponse.add_member(:replica_tags, Shapes::ShapeRef.new(shape: TagList, location_name: "ReplicaTags"))
693
+ ReplicateKeyResponse.struct_class = Types::ReplicateKeyResponse
694
+
656
695
  RetireGrantRequest.add_member(:grant_token, Shapes::ShapeRef.new(shape: GrantTokenType, location_name: "GrantToken"))
657
696
  RetireGrantRequest.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, location_name: "KeyId"))
658
697
  RetireGrantRequest.add_member(:grant_id, Shapes::ShapeRef.new(shape: GrantIdType, location_name: "GrantId"))
@@ -668,6 +707,8 @@ module Aws::KMS
668
707
 
669
708
  ScheduleKeyDeletionResponse.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, location_name: "KeyId"))
670
709
  ScheduleKeyDeletionResponse.add_member(:deletion_date, Shapes::ShapeRef.new(shape: DateType, location_name: "DeletionDate"))
710
+ ScheduleKeyDeletionResponse.add_member(:key_state, Shapes::ShapeRef.new(shape: KeyState, location_name: "KeyState"))
711
+ ScheduleKeyDeletionResponse.add_member(:pending_window_in_days, Shapes::ShapeRef.new(shape: PendingWindowInDaysType, location_name: "PendingWindowInDays"))
671
712
  ScheduleKeyDeletionResponse.struct_class = Types::ScheduleKeyDeletionResponse
672
713
 
673
714
  SignRequest.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, required: true, location_name: "KeyId"))
@@ -722,6 +763,10 @@ module Aws::KMS
722
763
  UpdateKeyDescriptionRequest.add_member(:description, Shapes::ShapeRef.new(shape: DescriptionType, required: true, location_name: "Description"))
723
764
  UpdateKeyDescriptionRequest.struct_class = Types::UpdateKeyDescriptionRequest
724
765
 
766
+ UpdatePrimaryRegionRequest.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, required: true, location_name: "KeyId"))
767
+ UpdatePrimaryRegionRequest.add_member(:primary_region, Shapes::ShapeRef.new(shape: RegionType, required: true, location_name: "PrimaryRegion"))
768
+ UpdatePrimaryRegionRequest.struct_class = Types::UpdatePrimaryRegionRequest
769
+
725
770
  VerifyRequest.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, required: true, location_name: "KeyId"))
726
771
  VerifyRequest.add_member(:message, Shapes::ShapeRef.new(shape: PlaintextType, required: true, location_name: "Message"))
727
772
  VerifyRequest.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "MessageType"))
@@ -907,6 +952,7 @@ module Aws::KMS
907
952
  o.input = Shapes::ShapeRef.new(shape: DescribeCustomKeyStoresRequest)
908
953
  o.output = Shapes::ShapeRef.new(shape: DescribeCustomKeyStoresResponse)
909
954
  o.errors << Shapes::ShapeRef.new(shape: CustomKeyStoreNotFoundException)
955
+ o.errors << Shapes::ShapeRef.new(shape: InvalidMarkerException)
910
956
  o.errors << Shapes::ShapeRef.new(shape: KMSInternalException)
911
957
  end)
912
958
 
@@ -1190,6 +1236,7 @@ module Aws::KMS
1190
1236
  o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
1191
1237
  o.errors << Shapes::ShapeRef.new(shape: DependencyTimeoutException)
1192
1238
  o.errors << Shapes::ShapeRef.new(shape: InvalidMarkerException)
1239
+ o.errors << Shapes::ShapeRef.new(shape: InvalidGrantIdException)
1193
1240
  o.errors << Shapes::ShapeRef.new(shape: InvalidArnException)
1194
1241
  o.errors << Shapes::ShapeRef.new(shape: KMSInternalException)
1195
1242
  o.errors << Shapes::ShapeRef.new(shape: KMSInvalidStateException)
@@ -1299,6 +1346,24 @@ module Aws::KMS
1299
1346
  o.errors << Shapes::ShapeRef.new(shape: KMSInvalidStateException)
1300
1347
  end)
1301
1348
 
1349
+ api.add_operation(:replicate_key, Seahorse::Model::Operation.new.tap do |o|
1350
+ o.name = "ReplicateKey"
1351
+ o.http_method = "POST"
1352
+ o.http_request_uri = "/"
1353
+ o.input = Shapes::ShapeRef.new(shape: ReplicateKeyRequest)
1354
+ o.output = Shapes::ShapeRef.new(shape: ReplicateKeyResponse)
1355
+ o.errors << Shapes::ShapeRef.new(shape: AlreadyExistsException)
1356
+ o.errors << Shapes::ShapeRef.new(shape: DisabledException)
1357
+ o.errors << Shapes::ShapeRef.new(shape: InvalidArnException)
1358
+ o.errors << Shapes::ShapeRef.new(shape: KMSInvalidStateException)
1359
+ o.errors << Shapes::ShapeRef.new(shape: KMSInternalException)
1360
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1361
+ o.errors << Shapes::ShapeRef.new(shape: MalformedPolicyDocumentException)
1362
+ o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
1363
+ o.errors << Shapes::ShapeRef.new(shape: TagException)
1364
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationException)
1365
+ end)
1366
+
1302
1367
  api.add_operation(:retire_grant, Seahorse::Model::Operation.new.tap do |o|
1303
1368
  o.name = "RetireGrant"
1304
1369
  o.http_method = "POST"
@@ -1426,6 +1491,20 @@ module Aws::KMS
1426
1491
  o.errors << Shapes::ShapeRef.new(shape: KMSInvalidStateException)
1427
1492
  end)
1428
1493
 
1494
+ api.add_operation(:update_primary_region, Seahorse::Model::Operation.new.tap do |o|
1495
+ o.name = "UpdatePrimaryRegion"
1496
+ o.http_method = "POST"
1497
+ o.http_request_uri = "/"
1498
+ o.input = Shapes::ShapeRef.new(shape: UpdatePrimaryRegionRequest)
1499
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
1500
+ o.errors << Shapes::ShapeRef.new(shape: DisabledException)
1501
+ o.errors << Shapes::ShapeRef.new(shape: InvalidArnException)
1502
+ o.errors << Shapes::ShapeRef.new(shape: KMSInvalidStateException)
1503
+ o.errors << Shapes::ShapeRef.new(shape: KMSInternalException)
1504
+ o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
1505
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationException)
1506
+ end)
1507
+
1429
1508
  api.add_operation(:verify, Seahorse::Model::Operation.new.tap do |o|
1430
1509
  o.name = "Verify"
1431
1510
  o.http_method = "POST"
@@ -2,7 +2,7 @@
2
2
  # WARNING ABOUT GENERATED CODE
3
3
  #
4
4
  # This file is generated. See the contributing for info on making contributions:
5
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
6
6
  #
7
7
  # WARNING ABOUT GENERATED CODE
8
8
 
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -69,10 +69,10 @@ module Aws::KMS
69
69
  # }
70
70
  #
71
71
  # @!attribute [rw] key_id
72
- # The unique identifier for the customer master key (CMK) for which to
73
- # cancel deletion.
72
+ # Identifies the customer master key (CMK) whose deletion is being
73
+ # canceled.
74
74
  #
75
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
75
+ # Specify the key ID or key ARN of the CMK.
76
76
  #
77
77
  # For example:
78
78
  #
@@ -310,7 +310,7 @@ module Aws::KMS
310
310
  # For help finding the key ID and ARN, see [Finding the Key ID and
311
311
  # ARN][2] in the *AWS Key Management Service Developer Guide*.
312
312
  #
313
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
313
+ # Specify the key ID or key ARN of the CMK.
314
314
  #
315
315
  # For example:
316
316
  #
@@ -433,11 +433,11 @@ module Aws::KMS
433
433
  # }
434
434
  #
435
435
  # @!attribute [rw] key_id
436
- # The unique identifier for the customer master key (CMK) that the
437
- # grant applies to.
436
+ # Identifies the customer master key (CMK) for the grant. The grant
437
+ # gives principals permission to use this CMK.
438
438
  #
439
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To
440
- # specify a CMK in a different AWS account, you must use the key ARN.
439
+ # Specify the key ID or key ARN of the CMK. To specify a CMK in a
440
+ # different AWS account, you must use the key ARN.
441
441
  #
442
442
  # For example:
443
443
  #
@@ -451,8 +451,7 @@ module Aws::KMS
451
451
  # @return [String]
452
452
  #
453
453
  # @!attribute [rw] grantee_principal
454
- # The principal that is given permission to perform the operations
455
- # that the grant permits.
454
+ # The identity that gets the permissions specified in the grant.
456
455
  #
457
456
  # To specify the principal, use the [Amazon Resource Name (ARN)][1] of
458
457
  # an AWS principal. Valid AWS principals include AWS accounts (root),
@@ -486,30 +485,55 @@ module Aws::KMS
486
485
  #
487
486
  # @!attribute [rw] operations
488
487
  # A list of operations that the grant permits.
488
+ #
489
+ # The operation must be supported on the CMK. For example, you cannot
490
+ # create a grant for a symmetric CMK that allows the Sign operation,
491
+ # or a grant for an asymmetric CMK that allows the GenerateDataKey
492
+ # operation. If you try, AWS KMS returns a `ValidationError`
493
+ # exception. For details, see [Grant operations][1] in the *AWS Key
494
+ # Management Service Developer Guide*.
495
+ #
496
+ #
497
+ #
498
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations
489
499
  # @return [Array<String>]
490
500
  #
491
501
  # @!attribute [rw] constraints
492
- # Allows a [cryptographic operation][1] only when the encryption
493
- # context matches or includes the encryption context specified in this
494
- # structure. For more information about encryption context, see
495
- # [Encryption Context][2] in the <i> <i>AWS Key Management Service
496
- # Developer Guide</i> </i>.
502
+ # Specifies a grant constraint.
503
+ #
504
+ # AWS KMS supports the `EncryptionContextEquals` and
505
+ # `EncryptionContextSubset` grant constraints. Each constraint value
506
+ # can include up to 8 encryption context pairs. The encryption context
507
+ # value in each constraint cannot exceed 384 characters.
508
+ #
509
+ # These grant constraints allow a [cryptographic operation][1] only
510
+ # when the encryption context in the request matches
511
+ # (`EncryptionContextEquals`) or includes (`EncryptionContextSubset`)
512
+ # the encryption context specified in this structure. For more
513
+ # information about encryption context, see [Encryption Context][2] in
514
+ # the <i> <i>AWS Key Management Service Developer Guide</i> </i>. For
515
+ # information about grant constraints, see [Using grant
516
+ # constraints][3] in the *AWS Key Management Service Developer Guide*.
497
517
  #
498
- # Grant constraints are not applied to operations that do not support
499
- # an encryption context, such as cryptographic operations with
500
- # asymmetric CMKs and management operations, such as DescribeKey or
501
- # RetireGrant.
518
+ # The encryption context grant constraints are supported only on
519
+ # operations that include an encryption context. You cannot use an
520
+ # encryption context grant constraint for cryptographic operations
521
+ # with asymmetric CMKs or for management operations, such as
522
+ # DescribeKey or RetireGrant.
502
523
  #
503
524
  #
504
525
  #
505
526
  # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
506
527
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
528
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints
507
529
  # @return [Types::GrantConstraints]
508
530
  #
509
531
  # @!attribute [rw] grant_tokens
510
532
  # A list of grant tokens.
511
533
  #
512
- # For more information, see [Grant Tokens][1] in the *AWS Key
534
+ # Use a grant token when your permission to call this operation comes
535
+ # from a new grant that has not yet achieved *eventual consistency*.
536
+ # For more information, see [Grant token][1] in the *AWS Key
513
537
  # Management Service Developer Guide*.
514
538
  #
515
539
  #
@@ -551,7 +575,9 @@ module Aws::KMS
551
575
  # @!attribute [rw] grant_token
552
576
  # The grant token.
553
577
  #
554
- # For more information, see [Grant Tokens][1] in the *AWS Key
578
+ # Use a grant token when your permission to call this operation comes
579
+ # from a new grant that has not yet achieved *eventual consistency*.
580
+ # For more information, see [Grant token][1] in the *AWS Key
555
581
  # Management Service Developer Guide*.
556
582
  #
557
583
  #
@@ -562,8 +588,8 @@ module Aws::KMS
562
588
  # @!attribute [rw] grant_id
563
589
  # The unique identifier for the grant.
564
590
  #
565
- # You can use the `GrantId` in a subsequent RetireGrant or RevokeGrant
566
- # operation.
591
+ # You can use the `GrantId` in a ListGrants, RetireGrant, or
592
+ # RevokeGrant operation.
567
593
  # @return [String]
568
594
  #
569
595
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateGrantResponse AWS API Documentation
@@ -592,6 +618,7 @@ module Aws::KMS
592
618
  # tag_value: "TagValueType", # required
593
619
  # },
594
620
  # ],
621
+ # multi_region: false,
595
622
  # }
596
623
  #
597
624
  # @!attribute [rw] policy
@@ -638,7 +665,8 @@ module Aws::KMS
638
665
  # A description of the CMK.
639
666
  #
640
667
  # Use a description that helps you decide whether the CMK is
641
- # appropriate for a task.
668
+ # appropriate for a task. The default value is an empty string (no
669
+ # description).
642
670
  # @return [String]
643
671
  #
644
672
  # @!attribute [rw] key_usage
@@ -727,20 +755,19 @@ module Aws::KMS
727
755
  # @!attribute [rw] origin
728
756
  # The source of the key material for the CMK. You cannot change the
729
757
  # origin after you create the CMK. The default is `AWS_KMS`, which
730
- # means AWS KMS creates the key material.
758
+ # means that AWS KMS creates the key material.
731
759
  #
732
- # When the parameter value is `EXTERNAL`, AWS KMS creates a CMK
733
- # without key material so that you can import key material from your
734
- # existing key management infrastructure. For more information about
735
- # importing key material into AWS KMS, see [Importing Key Material][1]
736
- # in the *AWS Key Management Service Developer Guide*. This value is
737
- # valid only for symmetric CMKs.
760
+ # To create a CMK with no key material (for imported key material),
761
+ # set the value to `EXTERNAL`. For more information about importing
762
+ # key material into AWS KMS, see [Importing Key Material][1] in the
763
+ # *AWS Key Management Service Developer Guide*. This value is valid
764
+ # only for symmetric CMKs.
738
765
  #
739
- # When the parameter value is `AWS_CLOUDHSM`, AWS KMS creates the CMK
740
- # in an AWS KMS [custom key store][2] and creates its key material in
741
- # the associated AWS CloudHSM cluster. You must also use the
742
- # `CustomKeyStoreId` parameter to identify the custom key store. This
743
- # value is valid only for symmetric CMKs.
766
+ # To create a CMK in an AWS KMS [custom key store][2] and create its
767
+ # key material in the associated AWS CloudHSM cluster, set this value
768
+ # to `AWS_CLOUDHSM`. You must also use the `CustomKeyStoreId`
769
+ # parameter to identify the custom key store. This value is valid only
770
+ # for symmetric CMKs.
744
771
  #
745
772
  #
746
773
  #
@@ -756,8 +783,9 @@ module Aws::KMS
756
783
  # associated with the custom key store must have at least two active
757
784
  # HSMs, each in a different Availability Zone in the Region.
758
785
  #
759
- # This parameter is valid only for symmetric CMKs. You cannot create
760
- # an asymmetric CMK in a custom key store.
786
+ # This parameter is valid only for symmetric CMKs and regional CMKs.
787
+ # You cannot create an asymmetric CMK or a multi-Region CMK in a
788
+ # custom key store.
761
789
  #
762
790
  # To find the ID of a custom key store, use the
763
791
  # DescribeCustomKeyStores operation.
@@ -798,27 +826,66 @@ module Aws::KMS
798
826
  # @return [Boolean]
799
827
  #
800
828
  # @!attribute [rw] tags
801
- # One or more tags. Each tag consists of a tag key and a tag value.
802
- # Both the tag key and the tag value are required, but the tag value
803
- # can be an empty (null) string.
829
+ # Assigns one or more tags to the CMK. Use this parameter to tag the
830
+ # CMK when it is created. To tag an existing CMK, use the TagResource
831
+ # operation.
804
832
  #
805
- # When you add tags to an AWS resource, AWS generates a cost
806
- # allocation report with usage and costs aggregated by tags. For
807
- # information about adding, changing, deleting and listing tags for
808
- # CMKs, see [Tagging Keys][1].
833
+ # <note markdown="1"> Tagging or untagging a CMK can allow or deny permission to the CMK.
834
+ # For details, see [Using ABAC in AWS KMS][1] in the *AWS Key
835
+ # Management Service Developer Guide*.
809
836
  #
810
- # Use this parameter to tag the CMK when it is created. To add tags to
811
- # an existing CMK, use the TagResource operation.
837
+ # </note>
812
838
  #
813
839
  # To use this parameter, you must have [kms:TagResource][2] permission
814
840
  # in an IAM policy.
815
841
  #
842
+ # Each tag consists of a tag key and a tag value. Both the tag key and
843
+ # the tag value are required, but the tag value can be an empty (null)
844
+ # string. You cannot have more than one tag on a CMK with the same tag
845
+ # key. If you specify an existing tag key with a different tag value,
846
+ # AWS KMS replaces the current tag value with the specified one.
847
+ #
848
+ # When you assign tags to an AWS resource, AWS generates a cost
849
+ # allocation report with usage and costs aggregated by tags. Tags can
850
+ # also be used to control access to a CMK. For details, see [Tagging
851
+ # Keys][3].
816
852
  #
817
853
  #
818
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
854
+ #
855
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
819
856
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
857
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
820
858
  # @return [Array<Types::Tag>]
821
859
  #
860
+ # @!attribute [rw] multi_region
861
+ # Creates a multi-Region primary key that you can replicate into other
862
+ # AWS Regions. You cannot change this value after you create the CMK.
863
+ #
864
+ # For a multi-Region key, set this parameter to `True`. For a
865
+ # single-Region CMK, omit this parameter or set it to `False`. The
866
+ # default value is `False`.
867
+ #
868
+ # This operation supports *multi-Region keys*, an AWS KMS feature that
869
+ # lets you create multiple interoperable CMKs in different AWS
870
+ # Regions. Because these CMKs have the same key ID, key material, and
871
+ # other metadata, you can use them to encrypt data in one AWS Region
872
+ # and decrypt it in a different AWS Region without making a
873
+ # cross-Region call or exposing the plaintext data. For more
874
+ # information about multi-Region keys, see [Using multi-Region
875
+ # keys][1] in the *AWS Key Management Service Developer Guide*.
876
+ #
877
+ # This value creates a *primary key*, not a replica. To create a
878
+ # *replica key*, use the ReplicateKey operation.
879
+ #
880
+ # You can create a symmetric or asymmetric multi-Region CMK, and you
881
+ # can create a multi-Region CMK with imported key material. However,
882
+ # you cannot create a multi-Region CMK in a custom key store.
883
+ #
884
+ #
885
+ #
886
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
887
+ # @return [Boolean]
888
+ #
822
889
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKeyRequest AWS API Documentation
823
890
  #
824
891
  class CreateKeyRequest < Struct.new(
@@ -829,7 +896,8 @@ module Aws::KMS
829
896
  :origin,
830
897
  :custom_key_store_id,
831
898
  :bypass_policy_lockout_safety_check,
832
- :tags)
899
+ :tags,
900
+ :multi_region)
833
901
  SENSITIVE = []
834
902
  include Aws::Structure
835
903
  end
@@ -1099,8 +1167,12 @@ module Aws::KMS
1099
1167
  # @!attribute [rw] grant_tokens
1100
1168
  # A list of grant tokens.
1101
1169
  #
1102
- # For more information, see [Grant Tokens][1] in the *AWS Key
1103
- # Management Service Developer Guide*.
1170
+ # Use a grant token when your permission to call this operation comes
1171
+ # from a newly created grant that has not yet achieved eventual
1172
+ # consistency. Use a grant token when your permission to call this
1173
+ # operation comes from a new grant that has not yet achieved *eventual
1174
+ # consistency*. For more information, see [Grant token][1] in the *AWS
1175
+ # Key Management Service Developer Guide*.
1104
1176
  #
1105
1177
  #
1106
1178
  #
@@ -1118,10 +1190,10 @@ module Aws::KMS
1118
1190
  # blob. However, it is always recommended as a best practice. This
1119
1191
  # practice ensures that you use the CMK that you intend.
1120
1192
  #
1121
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
1122
- # name, or alias ARN. When using an alias name, prefix it with
1123
- # `"alias/"`. To specify a CMK in a different AWS account, you must
1124
- # use the key ARN or alias ARN.
1193
+ # To specify a CMK, use its key ID, key ARN, alias name, or alias ARN.
1194
+ # When using an alias name, prefix it with `"alias/"`. To specify a
1195
+ # CMK in a different AWS account, you must use the key ARN or alias
1196
+ # ARN.
1125
1197
  #
1126
1198
  # For example:
1127
1199
  #
@@ -1245,7 +1317,7 @@ module Aws::KMS
1245
1317
  # Identifies the CMK from which you are deleting imported key
1246
1318
  # material. The `Origin` of the CMK must be `EXTERNAL`.
1247
1319
  #
1248
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
1320
+ # Specify the key ID or key ARN of the CMK.
1249
1321
  #
1250
1322
  # For example:
1251
1323
  #
@@ -1295,7 +1367,7 @@ module Aws::KMS
1295
1367
  # the key store ID.
1296
1368
  #
1297
1369
  # By default, this operation gets information about all custom key
1298
- # stores in the account and region. To limit the output to a
1370
+ # stores in the account and Region. To limit the output to a
1299
1371
  # particular custom key store, you can use either the
1300
1372
  # `CustomKeyStoreId` or `CustomKeyStoreName` parameter, but not both.
1301
1373
  # @return [String]
@@ -1305,7 +1377,7 @@ module Aws::KMS
1305
1377
  # the friendly name of the custom key store.
1306
1378
  #
1307
1379
  # By default, this operation gets information about all custom key
1308
- # stores in the account and region. To limit the output to a
1380
+ # stores in the account and Region. To limit the output to a
1309
1381
  # particular custom key store, you can use either the
1310
1382
  # `CustomKeyStoreId` or `CustomKeyStoreName` parameter, but not both.
1311
1383
  # @return [String]
@@ -1374,10 +1446,10 @@ module Aws::KMS
1374
1446
  # KMS associates the alias with an [AWS managed CMK][1] and returns
1375
1447
  # its `KeyId` and `Arn` in the response.
1376
1448
  #
1377
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
1378
- # name, or alias ARN. When using an alias name, prefix it with
1379
- # `"alias/"`. To specify a CMK in a different AWS account, you must
1380
- # use the key ARN or alias ARN.
1449
+ # To specify a CMK, use its key ID, key ARN, alias name, or alias ARN.
1450
+ # When using an alias name, prefix it with `"alias/"`. To specify a
1451
+ # CMK in a different AWS account, you must use the key ARN or alias
1452
+ # ARN.
1381
1453
  #
1382
1454
  # For example:
1383
1455
  #
@@ -1401,7 +1473,9 @@ module Aws::KMS
1401
1473
  # @!attribute [rw] grant_tokens
1402
1474
  # A list of grant tokens.
1403
1475
  #
1404
- # For more information, see [Grant Tokens][1] in the *AWS Key
1476
+ # Use a grant token when your permission to call this operation comes
1477
+ # from a new grant that has not yet achieved *eventual consistency*.
1478
+ # For more information, see [Grant token][1] in the *AWS Key
1405
1479
  # Management Service Developer Guide*.
1406
1480
  #
1407
1481
  #
@@ -1438,9 +1512,9 @@ module Aws::KMS
1438
1512
  # }
1439
1513
  #
1440
1514
  # @!attribute [rw] key_id
1441
- # A unique identifier for the customer master key (CMK).
1515
+ # Identifies the customer master key (CMK) to disable.
1442
1516
  #
1443
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
1517
+ # Specify the key ID or key ARN of the CMK.
1444
1518
  #
1445
1519
  # For example:
1446
1520
  #
@@ -1473,7 +1547,7 @@ module Aws::KMS
1473
1547
  # or disable automatic rotation of [asymmetric CMKs][1], CMKs with
1474
1548
  # [imported key material][2], or CMKs in a [custom key store][3].
1475
1549
  #
1476
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
1550
+ # Specify the key ID or key ARN of the CMK.
1477
1551
  #
1478
1552
  # For example:
1479
1553
  #
@@ -1546,9 +1620,9 @@ module Aws::KMS
1546
1620
  # }
1547
1621
  #
1548
1622
  # @!attribute [rw] key_id
1549
- # A unique identifier for the customer master key (CMK).
1623
+ # Identifies the customer master key (CMK) to enable.
1550
1624
  #
1551
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
1625
+ # Specify the key ID or key ARN of the CMK.
1552
1626
  #
1553
1627
  # For example:
1554
1628
  #
@@ -1578,10 +1652,12 @@ module Aws::KMS
1578
1652
  #
1579
1653
  # @!attribute [rw] key_id
1580
1654
  # Identifies a symmetric customer master key (CMK). You cannot enable
1581
- # automatic rotation of asymmetric CMKs, CMKs with imported key
1582
- # material, or CMKs in a [custom key store][1].
1655
+ # automatic rotation of [asymmetric CMKs][1], CMKs with [imported key
1656
+ # material][2], or CMKs in a [custom key store][3]. To enable or
1657
+ # disable automatic rotation of a set of related [multi-Region
1658
+ # keys][4], set the property on the primary key.
1583
1659
  #
1584
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
1660
+ # Specify the key ID or key ARN of the CMK.
1585
1661
  #
1586
1662
  # For example:
1587
1663
  #
@@ -1595,7 +1671,10 @@ module Aws::KMS
1595
1671
  #
1596
1672
  #
1597
1673
  #
1598
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1674
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks
1675
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
1676
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1677
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-replica-key
1599
1678
  # @return [String]
1600
1679
  #
1601
1680
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRotationRequest AWS API Documentation
@@ -1620,12 +1699,13 @@ module Aws::KMS
1620
1699
  # }
1621
1700
  #
1622
1701
  # @!attribute [rw] key_id
1623
- # A unique identifier for the customer master key (CMK).
1702
+ # Identifies the customer master key (CMK) to use in the encryption
1703
+ # operation.
1624
1704
  #
1625
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
1626
- # name, or alias ARN. When using an alias name, prefix it with
1627
- # `"alias/"`. To specify a CMK in a different AWS account, you must
1628
- # use the key ARN or alias ARN.
1705
+ # To specify a CMK, use its key ID, key ARN, alias name, or alias ARN.
1706
+ # When using an alias name, prefix it with `"alias/"`. To specify a
1707
+ # CMK in a different AWS account, you must use the key ARN or alias
1708
+ # ARN.
1629
1709
  #
1630
1710
  # For example:
1631
1711
  #
@@ -1672,7 +1752,9 @@ module Aws::KMS
1672
1752
  # @!attribute [rw] grant_tokens
1673
1753
  # A list of grant tokens.
1674
1754
  #
1675
- # For more information, see [Grant Tokens][1] in the *AWS Key
1755
+ # Use a grant token when your permission to call this operation comes
1756
+ # from a new grant that has not yet achieved *eventual consistency*.
1757
+ # For more information, see [Grant token][1] in the *AWS Key
1676
1758
  # Management Service Developer Guide*.
1677
1759
  #
1678
1760
  #
@@ -1784,10 +1866,10 @@ module Aws::KMS
1784
1866
  # custom key store. To get the type and origin of your CMK, use the
1785
1867
  # DescribeKey operation.
1786
1868
  #
1787
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
1788
- # name, or alias ARN. When using an alias name, prefix it with
1789
- # `"alias/"`. To specify a CMK in a different AWS account, you must
1790
- # use the key ARN or alias ARN.
1869
+ # To specify a CMK, use its key ID, key ARN, alias name, or alias ARN.
1870
+ # When using an alias name, prefix it with `"alias/"`. To specify a
1871
+ # CMK in a different AWS account, you must use the key ARN or alias
1872
+ # ARN.
1791
1873
  #
1792
1874
  # For example:
1793
1875
  #
@@ -1816,7 +1898,9 @@ module Aws::KMS
1816
1898
  # @!attribute [rw] grant_tokens
1817
1899
  # A list of grant tokens.
1818
1900
  #
1819
- # For more information, see [Grant Tokens][1] in the *AWS Key
1901
+ # Use a grant token when your permission to call this operation comes
1902
+ # from a new grant that has not yet achieved *eventual consistency*.
1903
+ # For more information, see [Grant token][1] in the *AWS Key
1820
1904
  # Management Service Developer Guide*.
1821
1905
  #
1822
1906
  #
@@ -1913,10 +1997,10 @@ module Aws::KMS
1913
1997
  # CMK or a CMK in a custom key store. To get the type and origin of
1914
1998
  # your CMK, use the DescribeKey operation.
1915
1999
  #
1916
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
1917
- # name, or alias ARN. When using an alias name, prefix it with
1918
- # `"alias/"`. To specify a CMK in a different AWS account, you must
1919
- # use the key ARN or alias ARN.
2000
+ # To specify a CMK, use its key ID, key ARN, alias name, or alias ARN.
2001
+ # When using an alias name, prefix it with `"alias/"`. To specify a
2002
+ # CMK in a different AWS account, you must use the key ARN or alias
2003
+ # ARN.
1920
2004
  #
1921
2005
  # For example:
1922
2006
  #
@@ -1945,7 +2029,9 @@ module Aws::KMS
1945
2029
  # @!attribute [rw] grant_tokens
1946
2030
  # A list of grant tokens.
1947
2031
  #
1948
- # For more information, see [Grant Tokens][1] in the *AWS Key
2032
+ # Use a grant token when your permission to call this operation comes
2033
+ # from a new grant that has not yet achieved *eventual consistency*.
2034
+ # For more information, see [Grant token][1] in the *AWS Key
1949
2035
  # Management Service Developer Guide*.
1950
2036
  #
1951
2037
  #
@@ -2014,10 +2100,10 @@ module Aws::KMS
2014
2100
  # @!attribute [rw] key_id
2015
2101
  # Identifies the symmetric CMK that encrypts the data key.
2016
2102
  #
2017
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2018
- # name, or alias ARN. When using an alias name, prefix it with
2019
- # `"alias/"`. To specify a CMK in a different AWS account, you must
2020
- # use the key ARN or alias ARN.
2103
+ # To specify a CMK, use its key ID, key ARN, alias name, or alias ARN.
2104
+ # When using an alias name, prefix it with `"alias/"`. To specify a
2105
+ # CMK in a different AWS account, you must use the key ARN or alias
2106
+ # ARN.
2021
2107
  #
2022
2108
  # For example:
2023
2109
  #
@@ -2075,7 +2161,9 @@ module Aws::KMS
2075
2161
  # @!attribute [rw] grant_tokens
2076
2162
  # A list of grant tokens.
2077
2163
  #
2078
- # For more information, see [Grant Tokens][1] in the *AWS Key
2164
+ # Use a grant token when your permission to call this operation comes
2165
+ # from a new grant that has not yet achieved *eventual consistency*.
2166
+ # For more information, see [Grant token][1] in the *AWS Key
2079
2167
  # Management Service Developer Guide*.
2080
2168
  #
2081
2169
  #
@@ -2144,10 +2232,10 @@ module Aws::KMS
2144
2232
  # The identifier of the symmetric customer master key (CMK) that
2145
2233
  # encrypts the data key.
2146
2234
  #
2147
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2148
- # name, or alias ARN. When using an alias name, prefix it with
2149
- # `"alias/"`. To specify a CMK in a different AWS account, you must
2150
- # use the key ARN or alias ARN.
2235
+ # To specify a CMK, use its key ID, key ARN, alias name, or alias ARN.
2236
+ # When using an alias name, prefix it with `"alias/"`. To specify a
2237
+ # CMK in a different AWS account, you must use the key ARN or alias
2238
+ # ARN.
2151
2239
  #
2152
2240
  # For example:
2153
2241
  #
@@ -2198,7 +2286,9 @@ module Aws::KMS
2198
2286
  # @!attribute [rw] grant_tokens
2199
2287
  # A list of grant tokens.
2200
2288
  #
2201
- # For more information, see [Grant Tokens][1] in the *AWS Key
2289
+ # Use a grant token when your permission to call this operation comes
2290
+ # from a new grant that has not yet achieved *eventual consistency*.
2291
+ # For more information, see [Grant token][1] in the *AWS Key
2202
2292
  # Management Service Developer Guide*.
2203
2293
  #
2204
2294
  #
@@ -2294,9 +2384,9 @@ module Aws::KMS
2294
2384
  # }
2295
2385
  #
2296
2386
  # @!attribute [rw] key_id
2297
- # A unique identifier for the customer master key (CMK).
2387
+ # Gets the key policy for the specified customer master key (CMK).
2298
2388
  #
2299
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
2389
+ # Specify the key ID or key ARN of the CMK.
2300
2390
  #
2301
2391
  # For example:
2302
2392
  #
@@ -2343,10 +2433,11 @@ module Aws::KMS
2343
2433
  # }
2344
2434
  #
2345
2435
  # @!attribute [rw] key_id
2346
- # A unique identifier for the customer master key (CMK).
2436
+ # Gets the rotation status for the specified customer master key
2437
+ # (CMK).
2347
2438
  #
2348
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To
2349
- # specify a CMK in a different AWS account, you must use the key ARN.
2439
+ # Specify the key ID or key ARN of the CMK. To specify a CMK in a
2440
+ # different AWS account, you must use the key ARN.
2350
2441
  #
2351
2442
  # For example:
2352
2443
  #
@@ -2392,7 +2483,7 @@ module Aws::KMS
2392
2483
  # The identifier of the symmetric CMK into which you will import key
2393
2484
  # material. The `Origin` of the CMK must be `EXTERNAL`.
2394
2485
  #
2395
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
2486
+ # Specify the key ID or key ARN of the CMK.
2396
2487
  #
2397
2488
  # For example:
2398
2489
  #
@@ -2479,10 +2570,10 @@ module Aws::KMS
2479
2570
  # @!attribute [rw] key_id
2480
2571
  # Identifies the asymmetric CMK that includes the public key.
2481
2572
  #
2482
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2483
- # name, or alias ARN. When using an alias name, prefix it with
2484
- # `"alias/"`. To specify a CMK in a different AWS account, you must
2485
- # use the key ARN or alias ARN.
2573
+ # To specify a CMK, use its key ID, key ARN, alias name, or alias ARN.
2574
+ # When using an alias name, prefix it with `"alias/"`. To specify a
2575
+ # CMK in a different AWS account, you must use the key ARN or alias
2576
+ # ARN.
2486
2577
  #
2487
2578
  # For example:
2488
2579
  #
@@ -2502,7 +2593,9 @@ module Aws::KMS
2502
2593
  # @!attribute [rw] grant_tokens
2503
2594
  # A list of grant tokens.
2504
2595
  #
2505
- # For more information, see [Grant Tokens][1] in the *AWS Key
2596
+ # Use a grant token when your permission to call this operation comes
2597
+ # from a new grant that has not yet achieved *eventual consistency*.
2598
+ # For more information, see [Grant token][1] in the *AWS Key
2506
2599
  # Management Service Developer Guide*.
2507
2600
  #
2508
2601
  #
@@ -2750,7 +2843,7 @@ module Aws::KMS
2750
2843
  # same CMK specified in the `KeyID` parameter of the corresponding
2751
2844
  # GetParametersForImport request.
2752
2845
  #
2753
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
2846
+ # Specify the key ID or key ARN of the CMK.
2754
2847
  #
2755
2848
  # For example:
2756
2849
  #
@@ -3120,8 +3213,14 @@ module Aws::KMS
3120
3213
  # @return [String]
3121
3214
  #
3122
3215
  # @!attribute [rw] deletion_date
3123
- # The date and time after which AWS KMS deletes the CMK. This value is
3124
- # present only when `KeyState` is `PendingDeletion`.
3216
+ # The date and time after which AWS KMS deletes this CMK. This value
3217
+ # is present only when the CMK is scheduled for deletion, that is,
3218
+ # when its `KeyState` is `PendingDeletion`.
3219
+ #
3220
+ # When the primary key in a multi-Region key is scheduled for deletion
3221
+ # but still has replica keys, its key state is
3222
+ # `PendingReplicaDeletion` and the length of its waiting period is
3223
+ # displayed in the `PendingDeletionWindowInDays` field.
3125
3224
  # @return [Time]
3126
3225
  #
3127
3226
  # @!attribute [rw] valid_to
@@ -3188,7 +3287,7 @@ module Aws::KMS
3188
3287
  # The encryption algorithms that the CMK supports. You cannot use the
3189
3288
  # CMK with other encryption algorithms within AWS KMS.
3190
3289
  #
3191
- # This field appears only when the `KeyUsage` of the CMK is
3290
+ # This value is present only when the `KeyUsage` of the CMK is
3192
3291
  # `ENCRYPT_DECRYPT`.
3193
3292
  # @return [Array<String>]
3194
3293
  #
@@ -3200,6 +3299,57 @@ module Aws::KMS
3200
3299
  # `SIGN_VERIFY`.
3201
3300
  # @return [Array<String>]
3202
3301
  #
3302
+ # @!attribute [rw] multi_region
3303
+ # Indicates whether the CMK is a multi-Region (`True`) or regional
3304
+ # (`False`) key. This value is `True` for multi-Region primary and
3305
+ # replica CMKs and `False` for regional CMKs.
3306
+ #
3307
+ # For more information about multi-Region keys, see [Using
3308
+ # multi-Region keys][1] in the *AWS Key Management Service Developer
3309
+ # Guide*.
3310
+ #
3311
+ #
3312
+ #
3313
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
3314
+ # @return [Boolean]
3315
+ #
3316
+ # @!attribute [rw] multi_region_configuration
3317
+ # Lists the primary and replica CMKs in same multi-Region CMK. This
3318
+ # field is present only when the value of the `MultiRegion` field is
3319
+ # `True`.
3320
+ #
3321
+ # For more information about any listed CMK, use the DescribeKey
3322
+ # operation.
3323
+ #
3324
+ # * `MultiRegionKeyType` indicates whether the CMK is a `PRIMARY` or
3325
+ # `REPLICA` key.
3326
+ #
3327
+ # * `PrimaryKey` displays the key ARN and Region of the primary key.
3328
+ # This field displays the current CMK if it is the primary key.
3329
+ #
3330
+ # * `ReplicaKeys` displays the key ARNs and Regions of all replica
3331
+ # keys. This field includes the current CMK if it is a replica key.
3332
+ # @return [Types::MultiRegionConfiguration]
3333
+ #
3334
+ # @!attribute [rw] pending_deletion_window_in_days
3335
+ # The waiting period before the primary key in a multi-Region key is
3336
+ # deleted. This waiting period begins when the last of its replica
3337
+ # keys is deleted. This value is present only when the `KeyState` of
3338
+ # the CMK is `PendingReplicaDeletion`. That indicates that the CMK is
3339
+ # the primary key in a multi-Region key, it is scheduled for deletion,
3340
+ # and it still has existing replica keys.
3341
+ #
3342
+ # When a regional CMK or a replica key in a multi-Region key is
3343
+ # scheduled for deletion, its deletion date is displayed in the
3344
+ # `DeletionDate` field. However, when the primary key in a
3345
+ # multi-Region key is scheduled for deletion, its waiting period
3346
+ # doesn't begin until all of its replica keys are deleted. This value
3347
+ # displays that waiting period. When the last replica key in the
3348
+ # multi-Region key is deleted, the `KeyState` of the scheduled primary
3349
+ # key changes from `PendingReplicaDeletion` to `PendingDeletion` and
3350
+ # the deletion date appears in the `DeletionDate` field.
3351
+ # @return [Integer]
3352
+ #
3203
3353
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KeyMetadata AWS API Documentation
3204
3354
  #
3205
3355
  class KeyMetadata < Struct.new(
@@ -3220,7 +3370,10 @@ module Aws::KMS
3220
3370
  :key_manager,
3221
3371
  :customer_master_key_spec,
3222
3372
  :encryption_algorithms,
3223
- :signing_algorithms)
3373
+ :signing_algorithms,
3374
+ :multi_region,
3375
+ :multi_region_configuration,
3376
+ :pending_deletion_window_in_days)
3224
3377
  SENSITIVE = []
3225
3378
  include Aws::Structure
3226
3379
  end
@@ -3274,7 +3427,7 @@ module Aws::KMS
3274
3427
  # This parameter is optional. If you omit it, `ListAliases` returns
3275
3428
  # all aliases in the account and Region.
3276
3429
  #
3277
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
3430
+ # Specify the key ID or key ARN of the CMK.
3278
3431
  #
3279
3432
  # For example:
3280
3433
  #
@@ -3346,6 +3499,8 @@ module Aws::KMS
3346
3499
  # limit: 1,
3347
3500
  # marker: "MarkerType",
3348
3501
  # key_id: "KeyIdType", # required
3502
+ # grant_id: "GrantIdType",
3503
+ # grantee_principal: "PrincipalIdType",
3349
3504
  # }
3350
3505
  #
3351
3506
  # @!attribute [rw] limit
@@ -3365,10 +3520,11 @@ module Aws::KMS
3365
3520
  # @return [String]
3366
3521
  #
3367
3522
  # @!attribute [rw] key_id
3368
- # A unique identifier for the customer master key (CMK).
3523
+ # Returns only grants for the specified customer master key (CMK).
3524
+ # This parameter is required.
3369
3525
  #
3370
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To
3371
- # specify a CMK in a different AWS account, you must use the key ARN.
3526
+ # Specify the key ID or key ARN of the CMK. To specify a CMK in a
3527
+ # different AWS account, you must use the key ARN.
3372
3528
  #
3373
3529
  # For example:
3374
3530
  #
@@ -3381,12 +3537,24 @@ module Aws::KMS
3381
3537
  # DescribeKey.
3382
3538
  # @return [String]
3383
3539
  #
3540
+ # @!attribute [rw] grant_id
3541
+ # Returns only the grant with the specified grant ID. The grant ID
3542
+ # uniquely identifies the grant.
3543
+ # @return [String]
3544
+ #
3545
+ # @!attribute [rw] grantee_principal
3546
+ # Returns only grants where the specified principal is the grantee
3547
+ # principal for the grant.
3548
+ # @return [String]
3549
+ #
3384
3550
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListGrantsRequest AWS API Documentation
3385
3551
  #
3386
3552
  class ListGrantsRequest < Struct.new(
3387
3553
  :limit,
3388
3554
  :marker,
3389
- :key_id)
3555
+ :key_id,
3556
+ :grant_id,
3557
+ :grantee_principal)
3390
3558
  SENSITIVE = []
3391
3559
  include Aws::Structure
3392
3560
  end
@@ -3427,9 +3595,10 @@ module Aws::KMS
3427
3595
  # }
3428
3596
  #
3429
3597
  # @!attribute [rw] key_id
3430
- # A unique identifier for the customer master key (CMK).
3598
+ # Gets the names of key policies for the specified customer master key
3599
+ # (CMK).
3431
3600
  #
3432
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
3601
+ # Specify the key ID or key ARN of the CMK.
3433
3602
  #
3434
3603
  # For example:
3435
3604
  #
@@ -3565,9 +3734,9 @@ module Aws::KMS
3565
3734
  # }
3566
3735
  #
3567
3736
  # @!attribute [rw] key_id
3568
- # A unique identifier for the customer master key (CMK).
3737
+ # Gets tags on the specified customer master key (CMK).
3569
3738
  #
3570
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
3739
+ # Specify the key ID or key ARN of the CMK.
3571
3740
  #
3572
3741
  # For example:
3573
3742
  #
@@ -3610,6 +3779,16 @@ module Aws::KMS
3610
3779
 
3611
3780
  # @!attribute [rw] tags
3612
3781
  # A list of tags. Each tag consists of a tag key and a tag value.
3782
+ #
3783
+ # <note markdown="1"> Tagging or untagging a CMK can allow or deny permission to the CMK.
3784
+ # For details, see [Using ABAC in AWS KMS][1] in the *AWS Key
3785
+ # Management Service Developer Guide*.
3786
+ #
3787
+ # </note>
3788
+ #
3789
+ #
3790
+ #
3791
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
3613
3792
  # @return [Array<Types::Tag>]
3614
3793
  #
3615
3794
  # @!attribute [rw] next_marker
@@ -3702,6 +3881,58 @@ module Aws::KMS
3702
3881
  include Aws::Structure
3703
3882
  end
3704
3883
 
3884
+ # Describes the configuration of this multi-Region CMK. This field
3885
+ # appears only when the CMK is a primary or replica of a multi-Region
3886
+ # CMK.
3887
+ #
3888
+ # For more information about any listed CMK, use the DescribeKey
3889
+ # operation.
3890
+ #
3891
+ # @!attribute [rw] multi_region_key_type
3892
+ # Indicates whether the CMK is a `PRIMARY` or `REPLICA` key.
3893
+ # @return [String]
3894
+ #
3895
+ # @!attribute [rw] primary_key
3896
+ # Displays the key ARN and Region of the primary key. This field
3897
+ # includes the current CMK if it is the primary key.
3898
+ # @return [Types::MultiRegionKey]
3899
+ #
3900
+ # @!attribute [rw] replica_keys
3901
+ # displays the key ARNs and Regions of all replica keys. This field
3902
+ # includes the current CMK if it is a replica key.
3903
+ # @return [Array<Types::MultiRegionKey>]
3904
+ #
3905
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/MultiRegionConfiguration AWS API Documentation
3906
+ #
3907
+ class MultiRegionConfiguration < Struct.new(
3908
+ :multi_region_key_type,
3909
+ :primary_key,
3910
+ :replica_keys)
3911
+ SENSITIVE = []
3912
+ include Aws::Structure
3913
+ end
3914
+
3915
+ # Describes the primary or replica key in a multi-Region key.
3916
+ #
3917
+ # @!attribute [rw] arn
3918
+ # Displays the key ARN of a primary or replica key of a multi-Region
3919
+ # key.
3920
+ # @return [String]
3921
+ #
3922
+ # @!attribute [rw] region
3923
+ # Displays the AWS Region of a primary or replica key in a
3924
+ # multi-Region key.
3925
+ # @return [String]
3926
+ #
3927
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/MultiRegionKey AWS API Documentation
3928
+ #
3929
+ class MultiRegionKey < Struct.new(
3930
+ :arn,
3931
+ :region)
3932
+ SENSITIVE = []
3933
+ include Aws::Structure
3934
+ end
3935
+
3705
3936
  # The request was rejected because the specified entity or resource
3706
3937
  # could not be found.
3707
3938
  #
@@ -3727,9 +3958,9 @@ module Aws::KMS
3727
3958
  # }
3728
3959
  #
3729
3960
  # @!attribute [rw] key_id
3730
- # A unique identifier for the customer master key (CMK).
3961
+ # Sets the key policy on the specified customer master key (CMK).
3731
3962
  #
3732
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
3963
+ # Specify the key ID or key ARN of the CMK.
3733
3964
  #
3734
3965
  # For example:
3735
3966
  #
@@ -3866,10 +4097,10 @@ module Aws::KMS
3866
4097
  # blob. However, it is always recommended as a best practice. This
3867
4098
  # practice ensures that you use the CMK that you intend.
3868
4099
  #
3869
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
3870
- # name, or alias ARN. When using an alias name, prefix it with
3871
- # `"alias/"`. To specify a CMK in a different AWS account, you must
3872
- # use the key ARN or alias ARN.
4100
+ # To specify a CMK, use its key ID, key ARN, alias name, or alias ARN.
4101
+ # When using an alias name, prefix it with `"alias/"`. To specify a
4102
+ # CMK in a different AWS account, you must use the key ARN or alias
4103
+ # ARN.
3873
4104
  #
3874
4105
  # For example:
3875
4106
  #
@@ -3892,10 +4123,10 @@ module Aws::KMS
3892
4123
  # `ENCRYPT_DECRYPT`. To find the `KeyUsage` value of a CMK, use the
3893
4124
  # DescribeKey operation.
3894
4125
  #
3895
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
3896
- # name, or alias ARN. When using an alias name, prefix it with
3897
- # `"alias/"`. To specify a CMK in a different AWS account, you must
3898
- # use the key ARN or alias ARN.
4126
+ # To specify a CMK, use its key ID, key ARN, alias name, or alias ARN.
4127
+ # When using an alias name, prefix it with `"alias/"`. To specify a
4128
+ # CMK in a different AWS account, you must use the key ARN or alias
4129
+ # ARN.
3899
4130
  #
3900
4131
  # For example:
3901
4132
  #
@@ -3961,7 +4192,9 @@ module Aws::KMS
3961
4192
  # @!attribute [rw] grant_tokens
3962
4193
  # A list of grant tokens.
3963
4194
  #
3964
- # For more information, see [Grant Tokens][1] in the *AWS Key
4195
+ # Use a grant token when your permission to call this operation comes
4196
+ # from a new grant that has not yet achieved *eventual consistency*.
4197
+ # For more information, see [Grant token][1] in the *AWS Key
3965
4198
  # Management Service Developer Guide*.
3966
4199
  #
3967
4200
  #
@@ -4023,6 +4256,221 @@ module Aws::KMS
4023
4256
  include Aws::Structure
4024
4257
  end
4025
4258
 
4259
+ # @note When making an API call, you may pass ReplicateKeyRequest
4260
+ # data as a hash:
4261
+ #
4262
+ # {
4263
+ # key_id: "KeyIdType", # required
4264
+ # replica_region: "RegionType", # required
4265
+ # policy: "PolicyType",
4266
+ # bypass_policy_lockout_safety_check: false,
4267
+ # description: "DescriptionType",
4268
+ # tags: [
4269
+ # {
4270
+ # tag_key: "TagKeyType", # required
4271
+ # tag_value: "TagValueType", # required
4272
+ # },
4273
+ # ],
4274
+ # }
4275
+ #
4276
+ # @!attribute [rw] key_id
4277
+ # Identifies the multi-Region primary key that is being replicated. To
4278
+ # determine whether a CMK is a multi-Region primary key, use the
4279
+ # DescribeKey operation to check the value of the `MultiRegionKeyType`
4280
+ # property.
4281
+ #
4282
+ # Specify the key ID or key ARN of a multi-Region primary key.
4283
+ #
4284
+ # For example:
4285
+ #
4286
+ # * Key ID: `mrk-1234abcd12ab34cd56ef1234567890ab`
4287
+ #
4288
+ # * Key ARN:
4289
+ # `arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab`
4290
+ #
4291
+ # To get the key ID and key ARN for a CMK, use ListKeys or
4292
+ # DescribeKey.
4293
+ # @return [String]
4294
+ #
4295
+ # @!attribute [rw] replica_region
4296
+ # The Region ID of the AWS Region for this replica key.
4297
+ #
4298
+ # Enter the Region ID, such as `us-east-1` or `ap-southeast-2`. For a
4299
+ # list of AWS Regions in which AWS KMS is supported, see [AWS KMS
4300
+ # service endpoints][1] in the *Amazon Web Services General
4301
+ # Reference*.
4302
+ #
4303
+ # The replica must be in a different AWS Region than its primary key
4304
+ # and other replicas of that primary key, but in the same AWS
4305
+ # partition. AWS KMS must be available in the replica Region. If the
4306
+ # Region is not enabled by default, the AWS account must be enabled in
4307
+ # the Region.
4308
+ #
4309
+ # For information about AWS partitions, see [Amazon Resource Names
4310
+ # (ARNs) in the *Amazon Web Services General Reference*.][2] For
4311
+ # information about enabling and disabling Regions, see [Enabling a
4312
+ # Region][3] and [Disabling a Region][4] in the *Amazon Web Services
4313
+ # General Reference*.
4314
+ #
4315
+ #
4316
+ #
4317
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region
4318
+ # [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
4319
+ # [3]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable
4320
+ # [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable
4321
+ # @return [String]
4322
+ #
4323
+ # @!attribute [rw] policy
4324
+ # The key policy to attach to the CMK. This parameter is optional. If
4325
+ # you do not provide a key policy, AWS KMS attaches the [default key
4326
+ # policy][1] to the CMK.
4327
+ #
4328
+ # The key policy is not a shared property of multi-Region keys. You
4329
+ # can specify the same key policy or a different key policy for each
4330
+ # key in a set of related multi-Region keys. AWS KMS does not
4331
+ # synchronize this property.
4332
+ #
4333
+ # If you provide a key policy, it must meet the following criteria:
4334
+ #
4335
+ # * If you don't set `BypassPolicyLockoutSafetyCheck` to true, the
4336
+ # key policy must give the caller `kms:PutKeyPolicy` permission on
4337
+ # the replica CMK. This reduces the risk that the CMK becomes
4338
+ # unmanageable. For more information, refer to the scenario in the
4339
+ # [Default Key Policy][2] section of the <i> <i>AWS Key Management
4340
+ # Service Developer Guide</i> </i>.
4341
+ #
4342
+ # * Each statement in the key policy must contain one or more
4343
+ # principals. The principals in the key policy must exist and be
4344
+ # visible to AWS KMS. When you create a new AWS principal (for
4345
+ # example, an IAM user or role), you might need to enforce a delay
4346
+ # before including the new principal in a key policy because the new
4347
+ # principal might not be immediately visible to AWS KMS. For more
4348
+ # information, see [Changes that I make are not always immediately
4349
+ # visible][3] in the *AWS Identity and Access Management User
4350
+ # Guide*.
4351
+ #
4352
+ # * The key policy size quota is 32 kilobytes (32768 bytes).
4353
+ #
4354
+ #
4355
+ #
4356
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
4357
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
4358
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
4359
+ # @return [String]
4360
+ #
4361
+ # @!attribute [rw] bypass_policy_lockout_safety_check
4362
+ # A flag to indicate whether to bypass the key policy lockout safety
4363
+ # check.
4364
+ #
4365
+ # Setting this value to true increases the risk that the CMK becomes
4366
+ # unmanageable. Do not set this value to true indiscriminately.
4367
+ #
4368
+ # For more information, refer to the scenario in the [Default Key
4369
+ # Policy][1] section in the *AWS Key Management Service Developer
4370
+ # Guide*.
4371
+ #
4372
+ # Use this parameter only when you intend to prevent the principal
4373
+ # that is making the request from making a subsequent `PutKeyPolicy`
4374
+ # request on the CMK.
4375
+ #
4376
+ # The default value is false.
4377
+ #
4378
+ #
4379
+ #
4380
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
4381
+ # @return [Boolean]
4382
+ #
4383
+ # @!attribute [rw] description
4384
+ # A description of the CMK. Use a description that helps you decide
4385
+ # whether the CMK is appropriate for a task. The default value is an
4386
+ # empty string (no description).
4387
+ #
4388
+ # The description is not a shared property of multi-Region keys. You
4389
+ # can specify the same description or a different description for each
4390
+ # key in a set of related multi-Region keys. AWS KMS does not
4391
+ # synchronize this property.
4392
+ # @return [String]
4393
+ #
4394
+ # @!attribute [rw] tags
4395
+ # Assigns one or more tags to the replica key. Use this parameter to
4396
+ # tag the CMK when it is created. To tag an existing CMK, use the
4397
+ # TagResource operation.
4398
+ #
4399
+ # <note markdown="1"> Tagging or untagging a CMK can allow or deny permission to the CMK.
4400
+ # For details, see [Using ABAC in AWS KMS][1] in the *AWS Key
4401
+ # Management Service Developer Guide*.
4402
+ #
4403
+ # </note>
4404
+ #
4405
+ # To use this parameter, you must have [kms:TagResource][2] permission
4406
+ # in an IAM policy.
4407
+ #
4408
+ # Tags are not a shared property of multi-Region keys. You can specify
4409
+ # the same tags or different tags for each key in a set of related
4410
+ # multi-Region keys. AWS KMS does not synchronize this property.
4411
+ #
4412
+ # Each tag consists of a tag key and a tag value. Both the tag key and
4413
+ # the tag value are required, but the tag value can be an empty (null)
4414
+ # string. You cannot have more than one tag on a CMK with the same tag
4415
+ # key. If you specify an existing tag key with a different tag value,
4416
+ # AWS KMS replaces the current tag value with the specified one.
4417
+ #
4418
+ # When you assign tags to an AWS resource, AWS generates a cost
4419
+ # allocation report with usage and costs aggregated by tags. Tags can
4420
+ # also be used to control access to a CMK. For details, see [Tagging
4421
+ # Keys][3].
4422
+ #
4423
+ #
4424
+ #
4425
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
4426
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4427
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
4428
+ # @return [Array<Types::Tag>]
4429
+ #
4430
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReplicateKeyRequest AWS API Documentation
4431
+ #
4432
+ class ReplicateKeyRequest < Struct.new(
4433
+ :key_id,
4434
+ :replica_region,
4435
+ :policy,
4436
+ :bypass_policy_lockout_safety_check,
4437
+ :description,
4438
+ :tags)
4439
+ SENSITIVE = []
4440
+ include Aws::Structure
4441
+ end
4442
+
4443
+ # @!attribute [rw] replica_key_metadata
4444
+ # Displays details about the new replica CMK, including its Amazon
4445
+ # Resource Name ([key ARN][1]) and [key state][2]. It also includes
4446
+ # the ARN and AWS Region of its primary key and other replica keys.
4447
+ #
4448
+ #
4449
+ #
4450
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
4451
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4452
+ # @return [Types::KeyMetadata]
4453
+ #
4454
+ # @!attribute [rw] replica_policy
4455
+ # The key policy of the new replica key. The value is a key policy
4456
+ # document in JSON format.
4457
+ # @return [String]
4458
+ #
4459
+ # @!attribute [rw] replica_tags
4460
+ # The tags on the new replica key. The value is a list of tag key and
4461
+ # tag value pairs.
4462
+ # @return [Array<Types::Tag>]
4463
+ #
4464
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReplicateKeyResponse AWS API Documentation
4465
+ #
4466
+ class ReplicateKeyResponse < Struct.new(
4467
+ :replica_key_metadata,
4468
+ :replica_policy,
4469
+ :replica_tags)
4470
+ SENSITIVE = []
4471
+ include Aws::Structure
4472
+ end
4473
+
4026
4474
  # @note When making an API call, you may pass RetireGrantRequest
4027
4475
  # data as a hash:
4028
4476
  #
@@ -4033,19 +4481,31 @@ module Aws::KMS
4033
4481
  # }
4034
4482
  #
4035
4483
  # @!attribute [rw] grant_token
4036
- # Token that identifies the grant to be retired.
4484
+ # Identifies the grant to be retired. You can use a grant token to
4485
+ # identify a new grant even before it has achieved eventual
4486
+ # consistency.
4487
+ #
4488
+ # Only the CreateGrant operation returns a grant token. For details,
4489
+ # see [Grant token][1] and [Eventual consistency][2] in the *AWS Key
4490
+ # Management Service Developer Guide*.
4491
+ #
4492
+ #
4493
+ #
4494
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
4495
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-eventual-consistency
4037
4496
  # @return [String]
4038
4497
  #
4039
4498
  # @!attribute [rw] key_id
4040
- # The Amazon Resource Name (ARN) of the CMK associated with the grant.
4499
+ # The key ARN CMK associated with the grant. To find the key ARN, use
4500
+ # the ListKeys operation.
4041
4501
  #
4042
4502
  # For example:
4043
4503
  # `arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4044
4504
  # @return [String]
4045
4505
  #
4046
4506
  # @!attribute [rw] grant_id
4047
- # Unique identifier of the grant to retire. The grant ID is returned
4048
- # in the response to a `CreateGrant` operation.
4507
+ # Identifies the grant to retire. To get the grant ID, use
4508
+ # CreateGrant, ListGrants, or ListRetirableGrants.
4049
4509
  #
4050
4510
  # * Grant ID Example -
4051
4511
  # 0123456789012345678901234567890123456789012345678901234567890123
@@ -4072,11 +4532,12 @@ module Aws::KMS
4072
4532
  # }
4073
4533
  #
4074
4534
  # @!attribute [rw] key_id
4075
- # A unique identifier for the customer master key associated with the
4076
- # grant.
4535
+ # A unique identifier for the customer master key (CMK) associated
4536
+ # with the grant. To get the key ID and key ARN for a CMK, use
4537
+ # ListKeys or DescribeKey.
4077
4538
  #
4078
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To
4079
- # specify a CMK in a different AWS account, you must use the key ARN.
4539
+ # Specify the key ID or key ARN of the CMK. To specify a CMK in a
4540
+ # different AWS account, you must use the key ARN.
4080
4541
  #
4081
4542
  # For example:
4082
4543
  #
@@ -4090,7 +4551,8 @@ module Aws::KMS
4090
4551
  # @return [String]
4091
4552
  #
4092
4553
  # @!attribute [rw] grant_id
4093
- # Identifier of the grant to be revoked.
4554
+ # Identifies the grant to revoke. To get the grant ID, use
4555
+ # CreateGrant, ListGrants, or ListRetirableGrants.
4094
4556
  # @return [String]
4095
4557
  #
4096
4558
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RevokeGrantRequest AWS API Documentation
@@ -4113,7 +4575,7 @@ module Aws::KMS
4113
4575
  # @!attribute [rw] key_id
4114
4576
  # The unique identifier of the customer master key (CMK) to delete.
4115
4577
  #
4116
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
4578
+ # Specify the key ID or key ARN of the CMK.
4117
4579
  #
4118
4580
  # For example:
4119
4581
  #
@@ -4130,6 +4592,10 @@ module Aws::KMS
4130
4592
  # The waiting period, specified in number of days. After the waiting
4131
4593
  # period ends, AWS KMS deletes the customer master key (CMK).
4132
4594
  #
4595
+ # If the CMK is a multi-Region primary key with replicas, the waiting
4596
+ # period begins when the last of its replica keys is deleted.
4597
+ # Otherwise, the waiting period begins immediately.
4598
+ #
4133
4599
  # This value is optional. If you include a value, it must be between 7
4134
4600
  # and 30, inclusive. If you do not include a value, it defaults to 30.
4135
4601
  # @return [Integer]
@@ -4155,13 +4621,39 @@ module Aws::KMS
4155
4621
  # @!attribute [rw] deletion_date
4156
4622
  # The date and time after which AWS KMS deletes the customer master
4157
4623
  # key (CMK).
4624
+ #
4625
+ # If the CMK is a multi-Region primary key with replica keys, this
4626
+ # field does not appear. The deletion date for the primary key isn't
4627
+ # known until its last replica key is deleted.
4158
4628
  # @return [Time]
4159
4629
  #
4630
+ # @!attribute [rw] key_state
4631
+ # The current status of the CMK.
4632
+ #
4633
+ # For more information about how key state affects the use of a CMK,
4634
+ # see [Key state: Effect on your CMK][1] in the *AWS Key Management
4635
+ # Service Developer Guide*.
4636
+ #
4637
+ #
4638
+ #
4639
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4640
+ # @return [String]
4641
+ #
4642
+ # @!attribute [rw] pending_window_in_days
4643
+ # The waiting period before the CMK is deleted.
4644
+ #
4645
+ # If the CMK is a multi-Region primary key with replicas, the waiting
4646
+ # period begins when the last of its replica keys is deleted.
4647
+ # Otherwise, the waiting period begins immediately.
4648
+ # @return [Integer]
4649
+ #
4160
4650
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ScheduleKeyDeletionResponse AWS API Documentation
4161
4651
  #
4162
4652
  class ScheduleKeyDeletionResponse < Struct.new(
4163
4653
  :key_id,
4164
- :deletion_date)
4654
+ :deletion_date,
4655
+ :key_state,
4656
+ :pending_window_in_days)
4165
4657
  SENSITIVE = []
4166
4658
  include Aws::Structure
4167
4659
  end
@@ -4183,10 +4675,10 @@ module Aws::KMS
4183
4675
  # must be `SIGN_VERIFY`. To find the `KeyUsage` of a CMK, use the
4184
4676
  # DescribeKey operation.
4185
4677
  #
4186
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
4187
- # name, or alias ARN. When using an alias name, prefix it with
4188
- # `"alias/"`. To specify a CMK in a different AWS account, you must
4189
- # use the key ARN or alias ARN.
4678
+ # To specify a CMK, use its key ID, key ARN, alias name, or alias ARN.
4679
+ # When using an alias name, prefix it with `"alias/"`. To specify a
4680
+ # CMK in a different AWS account, you must use the key ARN or alias
4681
+ # ARN.
4190
4682
  #
4191
4683
  # For example:
4192
4684
  #
@@ -4220,7 +4712,9 @@ module Aws::KMS
4220
4712
  # @!attribute [rw] grant_tokens
4221
4713
  # A list of grant tokens.
4222
4714
  #
4223
- # For more information, see [Grant Tokens][1] in the *AWS Key
4715
+ # Use a grant token when your permission to call this operation comes
4716
+ # from a new grant that has not yet achieved *eventual consistency*.
4717
+ # For more information, see [Grant token][1] in the *AWS Key
4224
4718
  # Management Service Developer Guide*.
4225
4719
  #
4226
4720
  #
@@ -4357,7 +4851,7 @@ module Aws::KMS
4357
4851
  # @!attribute [rw] key_id
4358
4852
  # Identifies a customer managed CMK in the account and Region.
4359
4853
  #
4360
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
4854
+ # Specify the key ID or key ARN of the CMK.
4361
4855
  #
4362
4856
  # For example:
4363
4857
  #
@@ -4415,7 +4909,7 @@ module Aws::KMS
4415
4909
  # @!attribute [rw] key_id
4416
4910
  # Identifies the CMK from which you are removing tags.
4417
4911
  #
4418
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
4912
+ # Specify the key ID or key ARN of the CMK.
4419
4913
  #
4420
4914
  # For example:
4421
4915
  #
@@ -4466,7 +4960,7 @@ module Aws::KMS
4466
4960
  # CMK (both symmetric or both asymmetric) and they must have the same
4467
4961
  # key usage.
4468
4962
  #
4469
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
4963
+ # Specify the key ID or key ARN of the CMK.
4470
4964
  #
4471
4965
  # For example:
4472
4966
  #
@@ -4569,9 +5063,9 @@ module Aws::KMS
4569
5063
  # }
4570
5064
  #
4571
5065
  # @!attribute [rw] key_id
4572
- # A unique identifier for the customer master key (CMK).
5066
+ # Updates the description of the specified customer master key (CMK).
4573
5067
  #
4574
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
5068
+ # Specify the key ID or key ARN of the CMK.
4575
5069
  #
4576
5070
  # For example:
4577
5071
  #
@@ -4597,6 +5091,49 @@ module Aws::KMS
4597
5091
  include Aws::Structure
4598
5092
  end
4599
5093
 
5094
+ # @note When making an API call, you may pass UpdatePrimaryRegionRequest
5095
+ # data as a hash:
5096
+ #
5097
+ # {
5098
+ # key_id: "KeyIdType", # required
5099
+ # primary_region: "RegionType", # required
5100
+ # }
5101
+ #
5102
+ # @!attribute [rw] key_id
5103
+ # Identifies the current primary key. When the operation completes,
5104
+ # this CMK will be a replica key.
5105
+ #
5106
+ # Specify the key ID or key ARN of a multi-Region primary key.
5107
+ #
5108
+ # For example:
5109
+ #
5110
+ # * Key ID: `mrk-1234abcd12ab34cd56ef1234567890ab`
5111
+ #
5112
+ # * Key ARN:
5113
+ # `arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab`
5114
+ #
5115
+ # To get the key ID and key ARN for a CMK, use ListKeys or
5116
+ # DescribeKey.
5117
+ # @return [String]
5118
+ #
5119
+ # @!attribute [rw] primary_region
5120
+ # The AWS Region of the new primary key. Enter the Region ID, such as
5121
+ # `us-east-1` or `ap-southeast-2`. There must be an existing replica
5122
+ # key in this Region.
5123
+ #
5124
+ # When the operation completes, the multi-Region key in this Region
5125
+ # will be the primary key.
5126
+ # @return [String]
5127
+ #
5128
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdatePrimaryRegionRequest AWS API Documentation
5129
+ #
5130
+ class UpdatePrimaryRegionRequest < Struct.new(
5131
+ :key_id,
5132
+ :primary_region)
5133
+ SENSITIVE = []
5134
+ include Aws::Structure
5135
+ end
5136
+
4600
5137
  # @note When making an API call, you may pass VerifyRequest
4601
5138
  # data as a hash:
4602
5139
  #
@@ -4615,10 +5152,10 @@ module Aws::KMS
4615
5152
  # signature. If you specify a different CMK, the signature
4616
5153
  # verification fails.
4617
5154
  #
4618
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
4619
- # name, or alias ARN. When using an alias name, prefix it with
4620
- # `"alias/"`. To specify a CMK in a different AWS account, you must
4621
- # use the key ARN or alias ARN.
5155
+ # To specify a CMK, use its key ID, key ARN, alias name, or alias ARN.
5156
+ # When using an alias name, prefix it with `"alias/"`. To specify a
5157
+ # CMK in a different AWS account, you must use the key ARN or alias
5158
+ # ARN.
4622
5159
  #
4623
5160
  # For example:
4624
5161
  #
@@ -4668,7 +5205,9 @@ module Aws::KMS
4668
5205
  # @!attribute [rw] grant_tokens
4669
5206
  # A list of grant tokens.
4670
5207
  #
4671
- # For more information, see [Grant Tokens][1] in the *AWS Key
5208
+ # Use a grant token when your permission to call this operation comes
5209
+ # from a new grant that has not yet achieved *eventual consistency*.
5210
+ # For more information, see [Grant token][1] in the *AWS Key
4672
5211
  # Management Service Developer Guide*.
4673
5212
  #
4674
5213
  #