@@ -161,11 +161,12 @@ service KeyManagementService {
161161 option (google.api.method_signature ) = "parent,crypto_key_version" ;
162162 }
163163
164- // Imports a new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] into an existing [CryptoKey][google.cloud.kms.v1.CryptoKey] using the
165- // wrapped key material provided in the request.
164+ // Import wrapped key material into a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion].
166165 //
167- // The version ID will be assigned the next sequential id within the
168- // [CryptoKey][google.cloud.kms.v1.CryptoKey].
166+ // All requests must specify a [CryptoKey][google.cloud.kms.v1.CryptoKey]. If a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] is
167+ // additionally specified in the request, key material will be reimported into
168+ // that version. Otherwise, a new version will be created, and will be
169+ // assigned the next sequential id within the [CryptoKey][google.cloud.kms.v1.CryptoKey].
169170 rpc ImportCryptoKeyVersion (ImportCryptoKeyVersionRequest ) returns (CryptoKeyVersion ) {
170171 option (google.api.http ) = {
171172 post : "/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions:import"
@@ -223,10 +224,11 @@ service KeyManagementService {
223224 // Schedule a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] for destruction.
224225 //
225226 // Upon calling this method, [CryptoKeyVersion.state][google.cloud.kms.v1.CryptoKeyVersion.state] will be set to
226- // [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED]
227- // and [destroy_time][google.cloud.kms.v1.CryptoKeyVersion.destroy_time] will be set to a time 24
228- // hours in the future, at which point the [state][google.cloud.kms.v1.CryptoKeyVersion.state]
229- // will be changed to
227+ // [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED],
228+ // and [destroy_time][google.cloud.kms.v1.CryptoKeyVersion.destroy_time] will be set to the time
229+ // [destroy_scheduled_duration][google.cloud.kms.v1.CryptoKey.destroy_scheduled_duration] in the
230+ // future. At that time, the [state][google.cloud.kms.v1.CryptoKeyVersion.state] will
231+ // automatically change to
230232 // [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED], and the key
231233 // material will be irrevocably destroyed.
232234 //
@@ -646,15 +648,39 @@ message CreateCryptoKeyVersionRequest {
646648
647649// Request message for [KeyManagementService.ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion].
648650message ImportCryptoKeyVersionRequest {
649- // Required. The [name][google.cloud.kms.v1.CryptoKey.name] of the [CryptoKey][google.cloud.kms.v1.CryptoKey] to
650- // be imported into.
651+ // Required. The [name][google.cloud.kms.v1.CryptoKey.name] of the [CryptoKey][google.cloud.kms.v1.CryptoKey] to be imported into.
652+ //
653+ // The create permission is only required on this key when creating a new
654+ // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion].
651655 string parent = 1 [
652656 (google.api.field_behavior ) = REQUIRED ,
653657 (google.api.resource_reference ) = {
654658 type : "cloudkms.googleapis.com/CryptoKey"
655659 }
656660 ];
657661
662+ // Optional. The optional [name][google.cloud.kms.v1.CryptoKeyVersion.name] of an existing
663+ // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] to target for an import operation.
664+ // If this field is not present, a new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] containing the
665+ // supplied key material is created.
666+ //
667+ // If this field is present, the supplied key material is imported into
668+ // the existing [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. To import into an existing
669+ // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] must be a child of
670+ // [ImportCryptoKeyVersionRequest.parent][google.cloud.kms.v1.ImportCryptoKeyVersionRequest.parent], have been previously created via
671+ // [ImportCryptoKeyVersion][], and be in
672+ // [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED] or
673+ // [IMPORT_FAILED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.IMPORT_FAILED]
674+ // state. The key material and algorithm must match the previous
675+ // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] exactly if the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] has ever contained
676+ // key material.
677+ string crypto_key_version = 6 [
678+ (google.api.field_behavior ) = OPTIONAL ,
679+ (google.api.resource_reference ) = {
680+ type : "cloudkms.googleapis.com/CryptoKeyVersion"
681+ }
682+ ];
683+
658684 // Required. The [algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] of
659685 // the key being imported. This does not need to match the
660686 // [version_template][google.cloud.kms.v1.CryptoKey.version_template] of the [CryptoKey][google.cloud.kms.v1.CryptoKey] this
0 commit comments