aws-sdk-kms 1.43.0 → 1.47.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -130,6 +130,7 @@ module Aws::KMS
130
130
  KeyListEntry = Shapes::StructureShape.new(name: 'KeyListEntry')
131
131
  KeyManagerType = Shapes::StringShape.new(name: 'KeyManagerType')
132
132
  KeyMetadata = Shapes::StructureShape.new(name: 'KeyMetadata')
133
+ KeySpec = Shapes::StringShape.new(name: 'KeySpec')
133
134
  KeyState = Shapes::StringShape.new(name: 'KeyState')
134
135
  KeyStorePasswordType = Shapes::StringShape.new(name: 'KeyStorePasswordType')
135
136
  KeyUnavailableException = Shapes::StructureShape.new(name: 'KeyUnavailableException')
@@ -150,7 +151,12 @@ module Aws::KMS
150
151
  MalformedPolicyDocumentException = Shapes::StructureShape.new(name: 'MalformedPolicyDocumentException')
151
152
  MarkerType = Shapes::StringShape.new(name: 'MarkerType')
152
153
  MessageType = Shapes::StringShape.new(name: 'MessageType')
154
+ MultiRegionConfiguration = Shapes::StructureShape.new(name: 'MultiRegionConfiguration')
155
+ MultiRegionKey = Shapes::StructureShape.new(name: 'MultiRegionKey')
156
+ MultiRegionKeyList = Shapes::ListShape.new(name: 'MultiRegionKeyList')
157
+ MultiRegionKeyType = Shapes::StringShape.new(name: 'MultiRegionKeyType')
153
158
  NotFoundException = Shapes::StructureShape.new(name: 'NotFoundException')
159
+ NullableBooleanType = Shapes::BooleanShape.new(name: 'NullableBooleanType')
154
160
  NumberOfBytesType = Shapes::IntegerShape.new(name: 'NumberOfBytesType')
155
161
  OriginType = Shapes::StringShape.new(name: 'OriginType')
156
162
  PendingWindowInDaysType = Shapes::IntegerShape.new(name: 'PendingWindowInDaysType')
@@ -163,6 +169,9 @@ module Aws::KMS
163
169
  PutKeyPolicyRequest = Shapes::StructureShape.new(name: 'PutKeyPolicyRequest')
164
170
  ReEncryptRequest = Shapes::StructureShape.new(name: 'ReEncryptRequest')
165
171
  ReEncryptResponse = Shapes::StructureShape.new(name: 'ReEncryptResponse')
172
+ RegionType = Shapes::StringShape.new(name: 'RegionType')
173
+ ReplicateKeyRequest = Shapes::StructureShape.new(name: 'ReplicateKeyRequest')
174
+ ReplicateKeyResponse = Shapes::StructureShape.new(name: 'ReplicateKeyResponse')
166
175
  RetireGrantRequest = Shapes::StructureShape.new(name: 'RetireGrantRequest')
167
176
  RevokeGrantRequest = Shapes::StructureShape.new(name: 'RevokeGrantRequest')
168
177
  ScheduleKeyDeletionRequest = Shapes::StructureShape.new(name: 'ScheduleKeyDeletionRequest')
@@ -185,6 +194,7 @@ module Aws::KMS
185
194
  UpdateCustomKeyStoreRequest = Shapes::StructureShape.new(name: 'UpdateCustomKeyStoreRequest')
186
195
  UpdateCustomKeyStoreResponse = Shapes::StructureShape.new(name: 'UpdateCustomKeyStoreResponse')
187
196
  UpdateKeyDescriptionRequest = Shapes::StructureShape.new(name: 'UpdateKeyDescriptionRequest')
197
+ UpdatePrimaryRegionRequest = Shapes::StructureShape.new(name: 'UpdatePrimaryRegionRequest')
188
198
  VerifyRequest = Shapes::StructureShape.new(name: 'VerifyRequest')
189
199
  VerifyResponse = Shapes::StructureShape.new(name: 'VerifyResponse')
190
200
  WrappingKeySpec = Shapes::StringShape.new(name: 'WrappingKeySpec')
@@ -256,11 +266,13 @@ module Aws::KMS
256
266
  CreateKeyRequest.add_member(:policy, Shapes::ShapeRef.new(shape: PolicyType, location_name: "Policy"))
257
267
  CreateKeyRequest.add_member(:description, Shapes::ShapeRef.new(shape: DescriptionType, location_name: "Description"))
258
268
  CreateKeyRequest.add_member(:key_usage, Shapes::ShapeRef.new(shape: KeyUsageType, location_name: "KeyUsage"))
259
- CreateKeyRequest.add_member(:customer_master_key_spec, Shapes::ShapeRef.new(shape: CustomerMasterKeySpec, location_name: "CustomerMasterKeySpec"))
269
+ CreateKeyRequest.add_member(:customer_master_key_spec, Shapes::ShapeRef.new(shape: CustomerMasterKeySpec, deprecated: true, location_name: "CustomerMasterKeySpec", metadata: {"deprecatedMessage"=>"This parameter has been deprecated. Instead, use the KeySpec parameter."}))
270
+ CreateKeyRequest.add_member(:key_spec, Shapes::ShapeRef.new(shape: KeySpec, location_name: "KeySpec"))
260
271
  CreateKeyRequest.add_member(:origin, Shapes::ShapeRef.new(shape: OriginType, location_name: "Origin"))
261
272
  CreateKeyRequest.add_member(:custom_key_store_id, Shapes::ShapeRef.new(shape: CustomKeyStoreIdType, location_name: "CustomKeyStoreId"))
262
273
  CreateKeyRequest.add_member(:bypass_policy_lockout_safety_check, Shapes::ShapeRef.new(shape: BooleanType, location_name: "BypassPolicyLockoutSafetyCheck"))
263
274
  CreateKeyRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
275
+ CreateKeyRequest.add_member(:multi_region, Shapes::ShapeRef.new(shape: NullableBooleanType, location_name: "MultiRegion"))
264
276
  CreateKeyRequest.struct_class = Types::CreateKeyRequest
265
277
 
266
278
  CreateKeyResponse.add_member(:key_metadata, Shapes::ShapeRef.new(shape: KeyMetadata, location_name: "KeyMetadata"))
@@ -458,7 +470,8 @@ module Aws::KMS
458
470
 
459
471
  GetPublicKeyResponse.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, location_name: "KeyId"))
460
472
  GetPublicKeyResponse.add_member(:public_key, Shapes::ShapeRef.new(shape: PublicKeyType, location_name: "PublicKey"))
461
- GetPublicKeyResponse.add_member(:customer_master_key_spec, Shapes::ShapeRef.new(shape: CustomerMasterKeySpec, location_name: "CustomerMasterKeySpec"))
473
+ GetPublicKeyResponse.add_member(:customer_master_key_spec, Shapes::ShapeRef.new(shape: CustomerMasterKeySpec, deprecated: true, location_name: "CustomerMasterKeySpec", metadata: {"deprecatedMessage"=>"This field has been deprecated. Instead, use the KeySpec field."}))
474
+ GetPublicKeyResponse.add_member(:key_spec, Shapes::ShapeRef.new(shape: KeySpec, location_name: "KeySpec"))
462
475
  GetPublicKeyResponse.add_member(:key_usage, Shapes::ShapeRef.new(shape: KeyUsageType, location_name: "KeyUsage"))
463
476
  GetPublicKeyResponse.add_member(:encryption_algorithms, Shapes::ShapeRef.new(shape: EncryptionAlgorithmSpecList, location_name: "EncryptionAlgorithms"))
464
477
  GetPublicKeyResponse.add_member(:signing_algorithms, Shapes::ShapeRef.new(shape: SigningAlgorithmSpecList, location_name: "SigningAlgorithms"))
@@ -557,9 +570,13 @@ module Aws::KMS
557
570
  KeyMetadata.add_member(:cloud_hsm_cluster_id, Shapes::ShapeRef.new(shape: CloudHsmClusterIdType, location_name: "CloudHsmClusterId"))
558
571
  KeyMetadata.add_member(:expiration_model, Shapes::ShapeRef.new(shape: ExpirationModelType, location_name: "ExpirationModel"))
559
572
  KeyMetadata.add_member(:key_manager, Shapes::ShapeRef.new(shape: KeyManagerType, location_name: "KeyManager"))
560
- KeyMetadata.add_member(:customer_master_key_spec, Shapes::ShapeRef.new(shape: CustomerMasterKeySpec, location_name: "CustomerMasterKeySpec"))
573
+ KeyMetadata.add_member(:customer_master_key_spec, Shapes::ShapeRef.new(shape: CustomerMasterKeySpec, deprecated: true, location_name: "CustomerMasterKeySpec", metadata: {"deprecatedMessage"=>"This field has been deprecated. Instead, use the KeySpec field."}))
574
+ KeyMetadata.add_member(:key_spec, Shapes::ShapeRef.new(shape: KeySpec, location_name: "KeySpec"))
561
575
  KeyMetadata.add_member(:encryption_algorithms, Shapes::ShapeRef.new(shape: EncryptionAlgorithmSpecList, location_name: "EncryptionAlgorithms"))
562
576
  KeyMetadata.add_member(:signing_algorithms, Shapes::ShapeRef.new(shape: SigningAlgorithmSpecList, location_name: "SigningAlgorithms"))
577
+ KeyMetadata.add_member(:multi_region, Shapes::ShapeRef.new(shape: NullableBooleanType, location_name: "MultiRegion"))
578
+ KeyMetadata.add_member(:multi_region_configuration, Shapes::ShapeRef.new(shape: MultiRegionConfiguration, location_name: "MultiRegionConfiguration"))
579
+ KeyMetadata.add_member(:pending_deletion_window_in_days, Shapes::ShapeRef.new(shape: PendingWindowInDaysType, location_name: "PendingDeletionWindowInDays"))
563
580
  KeyMetadata.struct_class = Types::KeyMetadata
564
581
 
565
582
  KeyUnavailableException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessageType, location_name: "message"))
@@ -627,6 +644,17 @@ module Aws::KMS
627
644
  MalformedPolicyDocumentException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessageType, location_name: "message"))
628
645
  MalformedPolicyDocumentException.struct_class = Types::MalformedPolicyDocumentException
629
646
 
647
+ MultiRegionConfiguration.add_member(:multi_region_key_type, Shapes::ShapeRef.new(shape: MultiRegionKeyType, location_name: "MultiRegionKeyType"))
648
+ MultiRegionConfiguration.add_member(:primary_key, Shapes::ShapeRef.new(shape: MultiRegionKey, location_name: "PrimaryKey"))
649
+ MultiRegionConfiguration.add_member(:replica_keys, Shapes::ShapeRef.new(shape: MultiRegionKeyList, location_name: "ReplicaKeys"))
650
+ MultiRegionConfiguration.struct_class = Types::MultiRegionConfiguration
651
+
652
+ MultiRegionKey.add_member(:arn, Shapes::ShapeRef.new(shape: ArnType, location_name: "Arn"))
653
+ MultiRegionKey.add_member(:region, Shapes::ShapeRef.new(shape: RegionType, location_name: "Region"))
654
+ MultiRegionKey.struct_class = Types::MultiRegionKey
655
+
656
+ MultiRegionKeyList.member = Shapes::ShapeRef.new(shape: MultiRegionKey)
657
+
630
658
  NotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessageType, location_name: "message"))
631
659
  NotFoundException.struct_class = Types::NotFoundException
632
660
 
@@ -655,6 +683,19 @@ module Aws::KMS
655
683
  ReEncryptResponse.add_member(:destination_encryption_algorithm, Shapes::ShapeRef.new(shape: EncryptionAlgorithmSpec, location_name: "DestinationEncryptionAlgorithm"))
656
684
  ReEncryptResponse.struct_class = Types::ReEncryptResponse
657
685
 
686
+ ReplicateKeyRequest.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, required: true, location_name: "KeyId"))
687
+ ReplicateKeyRequest.add_member(:replica_region, Shapes::ShapeRef.new(shape: RegionType, required: true, location_name: "ReplicaRegion"))
688
+ ReplicateKeyRequest.add_member(:policy, Shapes::ShapeRef.new(shape: PolicyType, location_name: "Policy"))
689
+ ReplicateKeyRequest.add_member(:bypass_policy_lockout_safety_check, Shapes::ShapeRef.new(shape: BooleanType, location_name: "BypassPolicyLockoutSafetyCheck"))
690
+ ReplicateKeyRequest.add_member(:description, Shapes::ShapeRef.new(shape: DescriptionType, location_name: "Description"))
691
+ ReplicateKeyRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
692
+ ReplicateKeyRequest.struct_class = Types::ReplicateKeyRequest
693
+
694
+ ReplicateKeyResponse.add_member(:replica_key_metadata, Shapes::ShapeRef.new(shape: KeyMetadata, location_name: "ReplicaKeyMetadata"))
695
+ ReplicateKeyResponse.add_member(:replica_policy, Shapes::ShapeRef.new(shape: PolicyType, location_name: "ReplicaPolicy"))
696
+ ReplicateKeyResponse.add_member(:replica_tags, Shapes::ShapeRef.new(shape: TagList, location_name: "ReplicaTags"))
697
+ ReplicateKeyResponse.struct_class = Types::ReplicateKeyResponse
698
+
658
699
  RetireGrantRequest.add_member(:grant_token, Shapes::ShapeRef.new(shape: GrantTokenType, location_name: "GrantToken"))
659
700
  RetireGrantRequest.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, location_name: "KeyId"))
660
701
  RetireGrantRequest.add_member(:grant_id, Shapes::ShapeRef.new(shape: GrantIdType, location_name: "GrantId"))
@@ -670,6 +711,8 @@ module Aws::KMS
670
711
 
671
712
  ScheduleKeyDeletionResponse.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, location_name: "KeyId"))
672
713
  ScheduleKeyDeletionResponse.add_member(:deletion_date, Shapes::ShapeRef.new(shape: DateType, location_name: "DeletionDate"))
714
+ ScheduleKeyDeletionResponse.add_member(:key_state, Shapes::ShapeRef.new(shape: KeyState, location_name: "KeyState"))
715
+ ScheduleKeyDeletionResponse.add_member(:pending_window_in_days, Shapes::ShapeRef.new(shape: PendingWindowInDaysType, location_name: "PendingWindowInDays"))
673
716
  ScheduleKeyDeletionResponse.struct_class = Types::ScheduleKeyDeletionResponse
674
717
 
675
718
  SignRequest.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, required: true, location_name: "KeyId"))
@@ -724,6 +767,10 @@ module Aws::KMS
724
767
  UpdateKeyDescriptionRequest.add_member(:description, Shapes::ShapeRef.new(shape: DescriptionType, required: true, location_name: "Description"))
725
768
  UpdateKeyDescriptionRequest.struct_class = Types::UpdateKeyDescriptionRequest
726
769
 
770
+ UpdatePrimaryRegionRequest.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, required: true, location_name: "KeyId"))
771
+ UpdatePrimaryRegionRequest.add_member(:primary_region, Shapes::ShapeRef.new(shape: RegionType, required: true, location_name: "PrimaryRegion"))
772
+ UpdatePrimaryRegionRequest.struct_class = Types::UpdatePrimaryRegionRequest
773
+
727
774
  VerifyRequest.add_member(:key_id, Shapes::ShapeRef.new(shape: KeyIdType, required: true, location_name: "KeyId"))
728
775
  VerifyRequest.add_member(:message, Shapes::ShapeRef.new(shape: PlaintextType, required: true, location_name: "Message"))
729
776
  VerifyRequest.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "MessageType"))
@@ -909,6 +956,7 @@ module Aws::KMS
909
956
  o.input = Shapes::ShapeRef.new(shape: DescribeCustomKeyStoresRequest)
910
957
  o.output = Shapes::ShapeRef.new(shape: DescribeCustomKeyStoresResponse)
911
958
  o.errors << Shapes::ShapeRef.new(shape: CustomKeyStoreNotFoundException)
959
+ o.errors << Shapes::ShapeRef.new(shape: InvalidMarkerException)
912
960
  o.errors << Shapes::ShapeRef.new(shape: KMSInternalException)
913
961
  end)
914
962
 
@@ -1302,6 +1350,24 @@ module Aws::KMS
1302
1350
  o.errors << Shapes::ShapeRef.new(shape: KMSInvalidStateException)
1303
1351
  end)
1304
1352
 
1353
+ api.add_operation(:replicate_key, Seahorse::Model::Operation.new.tap do |o|
1354
+ o.name = "ReplicateKey"
1355
+ o.http_method = "POST"
1356
+ o.http_request_uri = "/"
1357
+ o.input = Shapes::ShapeRef.new(shape: ReplicateKeyRequest)
1358
+ o.output = Shapes::ShapeRef.new(shape: ReplicateKeyResponse)
1359
+ o.errors << Shapes::ShapeRef.new(shape: AlreadyExistsException)
1360
+ o.errors << Shapes::ShapeRef.new(shape: DisabledException)
1361
+ o.errors << Shapes::ShapeRef.new(shape: InvalidArnException)
1362
+ o.errors << Shapes::ShapeRef.new(shape: KMSInvalidStateException)
1363
+ o.errors << Shapes::ShapeRef.new(shape: KMSInternalException)
1364
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1365
+ o.errors << Shapes::ShapeRef.new(shape: MalformedPolicyDocumentException)
1366
+ o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
1367
+ o.errors << Shapes::ShapeRef.new(shape: TagException)
1368
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationException)
1369
+ end)
1370
+
1305
1371
  api.add_operation(:retire_grant, Seahorse::Model::Operation.new.tap do |o|
1306
1372
  o.name = "RetireGrant"
1307
1373
  o.http_method = "POST"
@@ -1429,6 +1495,20 @@ module Aws::KMS
1429
1495
  o.errors << Shapes::ShapeRef.new(shape: KMSInvalidStateException)
1430
1496
  end)
1431
1497
 
1498
+ api.add_operation(:update_primary_region, Seahorse::Model::Operation.new.tap do |o|
1499
+ o.name = "UpdatePrimaryRegion"
1500
+ o.http_method = "POST"
1501
+ o.http_request_uri = "/"
1502
+ o.input = Shapes::ShapeRef.new(shape: UpdatePrimaryRegionRequest)
1503
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
1504
+ o.errors << Shapes::ShapeRef.new(shape: DisabledException)
1505
+ o.errors << Shapes::ShapeRef.new(shape: InvalidArnException)
1506
+ o.errors << Shapes::ShapeRef.new(shape: KMSInvalidStateException)
1507
+ o.errors << Shapes::ShapeRef.new(shape: KMSInternalException)
1508
+ o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
1509
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationException)
1510
+ end)
1511
+
1432
1512
  api.add_operation(:verify, Seahorse::Model::Operation.new.tap do |o|
1433
1513
  o.name = "Verify"
1434
1514
  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
 
@@ -21,13 +21,18 @@ module Aws::KMS
21
21
  # @return [String]
22
22
  #
23
23
  # @!attribute [rw] target_key_id
24
- # String that contains the key identifier referred to by the alias.
24
+ # String that contains the key identifier of the KMS key associated
25
+ # with the alias.
25
26
  # @return [String]
26
27
  #
27
28
  # @!attribute [rw] creation_date
29
+ # Date and time that the alias was most recently created in the
30
+ # account and Region. Formatted as Unix time.
28
31
  # @return [Time]
29
32
  #
30
33
  # @!attribute [rw] last_updated_date
34
+ # Date and time that the alias was most recently associated with a KMS
35
+ # key in the account and Region. Formatted as Unix time.
31
36
  # @return [Time]
32
37
  #
33
38
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/AliasListEntry AWS API Documentation
@@ -64,10 +69,9 @@ module Aws::KMS
64
69
  # }
65
70
  #
66
71
  # @!attribute [rw] key_id
67
- # The unique identifier for the customer master key (CMK) for which to
68
- # cancel deletion.
72
+ # Identifies the KMS key whose deletion is being canceled.
69
73
  #
70
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
74
+ # Specify the key ID or key ARN of the KMS key.
71
75
  #
72
76
  # For example:
73
77
  #
@@ -76,7 +80,7 @@ module Aws::KMS
76
80
  # * Key ARN:
77
81
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
78
82
  #
79
- # To get the key ID and key ARN for a CMK, use ListKeys or
83
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
80
84
  # DescribeKey.
81
85
  # @return [String]
82
86
  #
@@ -89,8 +93,8 @@ module Aws::KMS
89
93
  end
90
94
 
91
95
  # @!attribute [rw] key_id
92
- # The Amazon Resource Name ([key ARN][1]) of the CMK whose deletion is
93
- # canceled.
96
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key whose
97
+ # deletion is canceled.
94
98
  #
95
99
  #
96
100
  #
@@ -105,10 +109,10 @@ module Aws::KMS
105
109
  include Aws::Structure
106
110
  end
107
111
 
108
- # The request was rejected because the specified AWS CloudHSM cluster is
112
+ # The request was rejected because the specified CloudHSM cluster is
109
113
  # already associated with a custom key store or it shares a backup
110
114
  # history with a cluster that is associated with a custom key store.
111
- # Each custom key store must be associated with a different AWS CloudHSM
115
+ # Each custom key store must be associated with a different CloudHSM
112
116
  # cluster.
113
117
  #
114
118
  # Clusters that share a backup history have the same cluster
@@ -130,8 +134,8 @@ module Aws::KMS
130
134
  include Aws::Structure
131
135
  end
132
136
 
133
- # The request was rejected because the associated AWS CloudHSM cluster
134
- # did not meet the configuration requirements for a custom key store.
137
+ # The request was rejected because the associated CloudHSM cluster did
138
+ # not meet the configuration requirements for a custom key store.
135
139
  #
136
140
  # * The cluster must be configured with private subnets in at least two
137
141
  # different Availability Zones in the Region.
@@ -146,23 +150,20 @@ module Aws::KMS
146
150
  # [DescribeSecurityGroups][2] operation.
147
151
  #
148
152
  # * The cluster must contain at least as many HSMs as the operation
149
- # requires. To add HSMs, use the AWS CloudHSM [CreateHsm][3]
150
- # operation.
153
+ # requires. To add HSMs, use the CloudHSM [CreateHsm][3] operation.
151
154
  #
152
155
  # For the CreateCustomKeyStore, UpdateCustomKeyStore, and CreateKey
153
- # operations, the AWS CloudHSM cluster must have at least two active
154
- # HSMs, each in a different Availability Zone. For the
155
- # ConnectCustomKeyStore operation, the AWS CloudHSM must contain at
156
- # least one active HSM.
156
+ # operations, the CloudHSM cluster must have at least two active HSMs,
157
+ # each in a different Availability Zone. For the ConnectCustomKeyStore
158
+ # operation, the CloudHSM must contain at least one active HSM.
157
159
  #
158
- # For information about the requirements for an AWS CloudHSM cluster
159
- # that is associated with a custom key store, see [Assemble the
160
- # Prerequisites][4] in the *AWS Key Management Service Developer Guide*.
161
- # For information about creating a private subnet for an AWS CloudHSM
162
- # cluster, see [Create a Private Subnet][5] in the *AWS CloudHSM User
163
- # Guide*. For information about cluster security groups, see [Configure
164
- # a Default Security Group][1] in the <i> <i>AWS CloudHSM User Guide</i>
165
- # </i>.
160
+ # For information about the requirements for an CloudHSM cluster that is
161
+ # associated with a custom key store, see [Assemble the
162
+ # Prerequisites][4] in the *Key Management Service Developer Guide*. For
163
+ # information about creating a private subnet for an CloudHSM cluster,
164
+ # see [Create a Private Subnet][5] in the *CloudHSM User Guide*. For
165
+ # information about cluster security groups, see [Configure a Default
166
+ # Security Group][1] in the <i> <i>CloudHSM User Guide</i> </i>.
166
167
  #
167
168
  #
168
169
  #
@@ -183,11 +184,10 @@ module Aws::KMS
183
184
  include Aws::Structure
184
185
  end
185
186
 
186
- # The request was rejected because the AWS CloudHSM cluster that is
187
+ # The request was rejected because the CloudHSM cluster that is
187
188
  # associated with the custom key store is not active. Initialize and
188
189
  # activate the cluster and try the command again. For detailed
189
- # instructions, see [Getting Started][1] in the *AWS CloudHSM User
190
- # Guide*.
190
+ # instructions, see [Getting Started][1] in the *CloudHSM User Guide*.
191
191
  #
192
192
  #
193
193
  #
@@ -204,9 +204,9 @@ module Aws::KMS
204
204
  include Aws::Structure
205
205
  end
206
206
 
207
- # The request was rejected because AWS KMS cannot find the AWS CloudHSM
208
- # cluster with the specified cluster ID. Retry the request with a
209
- # different cluster ID.
207
+ # The request was rejected because KMS cannot find the CloudHSM cluster
208
+ # with the specified cluster ID. Retry the request with a different
209
+ # cluster ID.
210
210
  #
211
211
  # @!attribute [rw] message
212
212
  # @return [String]
@@ -219,9 +219,9 @@ module Aws::KMS
219
219
  include Aws::Structure
220
220
  end
221
221
 
222
- # The request was rejected because the specified AWS CloudHSM cluster
223
- # has a different cluster certificate than the original cluster. You
224
- # cannot use the operation to specify an unrelated cluster.
222
+ # The request was rejected because the specified CloudHSM cluster has a
223
+ # different cluster certificate than the original cluster. You cannot
224
+ # use the operation to specify an unrelated cluster.
225
225
  #
226
226
  # Specify a cluster that shares a backup history with the original
227
227
  # cluster. This includes clusters that were created from a backup of the
@@ -287,8 +287,8 @@ module Aws::KMS
287
287
  # The `AliasName` value must be string of 1-256 characters. It can
288
288
  # contain only alphanumeric characters, forward slashes (/),
289
289
  # underscores (\_), and dashes (-). The alias name cannot begin with
290
- # `alias/aws/`. The `alias/aws/` prefix is reserved for [AWS managed
291
- # CMKs][1].
290
+ # `alias/aws/`. The `alias/aws/` prefix is reserved for [Amazon Web
291
+ # Services managed keys][1].
292
292
  #
293
293
  #
294
294
  #
@@ -296,16 +296,17 @@ module Aws::KMS
296
296
  # @return [String]
297
297
  #
298
298
  # @!attribute [rw] target_key_id
299
- # Associates the alias with the specified [customer managed CMK][1].
300
- # The CMK must be in the same AWS Region.
299
+ # Associates the alias with the specified [customer managed key][1].
300
+ # The KMS key must be in the same Amazon Web Services Region.
301
301
  #
302
- # A valid CMK ID is required. If you supply a null or empty string
302
+ # A valid key ID is required. If you supply a null or empty string
303
303
  # value, this operation returns an error.
304
304
  #
305
305
  # For help finding the key ID and ARN, see [Finding the Key ID and
306
- # ARN][2] in the *AWS Key Management Service Developer Guide*.
306
+ # ARN][2] in the <i> <i>Key Management Service Developer Guide</i>
307
+ # </i>.
307
308
  #
308
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
309
+ # Specify the key ID or key ARN of the KMS key.
309
310
  #
310
311
  # For example:
311
312
  #
@@ -314,7 +315,7 @@ module Aws::KMS
314
315
  # * Key ARN:
315
316
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
316
317
  #
317
- # To get the key ID and key ARN for a CMK, use ListKeys or
318
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
318
319
  # DescribeKey.
319
320
  #
320
321
  #
@@ -344,14 +345,14 @@ module Aws::KMS
344
345
  #
345
346
  # @!attribute [rw] custom_key_store_name
346
347
  # Specifies a friendly name for the custom key store. The name must be
347
- # unique in your AWS account.
348
+ # unique in your Amazon Web Services account.
348
349
  # @return [String]
349
350
  #
350
351
  # @!attribute [rw] cloud_hsm_cluster_id
351
- # Identifies the AWS CloudHSM cluster for the custom key store. Enter
352
- # the cluster ID of any active AWS CloudHSM cluster that is not
353
- # already associated with a custom key store. To find the cluster ID,
354
- # use the [DescribeClusters][1] operation.
352
+ # Identifies the CloudHSM cluster for the custom key store. Enter the
353
+ # cluster ID of any active CloudHSM cluster that is not already
354
+ # associated with a custom key store. To find the cluster ID, use the
355
+ # [DescribeClusters][1] operation.
355
356
  #
356
357
  #
357
358
  #
@@ -370,14 +371,14 @@ module Aws::KMS
370
371
  #
371
372
  # @!attribute [rw] key_store_password
372
373
  # Enter the password of the [ `kmsuser` crypto user (CU) account][1]
373
- # in the specified AWS CloudHSM cluster. AWS KMS logs into the cluster
374
- # as this user to manage key material on your behalf.
374
+ # in the specified CloudHSM cluster. KMS logs into the cluster as this
375
+ # user to manage key material on your behalf.
375
376
  #
376
377
  # The password must be a string of 7 to 32 characters. Its value is
377
378
  # case sensitive.
378
379
  #
379
- # This parameter tells AWS KMS the `kmsuser` account password; it does
380
- # not change the password in the AWS CloudHSM cluster.
380
+ # This parameter tells KMS the `kmsuser` account password; it does not
381
+ # change the password in the CloudHSM cluster.
381
382
  #
382
383
  #
383
384
  #
@@ -428,11 +429,12 @@ module Aws::KMS
428
429
  # }
429
430
  #
430
431
  # @!attribute [rw] key_id
431
- # The unique identifier for the customer master key (CMK) that the
432
- # grant applies to.
432
+ # Identifies the KMS key for the grant. The grant gives principals
433
+ # permission to use this KMS key.
433
434
  #
434
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To
435
- # specify a CMK in a different AWS account, you must use the key ARN.
435
+ # Specify the key ID or key ARN of the KMS key. To specify a KMS key
436
+ # in a different Amazon Web Services account, you must use the key
437
+ # ARN.
436
438
  #
437
439
  # For example:
438
440
  #
@@ -441,20 +443,20 @@ module Aws::KMS
441
443
  # * Key ARN:
442
444
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
443
445
  #
444
- # To get the key ID and key ARN for a CMK, use ListKeys or
446
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
445
447
  # DescribeKey.
446
448
  # @return [String]
447
449
  #
448
450
  # @!attribute [rw] grantee_principal
449
- # The principal that is given permission to perform the operations
450
- # that the grant permits.
451
+ # The identity that gets the permissions specified in the grant.
451
452
  #
452
453
  # To specify the principal, use the [Amazon Resource Name (ARN)][1] of
453
- # an AWS principal. Valid AWS principals include AWS accounts (root),
454
- # IAM users, IAM roles, federated users, and assumed role users. For
455
- # examples of the ARN syntax to use for specifying a principal, see
456
- # [AWS Identity and Access Management (IAM)][2] in the Example ARNs
457
- # section of the *AWS General Reference*.
454
+ # an Amazon Web Services principal. Valid Amazon Web Services
455
+ # principals include Amazon Web Services accounts (root), IAM users,
456
+ # IAM roles, federated users, and assumed role users. For examples of
457
+ # the ARN syntax to use for specifying a principal, see [Amazon Web
458
+ # Services Identity and Access Management (IAM)][2] in the Example
459
+ # ARNs section of the *Amazon Web Services General Reference*.
458
460
  #
459
461
  #
460
462
  #
@@ -463,53 +465,85 @@ module Aws::KMS
463
465
  # @return [String]
464
466
  #
465
467
  # @!attribute [rw] retiring_principal
466
- # The principal that is given permission to retire the grant by using
467
- # RetireGrant operation.
468
+ # The principal that has permission to use the RetireGrant operation
469
+ # to retire the grant.
468
470
  #
469
471
  # To specify the principal, use the [Amazon Resource Name (ARN)][1] of
470
- # an AWS principal. Valid AWS principals include AWS accounts (root),
471
- # IAM users, federated users, and assumed role users. For examples of
472
- # the ARN syntax to use for specifying a principal, see [AWS Identity
473
- # and Access Management (IAM)][2] in the Example ARNs section of the
474
- # *AWS General Reference*.
472
+ # an Amazon Web Services principal. Valid Amazon Web Services
473
+ # principals include Amazon Web Services accounts (root), IAM users,
474
+ # federated users, and assumed role users. For examples of the ARN
475
+ # syntax to use for specifying a principal, see [Amazon Web Services
476
+ # Identity and Access Management (IAM)][2] in the Example ARNs section
477
+ # of the *Amazon Web Services General Reference*.
478
+ #
479
+ # The grant determines the retiring principal. Other principals might
480
+ # have permission to retire the grant or revoke the grant. For
481
+ # details, see RevokeGrant and [Retiring and revoking grants][3] in
482
+ # the *Key Management Service Developer Guide*.
475
483
  #
476
484
  #
477
485
  #
478
486
  # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
479
487
  # [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam
488
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete
480
489
  # @return [String]
481
490
  #
482
491
  # @!attribute [rw] operations
483
492
  # A list of operations that the grant permits.
493
+ #
494
+ # The operation must be supported on the KMS key. For example, you
495
+ # cannot create a grant for a symmetric KMS key that allows the Sign
496
+ # operation, or a grant for an asymmetric KMS key that allows the
497
+ # GenerateDataKey operation. If you try, KMS returns a
498
+ # `ValidationError` exception. For details, see [Grant operations][1]
499
+ # in the *Key Management Service Developer Guide*.
500
+ #
501
+ #
502
+ #
503
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations
484
504
  # @return [Array<String>]
485
505
  #
486
506
  # @!attribute [rw] constraints
487
- # Allows a [cryptographic operation][1] only when the encryption
488
- # context matches or includes the encryption context specified in this
489
- # structure. For more information about encryption context, see
490
- # [Encryption Context][2] in the <i> <i>AWS Key Management Service
491
- # Developer Guide</i> </i>.
507
+ # Specifies a grant constraint.
492
508
  #
493
- # Grant constraints are not applied to operations that do not support
494
- # an encryption context, such as cryptographic operations with
495
- # asymmetric CMKs and management operations, such as DescribeKey or
496
- # RetireGrant.
509
+ # KMS supports the `EncryptionContextEquals` and
510
+ # `EncryptionContextSubset` grant constraints. Each constraint value
511
+ # can include up to 8 encryption context pairs. The encryption context
512
+ # value in each constraint cannot exceed 384 characters.
497
513
  #
514
+ # These grant constraints allow the permissions in the grant only when
515
+ # the encryption context in the request matches
516
+ # (`EncryptionContextEquals`) or includes (`EncryptionContextSubset`)
517
+ # the encryption context specified in this structure. For information
518
+ # about grant constraints, see [Using grant constraints][1] in the
519
+ # *Key Management Service Developer Guide*. For more information about
520
+ # encryption context, see [Encryption Context][2] in the <i> <i>Key
521
+ # Management Service Developer Guide</i> </i>.
498
522
  #
523
+ # The encryption context grant constraints are supported only on
524
+ # operations that include an encryption context. You cannot use an
525
+ # encryption context grant constraint for cryptographic operations
526
+ # with asymmetric KMS keys or for management operations, such as
527
+ # DescribeKey or RetireGrant.
499
528
  #
500
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations
529
+ #
530
+ #
531
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints
501
532
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
502
533
  # @return [Types::GrantConstraints]
503
534
  #
504
535
  # @!attribute [rw] grant_tokens
505
536
  # A list of grant tokens.
506
537
  #
507
- # For more information, see [Grant Tokens][1] in the *AWS Key
508
- # Management Service Developer Guide*.
538
+ # Use a grant token when your permission to call this operation comes
539
+ # from a new grant that has not yet achieved *eventual consistency*.
540
+ # For more information, see [Grant token][1] and [Using a grant
541
+ # token][2] in the *Key Management Service Developer Guide*.
509
542
  #
510
543
  #
511
544
  #
512
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
545
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
546
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
513
547
  # @return [Array<String>]
514
548
  #
515
549
  # @!attribute [rw] name
@@ -546,12 +580,15 @@ module Aws::KMS
546
580
  # @!attribute [rw] grant_token
547
581
  # The grant token.
548
582
  #
549
- # For more information, see [Grant Tokens][1] in the *AWS Key
550
- # Management Service Developer Guide*.
583
+ # Use a grant token when your permission to call this operation comes
584
+ # from a new grant that has not yet achieved *eventual consistency*.
585
+ # For more information, see [Grant token][1] and [Using a grant
586
+ # token][2] in the *Key Management Service Developer Guide*.
551
587
  #
552
588
  #
553
589
  #
554
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
590
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
591
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
555
592
  # @return [String]
556
593
  #
557
594
  # @!attribute [rw] grant_id
@@ -578,6 +615,7 @@ module Aws::KMS
578
615
  # description: "DescriptionType",
579
616
  # key_usage: "SIGN_VERIFY", # accepts SIGN_VERIFY, ENCRYPT_DECRYPT
580
617
  # customer_master_key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT
618
+ # key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT
581
619
  # origin: "AWS_KMS", # accepts AWS_KMS, EXTERNAL, AWS_CLOUDHSM
582
620
  # custom_key_store_id: "CustomKeyStoreIdType",
583
621
  # bypass_policy_lockout_safety_check: false,
@@ -587,39 +625,41 @@ module Aws::KMS
587
625
  # tag_value: "TagValueType", # required
588
626
  # },
589
627
  # ],
628
+ # multi_region: false,
590
629
  # }
591
630
  #
592
631
  # @!attribute [rw] policy
593
- # The key policy to attach to the CMK.
632
+ # The key policy to attach to the KMS key.
594
633
  #
595
634
  # If you provide a key policy, it must meet the following criteria:
596
635
  #
597
636
  # * If you don't set `BypassPolicyLockoutSafetyCheck` to true, the
598
637
  # key policy must allow the principal that is making the `CreateKey`
599
- # request to make a subsequent PutKeyPolicy request on the CMK. This
600
- # reduces the risk that the CMK becomes unmanageable. For more
601
- # information, refer to the scenario in the [Default Key Policy][1]
602
- # section of the <i> <i>AWS Key Management Service Developer
638
+ # request to make a subsequent PutKeyPolicy request on the KMS key.
639
+ # This reduces the risk that the KMS key becomes unmanageable. For
640
+ # more information, refer to the scenario in the [Default Key
641
+ # Policy][1] section of the <i> <i>Key Management Service Developer
603
642
  # Guide</i> </i>.
604
643
  #
605
644
  # * Each statement in the key policy must contain one or more
606
645
  # principals. The principals in the key policy must exist and be
607
- # visible to AWS KMS. When you create a new AWS principal (for
608
- # example, an IAM user or role), you might need to enforce a delay
609
- # before including the new principal in a key policy because the new
610
- # principal might not be immediately visible to AWS KMS. For more
611
- # information, see [Changes that I make are not always immediately
612
- # visible][2] in the *AWS Identity and Access Management User
613
- # Guide*.
614
- #
615
- # If you do not provide a key policy, AWS KMS attaches a default key
616
- # policy to the CMK. For more information, see [Default Key Policy][3]
617
- # in the *AWS Key Management Service Developer Guide*.
646
+ # visible to KMS. When you create a new Amazon Web Services
647
+ # principal (for example, an IAM user or role), you might need to
648
+ # enforce a delay before including the new principal in a key policy
649
+ # because the new principal might not be immediately visible to KMS.
650
+ # For more information, see [Changes that I make are not always
651
+ # immediately visible][2] in the *Amazon Web Services Identity and
652
+ # Access Management User Guide*.
653
+ #
654
+ # If you do not provide a key policy, KMS attaches a default key
655
+ # policy to the KMS key. For more information, see [Default Key
656
+ # Policy][3] in the *Key Management Service Developer Guide*.
618
657
  #
619
658
  # The key policy size quota is 32 kilobytes (32768 bytes).
620
659
  #
621
660
  # For help writing and formatting a JSON policy document, see the [IAM
622
- # JSON Policy Reference][4] in the <i> <i>IAM User Guide</i> </i>.
661
+ # JSON Policy Reference][4] in the <i> <i>Identity and Access
662
+ # Management User Guide</i> </i>.
623
663
  #
624
664
  #
625
665
  #
@@ -630,27 +670,32 @@ module Aws::KMS
630
670
  # @return [String]
631
671
  #
632
672
  # @!attribute [rw] description
633
- # A description of the CMK.
673
+ # A description of the KMS key.
674
+ #
675
+ # Use a description that helps you decide whether the KMS key is
676
+ # appropriate for a task. The default value is an empty string (no
677
+ # description).
634
678
  #
635
- # Use a description that helps you decide whether the CMK is
636
- # appropriate for a task.
679
+ # To set or change the description after the key is created, use
680
+ # UpdateKeyDescription.
637
681
  # @return [String]
638
682
  #
639
683
  # @!attribute [rw] key_usage
640
684
  # Determines the [cryptographic operations][1] for which you can use
641
- # the CMK. The default value is `ENCRYPT_DECRYPT`. This parameter is
642
- # required only for asymmetric CMKs. You can't change the `KeyUsage`
643
- # value after the CMK is created.
685
+ # the KMS key. The default value is `ENCRYPT_DECRYPT`. This parameter
686
+ # is required only for asymmetric KMS keys. You can't change the
687
+ # `KeyUsage` value after the KMS key is created.
644
688
  #
645
689
  # Select only one valid value.
646
690
  #
647
- # * For symmetric CMKs, omit the parameter or specify
691
+ # * For symmetric KMS keys, omit the parameter or specify
648
692
  # `ENCRYPT_DECRYPT`.
649
693
  #
650
- # * For asymmetric CMKs with RSA key material, specify
694
+ # * For asymmetric KMS keys with RSA key material, specify
651
695
  # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
652
696
  #
653
- # * For asymmetric CMKs with ECC key material, specify `SIGN_VERIFY`.
697
+ # * For asymmetric KMS keys with ECC key material, specify
698
+ # `SIGN_VERIFY`.
654
699
  #
655
700
  #
656
701
  #
@@ -658,28 +703,38 @@ module Aws::KMS
658
703
  # @return [String]
659
704
  #
660
705
  # @!attribute [rw] customer_master_key_spec
661
- # Specifies the type of CMK to create. The default value,
662
- # `SYMMETRIC_DEFAULT`, creates a CMK with a 256-bit symmetric key for
663
- # encryption and decryption. For help choosing a key spec for your
664
- # CMK, see [How to Choose Your CMK Configuration][1] in the *AWS Key
665
- # Management Service Developer Guide*.
706
+ # Instead, use the `KeySpec` parameter.
666
707
  #
667
- # The `CustomerMasterKeySpec` determines whether the CMK contains a
668
- # symmetric key or an asymmetric key pair. It also determines the
669
- # encryption algorithms or signing algorithms that the CMK supports.
670
- # You can't change the `CustomerMasterKeySpec` after the CMK is
671
- # created. To further restrict the algorithms that can be used with
672
- # the CMK, use a condition key in its key policy or IAM policy. For
673
- # more information, see [kms:EncryptionAlgorithm][2] or [kms:Signing
674
- # Algorithm][3] in the *AWS Key Management Service Developer Guide*.
675
- #
676
- # [AWS services that are integrated with AWS KMS][4] use symmetric
677
- # CMKs to protect your data. These services do not support asymmetric
678
- # CMKs. For help determining whether a CMK is symmetric or asymmetric,
679
- # see [Identifying Symmetric and Asymmetric CMKs][5] in the *AWS Key
680
- # Management Service Developer Guide*.
708
+ # The `KeySpec` and `CustomerMasterKeySpec` parameters work the same
709
+ # way. Only the names differ. We recommend that you use `KeySpec`
710
+ # parameter in your code. However, to avoid breaking changes, KMS will
711
+ # support both parameters.
712
+ # @return [String]
681
713
  #
682
- # AWS KMS supports the following key specs for CMKs:
714
+ # @!attribute [rw] key_spec
715
+ # Specifies the type of KMS key to create. The default value,
716
+ # `SYMMETRIC_DEFAULT`, creates a KMS key with a 256-bit symmetric key
717
+ # for encryption and decryption. For help choosing a key spec for your
718
+ # KMS key, see [How to Choose Your KMS key Configuration][1] in the
719
+ # <i> <i>Key Management Service Developer Guide</i> </i>.
720
+ #
721
+ # The `KeySpec` determines whether the KMS key contains a symmetric
722
+ # key or an asymmetric key pair. It also determines the encryption
723
+ # algorithms or signing algorithms that the KMS key supports. You
724
+ # can't change the `KeySpec` after the KMS key is created. To further
725
+ # restrict the algorithms that can be used with the KMS key, use a
726
+ # condition key in its key policy or IAM policy. For more information,
727
+ # see [kms:EncryptionAlgorithm][2] or [kms:Signing Algorithm][3] in
728
+ # the <i> <i>Key Management Service Developer Guide</i> </i>.
729
+ #
730
+ # [Amazon Web Services services that are integrated with KMS][4] use
731
+ # symmetric KMS keys to protect your data. These services do not
732
+ # support asymmetric KMS keys. For help determining whether a KMS key
733
+ # is symmetric or asymmetric, see [Identifying Symmetric and
734
+ # Asymmetric KMS keys][5] in the *Key Management Service Developer
735
+ # Guide*.
736
+ #
737
+ # KMS supports the following key specs for KMS keys:
683
738
  #
684
739
  # * Symmetric key (default)
685
740
  #
@@ -720,22 +775,21 @@ module Aws::KMS
720
775
  # @return [String]
721
776
  #
722
777
  # @!attribute [rw] origin
723
- # The source of the key material for the CMK. You cannot change the
724
- # origin after you create the CMK. The default is `AWS_KMS`, which
725
- # means AWS KMS creates the key material.
778
+ # The source of the key material for the KMS key. You cannot change
779
+ # the origin after you create the KMS key. The default is `AWS_KMS`,
780
+ # which means that KMS creates the key material.
726
781
  #
727
- # When the parameter value is `EXTERNAL`, AWS KMS creates a CMK
728
- # without key material so that you can import key material from your
729
- # existing key management infrastructure. For more information about
730
- # importing key material into AWS KMS, see [Importing Key Material][1]
731
- # in the *AWS Key Management Service Developer Guide*. This value is
732
- # valid only for symmetric CMKs.
782
+ # To create a KMS key with no key material (for imported key
783
+ # material), set the value to `EXTERNAL`. For more information about
784
+ # importing key material into KMS, see [Importing Key Material][1] in
785
+ # the *Key Management Service Developer Guide*. This value is valid
786
+ # only for symmetric KMS keys.
733
787
  #
734
- # When the parameter value is `AWS_CLOUDHSM`, AWS KMS creates the CMK
735
- # in an AWS KMS [custom key store][2] and creates its key material in
736
- # the associated AWS CloudHSM cluster. You must also use the
737
- # `CustomKeyStoreId` parameter to identify the custom key store. This
738
- # value is valid only for symmetric CMKs.
788
+ # To create a KMS key in an KMS [custom key store][2] and create its
789
+ # key material in the associated CloudHSM cluster, set this value to
790
+ # `AWS_CLOUDHSM`. You must also use the `CustomKeyStoreId` parameter
791
+ # to identify the custom key store. This value is valid only for
792
+ # symmetric KMS keys.
739
793
  #
740
794
  #
741
795
  #
@@ -744,26 +798,26 @@ module Aws::KMS
744
798
  # @return [String]
745
799
  #
746
800
  # @!attribute [rw] custom_key_store_id
747
- # Creates the CMK in the specified [custom key store][1] and the key
748
- # material in its associated AWS CloudHSM cluster. To create a CMK in
749
- # a custom key store, you must also specify the `Origin` parameter
750
- # with a value of `AWS_CLOUDHSM`. The AWS CloudHSM cluster that is
801
+ # Creates the KMS key in the specified [custom key store][1] and the
802
+ # key material in its associated CloudHSM cluster. To create a KMS key
803
+ # in a custom key store, you must also specify the `Origin` parameter
804
+ # with a value of `AWS_CLOUDHSM`. The CloudHSM cluster that is
751
805
  # associated with the custom key store must have at least two active
752
806
  # HSMs, each in a different Availability Zone in the Region.
753
807
  #
754
- # This parameter is valid only for symmetric CMKs. You cannot create
755
- # an asymmetric CMK in a custom key store.
808
+ # This parameter is valid only for symmetric KMS keys and regional KMS
809
+ # keys. You cannot create an asymmetric KMS key or a multi-Region key
810
+ # in a custom key store.
756
811
  #
757
812
  # To find the ID of a custom key store, use the
758
813
  # DescribeCustomKeyStores operation.
759
814
  #
760
- # The response includes the custom key store ID and the ID of the AWS
815
+ # The response includes the custom key store ID and the ID of the
761
816
  # CloudHSM cluster.
762
817
  #
763
818
  # This operation is part of the [Custom Key Store feature][1] feature
764
- # in AWS KMS, which combines the convenience and extensive integration
765
- # of AWS KMS with the isolation and control of a single-tenant key
766
- # store.
819
+ # in KMS, which combines the convenience and extensive integration of
820
+ # KMS with the isolation and control of a single-tenant key store.
767
821
  #
768
822
  #
769
823
  #
@@ -774,16 +828,17 @@ module Aws::KMS
774
828
  # A flag to indicate whether to bypass the key policy lockout safety
775
829
  # check.
776
830
  #
777
- # Setting this value to true increases the risk that the CMK becomes
778
- # unmanageable. Do not set this value to true indiscriminately.
831
+ # Setting this value to true increases the risk that the KMS key
832
+ # becomes unmanageable. Do not set this value to true
833
+ # indiscriminately.
779
834
  #
780
835
  # For more information, refer to the scenario in the [Default Key
781
- # Policy][1] section in the <i> <i>AWS Key Management Service
782
- # Developer Guide</i> </i>.
836
+ # Policy][1] section in the <i> <i>Key Management Service Developer
837
+ # Guide</i> </i>.
783
838
  #
784
839
  # Use this parameter only when you include a policy in the request and
785
840
  # you intend to prevent the principal that is making the request from
786
- # making a subsequent PutKeyPolicy request on the CMK.
841
+ # making a subsequent PutKeyPolicy request on the KMS key.
787
842
  #
788
843
  # The default value is false.
789
844
  #
@@ -793,27 +848,68 @@ module Aws::KMS
793
848
  # @return [Boolean]
794
849
  #
795
850
  # @!attribute [rw] tags
796
- # One or more tags. Each tag consists of a tag key and a tag value.
797
- # Both the tag key and the tag value are required, but the tag value
798
- # can be an empty (null) string.
851
+ # Assigns one or more tags to the KMS key. Use this parameter to tag
852
+ # the KMS key when it is created. To tag an existing KMS key, use the
853
+ # TagResource operation.
799
854
  #
800
- # When you add tags to an AWS resource, AWS generates a cost
801
- # allocation report with usage and costs aggregated by tags. For
802
- # information about adding, changing, deleting and listing tags for
803
- # CMKs, see [Tagging Keys][1].
855
+ # <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the
856
+ # KMS key. For details, see [Using ABAC in KMS][1] in the *Key
857
+ # Management Service Developer Guide*.
804
858
  #
805
- # Use this parameter to tag the CMK when it is created. To add tags to
806
- # an existing CMK, use the TagResource operation.
859
+ # </note>
807
860
  #
808
861
  # To use this parameter, you must have [kms:TagResource][2] permission
809
862
  # in an IAM policy.
810
863
  #
864
+ # Each tag consists of a tag key and a tag value. Both the tag key and
865
+ # the tag value are required, but the tag value can be an empty (null)
866
+ # string. You cannot have more than one tag on a KMS key with the same
867
+ # tag key. If you specify an existing tag key with a different tag
868
+ # value, KMS replaces the current tag value with the specified one.
811
869
  #
870
+ # When you add tags to an Amazon Web Services resource, Amazon Web
871
+ # Services generates a cost allocation report with usage and costs
872
+ # aggregated by tags. Tags can also be used to control access to a KMS
873
+ # key. For details, see [Tagging Keys][3].
812
874
  #
813
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
875
+ #
876
+ #
877
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
814
878
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
879
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
815
880
  # @return [Array<Types::Tag>]
816
881
  #
882
+ # @!attribute [rw] multi_region
883
+ # Creates a multi-Region primary key that you can replicate into other
884
+ # Amazon Web Services Regions. You cannot change this value after you
885
+ # create the KMS key.
886
+ #
887
+ # For a multi-Region key, set this parameter to `True`. For a
888
+ # single-Region KMS key, omit this parameter or set it to `False`. The
889
+ # default value is `False`.
890
+ #
891
+ # This operation supports *multi-Region keys*, an KMS feature that
892
+ # lets you create multiple interoperable KMS keys in different Amazon
893
+ # Web Services Regions. Because these KMS keys have the same key ID,
894
+ # key material, and other metadata, you can use them interchangeably
895
+ # to encrypt data in one Amazon Web Services Region and decrypt it in
896
+ # a different Amazon Web Services Region without re-encrypting the
897
+ # data or making a cross-Region call. For more information about
898
+ # multi-Region keys, see [Using multi-Region keys][1] in the *Key
899
+ # Management Service Developer Guide*.
900
+ #
901
+ # This value creates a *primary key*, not a replica. To create a
902
+ # *replica key*, use the ReplicateKey operation.
903
+ #
904
+ # You can create a symmetric or asymmetric multi-Region key, and you
905
+ # can create a multi-Region key with imported key material. However,
906
+ # you cannot create a multi-Region key in a custom key store.
907
+ #
908
+ #
909
+ #
910
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
911
+ # @return [Boolean]
912
+ #
817
913
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKeyRequest AWS API Documentation
818
914
  #
819
915
  class CreateKeyRequest < Struct.new(
@@ -821,16 +917,18 @@ module Aws::KMS
821
917
  :description,
822
918
  :key_usage,
823
919
  :customer_master_key_spec,
920
+ :key_spec,
824
921
  :origin,
825
922
  :custom_key_store_id,
826
923
  :bypass_policy_lockout_safety_check,
827
- :tags)
924
+ :tags,
925
+ :multi_region)
828
926
  SENSITIVE = []
829
927
  include Aws::Structure
830
928
  end
831
929
 
832
930
  # @!attribute [rw] key_metadata
833
- # Metadata associated with the CMK.
931
+ # Metadata associated with the KMS key.
834
932
  # @return [Types::KeyMetadata]
835
933
  #
836
934
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKeyResponse AWS API Documentation
@@ -841,10 +939,10 @@ module Aws::KMS
841
939
  include Aws::Structure
842
940
  end
843
941
 
844
- # The request was rejected because the custom key store contains AWS KMS
845
- # customer master keys (CMKs). After verifying that you do not need to
846
- # use the CMKs, use the ScheduleKeyDeletion operation to delete the
847
- # CMKs. After they are deleted, you can delete the custom key store.
942
+ # The request was rejected because the custom key store contains KMS
943
+ # keys. After verifying that you do not need to use the KMS keys, use
944
+ # the ScheduleKeyDeletion operation to delete the KMS keys. After they
945
+ # are deleted, you can delete the custom key store.
848
946
  #
849
947
  # @!attribute [rw] message
850
948
  # @return [String]
@@ -902,8 +1000,8 @@ module Aws::KMS
902
1000
  include Aws::Structure
903
1001
  end
904
1002
 
905
- # The request was rejected because AWS KMS cannot find a custom key
906
- # store with the specified key store name or ID.
1003
+ # The request was rejected because KMS cannot find a custom key store
1004
+ # with the specified key store name or ID.
907
1005
  #
908
1006
  # @!attribute [rw] message
909
1007
  # @return [String]
@@ -928,12 +1026,12 @@ module Aws::KMS
928
1026
  # @return [String]
929
1027
  #
930
1028
  # @!attribute [rw] cloud_hsm_cluster_id
931
- # A unique identifier for the AWS CloudHSM cluster that is associated
932
- # with the custom key store.
1029
+ # A unique identifier for the CloudHSM cluster that is associated with
1030
+ # the custom key store.
933
1031
  # @return [String]
934
1032
  #
935
1033
  # @!attribute [rw] trust_anchor_certificate
936
- # The trust anchor certificate of the associated AWS CloudHSM cluster.
1034
+ # The trust anchor certificate of the associated CloudHSM cluster.
937
1035
  # When you [initialize the cluster][1], you create this certificate
938
1036
  # and save it in the `customerCA.crt` file.
939
1037
  #
@@ -943,22 +1041,22 @@ module Aws::KMS
943
1041
  # @return [String]
944
1042
  #
945
1043
  # @!attribute [rw] connection_state
946
- # Indicates whether the custom key store is connected to its AWS
947
- # CloudHSM cluster.
1044
+ # Indicates whether the custom key store is connected to its CloudHSM
1045
+ # cluster.
948
1046
  #
949
- # You can create and use CMKs in your custom key stores only when its
950
- # connection state is `CONNECTED`.
1047
+ # You can create and use KMS keys in your custom key stores only when
1048
+ # its connection state is `CONNECTED`.
951
1049
  #
952
1050
  # The value is `DISCONNECTED` if the key store has never been
953
1051
  # connected or you use the DisconnectCustomKeyStore operation to
954
1052
  # disconnect it. If the value is `CONNECTED` but you are having
955
1053
  # trouble using the custom key store, make sure that its associated
956
- # AWS CloudHSM cluster is active and contains at least one active HSM.
1054
+ # CloudHSM cluster is active and contains at least one active HSM.
957
1055
  #
958
1056
  # A value of `FAILED` indicates that an attempt to connect was
959
1057
  # unsuccessful. The `ConnectionErrorCode` field in the response
960
1058
  # indicates the cause of the failure. For help resolving a connection
961
- # failure, see [Troubleshooting a Custom Key Store][1] in the *AWS Key
1059
+ # failure, see [Troubleshooting a Custom Key Store][1] in the *Key
962
1060
  # Management Service Developer Guide*.
963
1061
  #
964
1062
  #
@@ -969,64 +1067,64 @@ module Aws::KMS
969
1067
  # @!attribute [rw] connection_error_code
970
1068
  # Describes the connection error. This field appears in the response
971
1069
  # only when the `ConnectionState` is `FAILED`. For help resolving
972
- # these errors, see [How to Fix a Connection Failure][1] in *AWS Key
1070
+ # these errors, see [How to Fix a Connection Failure][1] in *Key
973
1071
  # Management Service Developer Guide*.
974
1072
  #
975
1073
  # Valid values are:
976
1074
  #
977
- # * `CLUSTER_NOT_FOUND` - AWS KMS cannot find the AWS CloudHSM cluster
978
- # with the specified cluster ID.
1075
+ # * `CLUSTER_NOT_FOUND` - KMS cannot find the CloudHSM cluster with
1076
+ # the specified cluster ID.
979
1077
  #
980
- # * `INSUFFICIENT_CLOUDHSM_HSMS` - The associated AWS CloudHSM cluster
1078
+ # * `INSUFFICIENT_CLOUDHSM_HSMS` - The associated CloudHSM cluster
981
1079
  # does not contain any active HSMs. To connect a custom key store to
982
- # its AWS CloudHSM cluster, the cluster must contain at least one
983
- # active HSM.
1080
+ # its CloudHSM cluster, the cluster must contain at least one active
1081
+ # HSM.
984
1082
  #
985
- # * `INTERNAL_ERROR` - AWS KMS could not complete the request due to
986
- # an internal error. Retry the request. For `ConnectCustomKeyStore`
1083
+ # * `INTERNAL_ERROR` - KMS could not complete the request due to an
1084
+ # internal error. Retry the request. For `ConnectCustomKeyStore`
987
1085
  # requests, disconnect the custom key store before trying to connect
988
1086
  # again.
989
1087
  #
990
- # * `INVALID_CREDENTIALS` - AWS KMS does not have the correct password
991
- # for the `kmsuser` crypto user in the AWS CloudHSM cluster. Before
992
- # you can connect your custom key store to its AWS CloudHSM cluster,
993
- # you must change the `kmsuser` account password and update the key
994
- # store password value for the custom key store.
1088
+ # * `INVALID_CREDENTIALS` - KMS does not have the correct password for
1089
+ # the `kmsuser` crypto user in the CloudHSM cluster. Before you can
1090
+ # connect your custom key store to its CloudHSM cluster, you must
1091
+ # change the `kmsuser` account password and update the key store
1092
+ # password value for the custom key store.
995
1093
  #
996
- # * `NETWORK_ERRORS` - Network errors are preventing AWS KMS from
1094
+ # * `NETWORK_ERRORS` - Network errors are preventing KMS from
997
1095
  # connecting to the custom key store.
998
1096
  #
999
- # * `SUBNET_NOT_FOUND` - A subnet in the AWS CloudHSM cluster
1000
- # configuration was deleted. If AWS KMS cannot find all of the
1001
- # subnets in the cluster configuration, attempts to connect the
1002
- # custom key store to the AWS CloudHSM cluster fail. To fix this
1003
- # error, create a cluster from a recent backup and associate it with
1004
- # your custom key store. (This process creates a new cluster
1005
- # configuration with a VPC and private subnets.) For details, see
1006
- # [How to Fix a Connection Failure][1] in the *AWS Key Management
1007
- # Service Developer Guide*.
1097
+ # * `SUBNET_NOT_FOUND` - A subnet in the CloudHSM cluster
1098
+ # configuration was deleted. If KMS cannot find all of the subnets
1099
+ # in the cluster configuration, attempts to connect the custom key
1100
+ # store to the CloudHSM cluster fail. To fix this error, create a
1101
+ # cluster from a recent backup and associate it with your custom key
1102
+ # store. (This process creates a new cluster configuration with a
1103
+ # VPC and private subnets.) For details, see [How to Fix a
1104
+ # Connection Failure][1] in the *Key Management Service Developer
1105
+ # Guide*.
1008
1106
  #
1009
1107
  # * `USER_LOCKED_OUT` - The `kmsuser` CU account is locked out of the
1010
- # associated AWS CloudHSM cluster due to too many failed password
1011
- # attempts. Before you can connect your custom key store to its AWS
1108
+ # associated CloudHSM cluster due to too many failed password
1109
+ # attempts. Before you can connect your custom key store to its
1012
1110
  # CloudHSM cluster, you must change the `kmsuser` account password
1013
1111
  # and update the key store password value for the custom key store.
1014
1112
  #
1015
1113
  # * `USER_LOGGED_IN` - The `kmsuser` CU account is logged into the the
1016
- # associated AWS CloudHSM cluster. This prevents AWS KMS from
1017
- # rotating the `kmsuser` account password and logging into the
1018
- # cluster. Before you can connect your custom key store to its AWS
1019
- # CloudHSM cluster, you must log the `kmsuser` CU out of the
1020
- # cluster. If you changed the `kmsuser` password to log into the
1021
- # cluster, you must also and update the key store password value for
1022
- # the custom key store. For help, see [How to Log Out and
1023
- # Reconnect][2] in the *AWS Key Management Service Developer Guide*.
1024
- #
1025
- # * `USER_NOT_FOUND` - AWS KMS cannot find a `kmsuser` CU account in
1026
- # the associated AWS CloudHSM cluster. Before you can connect your
1027
- # custom key store to its AWS CloudHSM cluster, you must create a
1028
- # `kmsuser` CU account in the cluster, and then update the key store
1029
- # password value for the custom key store.
1114
+ # associated CloudHSM cluster. This prevents KMS from rotating the
1115
+ # `kmsuser` account password and logging into the cluster. Before
1116
+ # you can connect your custom key store to its CloudHSM cluster, you
1117
+ # must log the `kmsuser` CU out of the cluster. If you changed the
1118
+ # `kmsuser` password to log into the cluster, you must also and
1119
+ # update the key store password value for the custom key store. For
1120
+ # help, see [How to Log Out and Reconnect][2] in the *Key Management
1121
+ # Service Developer Guide*.
1122
+ #
1123
+ # * `USER_NOT_FOUND` - KMS cannot find a `kmsuser` CU account in the
1124
+ # associated CloudHSM cluster. Before you can connect your custom
1125
+ # key store to its CloudHSM cluster, you must create a `kmsuser` CU
1126
+ # account in the cluster, and then update the key store password
1127
+ # value for the custom key store.
1030
1128
  #
1031
1129
  #
1032
1130
  #
@@ -1072,17 +1170,17 @@ module Aws::KMS
1072
1170
  # @!attribute [rw] encryption_context
1073
1171
  # Specifies the encryption context to use when decrypting the data. An
1074
1172
  # encryption context is valid only for [cryptographic operations][1]
1075
- # with a symmetric CMK. The standard asymmetric encryption algorithms
1076
- # that AWS KMS uses do not support an encryption context.
1173
+ # with a symmetric KMS key. The standard asymmetric encryption
1174
+ # algorithms that KMS uses do not support an encryption context.
1077
1175
  #
1078
1176
  # An *encryption context* is a collection of non-secret key-value
1079
1177
  # pairs that represents additional authenticated data. When you use an
1080
1178
  # encryption context to encrypt data, you must specify the same (an
1081
1179
  # exact case-sensitive match) encryption context to decrypt the data.
1082
1180
  # An encryption context is optional when encrypting with a symmetric
1083
- # CMK, but it is highly recommended.
1181
+ # KMS key, but it is highly recommended.
1084
1182
  #
1085
- # For more information, see [Encryption Context][2] in the *AWS Key
1183
+ # For more information, see [Encryption Context][2] in the *Key
1086
1184
  # Management Service Developer Guide*.
1087
1185
  #
1088
1186
  #
@@ -1094,29 +1192,32 @@ module Aws::KMS
1094
1192
  # @!attribute [rw] grant_tokens
1095
1193
  # A list of grant tokens.
1096
1194
  #
1097
- # For more information, see [Grant Tokens][1] in the *AWS Key
1098
- # Management Service Developer Guide*.
1195
+ # Use a grant token when your permission to call this operation comes
1196
+ # from a new grant that has not yet achieved *eventual consistency*.
1197
+ # For more information, see [Grant token][1] and [Using a grant
1198
+ # token][2] in the *Key Management Service Developer Guide*.
1099
1199
  #
1100
1200
  #
1101
1201
  #
1102
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
1202
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1203
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
1103
1204
  # @return [Array<String>]
1104
1205
  #
1105
1206
  # @!attribute [rw] key_id
1106
- # Specifies the customer master key (CMK) that AWS KMS uses to decrypt
1107
- # the ciphertext. Enter a key ID of the CMK that was used to encrypt
1108
- # the ciphertext.
1207
+ # Specifies the KMS key that KMS uses to decrypt the ciphertext. Enter
1208
+ # a key ID of the KMS key that was used to encrypt the ciphertext.
1109
1209
  #
1110
1210
  # This parameter is required only when the ciphertext was encrypted
1111
- # under an asymmetric CMK. If you used a symmetric CMK, AWS KMS can
1112
- # get the CMK from metadata that it adds to the symmetric ciphertext
1113
- # blob. However, it is always recommended as a best practice. This
1114
- # practice ensures that you use the CMK that you intend.
1211
+ # under an asymmetric KMS key. If you used a symmetric KMS key, KMS
1212
+ # can get the KMS key from metadata that it adds to the symmetric
1213
+ # ciphertext blob. However, it is always recommended as a best
1214
+ # practice. This practice ensures that you use the KMS key that you
1215
+ # intend.
1115
1216
  #
1116
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
1117
- # name, or alias ARN. When using an alias name, prefix it with
1118
- # `"alias/"`. To specify a CMK in a different AWS account, you must
1119
- # use the key ARN or alias ARN.
1217
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
1218
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
1219
+ # a KMS key in a different Amazon Web Services account, you must use
1220
+ # the key ARN or alias ARN.
1120
1221
  #
1121
1222
  # For example:
1122
1223
  #
@@ -1129,7 +1230,7 @@ module Aws::KMS
1129
1230
  #
1130
1231
  # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
1131
1232
  #
1132
- # To get the key ID and key ARN for a CMK, use ListKeys or
1233
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1133
1234
  # DescribeKey. To get the alias name and alias ARN, use ListAliases.
1134
1235
  # @return [String]
1135
1236
  #
@@ -1140,9 +1241,9 @@ module Aws::KMS
1140
1241
  # fails.
1141
1242
  #
1142
1243
  # This parameter is required only when the ciphertext was encrypted
1143
- # under an asymmetric CMK. The default value, `SYMMETRIC_DEFAULT`,
1244
+ # under an asymmetric KMS key. The default value, `SYMMETRIC_DEFAULT`,
1144
1245
  # represents the only supported algorithm that is valid for symmetric
1145
- # CMKs.
1246
+ # KMS keys.
1146
1247
  # @return [String]
1147
1248
  #
1148
1249
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptRequest AWS API Documentation
@@ -1158,8 +1259,8 @@ module Aws::KMS
1158
1259
  end
1159
1260
 
1160
1261
  # @!attribute [rw] key_id
1161
- # The Amazon Resource Name ([key ARN][1]) of the CMK that was used to
1162
- # decrypt the ciphertext.
1262
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key that was used
1263
+ # to decrypt the ciphertext.
1163
1264
  #
1164
1265
  #
1165
1266
  #
@@ -1167,8 +1268,9 @@ module Aws::KMS
1167
1268
  # @return [String]
1168
1269
  #
1169
1270
  # @!attribute [rw] plaintext
1170
- # Decrypted plaintext data. When you use the HTTP API or the AWS CLI,
1171
- # the value is Base64-encoded. Otherwise, it is not Base64-encoded.
1271
+ # Decrypted plaintext data. When you use the HTTP API or the Amazon
1272
+ # Web Services CLI, the value is Base64-encoded. Otherwise, it is not
1273
+ # Base64-encoded.
1172
1274
  # @return [String]
1173
1275
  #
1174
1276
  # @!attribute [rw] encryption_algorithm
@@ -1237,10 +1339,10 @@ module Aws::KMS
1237
1339
  # }
1238
1340
  #
1239
1341
  # @!attribute [rw] key_id
1240
- # Identifies the CMK from which you are deleting imported key
1241
- # material. The `Origin` of the CMK must be `EXTERNAL`.
1342
+ # Identifies the KMS key from which you are deleting imported key
1343
+ # material. The `Origin` of the KMS key must be `EXTERNAL`.
1242
1344
  #
1243
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
1345
+ # Specify the key ID or key ARN of the KMS key.
1244
1346
  #
1245
1347
  # For example:
1246
1348
  #
@@ -1249,7 +1351,7 @@ module Aws::KMS
1249
1351
  # * Key ARN:
1250
1352
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
1251
1353
  #
1252
- # To get the key ID and key ARN for a CMK, use ListKeys or
1354
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1253
1355
  # DescribeKey.
1254
1356
  # @return [String]
1255
1357
  #
@@ -1290,7 +1392,7 @@ module Aws::KMS
1290
1392
  # the key store ID.
1291
1393
  #
1292
1394
  # By default, this operation gets information about all custom key
1293
- # stores in the account and region. To limit the output to a
1395
+ # stores in the account and Region. To limit the output to a
1294
1396
  # particular custom key store, you can use either the
1295
1397
  # `CustomKeyStoreId` or `CustomKeyStoreName` parameter, but not both.
1296
1398
  # @return [String]
@@ -1300,14 +1402,14 @@ module Aws::KMS
1300
1402
  # the friendly name of the custom key store.
1301
1403
  #
1302
1404
  # By default, this operation gets information about all custom key
1303
- # stores in the account and region. To limit the output to a
1405
+ # stores in the account and Region. To limit the output to a
1304
1406
  # particular custom key store, you can use either the
1305
1407
  # `CustomKeyStoreId` or `CustomKeyStoreName` parameter, but not both.
1306
1408
  # @return [String]
1307
1409
  #
1308
1410
  # @!attribute [rw] limit
1309
1411
  # Use this parameter to specify the maximum number of items to return.
1310
- # When this value is present, AWS KMS does not return more than the
1412
+ # When this value is present, KMS does not return more than the
1311
1413
  # specified number of items, but it might return fewer.
1312
1414
  # @return [Integer]
1313
1415
  #
@@ -1363,16 +1465,17 @@ module Aws::KMS
1363
1465
  # }
1364
1466
  #
1365
1467
  # @!attribute [rw] key_id
1366
- # Describes the specified customer master key (CMK).
1468
+ # Describes the specified KMS key.
1367
1469
  #
1368
- # If you specify a predefined AWS alias (an AWS alias with no key ID),
1369
- # KMS associates the alias with an [AWS managed CMK][1] and returns
1370
- # its `KeyId` and `Arn` in the response.
1470
+ # If you specify a predefined Amazon Web Services alias (an Amazon Web
1471
+ # Services alias with no key ID), KMS associates the alias with an
1472
+ # [Amazon Web Services managed key][1] and returns its `KeyId` and
1473
+ # `Arn` in the response.
1371
1474
  #
1372
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
1373
- # name, or alias ARN. When using an alias name, prefix it with
1374
- # `"alias/"`. To specify a CMK in a different AWS account, you must
1375
- # use the key ARN or alias ARN.
1475
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
1476
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
1477
+ # a KMS key in a different Amazon Web Services account, you must use
1478
+ # the key ARN or alias ARN.
1376
1479
  #
1377
1480
  # For example:
1378
1481
  #
@@ -1385,23 +1488,26 @@ module Aws::KMS
1385
1488
  #
1386
1489
  # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
1387
1490
  #
1388
- # To get the key ID and key ARN for a CMK, use ListKeys or
1491
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1389
1492
  # DescribeKey. To get the alias name and alias ARN, use ListAliases.
1390
1493
  #
1391
1494
  #
1392
1495
  #
1393
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys
1496
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html##aws-managed-cmk
1394
1497
  # @return [String]
1395
1498
  #
1396
1499
  # @!attribute [rw] grant_tokens
1397
1500
  # A list of grant tokens.
1398
1501
  #
1399
- # For more information, see [Grant Tokens][1] in the *AWS Key
1400
- # Management Service Developer Guide*.
1502
+ # Use a grant token when your permission to call this operation comes
1503
+ # from a new grant that has not yet achieved *eventual consistency*.
1504
+ # For more information, see [Grant token][1] and [Using a grant
1505
+ # token][2] in the *Key Management Service Developer Guide*.
1401
1506
  #
1402
1507
  #
1403
1508
  #
1404
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
1509
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1510
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
1405
1511
  # @return [Array<String>]
1406
1512
  #
1407
1513
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKeyRequest AWS API Documentation
@@ -1433,9 +1539,9 @@ module Aws::KMS
1433
1539
  # }
1434
1540
  #
1435
1541
  # @!attribute [rw] key_id
1436
- # A unique identifier for the customer master key (CMK).
1542
+ # Identifies the KMS key to disable.
1437
1543
  #
1438
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
1544
+ # Specify the key ID or key ARN of the KMS key.
1439
1545
  #
1440
1546
  # For example:
1441
1547
  #
@@ -1444,7 +1550,7 @@ module Aws::KMS
1444
1550
  # * Key ARN:
1445
1551
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
1446
1552
  #
1447
- # To get the key ID and key ARN for a CMK, use ListKeys or
1553
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1448
1554
  # DescribeKey.
1449
1555
  # @return [String]
1450
1556
  #
@@ -1464,11 +1570,11 @@ module Aws::KMS
1464
1570
  # }
1465
1571
  #
1466
1572
  # @!attribute [rw] key_id
1467
- # Identifies a symmetric customer master key (CMK). You cannot enable
1468
- # or disable automatic rotation of [asymmetric CMKs][1], CMKs with
1469
- # [imported key material][2], or CMKs in a [custom key store][3].
1573
+ # Identifies a symmetric KMS key. You cannot enable or disable
1574
+ # automatic rotation of [asymmetric KMS keys][1], KMS keys with
1575
+ # [imported key material][2], or KMS keys in a [custom key store][3].
1470
1576
  #
1471
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
1577
+ # Specify the key ID or key ARN of the KMS key.
1472
1578
  #
1473
1579
  # For example:
1474
1580
  #
@@ -1477,7 +1583,7 @@ module Aws::KMS
1477
1583
  # * Key ARN:
1478
1584
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
1479
1585
  #
1480
- # To get the key ID and key ARN for a CMK, use ListKeys or
1586
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1481
1587
  # DescribeKey.
1482
1588
  #
1483
1589
  #
@@ -1495,7 +1601,7 @@ module Aws::KMS
1495
1601
  include Aws::Structure
1496
1602
  end
1497
1603
 
1498
- # The request was rejected because the specified CMK is not enabled.
1604
+ # The request was rejected because the specified KMS key is not enabled.
1499
1605
  #
1500
1606
  # @!attribute [rw] message
1501
1607
  # @return [String]
@@ -1541,9 +1647,9 @@ module Aws::KMS
1541
1647
  # }
1542
1648
  #
1543
1649
  # @!attribute [rw] key_id
1544
- # A unique identifier for the customer master key (CMK).
1650
+ # Identifies the KMS key to enable.
1545
1651
  #
1546
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
1652
+ # Specify the key ID or key ARN of the KMS key.
1547
1653
  #
1548
1654
  # For example:
1549
1655
  #
@@ -1552,7 +1658,7 @@ module Aws::KMS
1552
1658
  # * Key ARN:
1553
1659
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
1554
1660
  #
1555
- # To get the key ID and key ARN for a CMK, use ListKeys or
1661
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1556
1662
  # DescribeKey.
1557
1663
  # @return [String]
1558
1664
  #
@@ -1572,11 +1678,13 @@ module Aws::KMS
1572
1678
  # }
1573
1679
  #
1574
1680
  # @!attribute [rw] key_id
1575
- # Identifies a symmetric customer master key (CMK). You cannot enable
1576
- # automatic rotation of asymmetric CMKs, CMKs with imported key
1577
- # material, or CMKs in a [custom key store][1].
1681
+ # Identifies a symmetric KMS key. You cannot enable automatic rotation
1682
+ # of [asymmetric KMS keys][1], KMS keys with [imported key
1683
+ # material][2], or KMS keys in a [custom key store][3]. To enable or
1684
+ # disable automatic rotation of a set of related [multi-Region
1685
+ # keys][4], set the property on the primary key.
1578
1686
  #
1579
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
1687
+ # Specify the key ID or key ARN of the KMS key.
1580
1688
  #
1581
1689
  # For example:
1582
1690
  #
@@ -1585,12 +1693,15 @@ module Aws::KMS
1585
1693
  # * Key ARN:
1586
1694
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
1587
1695
  #
1588
- # To get the key ID and key ARN for a CMK, use ListKeys or
1696
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1589
1697
  # DescribeKey.
1590
1698
  #
1591
1699
  #
1592
1700
  #
1593
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1701
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks
1702
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html
1703
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html
1704
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-replica-key
1594
1705
  # @return [String]
1595
1706
  #
1596
1707
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRotationRequest AWS API Documentation
@@ -1615,12 +1726,12 @@ module Aws::KMS
1615
1726
  # }
1616
1727
  #
1617
1728
  # @!attribute [rw] key_id
1618
- # A unique identifier for the customer master key (CMK).
1729
+ # Identifies the KMS key to use in the encryption operation.
1619
1730
  #
1620
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
1621
- # name, or alias ARN. When using an alias name, prefix it with
1622
- # `"alias/"`. To specify a CMK in a different AWS account, you must
1623
- # use the key ARN or alias ARN.
1731
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
1732
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
1733
+ # a KMS key in a different Amazon Web Services account, you must use
1734
+ # the key ARN or alias ARN.
1624
1735
  #
1625
1736
  # For example:
1626
1737
  #
@@ -1633,7 +1744,7 @@ module Aws::KMS
1633
1744
  #
1634
1745
  # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
1635
1746
  #
1636
- # To get the key ID and key ARN for a CMK, use ListKeys or
1747
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1637
1748
  # DescribeKey. To get the alias name and alias ARN, use ListAliases.
1638
1749
  # @return [String]
1639
1750
  #
@@ -1644,8 +1755,8 @@ module Aws::KMS
1644
1755
  # @!attribute [rw] encryption_context
1645
1756
  # Specifies the encryption context that will be used to encrypt the
1646
1757
  # data. An encryption context is valid only for [cryptographic
1647
- # operations][1] with a symmetric CMK. The standard asymmetric
1648
- # encryption algorithms that AWS KMS uses do not support an encryption
1758
+ # operations][1] with a symmetric KMS key. The standard asymmetric
1759
+ # encryption algorithms that KMS uses do not support an encryption
1649
1760
  # context.
1650
1761
  #
1651
1762
  # An *encryption context* is a collection of non-secret key-value
@@ -1653,9 +1764,9 @@ module Aws::KMS
1653
1764
  # encryption context to encrypt data, you must specify the same (an
1654
1765
  # exact case-sensitive match) encryption context to decrypt the data.
1655
1766
  # An encryption context is optional when encrypting with a symmetric
1656
- # CMK, but it is highly recommended.
1767
+ # KMS key, but it is highly recommended.
1657
1768
  #
1658
- # For more information, see [Encryption Context][2] in the *AWS Key
1769
+ # For more information, see [Encryption Context][2] in the *Key
1659
1770
  # Management Service Developer Guide*.
1660
1771
  #
1661
1772
  #
@@ -1667,22 +1778,25 @@ module Aws::KMS
1667
1778
  # @!attribute [rw] grant_tokens
1668
1779
  # A list of grant tokens.
1669
1780
  #
1670
- # For more information, see [Grant Tokens][1] in the *AWS Key
1671
- # Management Service Developer Guide*.
1781
+ # Use a grant token when your permission to call this operation comes
1782
+ # from a new grant that has not yet achieved *eventual consistency*.
1783
+ # For more information, see [Grant token][1] and [Using a grant
1784
+ # token][2] in the *Key Management Service Developer Guide*.
1672
1785
  #
1673
1786
  #
1674
1787
  #
1675
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
1788
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1789
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
1676
1790
  # @return [Array<String>]
1677
1791
  #
1678
1792
  # @!attribute [rw] encryption_algorithm
1679
- # Specifies the encryption algorithm that AWS KMS will use to encrypt
1680
- # the plaintext message. The algorithm must be compatible with the CMK
1793
+ # Specifies the encryption algorithm that KMS will use to encrypt the
1794
+ # plaintext message. The algorithm must be compatible with the KMS key
1681
1795
  # that you specify.
1682
1796
  #
1683
- # This parameter is required only for asymmetric CMKs. The default
1684
- # value, `SYMMETRIC_DEFAULT`, is the algorithm used for symmetric
1685
- # CMKs. If you are using an asymmetric CMK, we recommend
1797
+ # This parameter is required only for asymmetric KMS keys. The default
1798
+ # value, `SYMMETRIC_DEFAULT`, is the algorithm used for symmetric KMS
1799
+ # keys. If you are using an asymmetric KMS key, we recommend
1686
1800
  # RSAES\_OAEP\_SHA\_256.
1687
1801
  # @return [String]
1688
1802
  #
@@ -1699,13 +1813,14 @@ module Aws::KMS
1699
1813
  end
1700
1814
 
1701
1815
  # @!attribute [rw] ciphertext_blob
1702
- # The encrypted plaintext. When you use the HTTP API or the AWS CLI,
1703
- # the value is Base64-encoded. Otherwise, it is not Base64-encoded.
1816
+ # The encrypted plaintext. When you use the HTTP API or the Amazon Web
1817
+ # Services CLI, the value is Base64-encoded. Otherwise, it is not
1818
+ # Base64-encoded.
1704
1819
  # @return [String]
1705
1820
  #
1706
1821
  # @!attribute [rw] key_id
1707
- # The Amazon Resource Name ([key ARN][1]) of the CMK that was used to
1708
- # encrypt the plaintext.
1822
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key that was used
1823
+ # to encrypt the plaintext.
1709
1824
  #
1710
1825
  #
1711
1826
  #
@@ -1763,9 +1878,9 @@ module Aws::KMS
1763
1878
  # encryption context to encrypt data, you must specify the same (an
1764
1879
  # exact case-sensitive match) encryption context to decrypt the data.
1765
1880
  # An encryption context is optional when encrypting with a symmetric
1766
- # CMK, but it is highly recommended.
1881
+ # KMS key, but it is highly recommended.
1767
1882
  #
1768
- # For more information, see [Encryption Context][1] in the *AWS Key
1883
+ # For more information, see [Encryption Context][1] in the *Key
1769
1884
  # Management Service Developer Guide*.
1770
1885
  #
1771
1886
  #
@@ -1774,15 +1889,15 @@ module Aws::KMS
1774
1889
  # @return [Hash<String,String>]
1775
1890
  #
1776
1891
  # @!attribute [rw] key_id
1777
- # Specifies the symmetric CMK that encrypts the private key in the
1778
- # data key pair. You cannot specify an asymmetric CMK or a CMK in a
1779
- # custom key store. To get the type and origin of your CMK, use the
1780
- # DescribeKey operation.
1892
+ # Specifies the symmetric KMS key that encrypts the private key in the
1893
+ # data key pair. You cannot specify an asymmetric KMS key or a KMS key
1894
+ # in a custom key store. To get the type and origin of your KMS key,
1895
+ # use the DescribeKey operation.
1781
1896
  #
1782
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
1783
- # name, or alias ARN. When using an alias name, prefix it with
1784
- # `"alias/"`. To specify a CMK in a different AWS account, you must
1785
- # use the key ARN or alias ARN.
1897
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
1898
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
1899
+ # a KMS key in a different Amazon Web Services account, you must use
1900
+ # the key ARN or alias ARN.
1786
1901
  #
1787
1902
  # For example:
1788
1903
  #
@@ -1795,28 +1910,31 @@ module Aws::KMS
1795
1910
  #
1796
1911
  # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
1797
1912
  #
1798
- # To get the key ID and key ARN for a CMK, use ListKeys or
1913
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1799
1914
  # DescribeKey. To get the alias name and alias ARN, use ListAliases.
1800
1915
  # @return [String]
1801
1916
  #
1802
1917
  # @!attribute [rw] key_pair_spec
1803
1918
  # Determines the type of data key pair that is generated.
1804
1919
  #
1805
- # The AWS KMS rule that restricts the use of asymmetric RSA CMKs to
1920
+ # The KMS rule that restricts the use of asymmetric RSA KMS keys to
1806
1921
  # encrypt and decrypt or to sign and verify (but not both), and the
1807
- # rule that permits you to use ECC CMKs only to sign and verify, are
1808
- # not effective outside of AWS KMS.
1922
+ # rule that permits you to use ECC KMS keys only to sign and verify,
1923
+ # are not effective on data key pairs, which are used outside of KMS.
1809
1924
  # @return [String]
1810
1925
  #
1811
1926
  # @!attribute [rw] grant_tokens
1812
1927
  # A list of grant tokens.
1813
1928
  #
1814
- # For more information, see [Grant Tokens][1] in the *AWS Key
1815
- # Management Service Developer Guide*.
1929
+ # Use a grant token when your permission to call this operation comes
1930
+ # from a new grant that has not yet achieved *eventual consistency*.
1931
+ # For more information, see [Grant token][1] and [Using a grant
1932
+ # token][2] in the *Key Management Service Developer Guide*.
1816
1933
  #
1817
1934
  #
1818
1935
  #
1819
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
1936
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
1937
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
1820
1938
  # @return [Array<String>]
1821
1939
  #
1822
1940
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairRequest AWS API Documentation
@@ -1832,14 +1950,14 @@ module Aws::KMS
1832
1950
 
1833
1951
  # @!attribute [rw] private_key_ciphertext_blob
1834
1952
  # The encrypted copy of the private key. When you use the HTTP API or
1835
- # the AWS CLI, the value is Base64-encoded. Otherwise, it is not
1836
- # Base64-encoded.
1953
+ # the Amazon Web Services CLI, the value is Base64-encoded. Otherwise,
1954
+ # it is not Base64-encoded.
1837
1955
  # @return [String]
1838
1956
  #
1839
1957
  # @!attribute [rw] private_key_plaintext
1840
1958
  # The plaintext copy of the private key. When you use the HTTP API or
1841
- # the AWS CLI, the value is Base64-encoded. Otherwise, it is not
1842
- # Base64-encoded.
1959
+ # the Amazon Web Services CLI, the value is Base64-encoded. Otherwise,
1960
+ # it is not Base64-encoded.
1843
1961
  # @return [String]
1844
1962
  #
1845
1963
  # @!attribute [rw] public_key
@@ -1847,8 +1965,8 @@ module Aws::KMS
1847
1965
  # @return [String]
1848
1966
  #
1849
1967
  # @!attribute [rw] key_id
1850
- # The Amazon Resource Name ([key ARN][1]) of the CMK that encrypted
1851
- # the private key.
1968
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key that
1969
+ # encrypted the private key.
1852
1970
  #
1853
1971
  #
1854
1972
  #
@@ -1892,9 +2010,9 @@ module Aws::KMS
1892
2010
  # encryption context to encrypt data, you must specify the same (an
1893
2011
  # exact case-sensitive match) encryption context to decrypt the data.
1894
2012
  # An encryption context is optional when encrypting with a symmetric
1895
- # CMK, but it is highly recommended.
2013
+ # KMS key, but it is highly recommended.
1896
2014
  #
1897
- # For more information, see [Encryption Context][1] in the *AWS Key
2015
+ # For more information, see [Encryption Context][1] in the *Key
1898
2016
  # Management Service Developer Guide*.
1899
2017
  #
1900
2018
  #
@@ -1903,15 +2021,15 @@ module Aws::KMS
1903
2021
  # @return [Hash<String,String>]
1904
2022
  #
1905
2023
  # @!attribute [rw] key_id
1906
- # Specifies the CMK that encrypts the private key in the data key
1907
- # pair. You must specify a symmetric CMK. You cannot use an asymmetric
1908
- # CMK or a CMK in a custom key store. To get the type and origin of
1909
- # your CMK, use the DescribeKey operation.
2024
+ # Specifies the KMS key that encrypts the private key in the data key
2025
+ # pair. You must specify a symmetric KMS key. You cannot use an
2026
+ # asymmetric KMS key or a KMS key in a custom key store. To get the
2027
+ # type and origin of your KMS key, use the DescribeKey operation.
1910
2028
  #
1911
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
1912
- # name, or alias ARN. When using an alias name, prefix it with
1913
- # `"alias/"`. To specify a CMK in a different AWS account, you must
1914
- # use the key ARN or alias ARN.
2029
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
2030
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
2031
+ # a KMS key in a different Amazon Web Services account, you must use
2032
+ # the key ARN or alias ARN.
1915
2033
  #
1916
2034
  # For example:
1917
2035
  #
@@ -1924,28 +2042,31 @@ module Aws::KMS
1924
2042
  #
1925
2043
  # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
1926
2044
  #
1927
- # To get the key ID and key ARN for a CMK, use ListKeys or
2045
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
1928
2046
  # DescribeKey. To get the alias name and alias ARN, use ListAliases.
1929
2047
  # @return [String]
1930
2048
  #
1931
2049
  # @!attribute [rw] key_pair_spec
1932
2050
  # Determines the type of data key pair that is generated.
1933
2051
  #
1934
- # The AWS KMS rule that restricts the use of asymmetric RSA CMKs to
2052
+ # The KMS rule that restricts the use of asymmetric RSA KMS keys to
1935
2053
  # encrypt and decrypt or to sign and verify (but not both), and the
1936
- # rule that permits you to use ECC CMKs only to sign and verify, are
1937
- # not effective outside of AWS KMS.
2054
+ # rule that permits you to use ECC KMS keys only to sign and verify,
2055
+ # are not effective on data key pairs, which are used outside of KMS.
1938
2056
  # @return [String]
1939
2057
  #
1940
2058
  # @!attribute [rw] grant_tokens
1941
2059
  # A list of grant tokens.
1942
2060
  #
1943
- # For more information, see [Grant Tokens][1] in the *AWS Key
1944
- # Management Service Developer Guide*.
2061
+ # Use a grant token when your permission to call this operation comes
2062
+ # from a new grant that has not yet achieved *eventual consistency*.
2063
+ # For more information, see [Grant token][1] and [Using a grant
2064
+ # token][2] in the *Key Management Service Developer Guide*.
1945
2065
  #
1946
2066
  #
1947
2067
  #
1948
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
2068
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2069
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
1949
2070
  # @return [Array<String>]
1950
2071
  #
1951
2072
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintextRequest AWS API Documentation
@@ -1961,8 +2082,8 @@ module Aws::KMS
1961
2082
 
1962
2083
  # @!attribute [rw] private_key_ciphertext_blob
1963
2084
  # The encrypted copy of the private key. When you use the HTTP API or
1964
- # the AWS CLI, the value is Base64-encoded. Otherwise, it is not
1965
- # Base64-encoded.
2085
+ # the Amazon Web Services CLI, the value is Base64-encoded. Otherwise,
2086
+ # it is not Base64-encoded.
1966
2087
  # @return [String]
1967
2088
  #
1968
2089
  # @!attribute [rw] public_key
@@ -1970,8 +2091,8 @@ module Aws::KMS
1970
2091
  # @return [String]
1971
2092
  #
1972
2093
  # @!attribute [rw] key_id
1973
- # The Amazon Resource Name ([key ARN][1]) of the CMK that encrypted
1974
- # the private key.
2094
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key that
2095
+ # encrypted the private key.
1975
2096
  #
1976
2097
  #
1977
2098
  #
@@ -2007,12 +2128,12 @@ module Aws::KMS
2007
2128
  # }
2008
2129
  #
2009
2130
  # @!attribute [rw] key_id
2010
- # Identifies the symmetric CMK that encrypts the data key.
2131
+ # Identifies the symmetric KMS key that encrypts the data key.
2011
2132
  #
2012
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2013
- # name, or alias ARN. When using an alias name, prefix it with
2014
- # `"alias/"`. To specify a CMK in a different AWS account, you must
2015
- # use the key ARN or alias ARN.
2133
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
2134
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
2135
+ # a KMS key in a different Amazon Web Services account, you must use
2136
+ # the key ARN or alias ARN.
2016
2137
  #
2017
2138
  # For example:
2018
2139
  #
@@ -2025,7 +2146,7 @@ module Aws::KMS
2025
2146
  #
2026
2147
  # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
2027
2148
  #
2028
- # To get the key ID and key ARN for a CMK, use ListKeys or
2149
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
2029
2150
  # DescribeKey. To get the alias name and alias ARN, use ListAliases.
2030
2151
  # @return [String]
2031
2152
  #
@@ -2038,9 +2159,9 @@ module Aws::KMS
2038
2159
  # encryption context to encrypt data, you must specify the same (an
2039
2160
  # exact case-sensitive match) encryption context to decrypt the data.
2040
2161
  # An encryption context is optional when encrypting with a symmetric
2041
- # CMK, but it is highly recommended.
2162
+ # KMS key, but it is highly recommended.
2042
2163
  #
2043
- # For more information, see [Encryption Context][1] in the *AWS Key
2164
+ # For more information, see [Encryption Context][1] in the *Key
2044
2165
  # Management Service Developer Guide*.
2045
2166
  #
2046
2167
  #
@@ -2070,12 +2191,15 @@ module Aws::KMS
2070
2191
  # @!attribute [rw] grant_tokens
2071
2192
  # A list of grant tokens.
2072
2193
  #
2073
- # For more information, see [Grant Tokens][1] in the *AWS Key
2074
- # Management Service Developer Guide*.
2194
+ # Use a grant token when your permission to call this operation comes
2195
+ # from a new grant that has not yet achieved *eventual consistency*.
2196
+ # For more information, see [Grant token][1] and [Using a grant
2197
+ # token][2] in the *Key Management Service Developer Guide*.
2075
2198
  #
2076
2199
  #
2077
2200
  #
2078
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
2201
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2202
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2079
2203
  # @return [Array<String>]
2080
2204
  #
2081
2205
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyRequest AWS API Documentation
@@ -2092,20 +2216,20 @@ module Aws::KMS
2092
2216
 
2093
2217
  # @!attribute [rw] ciphertext_blob
2094
2218
  # The encrypted copy of the data key. When you use the HTTP API or the
2095
- # AWS CLI, the value is Base64-encoded. Otherwise, it is not
2096
- # Base64-encoded.
2219
+ # Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it
2220
+ # is not Base64-encoded.
2097
2221
  # @return [String]
2098
2222
  #
2099
2223
  # @!attribute [rw] plaintext
2100
- # The plaintext data key. When you use the HTTP API or the AWS CLI,
2101
- # the value is Base64-encoded. Otherwise, it is not Base64-encoded.
2102
- # Use this data key to encrypt your data outside of KMS. Then, remove
2103
- # it from memory as soon as possible.
2224
+ # The plaintext data key. When you use the HTTP API or the Amazon Web
2225
+ # Services CLI, the value is Base64-encoded. Otherwise, it is not
2226
+ # Base64-encoded. Use this data key to encrypt your data outside of
2227
+ # KMS. Then, remove it from memory as soon as possible.
2104
2228
  # @return [String]
2105
2229
  #
2106
2230
  # @!attribute [rw] key_id
2107
- # The Amazon Resource Name ([key ARN][1]) of the CMK that encrypted
2108
- # the data key.
2231
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key that
2232
+ # encrypted the data key.
2109
2233
  #
2110
2234
  #
2111
2235
  #
@@ -2136,13 +2260,12 @@ module Aws::KMS
2136
2260
  # }
2137
2261
  #
2138
2262
  # @!attribute [rw] key_id
2139
- # The identifier of the symmetric customer master key (CMK) that
2140
- # encrypts the data key.
2263
+ # The identifier of the symmetric KMS key that encrypts the data key.
2141
2264
  #
2142
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2143
- # name, or alias ARN. When using an alias name, prefix it with
2144
- # `"alias/"`. To specify a CMK in a different AWS account, you must
2145
- # use the key ARN or alias ARN.
2265
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
2266
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
2267
+ # a KMS key in a different Amazon Web Services account, you must use
2268
+ # the key ARN or alias ARN.
2146
2269
  #
2147
2270
  # For example:
2148
2271
  #
@@ -2155,7 +2278,7 @@ module Aws::KMS
2155
2278
  #
2156
2279
  # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
2157
2280
  #
2158
- # To get the key ID and key ARN for a CMK, use ListKeys or
2281
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
2159
2282
  # DescribeKey. To get the alias name and alias ARN, use ListAliases.
2160
2283
  # @return [String]
2161
2284
  #
@@ -2168,9 +2291,9 @@ module Aws::KMS
2168
2291
  # encryption context to encrypt data, you must specify the same (an
2169
2292
  # exact case-sensitive match) encryption context to decrypt the data.
2170
2293
  # An encryption context is optional when encrypting with a symmetric
2171
- # CMK, but it is highly recommended.
2294
+ # KMS key, but it is highly recommended.
2172
2295
  #
2173
- # For more information, see [Encryption Context][1] in the *AWS Key
2296
+ # For more information, see [Encryption Context][1] in the *Key
2174
2297
  # Management Service Developer Guide*.
2175
2298
  #
2176
2299
  #
@@ -2193,12 +2316,15 @@ module Aws::KMS
2193
2316
  # @!attribute [rw] grant_tokens
2194
2317
  # A list of grant tokens.
2195
2318
  #
2196
- # For more information, see [Grant Tokens][1] in the *AWS Key
2197
- # Management Service Developer Guide*.
2319
+ # Use a grant token when your permission to call this operation comes
2320
+ # from a new grant that has not yet achieved *eventual consistency*.
2321
+ # For more information, see [Grant token][1] and [Using a grant
2322
+ # token][2] in the *Key Management Service Developer Guide*.
2198
2323
  #
2199
2324
  #
2200
2325
  #
2201
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
2326
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2327
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2202
2328
  # @return [Array<String>]
2203
2329
  #
2204
2330
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintextRequest AWS API Documentation
@@ -2214,13 +2340,14 @@ module Aws::KMS
2214
2340
  end
2215
2341
 
2216
2342
  # @!attribute [rw] ciphertext_blob
2217
- # The encrypted data key. When you use the HTTP API or the AWS CLI,
2218
- # the value is Base64-encoded. Otherwise, it is not Base64-encoded.
2343
+ # The encrypted data key. When you use the HTTP API or the Amazon Web
2344
+ # Services CLI, the value is Base64-encoded. Otherwise, it is not
2345
+ # Base64-encoded.
2219
2346
  # @return [String]
2220
2347
  #
2221
2348
  # @!attribute [rw] key_id
2222
- # The Amazon Resource Name ([key ARN][1]) of the CMK that encrypted
2223
- # the data key.
2349
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key that
2350
+ # encrypted the data key.
2224
2351
  #
2225
2352
  #
2226
2353
  #
@@ -2249,7 +2376,7 @@ module Aws::KMS
2249
2376
  # @return [Integer]
2250
2377
  #
2251
2378
  # @!attribute [rw] custom_key_store_id
2252
- # Generates the random byte string in the AWS CloudHSM cluster that is
2379
+ # Generates the random byte string in the CloudHSM cluster that is
2253
2380
  # associated with the specified [custom key store][1]. To find the ID
2254
2381
  # of a custom key store, use the DescribeCustomKeyStores operation.
2255
2382
  #
@@ -2268,8 +2395,9 @@ module Aws::KMS
2268
2395
  end
2269
2396
 
2270
2397
  # @!attribute [rw] plaintext
2271
- # The random byte string. When you use the HTTP API or the AWS CLI,
2272
- # the value is Base64-encoded. Otherwise, it is not Base64-encoded.
2398
+ # The random byte string. When you use the HTTP API or the Amazon Web
2399
+ # Services CLI, the value is Base64-encoded. Otherwise, it is not
2400
+ # Base64-encoded.
2273
2401
  # @return [String]
2274
2402
  #
2275
2403
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomResponse AWS API Documentation
@@ -2289,9 +2417,9 @@ module Aws::KMS
2289
2417
  # }
2290
2418
  #
2291
2419
  # @!attribute [rw] key_id
2292
- # A unique identifier for the customer master key (CMK).
2420
+ # Gets the key policy for the specified KMS key.
2293
2421
  #
2294
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
2422
+ # Specify the key ID or key ARN of the KMS key.
2295
2423
  #
2296
2424
  # For example:
2297
2425
  #
@@ -2300,7 +2428,7 @@ module Aws::KMS
2300
2428
  # * Key ARN:
2301
2429
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
2302
2430
  #
2303
- # To get the key ID and key ARN for a CMK, use ListKeys or
2431
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
2304
2432
  # DescribeKey.
2305
2433
  # @return [String]
2306
2434
  #
@@ -2338,10 +2466,11 @@ module Aws::KMS
2338
2466
  # }
2339
2467
  #
2340
2468
  # @!attribute [rw] key_id
2341
- # A unique identifier for the customer master key (CMK).
2469
+ # Gets the rotation status for the specified KMS key.
2342
2470
  #
2343
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To
2344
- # specify a CMK in a different AWS account, you must use the key ARN.
2471
+ # Specify the key ID or key ARN of the KMS key. To specify a KMS key
2472
+ # in a different Amazon Web Services account, you must use the key
2473
+ # ARN.
2345
2474
  #
2346
2475
  # For example:
2347
2476
  #
@@ -2350,7 +2479,7 @@ module Aws::KMS
2350
2479
  # * Key ARN:
2351
2480
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
2352
2481
  #
2353
- # To get the key ID and key ARN for a CMK, use ListKeys or
2482
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
2354
2483
  # DescribeKey.
2355
2484
  # @return [String]
2356
2485
  #
@@ -2384,10 +2513,10 @@ module Aws::KMS
2384
2513
  # }
2385
2514
  #
2386
2515
  # @!attribute [rw] key_id
2387
- # The identifier of the symmetric CMK into which you will import key
2388
- # material. The `Origin` of the CMK must be `EXTERNAL`.
2516
+ # The identifier of the symmetric KMS key into which you will import
2517
+ # key material. The `Origin` of the KMS key must be `EXTERNAL`.
2389
2518
  #
2390
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
2519
+ # Specify the key ID or key ARN of the KMS key.
2391
2520
  #
2392
2521
  # For example:
2393
2522
  #
@@ -2396,14 +2525,14 @@ module Aws::KMS
2396
2525
  # * Key ARN:
2397
2526
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
2398
2527
  #
2399
- # To get the key ID and key ARN for a CMK, use ListKeys or
2528
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
2400
2529
  # DescribeKey.
2401
2530
  # @return [String]
2402
2531
  #
2403
2532
  # @!attribute [rw] wrapping_algorithm
2404
2533
  # The algorithm you will use to encrypt the key material before
2405
2534
  # importing it with ImportKeyMaterial. For more information, see
2406
- # [Encrypt the Key Material][1] in the *AWS Key Management Service
2535
+ # [Encrypt the Key Material][1] in the *Key Management Service
2407
2536
  # Developer Guide*.
2408
2537
  #
2409
2538
  #
@@ -2427,9 +2556,9 @@ module Aws::KMS
2427
2556
  end
2428
2557
 
2429
2558
  # @!attribute [rw] key_id
2430
- # The Amazon Resource Name ([key ARN][1]) of the CMK to use in a
2431
- # subsequent ImportKeyMaterial request. This is the same CMK specified
2432
- # in the `GetParametersForImport` request.
2559
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key to use in a
2560
+ # subsequent ImportKeyMaterial request. This is the same KMS key
2561
+ # specified in the `GetParametersForImport` request.
2433
2562
  #
2434
2563
  #
2435
2564
  #
@@ -2472,12 +2601,12 @@ module Aws::KMS
2472
2601
  # }
2473
2602
  #
2474
2603
  # @!attribute [rw] key_id
2475
- # Identifies the asymmetric CMK that includes the public key.
2604
+ # Identifies the asymmetric KMS key that includes the public key.
2476
2605
  #
2477
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2478
- # name, or alias ARN. When using an alias name, prefix it with
2479
- # `"alias/"`. To specify a CMK in a different AWS account, you must
2480
- # use the key ARN or alias ARN.
2606
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
2607
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
2608
+ # a KMS key in a different Amazon Web Services account, you must use
2609
+ # the key ARN or alias ARN.
2481
2610
  #
2482
2611
  # For example:
2483
2612
  #
@@ -2490,19 +2619,22 @@ module Aws::KMS
2490
2619
  #
2491
2620
  # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
2492
2621
  #
2493
- # To get the key ID and key ARN for a CMK, use ListKeys or
2622
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
2494
2623
  # DescribeKey. To get the alias name and alias ARN, use ListAliases.
2495
2624
  # @return [String]
2496
2625
  #
2497
2626
  # @!attribute [rw] grant_tokens
2498
2627
  # A list of grant tokens.
2499
2628
  #
2500
- # For more information, see [Grant Tokens][1] in the *AWS Key
2501
- # Management Service Developer Guide*.
2629
+ # Use a grant token when your permission to call this operation comes
2630
+ # from a new grant that has not yet achieved *eventual consistency*.
2631
+ # For more information, see [Grant token][1] and [Using a grant
2632
+ # token][2] in the *Key Management Service Developer Guide*.
2502
2633
  #
2503
2634
  #
2504
2635
  #
2505
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
2636
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2637
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
2506
2638
  # @return [Array<String>]
2507
2639
  #
2508
2640
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKeyRequest AWS API Documentation
@@ -2515,8 +2647,8 @@ module Aws::KMS
2515
2647
  end
2516
2648
 
2517
2649
  # @!attribute [rw] key_id
2518
- # The Amazon Resource Name ([key ARN][1]) of the asymmetric CMK from
2519
- # which the public key was downloaded.
2650
+ # The Amazon Resource Name ([key ARN][1]) of the asymmetric KMS key
2651
+ # from which the public key was downloaded.
2520
2652
  #
2521
2653
  #
2522
2654
  #
@@ -2528,8 +2660,8 @@ module Aws::KMS
2528
2660
  #
2529
2661
  # The value is a DER-encoded X.509 public key, also known as
2530
2662
  # `SubjectPublicKeyInfo` (SPKI), as defined in [RFC 5280][1]. When you
2531
- # use the HTTP API or the AWS CLI, the value is Base64-encoded.
2532
- # Otherwise, it is not Base64-encoded.
2663
+ # use the HTTP API or the Amazon Web Services CLI, the value is
2664
+ # Base64-encoded. Otherwise, it is not Base64-encoded.
2533
2665
  #
2534
2666
  #
2535
2667
  #
@@ -2539,6 +2671,14 @@ module Aws::KMS
2539
2671
  # @return [String]
2540
2672
  #
2541
2673
  # @!attribute [rw] customer_master_key_spec
2674
+ # Instead, use the `KeySpec` field in the `GetPublicKey` response.
2675
+ #
2676
+ # The `KeySpec` and `CustomerMasterKeySpec` fields have the same
2677
+ # value. We recommend that you use the `KeySpec` field in your code.
2678
+ # However, to avoid breaking changes, KMS will support both fields.
2679
+ # @return [String]
2680
+ #
2681
+ # @!attribute [rw] key_spec
2542
2682
  # The type of the of the public key that was downloaded.
2543
2683
  # @return [String]
2544
2684
  #
@@ -2547,23 +2687,23 @@ module Aws::KMS
2547
2687
  # `ENCRYPT_DECRYPT` or `SIGN_VERIFY`.
2548
2688
  #
2549
2689
  # This information is critical. If a public key with `SIGN_VERIFY` key
2550
- # usage encrypts data outside of AWS KMS, the ciphertext cannot be
2690
+ # usage encrypts data outside of KMS, the ciphertext cannot be
2551
2691
  # decrypted.
2552
2692
  # @return [String]
2553
2693
  #
2554
2694
  # @!attribute [rw] encryption_algorithms
2555
- # The encryption algorithms that AWS KMS supports for this key.
2695
+ # The encryption algorithms that KMS supports for this key.
2556
2696
  #
2557
2697
  # This information is critical. If a public key encrypts data outside
2558
- # of AWS KMS by using an unsupported encryption algorithm, the
2559
- # ciphertext cannot be decrypted.
2698
+ # of KMS by using an unsupported encryption algorithm, the ciphertext
2699
+ # cannot be decrypted.
2560
2700
  #
2561
2701
  # This field appears in the response only when the `KeyUsage` of the
2562
2702
  # public key is `ENCRYPT_DECRYPT`.
2563
2703
  # @return [Array<String>]
2564
2704
  #
2565
2705
  # @!attribute [rw] signing_algorithms
2566
- # The signing algorithms that AWS KMS supports for this key.
2706
+ # The signing algorithms that KMS supports for this key.
2567
2707
  #
2568
2708
  # This field appears in the response only when the `KeyUsage` of the
2569
2709
  # public key is `SIGN_VERIFY`.
@@ -2575,6 +2715,7 @@ module Aws::KMS
2575
2715
  :key_id,
2576
2716
  :public_key,
2577
2717
  :customer_master_key_spec,
2718
+ :key_spec,
2578
2719
  :key_usage,
2579
2720
  :encryption_algorithms,
2580
2721
  :signing_algorithms)
@@ -2586,11 +2727,11 @@ module Aws::KMS
2586
2727
  # only when the operation request includes the specified [encryption
2587
2728
  # context][2].
2588
2729
  #
2589
- # AWS KMS applies the grant constraints only to cryptographic operations
2730
+ # KMS applies the grant constraints only to cryptographic operations
2590
2731
  # that support an encryption context, that is, all cryptographic
2591
- # operations with a [symmetric CMK][3]. Grant constraints are not
2732
+ # operations with a [symmetric KMS key][3]. Grant constraints are not
2592
2733
  # applied to operations that do not support an encryption context, such
2593
- # as cryptographic operations with asymmetric CMKs and management
2734
+ # as cryptographic operations with asymmetric KMS keys and management
2594
2735
  # operations, such as DescribeKey or RetireGrant.
2595
2736
  #
2596
2737
  # In a cryptographic operation, the encryption context in the decryption
@@ -2605,8 +2746,8 @@ module Aws::KMS
2605
2746
  # differ only by case. To require a fully case-sensitive encryption
2606
2747
  # context, use the `kms:EncryptionContext:` and
2607
2748
  # `kms:EncryptionContextKeys` conditions in an IAM or key policy. For
2608
- # details, see [kms:EncryptionContext:][4] in the <i> <i>AWS Key
2609
- # Management Service Developer Guide</i> </i>.
2749
+ # details, see [kms:EncryptionContext:][4] in the <i> <i>Key Management
2750
+ # Service Developer Guide</i> </i>.
2610
2751
  #
2611
2752
  #
2612
2753
  #
@@ -2662,8 +2803,7 @@ module Aws::KMS
2662
2803
  # Contains information about a grant.
2663
2804
  #
2664
2805
  # @!attribute [rw] key_id
2665
- # The unique identifier for the customer master key (CMK) to which the
2666
- # grant applies.
2806
+ # The unique identifier for the KMS key to which the grant applies.
2667
2807
  # @return [String]
2668
2808
  #
2669
2809
  # @!attribute [rw] grant_id
@@ -2685,10 +2825,10 @@ module Aws::KMS
2685
2825
  #
2686
2826
  # The `GranteePrincipal` field in the `ListGrants` response usually
2687
2827
  # contains the user or role designated as the grantee principal in the
2688
- # grant. However, when the grantee principal in the grant is an AWS
2689
- # service, the `GranteePrincipal` field contains the [service
2690
- # principal][1], which might represent several different grantee
2691
- # principals.
2828
+ # grant. However, when the grantee principal in the grant is an Amazon
2829
+ # Web Services service, the `GranteePrincipal` field contains the
2830
+ # [service principal][1], which might represent several different
2831
+ # grantee principals.
2692
2832
  #
2693
2833
  #
2694
2834
  #
@@ -2700,7 +2840,7 @@ module Aws::KMS
2700
2840
  # @return [String]
2701
2841
  #
2702
2842
  # @!attribute [rw] issuing_account
2703
- # The AWS account under which the grant was issued.
2843
+ # The Amazon Web Services account under which the grant was issued.
2704
2844
  # @return [String]
2705
2845
  #
2706
2846
  # @!attribute [rw] operations
@@ -2740,12 +2880,12 @@ module Aws::KMS
2740
2880
  # }
2741
2881
  #
2742
2882
  # @!attribute [rw] key_id
2743
- # The identifier of the symmetric CMK that receives the imported key
2744
- # material. The CMK's `Origin` must be `EXTERNAL`. This must be the
2745
- # same CMK specified in the `KeyID` parameter of the corresponding
2746
- # GetParametersForImport request.
2883
+ # The identifier of the symmetric KMS key that receives the imported
2884
+ # key material. The KMS key's `Origin` must be `EXTERNAL`. This must
2885
+ # be the same KMS key specified in the `KeyID` parameter of the
2886
+ # corresponding GetParametersForImport request.
2747
2887
  #
2748
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
2888
+ # Specify the key ID or key ARN of the KMS key.
2749
2889
  #
2750
2890
  # For example:
2751
2891
  #
@@ -2754,7 +2894,7 @@ module Aws::KMS
2754
2894
  # * Key ARN:
2755
2895
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
2756
2896
  #
2757
- # To get the key ID and key ARN for a CMK, use ListKeys or
2897
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
2758
2898
  # DescribeKey.
2759
2899
  # @return [String]
2760
2900
  #
@@ -2774,7 +2914,7 @@ module Aws::KMS
2774
2914
  #
2775
2915
  # @!attribute [rw] valid_to
2776
2916
  # The time at which the imported key material expires. When the key
2777
- # material expires, AWS KMS deletes the key material and the CMK
2917
+ # material expires, KMS deletes the key material and the KMS key
2778
2918
  # becomes unusable. You must omit this parameter when the
2779
2919
  # `ExpirationModel` parameter is set to
2780
2920
  # `KEY_MATERIAL_DOES_NOT_EXPIRE`. Otherwise it is required.
@@ -2804,10 +2944,10 @@ module Aws::KMS
2804
2944
  #
2805
2945
  class ImportKeyMaterialResponse < Aws::EmptyStructure; end
2806
2946
 
2807
- # The request was rejected because the specified CMK cannot decrypt the
2808
- # data. The `KeyId` in a Decrypt request and the `SourceKeyId` in a
2809
- # ReEncrypt request must identify the same CMK that was used to encrypt
2810
- # the ciphertext.
2947
+ # The request was rejected because the specified KMS key cannot decrypt
2948
+ # the data. The `KeyId` in a Decrypt request and the `SourceKeyId` in a
2949
+ # ReEncrypt request must identify the same KMS key that was used to
2950
+ # encrypt the ciphertext.
2811
2951
  #
2812
2952
  # @!attribute [rw] message
2813
2953
  # @return [String]
@@ -2822,7 +2962,7 @@ module Aws::KMS
2822
2962
 
2823
2963
  # The request was rejected because the key material in the request is,
2824
2964
  # expired, invalid, or is not the same key material that was previously
2825
- # imported into this customer master key (CMK).
2965
+ # imported into this KMS key.
2826
2966
  #
2827
2967
  # @!attribute [rw] message
2828
2968
  # @return [String]
@@ -2836,8 +2976,8 @@ module Aws::KMS
2836
2976
  end
2837
2977
 
2838
2978
  # The request was rejected because the trust anchor certificate in the
2839
- # request is not the trust anchor certificate for the specified AWS
2840
- # CloudHSM cluster.
2979
+ # request is not the trust anchor certificate for the specified CloudHSM
2980
+ # cluster.
2841
2981
  #
2842
2982
  # When you [initialize the cluster][1], you create the trust anchor
2843
2983
  # certificate and save it in the `customerCA.crt` file.
@@ -2891,7 +3031,7 @@ module Aws::KMS
2891
3031
  # corrupted, missing, or otherwise invalid.
2892
3032
  #
2893
3033
  # From the ImportKeyMaterial operation, the request was rejected because
2894
- # AWS KMS could not decrypt the encrypted (wrapped) key material.
3034
+ # KMS could not decrypt the encrypted (wrapped) key material.
2895
3035
  #
2896
3036
  # @!attribute [rw] message
2897
3037
  # @return [String]
@@ -2932,7 +3072,7 @@ module Aws::KMS
2932
3072
  end
2933
3073
 
2934
3074
  # The request was rejected because the provided import token is invalid
2935
- # or is associated with a different customer master key (CMK).
3075
+ # or is associated with a different KMS key.
2936
3076
  #
2937
3077
  # @!attribute [rw] message
2938
3078
  # @return [String]
@@ -2947,20 +3087,20 @@ module Aws::KMS
2947
3087
 
2948
3088
  # The request was rejected for one of the following reasons:
2949
3089
  #
2950
- # * The `KeyUsage` value of the CMK is incompatible with the API
3090
+ # * The `KeyUsage` value of the KMS key is incompatible with the API
2951
3091
  # operation.
2952
3092
  #
2953
3093
  # * The encryption algorithm or signing algorithm specified for the
2954
- # operation is incompatible with the type of key material in the CMK
2955
- # `(CustomerMasterKeySpec`).
3094
+ # operation is incompatible with the type of key material in the KMS
3095
+ # key `(KeySpec`).
2956
3096
  #
2957
3097
  # For encrypting, decrypting, re-encrypting, and generating data keys,
2958
3098
  # the `KeyUsage` must be `ENCRYPT_DECRYPT`. For signing and verifying,
2959
- # the `KeyUsage` must be `SIGN_VERIFY`. To find the `KeyUsage` of a CMK,
2960
- # use the DescribeKey operation.
3099
+ # the `KeyUsage` must be `SIGN_VERIFY`. To find the `KeyUsage` of a KMS
3100
+ # key, use the DescribeKey operation.
2961
3101
  #
2962
3102
  # To find the encryption or signing algorithms supported for a
2963
- # particular CMK, use the DescribeKey operation.
3103
+ # particular KMS key, use the DescribeKey operation.
2964
3104
  #
2965
3105
  # @!attribute [rw] message
2966
3106
  # @return [String]
@@ -3003,8 +3143,8 @@ module Aws::KMS
3003
3143
 
3004
3144
  # The request was rejected because the signature verification failed.
3005
3145
  # Signature verification fails when it cannot confirm that signature was
3006
- # produced by signing the specified message with the specified CMK and
3007
- # signing algorithm.
3146
+ # produced by signing the specified message with the specified KMS key
3147
+ # and signing algorithm.
3008
3148
  #
3009
3149
  # @!attribute [rw] message
3010
3150
  # @return [String]
@@ -3020,9 +3160,9 @@ module Aws::KMS
3020
3160
  # The request was rejected because the state of the specified resource
3021
3161
  # is not valid for this request.
3022
3162
  #
3023
- # For more information about how key state affects the use of a CMK, see
3024
- # [How Key State Affects Use of a Customer Master Key][1] in the <i>
3025
- # <i>AWS Key Management Service Developer Guide</i> </i>.
3163
+ # For more information about how key state affects the use of a KMS key,
3164
+ # see [Key state: Effect on your KMS key][1] in the <i> <i>Key
3165
+ # Management Service Developer Guide</i> </i>.
3026
3166
  #
3027
3167
  #
3028
3168
  #
@@ -3058,23 +3198,24 @@ module Aws::KMS
3058
3198
  include Aws::Structure
3059
3199
  end
3060
3200
 
3061
- # Contains metadata about a customer master key (CMK).
3201
+ # Contains metadata about a KMS key.
3062
3202
  #
3063
3203
  # This data type is used as a response element for the CreateKey and
3064
3204
  # DescribeKey operations.
3065
3205
  #
3066
3206
  # @!attribute [rw] aws_account_id
3067
- # The twelve-digit account ID of the AWS account that owns the CMK.
3207
+ # The twelve-digit account ID of the Amazon Web Services account that
3208
+ # owns the KMS key.
3068
3209
  # @return [String]
3069
3210
  #
3070
3211
  # @!attribute [rw] key_id
3071
- # The globally unique identifier for the CMK.
3212
+ # The globally unique identifier for the KMS key.
3072
3213
  # @return [String]
3073
3214
  #
3074
3215
  # @!attribute [rw] arn
3075
- # The Amazon Resource Name (ARN) of the CMK. For examples, see [AWS
3076
- # Key Management Service (AWS KMS)][1] in the Example ARNs section of
3077
- # the *AWS General Reference*.
3216
+ # The Amazon Resource Name (ARN) of the KMS key. For examples, see
3217
+ # [Key Management Service (KMS)][1] in the Example ARNs section of the
3218
+ # *Amazon Web Services General Reference*.
3078
3219
  #
3079
3220
  #
3080
3221
  #
@@ -3082,20 +3223,20 @@ module Aws::KMS
3082
3223
  # @return [String]
3083
3224
  #
3084
3225
  # @!attribute [rw] creation_date
3085
- # The date and time when the CMK was created.
3226
+ # The date and time when the KMS key was created.
3086
3227
  # @return [Time]
3087
3228
  #
3088
3229
  # @!attribute [rw] enabled
3089
- # Specifies whether the CMK is enabled. When `KeyState` is `Enabled`
3090
- # this value is true, otherwise it is false.
3230
+ # Specifies whether the KMS key is enabled. When `KeyState` is
3231
+ # `Enabled` this value is true, otherwise it is false.
3091
3232
  # @return [Boolean]
3092
3233
  #
3093
3234
  # @!attribute [rw] description
3094
- # The description of the CMK.
3235
+ # The description of the KMS key.
3095
3236
  # @return [String]
3096
3237
  #
3097
3238
  # @!attribute [rw] key_usage
3098
- # The [cryptographic operations][1] for which you can use the CMK.
3239
+ # The [cryptographic operations][1] for which you can use the KMS key.
3099
3240
  #
3100
3241
  #
3101
3242
  #
@@ -3103,11 +3244,11 @@ module Aws::KMS
3103
3244
  # @return [String]
3104
3245
  #
3105
3246
  # @!attribute [rw] key_state
3106
- # The current status of the CMK.
3247
+ # The current status of the KMS key.
3107
3248
  #
3108
- # For more information about how key state affects the use of a CMK,
3109
- # see [Key state: Effect on your CMK][1] in the *AWS Key Management
3110
- # Service Developer Guide*.
3249
+ # For more information about how key state affects the use of a KMS
3250
+ # key, see [Key state: Effect on your KMS key][1] in the *Key
3251
+ # Management Service Developer Guide*.
3111
3252
  #
3112
3253
  #
3113
3254
  #
@@ -3115,31 +3256,37 @@ module Aws::KMS
3115
3256
  # @return [String]
3116
3257
  #
3117
3258
  # @!attribute [rw] deletion_date
3118
- # The date and time after which AWS KMS deletes the CMK. This value is
3119
- # present only when `KeyState` is `PendingDeletion`.
3259
+ # The date and time after which KMS deletes this KMS key. This value
3260
+ # is present only when the KMS key is scheduled for deletion, that is,
3261
+ # when its `KeyState` is `PendingDeletion`.
3262
+ #
3263
+ # When the primary key in a multi-Region key is scheduled for deletion
3264
+ # but still has replica keys, its key state is
3265
+ # `PendingReplicaDeletion` and the length of its waiting period is
3266
+ # displayed in the `PendingDeletionWindowInDays` field.
3120
3267
  # @return [Time]
3121
3268
  #
3122
3269
  # @!attribute [rw] valid_to
3123
3270
  # The time at which the imported key material expires. When the key
3124
- # material expires, AWS KMS deletes the key material and the CMK
3125
- # becomes unusable. This value is present only for CMKs whose `Origin`
3126
- # is `EXTERNAL` and whose `ExpirationModel` is `KEY_MATERIAL_EXPIRES`,
3127
- # otherwise this value is omitted.
3271
+ # material expires, KMS deletes the key material and the KMS key
3272
+ # becomes unusable. This value is present only for KMS keys whose
3273
+ # `Origin` is `EXTERNAL` and whose `ExpirationModel` is
3274
+ # `KEY_MATERIAL_EXPIRES`, otherwise this value is omitted.
3128
3275
  # @return [Time]
3129
3276
  #
3130
3277
  # @!attribute [rw] origin
3131
- # The source of the CMK's key material. When this value is `AWS_KMS`,
3132
- # AWS KMS created the key material. When this value is `EXTERNAL`, the
3133
- # key material was imported from your existing key management
3134
- # infrastructure or the CMK lacks key material. When this value is
3135
- # `AWS_CLOUDHSM`, the key material was created in the AWS CloudHSM
3136
- # cluster associated with a custom key store.
3278
+ # The source of the key material for the KMS key. When this value is
3279
+ # `AWS_KMS`, KMS created the key material. When this value is
3280
+ # `EXTERNAL`, the key material was imported or the KMS key doesn't
3281
+ # have any key material. When this value is `AWS_CLOUDHSM`, the key
3282
+ # material was created in the CloudHSM cluster associated with a
3283
+ # custom key store.
3137
3284
  # @return [String]
3138
3285
  #
3139
3286
  # @!attribute [rw] custom_key_store_id
3140
3287
  # A unique identifier for the [custom key store][1] that contains the
3141
- # CMK. This value is present only when the CMK is created in a custom
3142
- # key store.
3288
+ # KMS key. This value is present only when the KMS key is created in a
3289
+ # custom key store.
3143
3290
  #
3144
3291
  #
3145
3292
  #
@@ -3147,11 +3294,11 @@ module Aws::KMS
3147
3294
  # @return [String]
3148
3295
  #
3149
3296
  # @!attribute [rw] cloud_hsm_cluster_id
3150
- # The cluster ID of the AWS CloudHSM cluster that contains the key
3151
- # material for the CMK. When you create a CMK in a [custom key
3152
- # store][1], AWS KMS creates the key material for the CMK in the
3153
- # associated AWS CloudHSM cluster. This value is present only when the
3154
- # CMK is created in a custom key store.
3297
+ # The cluster ID of the CloudHSM cluster that contains the key
3298
+ # material for the KMS key. When you create a KMS key in a [custom key
3299
+ # store][1], KMS creates the key material for the KMS key in the
3300
+ # associated CloudHSM cluster. This value is present only when the KMS
3301
+ # key is created in a custom key store.
3155
3302
  #
3156
3303
  #
3157
3304
  #
@@ -3159,42 +3306,102 @@ module Aws::KMS
3159
3306
  # @return [String]
3160
3307
  #
3161
3308
  # @!attribute [rw] expiration_model
3162
- # Specifies whether the CMK's key material expires. This value is
3309
+ # Specifies whether the KMS key's key material expires. This value is
3163
3310
  # present only when `Origin` is `EXTERNAL`, otherwise this value is
3164
3311
  # omitted.
3165
3312
  # @return [String]
3166
3313
  #
3167
3314
  # @!attribute [rw] key_manager
3168
- # The manager of the CMK. CMKs in your AWS account are either customer
3169
- # managed or AWS managed. For more information about the difference,
3170
- # see [Customer Master Keys][1] in the *AWS Key Management Service
3171
- # Developer Guide*.
3315
+ # The manager of the KMS key. KMS keys in your Amazon Web Services
3316
+ # account are either customer managed or Amazon Web Services managed.
3317
+ # For more information about the difference, see [KMS keys][1] in the
3318
+ # *Key Management Service Developer Guide*.
3172
3319
  #
3173
3320
  #
3174
3321
  #
3175
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys
3322
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys
3176
3323
  # @return [String]
3177
3324
  #
3178
3325
  # @!attribute [rw] customer_master_key_spec
3179
- # Describes the type of key material in the CMK.
3326
+ # Instead, use the `KeySpec` field.
3327
+ #
3328
+ # The `KeySpec` and `CustomerMasterKeySpec` fields have the same
3329
+ # value. We recommend that you use the `KeySpec` field in your code.
3330
+ # However, to avoid breaking changes, KMS will support both fields.
3331
+ # @return [String]
3332
+ #
3333
+ # @!attribute [rw] key_spec
3334
+ # Describes the type of key material in the KMS key.
3180
3335
  # @return [String]
3181
3336
  #
3182
3337
  # @!attribute [rw] encryption_algorithms
3183
- # The encryption algorithms that the CMK supports. You cannot use the
3184
- # CMK with other encryption algorithms within AWS KMS.
3338
+ # The encryption algorithms that the KMS key supports. You cannot use
3339
+ # the KMS key with other encryption algorithms within KMS.
3185
3340
  #
3186
- # This field appears only when the `KeyUsage` of the CMK is
3341
+ # This value is present only when the `KeyUsage` of the KMS key is
3187
3342
  # `ENCRYPT_DECRYPT`.
3188
3343
  # @return [Array<String>]
3189
3344
  #
3190
3345
  # @!attribute [rw] signing_algorithms
3191
- # The signing algorithms that the CMK supports. You cannot use the CMK
3192
- # with other signing algorithms within AWS KMS.
3346
+ # The signing algorithms that the KMS key supports. You cannot use the
3347
+ # KMS key with other signing algorithms within KMS.
3193
3348
  #
3194
- # This field appears only when the `KeyUsage` of the CMK is
3349
+ # This field appears only when the `KeyUsage` of the KMS key is
3195
3350
  # `SIGN_VERIFY`.
3196
3351
  # @return [Array<String>]
3197
3352
  #
3353
+ # @!attribute [rw] multi_region
3354
+ # Indicates whether the KMS key is a multi-Region (`True`) or regional
3355
+ # (`False`) key. This value is `True` for multi-Region primary and
3356
+ # replica keys and `False` for regional KMS keys.
3357
+ #
3358
+ # For more information about multi-Region keys, see [Using
3359
+ # multi-Region keys][1] in the *Key Management Service Developer
3360
+ # Guide*.
3361
+ #
3362
+ #
3363
+ #
3364
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
3365
+ # @return [Boolean]
3366
+ #
3367
+ # @!attribute [rw] multi_region_configuration
3368
+ # Lists the primary and replica keys in same multi-Region key. This
3369
+ # field is present only when the value of the `MultiRegion` field is
3370
+ # `True`.
3371
+ #
3372
+ # For more information about any listed KMS key, use the DescribeKey
3373
+ # operation.
3374
+ #
3375
+ # * `MultiRegionKeyType` indicates whether the KMS key is a `PRIMARY`
3376
+ # or `REPLICA` key.
3377
+ #
3378
+ # * `PrimaryKey` displays the key ARN and Region of the primary key.
3379
+ # This field displays the current KMS key if it is the primary key.
3380
+ #
3381
+ # * `ReplicaKeys` displays the key ARNs and Regions of all replica
3382
+ # keys. This field includes the current KMS key if it is a replica
3383
+ # key.
3384
+ # @return [Types::MultiRegionConfiguration]
3385
+ #
3386
+ # @!attribute [rw] pending_deletion_window_in_days
3387
+ # The waiting period before the primary key in a multi-Region key is
3388
+ # deleted. This waiting period begins when the last of its replica
3389
+ # keys is deleted. This value is present only when the `KeyState` of
3390
+ # the KMS key is `PendingReplicaDeletion`. That indicates that the KMS
3391
+ # key is the primary key in a multi-Region key, it is scheduled for
3392
+ # deletion, and it still has existing replica keys.
3393
+ #
3394
+ # When a single-Region KMS key or a multi-Region replica key is
3395
+ # scheduled for deletion, its deletion date is displayed in the
3396
+ # `DeletionDate` field. However, when the primary key in a
3397
+ # multi-Region key is scheduled for deletion, its waiting period
3398
+ # doesn't begin until all of its replica keys are deleted. This value
3399
+ # displays that waiting period. When the last replica key in the
3400
+ # multi-Region key is deleted, the `KeyState` of the scheduled primary
3401
+ # key changes from `PendingReplicaDeletion` to `PendingDeletion` and
3402
+ # the deletion date appears in the `DeletionDate` field.
3403
+ # @return [Integer]
3404
+ #
3198
3405
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KeyMetadata AWS API Documentation
3199
3406
  #
3200
3407
  class KeyMetadata < Struct.new(
@@ -3214,14 +3421,18 @@ module Aws::KMS
3214
3421
  :expiration_model,
3215
3422
  :key_manager,
3216
3423
  :customer_master_key_spec,
3424
+ :key_spec,
3217
3425
  :encryption_algorithms,
3218
- :signing_algorithms)
3426
+ :signing_algorithms,
3427
+ :multi_region,
3428
+ :multi_region_configuration,
3429
+ :pending_deletion_window_in_days)
3219
3430
  SENSITIVE = []
3220
3431
  include Aws::Structure
3221
3432
  end
3222
3433
 
3223
- # The request was rejected because the specified CMK was not available.
3224
- # You can retry the request.
3434
+ # The request was rejected because the specified KMS key was not
3435
+ # available. You can retry the request.
3225
3436
  #
3226
3437
  # @!attribute [rw] message
3227
3438
  # @return [String]
@@ -3235,8 +3446,8 @@ module Aws::KMS
3235
3446
  end
3236
3447
 
3237
3448
  # The request was rejected because a quota was exceeded. For more
3238
- # information, see [Quotas][1] in the *AWS Key Management Service
3239
- # Developer Guide*.
3449
+ # information, see [Quotas][1] in the *Key Management Service Developer
3450
+ # Guide*.
3240
3451
  #
3241
3452
  #
3242
3453
  #
@@ -3263,13 +3474,13 @@ module Aws::KMS
3263
3474
  # }
3264
3475
  #
3265
3476
  # @!attribute [rw] key_id
3266
- # Lists only aliases that are associated with the specified CMK. Enter
3267
- # a CMK in your AWS account.
3477
+ # Lists only aliases that are associated with the specified KMS key.
3478
+ # Enter a KMS key in your Amazon Web Services account.
3268
3479
  #
3269
3480
  # This parameter is optional. If you omit it, `ListAliases` returns
3270
3481
  # all aliases in the account and Region.
3271
3482
  #
3272
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
3483
+ # Specify the key ID or key ARN of the KMS key.
3273
3484
  #
3274
3485
  # For example:
3275
3486
  #
@@ -3278,13 +3489,13 @@ module Aws::KMS
3278
3489
  # * Key ARN:
3279
3490
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
3280
3491
  #
3281
- # To get the key ID and key ARN for a CMK, use ListKeys or
3492
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
3282
3493
  # DescribeKey.
3283
3494
  # @return [String]
3284
3495
  #
3285
3496
  # @!attribute [rw] limit
3286
3497
  # Use this parameter to specify the maximum number of items to return.
3287
- # When this value is present, AWS KMS does not return more than the
3498
+ # When this value is present, KMS does not return more than the
3288
3499
  # specified number of items, but it might return fewer.
3289
3500
  #
3290
3501
  # This value is optional. If you include a value, it must be between 1
@@ -3347,7 +3558,7 @@ module Aws::KMS
3347
3558
  #
3348
3559
  # @!attribute [rw] limit
3349
3560
  # Use this parameter to specify the maximum number of items to return.
3350
- # When this value is present, AWS KMS does not return more than the
3561
+ # When this value is present, KMS does not return more than the
3351
3562
  # specified number of items, but it might return fewer.
3352
3563
  #
3353
3564
  # This value is optional. If you include a value, it must be between 1
@@ -3362,11 +3573,12 @@ module Aws::KMS
3362
3573
  # @return [String]
3363
3574
  #
3364
3575
  # @!attribute [rw] key_id
3365
- # Returns only grants for the specified customer master key (CMK).
3366
- # This parameter is required.
3576
+ # Returns only grants for the specified KMS key. This parameter is
3577
+ # required.
3367
3578
  #
3368
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To
3369
- # specify a CMK in a different AWS account, you must use the key ARN.
3579
+ # Specify the key ID or key ARN of the KMS key. To specify a KMS key
3580
+ # in a different Amazon Web Services account, you must use the key
3581
+ # ARN.
3370
3582
  #
3371
3583
  # For example:
3372
3584
  #
@@ -3375,7 +3587,7 @@ module Aws::KMS
3375
3587
  # * Key ARN:
3376
3588
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
3377
3589
  #
3378
- # To get the key ID and key ARN for a CMK, use ListKeys or
3590
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
3379
3591
  # DescribeKey.
3380
3592
  # @return [String]
3381
3593
  #
@@ -3437,9 +3649,9 @@ module Aws::KMS
3437
3649
  # }
3438
3650
  #
3439
3651
  # @!attribute [rw] key_id
3440
- # A unique identifier for the customer master key (CMK).
3652
+ # Gets the names of key policies for the specified KMS key.
3441
3653
  #
3442
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
3654
+ # Specify the key ID or key ARN of the KMS key.
3443
3655
  #
3444
3656
  # For example:
3445
3657
  #
@@ -3448,13 +3660,13 @@ module Aws::KMS
3448
3660
  # * Key ARN:
3449
3661
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
3450
3662
  #
3451
- # To get the key ID and key ARN for a CMK, use ListKeys or
3663
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
3452
3664
  # DescribeKey.
3453
3665
  # @return [String]
3454
3666
  #
3455
3667
  # @!attribute [rw] limit
3456
3668
  # Use this parameter to specify the maximum number of items to return.
3457
- # When this value is present, AWS KMS does not return more than the
3669
+ # When this value is present, KMS does not return more than the
3458
3670
  # specified number of items, but it might return fewer.
3459
3671
  #
3460
3672
  # This value is optional. If you include a value, it must be between 1
@@ -3516,7 +3728,7 @@ module Aws::KMS
3516
3728
  #
3517
3729
  # @!attribute [rw] limit
3518
3730
  # Use this parameter to specify the maximum number of items to return.
3519
- # When this value is present, AWS KMS does not return more than the
3731
+ # When this value is present, KMS does not return more than the
3520
3732
  # specified number of items, but it might return fewer.
3521
3733
  #
3522
3734
  # This value is optional. If you include a value, it must be between 1
@@ -3540,7 +3752,7 @@ module Aws::KMS
3540
3752
  end
3541
3753
 
3542
3754
  # @!attribute [rw] keys
3543
- # A list of customer master keys (CMKs).
3755
+ # A list of KMS keys.
3544
3756
  # @return [Array<Types::KeyListEntry>]
3545
3757
  #
3546
3758
  # @!attribute [rw] next_marker
@@ -3575,9 +3787,9 @@ module Aws::KMS
3575
3787
  # }
3576
3788
  #
3577
3789
  # @!attribute [rw] key_id
3578
- # A unique identifier for the customer master key (CMK).
3790
+ # Gets tags on the specified KMS key.
3579
3791
  #
3580
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
3792
+ # Specify the key ID or key ARN of the KMS key.
3581
3793
  #
3582
3794
  # For example:
3583
3795
  #
@@ -3586,13 +3798,13 @@ module Aws::KMS
3586
3798
  # * Key ARN:
3587
3799
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
3588
3800
  #
3589
- # To get the key ID and key ARN for a CMK, use ListKeys or
3801
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
3590
3802
  # DescribeKey.
3591
3803
  # @return [String]
3592
3804
  #
3593
3805
  # @!attribute [rw] limit
3594
3806
  # Use this parameter to specify the maximum number of items to return.
3595
- # When this value is present, AWS KMS does not return more than the
3807
+ # When this value is present, KMS does not return more than the
3596
3808
  # specified number of items, but it might return fewer.
3597
3809
  #
3598
3810
  # This value is optional. If you include a value, it must be between 1
@@ -3620,6 +3832,16 @@ module Aws::KMS
3620
3832
 
3621
3833
  # @!attribute [rw] tags
3622
3834
  # A list of tags. Each tag consists of a tag key and a tag value.
3835
+ #
3836
+ # <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the
3837
+ # KMS key. For details, see [Using ABAC in KMS][1] in the *Key
3838
+ # Management Service Developer Guide*.
3839
+ #
3840
+ # </note>
3841
+ #
3842
+ #
3843
+ #
3844
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
3623
3845
  # @return [Array<Types::Tag>]
3624
3846
  #
3625
3847
  # @!attribute [rw] next_marker
@@ -3657,7 +3879,7 @@ module Aws::KMS
3657
3879
  #
3658
3880
  # @!attribute [rw] limit
3659
3881
  # Use this parameter to specify the maximum number of items to return.
3660
- # When this value is present, AWS KMS does not return more than the
3882
+ # When this value is present, KMS does not return more than the
3661
3883
  # specified number of items, but it might return fewer.
3662
3884
  #
3663
3885
  # This value is optional. If you include a value, it must be between 1
@@ -3673,12 +3895,13 @@ module Aws::KMS
3673
3895
  #
3674
3896
  # @!attribute [rw] retiring_principal
3675
3897
  # The retiring principal for which to list grants. Enter a principal
3676
- # in your AWS account.
3898
+ # in your Amazon Web Services account.
3677
3899
  #
3678
3900
  # To specify the retiring principal, use the [Amazon Resource Name
3679
- # (ARN)][1] of an AWS principal. Valid AWS principals include AWS
3680
- # accounts (root), IAM users, federated users, and assumed role users.
3681
- # For examples of the ARN syntax for specifying a principal, see [AWS
3901
+ # (ARN)][1] of an Amazon Web Services principal. Valid Amazon Web
3902
+ # Services principals include Amazon Web Services accounts (root), IAM
3903
+ # users, federated users, and assumed role users. For examples of the
3904
+ # ARN syntax for specifying a principal, see [Amazon Web Services
3682
3905
  # Identity and Access Management (IAM)][2] in the Example ARNs section
3683
3906
  # of the *Amazon Web Services General Reference*.
3684
3907
  #
@@ -3712,6 +3935,58 @@ module Aws::KMS
3712
3935
  include Aws::Structure
3713
3936
  end
3714
3937
 
3938
+ # Describes the configuration of this multi-Region key. This field
3939
+ # appears only when the KMS key is a primary or replica of a
3940
+ # multi-Region key.
3941
+ #
3942
+ # For more information about any listed KMS key, use the DescribeKey
3943
+ # operation.
3944
+ #
3945
+ # @!attribute [rw] multi_region_key_type
3946
+ # Indicates whether the KMS key is a `PRIMARY` or `REPLICA` key.
3947
+ # @return [String]
3948
+ #
3949
+ # @!attribute [rw] primary_key
3950
+ # Displays the key ARN and Region of the primary key. This field
3951
+ # includes the current KMS key if it is the primary key.
3952
+ # @return [Types::MultiRegionKey]
3953
+ #
3954
+ # @!attribute [rw] replica_keys
3955
+ # displays the key ARNs and Regions of all replica keys. This field
3956
+ # includes the current KMS key if it is a replica key.
3957
+ # @return [Array<Types::MultiRegionKey>]
3958
+ #
3959
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/MultiRegionConfiguration AWS API Documentation
3960
+ #
3961
+ class MultiRegionConfiguration < Struct.new(
3962
+ :multi_region_key_type,
3963
+ :primary_key,
3964
+ :replica_keys)
3965
+ SENSITIVE = []
3966
+ include Aws::Structure
3967
+ end
3968
+
3969
+ # Describes the primary or replica key in a multi-Region key.
3970
+ #
3971
+ # @!attribute [rw] arn
3972
+ # Displays the key ARN of a primary or replica key of a multi-Region
3973
+ # key.
3974
+ # @return [String]
3975
+ #
3976
+ # @!attribute [rw] region
3977
+ # Displays the Amazon Web Services Region of a primary or replica key
3978
+ # in a multi-Region key.
3979
+ # @return [String]
3980
+ #
3981
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/MultiRegionKey AWS API Documentation
3982
+ #
3983
+ class MultiRegionKey < Struct.new(
3984
+ :arn,
3985
+ :region)
3986
+ SENSITIVE = []
3987
+ include Aws::Structure
3988
+ end
3989
+
3715
3990
  # The request was rejected because the specified entity or resource
3716
3991
  # could not be found.
3717
3992
  #
@@ -3737,9 +4012,9 @@ module Aws::KMS
3737
4012
  # }
3738
4013
  #
3739
4014
  # @!attribute [rw] key_id
3740
- # A unique identifier for the customer master key (CMK).
4015
+ # Sets the key policy on the specified KMS key.
3741
4016
  #
3742
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
4017
+ # Specify the key ID or key ARN of the KMS key.
3743
4018
  #
3744
4019
  # For example:
3745
4020
  #
@@ -3748,7 +4023,7 @@ module Aws::KMS
3748
4023
  # * Key ARN:
3749
4024
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
3750
4025
  #
3751
- # To get the key ID and key ARN for a CMK, use ListKeys or
4026
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
3752
4027
  # DescribeKey.
3753
4028
  # @return [String]
3754
4029
  #
@@ -3757,31 +4032,31 @@ module Aws::KMS
3757
4032
  # @return [String]
3758
4033
  #
3759
4034
  # @!attribute [rw] policy
3760
- # The key policy to attach to the CMK.
4035
+ # The key policy to attach to the KMS key.
3761
4036
  #
3762
4037
  # The key policy must meet the following criteria:
3763
4038
  #
3764
4039
  # * If you don't set `BypassPolicyLockoutSafetyCheck` to true, the
3765
4040
  # key policy must allow the principal that is making the
3766
4041
  # `PutKeyPolicy` request to make a subsequent `PutKeyPolicy` request
3767
- # on the CMK. This reduces the risk that the CMK becomes
4042
+ # on the KMS key. This reduces the risk that the KMS key becomes
3768
4043
  # unmanageable. For more information, refer to the scenario in the
3769
- # [Default Key Policy][1] section of the *AWS Key Management Service
4044
+ # [Default Key Policy][1] section of the *Key Management Service
3770
4045
  # Developer Guide*.
3771
4046
  #
3772
4047
  # * Each statement in the key policy must contain one or more
3773
4048
  # principals. The principals in the key policy must exist and be
3774
- # visible to AWS KMS. When you create a new AWS principal (for
3775
- # example, an IAM user or role), you might need to enforce a delay
3776
- # before including the new principal in a key policy because the new
3777
- # principal might not be immediately visible to AWS KMS. For more
3778
- # information, see [Changes that I make are not always immediately
3779
- # visible][2] in the *AWS Identity and Access Management User
3780
- # Guide*.
4049
+ # visible to KMS. When you create a new Amazon Web Services
4050
+ # principal (for example, an IAM user or role), you might need to
4051
+ # enforce a delay before including the new principal in a key policy
4052
+ # because the new principal might not be immediately visible to KMS.
4053
+ # For more information, see [Changes that I make are not always
4054
+ # immediately visible][2] in the *Amazon Web Services Identity and
4055
+ # Access Management User Guide*.
3781
4056
  #
3782
4057
  # The key policy cannot exceed 32 kilobytes (32768 bytes). For more
3783
- # information, see [Resource Quotas][3] in the *AWS Key Management
3784
- # Service Developer Guide*.
4058
+ # information, see [Resource Quotas][3] in the *Key Management Service
4059
+ # Developer Guide*.
3785
4060
  #
3786
4061
  #
3787
4062
  #
@@ -3794,16 +4069,16 @@ module Aws::KMS
3794
4069
  # A flag to indicate whether to bypass the key policy lockout safety
3795
4070
  # check.
3796
4071
  #
3797
- # Setting this value to true increases the risk that the CMK becomes
3798
- # unmanageable. Do not set this value to true indiscriminately.
4072
+ # Setting this value to true increases the risk that the KMS key
4073
+ # becomes unmanageable. Do not set this value to true
4074
+ # indiscriminately.
3799
4075
  #
3800
4076
  # For more information, refer to the scenario in the [Default Key
3801
- # Policy][1] section in the *AWS Key Management Service Developer
3802
- # Guide*.
4077
+ # Policy][1] section in the *Key Management Service Developer Guide*.
3803
4078
  #
3804
4079
  # Use this parameter only when you intend to prevent the principal
3805
4080
  # that is making the request from making a subsequent `PutKeyPolicy`
3806
- # request on the CMK.
4081
+ # request on the KMS key.
3807
4082
  #
3808
4083
  # The default value is false.
3809
4084
  #
@@ -3855,9 +4130,9 @@ module Aws::KMS
3855
4130
  # encryption context to encrypt data, you must specify the same (an
3856
4131
  # exact case-sensitive match) encryption context to decrypt the data.
3857
4132
  # An encryption context is optional when encrypting with a symmetric
3858
- # CMK, but it is highly recommended.
4133
+ # KMS key, but it is highly recommended.
3859
4134
  #
3860
- # For more information, see [Encryption Context][1] in the *AWS Key
4135
+ # For more information, see [Encryption Context][1] in the *Key
3861
4136
  # Management Service Developer Guide*.
3862
4137
  #
3863
4138
  #
@@ -3866,20 +4141,21 @@ module Aws::KMS
3866
4141
  # @return [Hash<String,String>]
3867
4142
  #
3868
4143
  # @!attribute [rw] source_key_id
3869
- # Specifies the customer master key (CMK) that AWS KMS will use to
3870
- # decrypt the ciphertext before it is re-encrypted. Enter a key ID of
3871
- # the CMK that was used to encrypt the ciphertext.
4144
+ # Specifies the KMS key that KMS will use to decrypt the ciphertext
4145
+ # before it is re-encrypted. Enter a key ID of the KMS key that was
4146
+ # used to encrypt the ciphertext.
3872
4147
  #
3873
4148
  # This parameter is required only when the ciphertext was encrypted
3874
- # under an asymmetric CMK. If you used a symmetric CMK, AWS KMS can
3875
- # get the CMK from metadata that it adds to the symmetric ciphertext
3876
- # blob. However, it is always recommended as a best practice. This
3877
- # practice ensures that you use the CMK that you intend.
4149
+ # under an asymmetric KMS key. If you used a symmetric KMS key, KMS
4150
+ # can get the KMS key from metadata that it adds to the symmetric
4151
+ # ciphertext blob. However, it is always recommended as a best
4152
+ # practice. This practice ensures that you use the KMS key that you
4153
+ # intend.
3878
4154
  #
3879
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
3880
- # name, or alias ARN. When using an alias name, prefix it with
3881
- # `"alias/"`. To specify a CMK in a different AWS account, you must
3882
- # use the key ARN or alias ARN.
4155
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
4156
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
4157
+ # a KMS key in a different Amazon Web Services account, you must use
4158
+ # the key ARN or alias ARN.
3883
4159
  #
3884
4160
  # For example:
3885
4161
  #
@@ -3892,20 +4168,20 @@ module Aws::KMS
3892
4168
  #
3893
4169
  # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
3894
4170
  #
3895
- # To get the key ID and key ARN for a CMK, use ListKeys or
4171
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
3896
4172
  # DescribeKey. To get the alias name and alias ARN, use ListAliases.
3897
4173
  # @return [String]
3898
4174
  #
3899
4175
  # @!attribute [rw] destination_key_id
3900
- # A unique identifier for the CMK that is used to reencrypt the data.
3901
- # Specify a symmetric or asymmetric CMK with a `KeyUsage` value of
3902
- # `ENCRYPT_DECRYPT`. To find the `KeyUsage` value of a CMK, use the
3903
- # DescribeKey operation.
4176
+ # A unique identifier for the KMS key that is used to reencrypt the
4177
+ # data. Specify a symmetric or asymmetric KMS key with a `KeyUsage`
4178
+ # value of `ENCRYPT_DECRYPT`. To find the `KeyUsage` value of a KMS
4179
+ # key, use the DescribeKey operation.
3904
4180
  #
3905
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
3906
- # name, or alias ARN. When using an alias name, prefix it with
3907
- # `"alias/"`. To specify a CMK in a different AWS account, you must
3908
- # use the key ARN or alias ARN.
4181
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
4182
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
4183
+ # a KMS key in a different Amazon Web Services account, you must use
4184
+ # the key ARN or alias ARN.
3909
4185
  #
3910
4186
  # For example:
3911
4187
  #
@@ -3918,7 +4194,7 @@ module Aws::KMS
3918
4194
  #
3919
4195
  # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
3920
4196
  #
3921
- # To get the key ID and key ARN for a CMK, use ListKeys or
4197
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
3922
4198
  # DescribeKey. To get the alias name and alias ARN, use ListAliases.
3923
4199
  # @return [String]
3924
4200
  #
@@ -3927,17 +4203,17 @@ module Aws::KMS
3927
4203
  # data.
3928
4204
  #
3929
4205
  # A destination encryption context is valid only when the destination
3930
- # CMK is a symmetric CMK. The standard ciphertext format for
3931
- # asymmetric CMKs does not include fields for metadata.
4206
+ # KMS key is a symmetric KMS key. The standard ciphertext format for
4207
+ # asymmetric KMS keys does not include fields for metadata.
3932
4208
  #
3933
4209
  # An *encryption context* is a collection of non-secret key-value
3934
4210
  # pairs that represents additional authenticated data. When you use an
3935
4211
  # encryption context to encrypt data, you must specify the same (an
3936
4212
  # exact case-sensitive match) encryption context to decrypt the data.
3937
4213
  # An encryption context is optional when encrypting with a symmetric
3938
- # CMK, but it is highly recommended.
4214
+ # KMS key, but it is highly recommended.
3939
4215
  #
3940
- # For more information, see [Encryption Context][1] in the *AWS Key
4216
+ # For more information, see [Encryption Context][1] in the *Key
3941
4217
  # Management Service Developer Guide*.
3942
4218
  #
3943
4219
  #
@@ -3946,37 +4222,40 @@ module Aws::KMS
3946
4222
  # @return [Hash<String,String>]
3947
4223
  #
3948
4224
  # @!attribute [rw] source_encryption_algorithm
3949
- # Specifies the encryption algorithm that AWS KMS will use to decrypt
3950
- # the ciphertext before it is reencrypted. The default value,
3951
- # `SYMMETRIC_DEFAULT`, represents the algorithm used for symmetric
3952
- # CMKs.
4225
+ # Specifies the encryption algorithm that KMS will use to decrypt the
4226
+ # ciphertext before it is reencrypted. The default value,
4227
+ # `SYMMETRIC_DEFAULT`, represents the algorithm used for symmetric KMS
4228
+ # keys.
3953
4229
  #
3954
4230
  # Specify the same algorithm that was used to encrypt the ciphertext.
3955
4231
  # If you specify a different algorithm, the decrypt attempt fails.
3956
4232
  #
3957
4233
  # This parameter is required only when the ciphertext was encrypted
3958
- # under an asymmetric CMK.
4234
+ # under an asymmetric KMS key.
3959
4235
  # @return [String]
3960
4236
  #
3961
4237
  # @!attribute [rw] destination_encryption_algorithm
3962
- # Specifies the encryption algorithm that AWS KMS will use to reecrypt
3963
- # the data after it has decrypted it. The default value,
4238
+ # Specifies the encryption algorithm that KMS will use to reecrypt the
4239
+ # data after it has decrypted it. The default value,
3964
4240
  # `SYMMETRIC_DEFAULT`, represents the encryption algorithm used for
3965
- # symmetric CMKs.
4241
+ # symmetric KMS keys.
3966
4242
  #
3967
- # This parameter is required only when the destination CMK is an
3968
- # asymmetric CMK.
4243
+ # This parameter is required only when the destination KMS key is an
4244
+ # asymmetric KMS key.
3969
4245
  # @return [String]
3970
4246
  #
3971
4247
  # @!attribute [rw] grant_tokens
3972
4248
  # A list of grant tokens.
3973
4249
  #
3974
- # For more information, see [Grant Tokens][1] in the *AWS Key
3975
- # Management Service Developer Guide*.
4250
+ # Use a grant token when your permission to call this operation comes
4251
+ # from a new grant that has not yet achieved *eventual consistency*.
4252
+ # For more information, see [Grant token][1] and [Using a grant
4253
+ # token][2] in the *Key Management Service Developer Guide*.
3976
4254
  #
3977
4255
  #
3978
4256
  #
3979
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
4257
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
4258
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
3980
4259
  # @return [Array<String>]
3981
4260
  #
3982
4261
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncryptRequest AWS API Documentation
@@ -3995,17 +4274,19 @@ module Aws::KMS
3995
4274
  end
3996
4275
 
3997
4276
  # @!attribute [rw] ciphertext_blob
3998
- # The reencrypted data. When you use the HTTP API or the AWS CLI, the
3999
- # value is Base64-encoded. Otherwise, it is not Base64-encoded.
4277
+ # The reencrypted data. When you use the HTTP API or the Amazon Web
4278
+ # Services CLI, the value is Base64-encoded. Otherwise, it is not
4279
+ # Base64-encoded.
4000
4280
  # @return [String]
4001
4281
  #
4002
4282
  # @!attribute [rw] source_key_id
4003
- # Unique identifier of the CMK used to originally encrypt the data.
4283
+ # Unique identifier of the KMS key used to originally encrypt the
4284
+ # data.
4004
4285
  # @return [String]
4005
4286
  #
4006
4287
  # @!attribute [rw] key_id
4007
- # The Amazon Resource Name ([key ARN][1]) of the CMK that was used to
4008
- # reencrypt the data.
4288
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key that was used
4289
+ # to reencrypt the data.
4009
4290
  #
4010
4291
  #
4011
4292
  #
@@ -4033,6 +4314,222 @@ module Aws::KMS
4033
4314
  include Aws::Structure
4034
4315
  end
4035
4316
 
4317
+ # @note When making an API call, you may pass ReplicateKeyRequest
4318
+ # data as a hash:
4319
+ #
4320
+ # {
4321
+ # key_id: "KeyIdType", # required
4322
+ # replica_region: "RegionType", # required
4323
+ # policy: "PolicyType",
4324
+ # bypass_policy_lockout_safety_check: false,
4325
+ # description: "DescriptionType",
4326
+ # tags: [
4327
+ # {
4328
+ # tag_key: "TagKeyType", # required
4329
+ # tag_value: "TagValueType", # required
4330
+ # },
4331
+ # ],
4332
+ # }
4333
+ #
4334
+ # @!attribute [rw] key_id
4335
+ # Identifies the multi-Region primary key that is being replicated. To
4336
+ # determine whether a KMS key is a multi-Region primary key, use the
4337
+ # DescribeKey operation to check the value of the `MultiRegionKeyType`
4338
+ # property.
4339
+ #
4340
+ # Specify the key ID or key ARN of a multi-Region primary key.
4341
+ #
4342
+ # For example:
4343
+ #
4344
+ # * Key ID: `mrk-1234abcd12ab34cd56ef1234567890ab`
4345
+ #
4346
+ # * Key ARN:
4347
+ # `arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab`
4348
+ #
4349
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4350
+ # DescribeKey.
4351
+ # @return [String]
4352
+ #
4353
+ # @!attribute [rw] replica_region
4354
+ # The Region ID of the Amazon Web Services Region for this replica
4355
+ # key.
4356
+ #
4357
+ # Enter the Region ID, such as `us-east-1` or `ap-southeast-2`. For a
4358
+ # list of Amazon Web Services Regions in which KMS is supported, see
4359
+ # [KMS service endpoints][1] in the *Amazon Web Services General
4360
+ # Reference*.
4361
+ #
4362
+ # The replica must be in a different Amazon Web Services Region than
4363
+ # its primary key and other replicas of that primary key, but in the
4364
+ # same Amazon Web Services partition. KMS must be available in the
4365
+ # replica Region. If the Region is not enabled by default, the Amazon
4366
+ # Web Services account must be enabled in the Region.
4367
+ #
4368
+ # For information about Amazon Web Services partitions, see [Amazon
4369
+ # Resource Names (ARNs) in the *Amazon Web Services General
4370
+ # Reference*.][2] For information about enabling and disabling
4371
+ # Regions, see [Enabling a Region][3] and [Disabling a Region][4] in
4372
+ # the *Amazon Web Services General Reference*.
4373
+ #
4374
+ #
4375
+ #
4376
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region
4377
+ # [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
4378
+ # [3]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable
4379
+ # [4]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable
4380
+ # @return [String]
4381
+ #
4382
+ # @!attribute [rw] policy
4383
+ # The key policy to attach to the KMS key. This parameter is optional.
4384
+ # If you do not provide a key policy, KMS attaches the [default key
4385
+ # policy][1] to the KMS key.
4386
+ #
4387
+ # The key policy is not a shared property of multi-Region keys. You
4388
+ # can specify the same key policy or a different key policy for each
4389
+ # key in a set of related multi-Region keys. KMS does not synchronize
4390
+ # this property.
4391
+ #
4392
+ # If you provide a key policy, it must meet the following criteria:
4393
+ #
4394
+ # * If you don't set `BypassPolicyLockoutSafetyCheck` to true, the
4395
+ # key policy must give the caller `kms:PutKeyPolicy` permission on
4396
+ # the replica key. This reduces the risk that the KMS key becomes
4397
+ # unmanageable. For more information, refer to the scenario in the
4398
+ # [Default Key Policy][2] section of the <i> <i>Key Management
4399
+ # Service Developer Guide</i> </i>.
4400
+ #
4401
+ # * Each statement in the key policy must contain one or more
4402
+ # principals. The principals in the key policy must exist and be
4403
+ # visible to KMS. When you create a new Amazon Web Services
4404
+ # principal (for example, an IAM user or role), you might need to
4405
+ # enforce a delay before including the new principal in a key policy
4406
+ # because the new principal might not be immediately visible to KMS.
4407
+ # For more information, see [Changes that I make are not always
4408
+ # immediately visible][3] in the <i> <i>Identity and Access
4409
+ # Management User Guide</i> </i>.
4410
+ #
4411
+ # * The key policy size quota is 32 kilobytes (32768 bytes).
4412
+ #
4413
+ #
4414
+ #
4415
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default
4416
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
4417
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency
4418
+ # @return [String]
4419
+ #
4420
+ # @!attribute [rw] bypass_policy_lockout_safety_check
4421
+ # A flag to indicate whether to bypass the key policy lockout safety
4422
+ # check.
4423
+ #
4424
+ # Setting this value to true increases the risk that the KMS key
4425
+ # becomes unmanageable. Do not set this value to true
4426
+ # indiscriminately.
4427
+ #
4428
+ # For more information, refer to the scenario in the [Default Key
4429
+ # Policy][1] section in the *Key Management Service Developer Guide*.
4430
+ #
4431
+ # Use this parameter only when you intend to prevent the principal
4432
+ # that is making the request from making a subsequent `PutKeyPolicy`
4433
+ # request on the KMS key.
4434
+ #
4435
+ # The default value is false.
4436
+ #
4437
+ #
4438
+ #
4439
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
4440
+ # @return [Boolean]
4441
+ #
4442
+ # @!attribute [rw] description
4443
+ # A description of the KMS key. The default value is an empty string
4444
+ # (no description).
4445
+ #
4446
+ # The description is not a shared property of multi-Region keys. You
4447
+ # can specify the same description or a different description for each
4448
+ # key in a set of related multi-Region keys. KMS does not synchronize
4449
+ # this property.
4450
+ # @return [String]
4451
+ #
4452
+ # @!attribute [rw] tags
4453
+ # Assigns one or more tags to the replica key. Use this parameter to
4454
+ # tag the KMS key when it is created. To tag an existing KMS key, use
4455
+ # the TagResource operation.
4456
+ #
4457
+ # <note markdown="1"> Tagging or untagging a KMS key can allow or deny permission to the
4458
+ # KMS key. For details, see [Using ABAC in KMS][1] in the *Key
4459
+ # Management Service Developer Guide*.
4460
+ #
4461
+ # </note>
4462
+ #
4463
+ # To use this parameter, you must have [kms:TagResource][2] permission
4464
+ # in an IAM policy.
4465
+ #
4466
+ # Tags are not a shared property of multi-Region keys. You can specify
4467
+ # the same tags or different tags for each key in a set of related
4468
+ # multi-Region keys. KMS does not synchronize this property.
4469
+ #
4470
+ # Each tag consists of a tag key and a tag value. Both the tag key and
4471
+ # the tag value are required, but the tag value can be an empty (null)
4472
+ # string. You cannot have more than one tag on a KMS key with the same
4473
+ # tag key. If you specify an existing tag key with a different tag
4474
+ # value, KMS replaces the current tag value with the specified one.
4475
+ #
4476
+ # When you add tags to an Amazon Web Services resource, Amazon Web
4477
+ # Services generates a cost allocation report with usage and costs
4478
+ # aggregated by tags. Tags can also be used to control access to a KMS
4479
+ # key. For details, see [Tagging Keys][3].
4480
+ #
4481
+ #
4482
+ #
4483
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html
4484
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4485
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html
4486
+ # @return [Array<Types::Tag>]
4487
+ #
4488
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReplicateKeyRequest AWS API Documentation
4489
+ #
4490
+ class ReplicateKeyRequest < Struct.new(
4491
+ :key_id,
4492
+ :replica_region,
4493
+ :policy,
4494
+ :bypass_policy_lockout_safety_check,
4495
+ :description,
4496
+ :tags)
4497
+ SENSITIVE = []
4498
+ include Aws::Structure
4499
+ end
4500
+
4501
+ # @!attribute [rw] replica_key_metadata
4502
+ # Displays details about the new replica key, including its Amazon
4503
+ # Resource Name ([key ARN][1]) and [key state][2]. It also includes
4504
+ # the ARN and Amazon Web Services Region of its primary key and other
4505
+ # replica keys.
4506
+ #
4507
+ #
4508
+ #
4509
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
4510
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4511
+ # @return [Types::KeyMetadata]
4512
+ #
4513
+ # @!attribute [rw] replica_policy
4514
+ # The key policy of the new replica key. The value is a key policy
4515
+ # document in JSON format.
4516
+ # @return [String]
4517
+ #
4518
+ # @!attribute [rw] replica_tags
4519
+ # The tags on the new replica key. The value is a list of tag key and
4520
+ # tag value pairs.
4521
+ # @return [Array<Types::Tag>]
4522
+ #
4523
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReplicateKeyResponse AWS API Documentation
4524
+ #
4525
+ class ReplicateKeyResponse < Struct.new(
4526
+ :replica_key_metadata,
4527
+ :replica_policy,
4528
+ :replica_tags)
4529
+ SENSITIVE = []
4530
+ include Aws::Structure
4531
+ end
4532
+
4036
4533
  # @note When making an API call, you may pass RetireGrantRequest
4037
4534
  # data as a hash:
4038
4535
  #
@@ -4043,19 +4540,31 @@ module Aws::KMS
4043
4540
  # }
4044
4541
  #
4045
4542
  # @!attribute [rw] grant_token
4046
- # Token that identifies the grant to be retired.
4543
+ # Identifies the grant to be retired. You can use a grant token to
4544
+ # identify a new grant even before it has achieved eventual
4545
+ # consistency.
4546
+ #
4547
+ # Only the CreateGrant operation returns a grant token. For details,
4548
+ # see [Grant token][1] and [Eventual consistency][2] in the *Key
4549
+ # Management Service Developer Guide*.
4550
+ #
4551
+ #
4552
+ #
4553
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
4554
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-eventual-consistency
4047
4555
  # @return [String]
4048
4556
  #
4049
4557
  # @!attribute [rw] key_id
4050
- # The Amazon Resource Name (ARN) of the CMK associated with the grant.
4558
+ # The key ARN KMS key associated with the grant. To find the key ARN,
4559
+ # use the ListKeys operation.
4051
4560
  #
4052
4561
  # For example:
4053
4562
  # `arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4054
4563
  # @return [String]
4055
4564
  #
4056
4565
  # @!attribute [rw] grant_id
4057
- # Unique identifier of the grant to retire. The grant ID is returned
4058
- # in the response to a `CreateGrant` operation.
4566
+ # Identifies the grant to retire. To get the grant ID, use
4567
+ # CreateGrant, ListGrants, or ListRetirableGrants.
4059
4568
  #
4060
4569
  # * Grant ID Example -
4061
4570
  # 0123456789012345678901234567890123456789012345678901234567890123
@@ -4082,11 +4591,13 @@ module Aws::KMS
4082
4591
  # }
4083
4592
  #
4084
4593
  # @!attribute [rw] key_id
4085
- # A unique identifier for the customer master key associated with the
4086
- # grant.
4594
+ # A unique identifier for the KMS key associated with the grant. To
4595
+ # get the key ID and key ARN for a KMS key, use ListKeys or
4596
+ # DescribeKey.
4087
4597
  #
4088
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To
4089
- # specify a CMK in a different AWS account, you must use the key ARN.
4598
+ # Specify the key ID or key ARN of the KMS key. To specify a KMS key
4599
+ # in a different Amazon Web Services account, you must use the key
4600
+ # ARN.
4090
4601
  #
4091
4602
  # For example:
4092
4603
  #
@@ -4095,12 +4606,13 @@ module Aws::KMS
4095
4606
  # * Key ARN:
4096
4607
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4097
4608
  #
4098
- # To get the key ID and key ARN for a CMK, use ListKeys or
4609
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4099
4610
  # DescribeKey.
4100
4611
  # @return [String]
4101
4612
  #
4102
4613
  # @!attribute [rw] grant_id
4103
- # Identifier of the grant to be revoked.
4614
+ # Identifies the grant to revoke. To get the grant ID, use
4615
+ # CreateGrant, ListGrants, or ListRetirableGrants.
4104
4616
  # @return [String]
4105
4617
  #
4106
4618
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RevokeGrantRequest AWS API Documentation
@@ -4121,9 +4633,9 @@ module Aws::KMS
4121
4633
  # }
4122
4634
  #
4123
4635
  # @!attribute [rw] key_id
4124
- # The unique identifier of the customer master key (CMK) to delete.
4636
+ # The unique identifier of the KMS key to delete.
4125
4637
  #
4126
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
4638
+ # Specify the key ID or key ARN of the KMS key.
4127
4639
  #
4128
4640
  # For example:
4129
4641
  #
@@ -4132,13 +4644,17 @@ module Aws::KMS
4132
4644
  # * Key ARN:
4133
4645
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4134
4646
  #
4135
- # To get the key ID and key ARN for a CMK, use ListKeys or
4647
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4136
4648
  # DescribeKey.
4137
4649
  # @return [String]
4138
4650
  #
4139
4651
  # @!attribute [rw] pending_window_in_days
4140
4652
  # The waiting period, specified in number of days. After the waiting
4141
- # period ends, AWS KMS deletes the customer master key (CMK).
4653
+ # period ends, KMS deletes the KMS key.
4654
+ #
4655
+ # If the KMS key is a multi-Region primary key with replicas, the
4656
+ # waiting period begins when the last of its replica keys is deleted.
4657
+ # Otherwise, the waiting period begins immediately.
4142
4658
  #
4143
4659
  # This value is optional. If you include a value, it must be between 7
4144
4660
  # and 30, inclusive. If you do not include a value, it defaults to 30.
@@ -4154,8 +4670,8 @@ module Aws::KMS
4154
4670
  end
4155
4671
 
4156
4672
  # @!attribute [rw] key_id
4157
- # The Amazon Resource Name ([key ARN][1]) of the CMK whose deletion is
4158
- # scheduled.
4673
+ # The Amazon Resource Name ([key ARN][1]) of the KMS key whose
4674
+ # deletion is scheduled.
4159
4675
  #
4160
4676
  #
4161
4677
  #
@@ -4163,15 +4679,40 @@ module Aws::KMS
4163
4679
  # @return [String]
4164
4680
  #
4165
4681
  # @!attribute [rw] deletion_date
4166
- # The date and time after which AWS KMS deletes the customer master
4167
- # key (CMK).
4682
+ # The date and time after which KMS deletes the KMS key.
4683
+ #
4684
+ # If the KMS key is a multi-Region primary key with replica keys, this
4685
+ # field does not appear. The deletion date for the primary key isn't
4686
+ # known until its last replica key is deleted.
4168
4687
  # @return [Time]
4169
4688
  #
4689
+ # @!attribute [rw] key_state
4690
+ # The current status of the KMS key.
4691
+ #
4692
+ # For more information about how key state affects the use of a KMS
4693
+ # key, see [Key state: Effect on your KMS key][1] in the *Key
4694
+ # Management Service Developer Guide*.
4695
+ #
4696
+ #
4697
+ #
4698
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4699
+ # @return [String]
4700
+ #
4701
+ # @!attribute [rw] pending_window_in_days
4702
+ # The waiting period before the KMS key is deleted.
4703
+ #
4704
+ # If the KMS key is a multi-Region primary key with replicas, the
4705
+ # waiting period begins when the last of its replica keys is deleted.
4706
+ # Otherwise, the waiting period begins immediately.
4707
+ # @return [Integer]
4708
+ #
4170
4709
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ScheduleKeyDeletionResponse AWS API Documentation
4171
4710
  #
4172
4711
  class ScheduleKeyDeletionResponse < Struct.new(
4173
4712
  :key_id,
4174
- :deletion_date)
4713
+ :deletion_date,
4714
+ :key_state,
4715
+ :pending_window_in_days)
4175
4716
  SENSITIVE = []
4176
4717
  include Aws::Structure
4177
4718
  end
@@ -4188,15 +4729,15 @@ module Aws::KMS
4188
4729
  # }
4189
4730
  #
4190
4731
  # @!attribute [rw] key_id
4191
- # Identifies an asymmetric CMK. AWS KMS uses the private key in the
4192
- # asymmetric CMK to sign the message. The `KeyUsage` type of the CMK
4193
- # must be `SIGN_VERIFY`. To find the `KeyUsage` of a CMK, use the
4194
- # DescribeKey operation.
4732
+ # Identifies an asymmetric KMS key. KMS uses the private key in the
4733
+ # asymmetric KMS key to sign the message. The `KeyUsage` type of the
4734
+ # KMS key must be `SIGN_VERIFY`. To find the `KeyUsage` of a KMS key,
4735
+ # use the DescribeKey operation.
4195
4736
  #
4196
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
4197
- # name, or alias ARN. When using an alias name, prefix it with
4198
- # `"alias/"`. To specify a CMK in a different AWS account, you must
4199
- # use the key ARN or alias ARN.
4737
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
4738
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
4739
+ # a KMS key in a different Amazon Web Services account, you must use
4740
+ # the key ARN or alias ARN.
4200
4741
  #
4201
4742
  # For example:
4202
4743
  #
@@ -4209,7 +4750,7 @@ module Aws::KMS
4209
4750
  #
4210
4751
  # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
4211
4752
  #
4212
- # To get the key ID and key ARN for a CMK, use ListKeys or
4753
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4213
4754
  # DescribeKey. To get the alias name and alias ARN, use ListAliases.
4214
4755
  # @return [String]
4215
4756
  #
@@ -4217,32 +4758,35 @@ module Aws::KMS
4217
4758
  # Specifies the message or message digest to sign. Messages can be
4218
4759
  # 0-4096 bytes. To sign a larger message, provide the message digest.
4219
4760
  #
4220
- # If you provide a message, AWS KMS generates a hash digest of the
4221
- # message and then signs it.
4761
+ # If you provide a message, KMS generates a hash digest of the message
4762
+ # and then signs it.
4222
4763
  # @return [String]
4223
4764
  #
4224
4765
  # @!attribute [rw] message_type
4225
- # Tells AWS KMS whether the value of the `Message` parameter is a
4226
- # message or message digest. The default value, RAW, indicates a
4227
- # message. To indicate a message digest, enter `DIGEST`.
4766
+ # Tells KMS whether the value of the `Message` parameter is a message
4767
+ # or message digest. The default value, RAW, indicates a message. To
4768
+ # indicate a message digest, enter `DIGEST`.
4228
4769
  # @return [String]
4229
4770
  #
4230
4771
  # @!attribute [rw] grant_tokens
4231
4772
  # A list of grant tokens.
4232
4773
  #
4233
- # For more information, see [Grant Tokens][1] in the *AWS Key
4234
- # Management Service Developer Guide*.
4774
+ # Use a grant token when your permission to call this operation comes
4775
+ # from a new grant that has not yet achieved *eventual consistency*.
4776
+ # For more information, see [Grant token][1] and [Using a grant
4777
+ # token][2] in the *Key Management Service Developer Guide*.
4235
4778
  #
4236
4779
  #
4237
4780
  #
4238
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
4781
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
4782
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
4239
4783
  # @return [Array<String>]
4240
4784
  #
4241
4785
  # @!attribute [rw] signing_algorithm
4242
4786
  # Specifies the signing algorithm to use when signing the message.
4243
4787
  #
4244
4788
  # Choose an algorithm that is compatible with the type and size of the
4245
- # specified asymmetric CMK.
4789
+ # specified asymmetric KMS key.
4246
4790
  # @return [String]
4247
4791
  #
4248
4792
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/SignRequest AWS API Documentation
@@ -4258,8 +4802,8 @@ module Aws::KMS
4258
4802
  end
4259
4803
 
4260
4804
  # @!attribute [rw] key_id
4261
- # The Amazon Resource Name ([key ARN][1]) of the asymmetric CMK that
4262
- # was used to sign the message.
4805
+ # The Amazon Resource Name ([key ARN][1]) of the asymmetric KMS key
4806
+ # that was used to sign the message.
4263
4807
  #
4264
4808
  #
4265
4809
  #
@@ -4278,8 +4822,8 @@ module Aws::KMS
4278
4822
  # 2.2.3][2]. This is the most commonly used signature format and is
4279
4823
  # appropriate for most uses.
4280
4824
  #
4281
- # When you use the HTTP API or the AWS CLI, the value is
4282
- # Base64-encoded. Otherwise, it is not Base64-encoded.
4825
+ # When you use the HTTP API or the Amazon Web Services CLI, the value
4826
+ # is Base64-encoded. Otherwise, it is not Base64-encoded.
4283
4827
  #
4284
4828
  #
4285
4829
  #
@@ -4306,8 +4850,8 @@ module Aws::KMS
4306
4850
  # (null) strings.
4307
4851
  #
4308
4852
  # For information about the rules that apply to tag keys and tag values,
4309
- # see [User-Defined Tag Restrictions][1] in the *AWS Billing and Cost
4310
- # Management User Guide*.
4853
+ # see [User-Defined Tag Restrictions][1] in the *Amazon Web Services
4854
+ # Billing and Cost Management User Guide*.
4311
4855
  #
4312
4856
  #
4313
4857
  #
@@ -4365,9 +4909,9 @@ module Aws::KMS
4365
4909
  # }
4366
4910
  #
4367
4911
  # @!attribute [rw] key_id
4368
- # Identifies a customer managed CMK in the account and Region.
4912
+ # Identifies a customer managed key in the account and Region.
4369
4913
  #
4370
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
4914
+ # Specify the key ID or key ARN of the KMS key.
4371
4915
  #
4372
4916
  # For example:
4373
4917
  #
@@ -4376,7 +4920,7 @@ module Aws::KMS
4376
4920
  # * Key ARN:
4377
4921
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4378
4922
  #
4379
- # To get the key ID and key ARN for a CMK, use ListKeys or
4923
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4380
4924
  # DescribeKey.
4381
4925
  # @return [String]
4382
4926
  #
@@ -4386,9 +4930,9 @@ module Aws::KMS
4386
4930
  # Each tag consists of a tag key and a tag value. The tag value can be
4387
4931
  # an empty (null) string.
4388
4932
  #
4389
- # You cannot have more than one tag on a CMK with the same tag key. If
4390
- # you specify an existing tag key with a different tag value, AWS KMS
4391
- # replaces the current tag value with the specified one.
4933
+ # You cannot have more than one tag on a KMS key with the same tag
4934
+ # key. If you specify an existing tag key with a different tag value,
4935
+ # KMS replaces the current tag value with the specified one.
4392
4936
  # @return [Array<Types::Tag>]
4393
4937
  #
4394
4938
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/TagResourceRequest AWS API Documentation
@@ -4423,9 +4967,9 @@ module Aws::KMS
4423
4967
  # }
4424
4968
  #
4425
4969
  # @!attribute [rw] key_id
4426
- # Identifies the CMK from which you are removing tags.
4970
+ # Identifies the KMS key from which you are removing tags.
4427
4971
  #
4428
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
4972
+ # Specify the key ID or key ARN of the KMS key.
4429
4973
  #
4430
4974
  # For example:
4431
4975
  #
@@ -4434,7 +4978,7 @@ module Aws::KMS
4434
4978
  # * Key ARN:
4435
4979
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4436
4980
  #
4437
- # To get the key ID and key ARN for a CMK, use ListKeys or
4981
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4438
4982
  # DescribeKey.
4439
4983
  # @return [String]
4440
4984
  #
@@ -4460,23 +5004,23 @@ module Aws::KMS
4460
5004
  # }
4461
5005
  #
4462
5006
  # @!attribute [rw] alias_name
4463
- # Identifies the alias that is changing its CMK. This value must begin
4464
- # with `alias/` followed by the alias name, such as
5007
+ # Identifies the alias that is changing its KMS key. This value must
5008
+ # begin with `alias/` followed by the alias name, such as
4465
5009
  # `alias/ExampleAlias`. You cannot use UpdateAlias to change the alias
4466
5010
  # name.
4467
5011
  # @return [String]
4468
5012
  #
4469
5013
  # @!attribute [rw] target_key_id
4470
- # Identifies the [customer managed CMK][1] to associate with the
4471
- # alias. You don't have permission to associate an alias with an [AWS
4472
- # managed CMK][2].
5014
+ # Identifies the [customer managed key][1] to associate with the
5015
+ # alias. You don't have permission to associate an alias with an
5016
+ # [Amazon Web Services managed key][2].
4473
5017
  #
4474
- # The CMK must be in the same AWS account and Region as the alias.
4475
- # Also, the new target CMK must be the same type as the current target
4476
- # CMK (both symmetric or both asymmetric) and they must have the same
4477
- # key usage.
5018
+ # The KMS key must be in the same Amazon Web Services account and
5019
+ # Region as the alias. Also, the new target KMS key must be the same
5020
+ # type as the current target KMS key (both symmetric or both
5021
+ # asymmetric) and they must have the same key usage.
4478
5022
  #
4479
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
5023
+ # Specify the key ID or key ARN of the KMS key.
4480
5024
  #
4481
5025
  # For example:
4482
5026
  #
@@ -4485,10 +5029,10 @@ module Aws::KMS
4485
5029
  # * Key ARN:
4486
5030
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4487
5031
  #
4488
- # To get the key ID and key ARN for a CMK, use ListKeys or
5032
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4489
5033
  # DescribeKey.
4490
5034
  #
4491
- # To verify that the alias is mapped to the correct CMK, use
5035
+ # To verify that the alias is mapped to the correct KMS key, use
4492
5036
  # ListAliases.
4493
5037
  #
4494
5038
  #
@@ -4524,21 +5068,21 @@ module Aws::KMS
4524
5068
  #
4525
5069
  # @!attribute [rw] new_custom_key_store_name
4526
5070
  # Changes the friendly name of the custom key store to the value that
4527
- # you specify. The custom key store name must be unique in the AWS
4528
- # account.
5071
+ # you specify. The custom key store name must be unique in the Amazon
5072
+ # Web Services account.
4529
5073
  # @return [String]
4530
5074
  #
4531
5075
  # @!attribute [rw] key_store_password
4532
5076
  # Enter the current password of the `kmsuser` crypto user (CU) in the
4533
- # AWS CloudHSM cluster that is associated with the custom key store.
5077
+ # CloudHSM cluster that is associated with the custom key store.
4534
5078
  #
4535
- # This parameter tells AWS KMS the current password of the `kmsuser`
5079
+ # This parameter tells KMS the current password of the `kmsuser`
4536
5080
  # crypto user (CU). It does not set or change the password of any
4537
- # users in the AWS CloudHSM cluster.
5081
+ # users in the CloudHSM cluster.
4538
5082
  # @return [String]
4539
5083
  #
4540
5084
  # @!attribute [rw] cloud_hsm_cluster_id
4541
- # Associates the custom key store with a related AWS CloudHSM cluster.
5085
+ # Associates the custom key store with a related CloudHSM cluster.
4542
5086
  #
4543
5087
  # Enter the cluster ID of the cluster that you used to create the
4544
5088
  # custom key store or a cluster that shares a backup history and has
@@ -4579,9 +5123,9 @@ module Aws::KMS
4579
5123
  # }
4580
5124
  #
4581
5125
  # @!attribute [rw] key_id
4582
- # A unique identifier for the customer master key (CMK).
5126
+ # Updates the description of the specified KMS key.
4583
5127
  #
4584
- # Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
5128
+ # Specify the key ID or key ARN of the KMS key.
4585
5129
  #
4586
5130
  # For example:
4587
5131
  #
@@ -4590,12 +5134,12 @@ module Aws::KMS
4590
5134
  # * Key ARN:
4591
5135
  # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4592
5136
  #
4593
- # To get the key ID and key ARN for a CMK, use ListKeys or
5137
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4594
5138
  # DescribeKey.
4595
5139
  # @return [String]
4596
5140
  #
4597
5141
  # @!attribute [rw] description
4598
- # New description for the CMK.
5142
+ # New description for the KMS key.
4599
5143
  # @return [String]
4600
5144
  #
4601
5145
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateKeyDescriptionRequest AWS API Documentation
@@ -4607,6 +5151,49 @@ module Aws::KMS
4607
5151
  include Aws::Structure
4608
5152
  end
4609
5153
 
5154
+ # @note When making an API call, you may pass UpdatePrimaryRegionRequest
5155
+ # data as a hash:
5156
+ #
5157
+ # {
5158
+ # key_id: "KeyIdType", # required
5159
+ # primary_region: "RegionType", # required
5160
+ # }
5161
+ #
5162
+ # @!attribute [rw] key_id
5163
+ # Identifies the current primary key. When the operation completes,
5164
+ # this KMS key will be a replica key.
5165
+ #
5166
+ # Specify the key ID or key ARN of a multi-Region primary key.
5167
+ #
5168
+ # For example:
5169
+ #
5170
+ # * Key ID: `mrk-1234abcd12ab34cd56ef1234567890ab`
5171
+ #
5172
+ # * Key ARN:
5173
+ # `arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab`
5174
+ #
5175
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
5176
+ # DescribeKey.
5177
+ # @return [String]
5178
+ #
5179
+ # @!attribute [rw] primary_region
5180
+ # The Amazon Web Services Region of the new primary key. Enter the
5181
+ # Region ID, such as `us-east-1` or `ap-southeast-2`. There must be an
5182
+ # existing replica key in this Region.
5183
+ #
5184
+ # When the operation completes, the multi-Region key in this Region
5185
+ # will be the primary key.
5186
+ # @return [String]
5187
+ #
5188
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdatePrimaryRegionRequest AWS API Documentation
5189
+ #
5190
+ class UpdatePrimaryRegionRequest < Struct.new(
5191
+ :key_id,
5192
+ :primary_region)
5193
+ SENSITIVE = []
5194
+ include Aws::Structure
5195
+ end
5196
+
4610
5197
  # @note When making an API call, you may pass VerifyRequest
4611
5198
  # data as a hash:
4612
5199
  #
@@ -4620,15 +5207,15 @@ module Aws::KMS
4620
5207
  # }
4621
5208
  #
4622
5209
  # @!attribute [rw] key_id
4623
- # Identifies the asymmetric CMK that will be used to verify the
4624
- # signature. This must be the same CMK that was used to generate the
4625
- # signature. If you specify a different CMK, the signature
5210
+ # Identifies the asymmetric KMS key that will be used to verify the
5211
+ # signature. This must be the same KMS key that was used to generate
5212
+ # the signature. If you specify a different KMS key, the signature
4626
5213
  # verification fails.
4627
5214
  #
4628
- # To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
4629
- # name, or alias ARN. When using an alias name, prefix it with
4630
- # `"alias/"`. To specify a CMK in a different AWS account, you must
4631
- # use the key ARN or alias ARN.
5215
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
5216
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify
5217
+ # a KMS key in a different Amazon Web Services account, you must use
5218
+ # the key ARN or alias ARN.
4632
5219
  #
4633
5220
  # For example:
4634
5221
  #
@@ -4641,7 +5228,7 @@ module Aws::KMS
4641
5228
  #
4642
5229
  # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
4643
5230
  #
4644
- # To get the key ID and key ARN for a CMK, use ListKeys or
5231
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4645
5232
  # DescribeKey. To get the alias name and alias ARN, use ListAliases.
4646
5233
  # @return [String]
4647
5234
  #
@@ -4656,9 +5243,9 @@ module Aws::KMS
4656
5243
  # @return [String]
4657
5244
  #
4658
5245
  # @!attribute [rw] message_type
4659
- # Tells AWS KMS whether the value of the `Message` parameter is a
4660
- # message or message digest. The default value, RAW, indicates a
4661
- # message. To indicate a message digest, enter `DIGEST`.
5246
+ # Tells KMS whether the value of the `Message` parameter is a message
5247
+ # or message digest. The default value, RAW, indicates a message. To
5248
+ # indicate a message digest, enter `DIGEST`.
4662
5249
  #
4663
5250
  # Use the `DIGEST` value only when the value of the `Message`
4664
5251
  # parameter is a message digest. If you use the `DIGEST` value with a
@@ -4678,12 +5265,15 @@ module Aws::KMS
4678
5265
  # @!attribute [rw] grant_tokens
4679
5266
  # A list of grant tokens.
4680
5267
  #
4681
- # For more information, see [Grant Tokens][1] in the *AWS Key
4682
- # Management Service Developer Guide*.
5268
+ # Use a grant token when your permission to call this operation comes
5269
+ # from a new grant that has not yet achieved *eventual consistency*.
5270
+ # For more information, see [Grant token][1] and [Using a grant
5271
+ # token][2] in the *Key Management Service Developer Guide*.
4683
5272
  #
4684
5273
  #
4685
5274
  #
4686
- # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token
5275
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
5276
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token
4687
5277
  # @return [Array<String>]
4688
5278
  #
4689
5279
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyRequest AWS API Documentation
@@ -4700,8 +5290,8 @@ module Aws::KMS
4700
5290
  end
4701
5291
 
4702
5292
  # @!attribute [rw] key_id
4703
- # The Amazon Resource Name ([key ARN][1]) of the asymmetric CMK that
4704
- # was used to verify the signature.
5293
+ # The Amazon Resource Name ([key ARN][1]) of the asymmetric KMS key
5294
+ # that was used to verify the signature.
4705
5295
  #
4706
5296
  #
4707
5297
  #