1// Copyright 2021 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.26.0 18// protoc v3.12.2 19// source: google/cloud/kms/v1/resources.proto 20 21package kms 22 23import ( 24 reflect "reflect" 25 sync "sync" 26 27 _ "google.golang.org/genproto/googleapis/api/annotations" 28 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 29 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 30 durationpb "google.golang.org/protobuf/types/known/durationpb" 31 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 32 wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" 33) 34 35const ( 36 // Verify that this generated code is sufficiently up-to-date. 37 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 38 // Verify that runtime/protoimpl is sufficiently up-to-date. 39 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 40) 41 42// [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] specifies how cryptographic operations are performed. 43// For more information, see [Protection levels] 44// (https://cloud.google.com/kms/docs/algorithms#protection_levels). 45type ProtectionLevel int32 46 47const ( 48 // Not specified. 49 ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED ProtectionLevel = 0 50 // Crypto operations are performed in software. 51 ProtectionLevel_SOFTWARE ProtectionLevel = 1 52 // Crypto operations are performed in a Hardware Security Module. 53 ProtectionLevel_HSM ProtectionLevel = 2 54 // Crypto operations are performed by an external key manager. 55 ProtectionLevel_EXTERNAL ProtectionLevel = 3 56) 57 58// Enum value maps for ProtectionLevel. 59var ( 60 ProtectionLevel_name = map[int32]string{ 61 0: "PROTECTION_LEVEL_UNSPECIFIED", 62 1: "SOFTWARE", 63 2: "HSM", 64 3: "EXTERNAL", 65 } 66 ProtectionLevel_value = map[string]int32{ 67 "PROTECTION_LEVEL_UNSPECIFIED": 0, 68 "SOFTWARE": 1, 69 "HSM": 2, 70 "EXTERNAL": 3, 71 } 72) 73 74func (x ProtectionLevel) Enum() *ProtectionLevel { 75 p := new(ProtectionLevel) 76 *p = x 77 return p 78} 79 80func (x ProtectionLevel) String() string { 81 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 82} 83 84func (ProtectionLevel) Descriptor() protoreflect.EnumDescriptor { 85 return file_google_cloud_kms_v1_resources_proto_enumTypes[0].Descriptor() 86} 87 88func (ProtectionLevel) Type() protoreflect.EnumType { 89 return &file_google_cloud_kms_v1_resources_proto_enumTypes[0] 90} 91 92func (x ProtectionLevel) Number() protoreflect.EnumNumber { 93 return protoreflect.EnumNumber(x) 94} 95 96// Deprecated: Use ProtectionLevel.Descriptor instead. 97func (ProtectionLevel) EnumDescriptor() ([]byte, []int) { 98 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{0} 99} 100 101// [CryptoKeyPurpose][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose] describes the cryptographic capabilities of a 102// [CryptoKey][google.cloud.kms.v1.CryptoKey]. A given key can only be used for the operations allowed by 103// its purpose. For more information, see 104// [Key purposes](https://cloud.google.com/kms/docs/algorithms#key_purposes). 105type CryptoKey_CryptoKeyPurpose int32 106 107const ( 108 // Not specified. 109 CryptoKey_CRYPTO_KEY_PURPOSE_UNSPECIFIED CryptoKey_CryptoKeyPurpose = 0 110 // [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with 111 // [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] and 112 // [Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt]. 113 CryptoKey_ENCRYPT_DECRYPT CryptoKey_CryptoKeyPurpose = 1 114 // [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with 115 // [AsymmetricSign][google.cloud.kms.v1.KeyManagementService.AsymmetricSign] and 116 // [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey]. 117 CryptoKey_ASYMMETRIC_SIGN CryptoKey_CryptoKeyPurpose = 5 118 // [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with 119 // [AsymmetricDecrypt][google.cloud.kms.v1.KeyManagementService.AsymmetricDecrypt] and 120 // [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey]. 121 CryptoKey_ASYMMETRIC_DECRYPT CryptoKey_CryptoKeyPurpose = 6 122 // [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with 123 // [MacSign][google.cloud.kms.v1.KeyManagementService.MacSign]. 124 CryptoKey_MAC CryptoKey_CryptoKeyPurpose = 9 125) 126 127// Enum value maps for CryptoKey_CryptoKeyPurpose. 128var ( 129 CryptoKey_CryptoKeyPurpose_name = map[int32]string{ 130 0: "CRYPTO_KEY_PURPOSE_UNSPECIFIED", 131 1: "ENCRYPT_DECRYPT", 132 5: "ASYMMETRIC_SIGN", 133 6: "ASYMMETRIC_DECRYPT", 134 9: "MAC", 135 } 136 CryptoKey_CryptoKeyPurpose_value = map[string]int32{ 137 "CRYPTO_KEY_PURPOSE_UNSPECIFIED": 0, 138 "ENCRYPT_DECRYPT": 1, 139 "ASYMMETRIC_SIGN": 5, 140 "ASYMMETRIC_DECRYPT": 6, 141 "MAC": 9, 142 } 143) 144 145func (x CryptoKey_CryptoKeyPurpose) Enum() *CryptoKey_CryptoKeyPurpose { 146 p := new(CryptoKey_CryptoKeyPurpose) 147 *p = x 148 return p 149} 150 151func (x CryptoKey_CryptoKeyPurpose) String() string { 152 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 153} 154 155func (CryptoKey_CryptoKeyPurpose) Descriptor() protoreflect.EnumDescriptor { 156 return file_google_cloud_kms_v1_resources_proto_enumTypes[1].Descriptor() 157} 158 159func (CryptoKey_CryptoKeyPurpose) Type() protoreflect.EnumType { 160 return &file_google_cloud_kms_v1_resources_proto_enumTypes[1] 161} 162 163func (x CryptoKey_CryptoKeyPurpose) Number() protoreflect.EnumNumber { 164 return protoreflect.EnumNumber(x) 165} 166 167// Deprecated: Use CryptoKey_CryptoKeyPurpose.Descriptor instead. 168func (CryptoKey_CryptoKeyPurpose) EnumDescriptor() ([]byte, []int) { 169 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{1, 0} 170} 171 172// Attestation formats provided by the HSM. 173type KeyOperationAttestation_AttestationFormat int32 174 175const ( 176 // Not specified. 177 KeyOperationAttestation_ATTESTATION_FORMAT_UNSPECIFIED KeyOperationAttestation_AttestationFormat = 0 178 // Cavium HSM attestation compressed with gzip. Note that this format is 179 // defined by Cavium and subject to change at any time. 180 KeyOperationAttestation_CAVIUM_V1_COMPRESSED KeyOperationAttestation_AttestationFormat = 3 181 // Cavium HSM attestation V2 compressed with gzip. This is a new format 182 // introduced in Cavium's version 3.2-08. 183 KeyOperationAttestation_CAVIUM_V2_COMPRESSED KeyOperationAttestation_AttestationFormat = 4 184) 185 186// Enum value maps for KeyOperationAttestation_AttestationFormat. 187var ( 188 KeyOperationAttestation_AttestationFormat_name = map[int32]string{ 189 0: "ATTESTATION_FORMAT_UNSPECIFIED", 190 3: "CAVIUM_V1_COMPRESSED", 191 4: "CAVIUM_V2_COMPRESSED", 192 } 193 KeyOperationAttestation_AttestationFormat_value = map[string]int32{ 194 "ATTESTATION_FORMAT_UNSPECIFIED": 0, 195 "CAVIUM_V1_COMPRESSED": 3, 196 "CAVIUM_V2_COMPRESSED": 4, 197 } 198) 199 200func (x KeyOperationAttestation_AttestationFormat) Enum() *KeyOperationAttestation_AttestationFormat { 201 p := new(KeyOperationAttestation_AttestationFormat) 202 *p = x 203 return p 204} 205 206func (x KeyOperationAttestation_AttestationFormat) String() string { 207 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 208} 209 210func (KeyOperationAttestation_AttestationFormat) Descriptor() protoreflect.EnumDescriptor { 211 return file_google_cloud_kms_v1_resources_proto_enumTypes[2].Descriptor() 212} 213 214func (KeyOperationAttestation_AttestationFormat) Type() protoreflect.EnumType { 215 return &file_google_cloud_kms_v1_resources_proto_enumTypes[2] 216} 217 218func (x KeyOperationAttestation_AttestationFormat) Number() protoreflect.EnumNumber { 219 return protoreflect.EnumNumber(x) 220} 221 222// Deprecated: Use KeyOperationAttestation_AttestationFormat.Descriptor instead. 223func (KeyOperationAttestation_AttestationFormat) EnumDescriptor() ([]byte, []int) { 224 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{3, 0} 225} 226 227// The algorithm of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating what 228// parameters must be used for each cryptographic operation. 229// 230// The 231// [GOOGLE_SYMMETRIC_ENCRYPTION][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION] 232// algorithm is usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] 233// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]. 234// 235// Algorithms beginning with "RSA_SIGN_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] 236// [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN]. 237// 238// The fields in the name after "RSA_SIGN_" correspond to the following 239// parameters: padding algorithm, modulus bit length, and digest algorithm. 240// 241// For PSS, the salt length used is equal to the length of digest 242// algorithm. For example, 243// [RSA_SIGN_PSS_2048_SHA256][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.RSA_SIGN_PSS_2048_SHA256] 244// will use PSS with a salt length of 256 bits or 32 bytes. 245// 246// Algorithms beginning with "RSA_DECRYPT_" are usable with 247// [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] 248// [ASYMMETRIC_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_DECRYPT]. 249// 250// The fields in the name after "RSA_DECRYPT_" correspond to the following 251// parameters: padding algorithm, modulus bit length, and digest algorithm. 252// 253// Algorithms beginning with "EC_SIGN_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] 254// [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN]. 255// 256// The fields in the name after "EC_SIGN_" correspond to the following 257// parameters: elliptic curve, digest algorithm. 258// 259// Algorithms beginning with "HMAC_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] 260// [MAC][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.MAC]. 261// 262// The suffix following "HMAC_" corresponds to the hash algorithm being used 263// (eg. SHA256). 264// 265// For more information, see [Key purposes and algorithms] 266// (https://cloud.google.com/kms/docs/algorithms). 267type CryptoKeyVersion_CryptoKeyVersionAlgorithm int32 268 269const ( 270 // Not specified. 271 CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionAlgorithm = 0 272 // Creates symmetric encryption keys. 273 CryptoKeyVersion_GOOGLE_SYMMETRIC_ENCRYPTION CryptoKeyVersion_CryptoKeyVersionAlgorithm = 1 274 // RSASSA-PSS 2048 bit key with a SHA256 digest. 275 CryptoKeyVersion_RSA_SIGN_PSS_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 2 276 // RSASSA-PSS 3072 bit key with a SHA256 digest. 277 CryptoKeyVersion_RSA_SIGN_PSS_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 3 278 // RSASSA-PSS 4096 bit key with a SHA256 digest. 279 CryptoKeyVersion_RSA_SIGN_PSS_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 4 280 // RSASSA-PSS 4096 bit key with a SHA512 digest. 281 CryptoKeyVersion_RSA_SIGN_PSS_4096_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 15 282 // RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest. 283 CryptoKeyVersion_RSA_SIGN_PKCS1_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 5 284 // RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest. 285 CryptoKeyVersion_RSA_SIGN_PKCS1_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 6 286 // RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest. 287 CryptoKeyVersion_RSA_SIGN_PKCS1_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 7 288 // RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest. 289 CryptoKeyVersion_RSA_SIGN_PKCS1_4096_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 16 290 // RSAES-OAEP 2048 bit key with a SHA256 digest. 291 CryptoKeyVersion_RSA_DECRYPT_OAEP_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 8 292 // RSAES-OAEP 3072 bit key with a SHA256 digest. 293 CryptoKeyVersion_RSA_DECRYPT_OAEP_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 9 294 // RSAES-OAEP 4096 bit key with a SHA256 digest. 295 CryptoKeyVersion_RSA_DECRYPT_OAEP_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 10 296 // RSAES-OAEP 4096 bit key with a SHA512 digest. 297 CryptoKeyVersion_RSA_DECRYPT_OAEP_4096_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 17 298 // ECDSA on the NIST P-256 curve with a SHA256 digest. 299 CryptoKeyVersion_EC_SIGN_P256_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 12 300 // ECDSA on the NIST P-384 curve with a SHA384 digest. 301 CryptoKeyVersion_EC_SIGN_P384_SHA384 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 13 302 // ECDSA on the non-NIST secp256k1 curve. This curve is only supported for 303 // HSM protection level. 304 CryptoKeyVersion_EC_SIGN_SECP256K1_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 31 305 // HMAC-SHA256 signing with a 256 bit key. 306 CryptoKeyVersion_HMAC_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 32 307 // Algorithm representing symmetric encryption by an external key manager. 308 CryptoKeyVersion_EXTERNAL_SYMMETRIC_ENCRYPTION CryptoKeyVersion_CryptoKeyVersionAlgorithm = 18 309) 310 311// Enum value maps for CryptoKeyVersion_CryptoKeyVersionAlgorithm. 312var ( 313 CryptoKeyVersion_CryptoKeyVersionAlgorithm_name = map[int32]string{ 314 0: "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED", 315 1: "GOOGLE_SYMMETRIC_ENCRYPTION", 316 2: "RSA_SIGN_PSS_2048_SHA256", 317 3: "RSA_SIGN_PSS_3072_SHA256", 318 4: "RSA_SIGN_PSS_4096_SHA256", 319 15: "RSA_SIGN_PSS_4096_SHA512", 320 5: "RSA_SIGN_PKCS1_2048_SHA256", 321 6: "RSA_SIGN_PKCS1_3072_SHA256", 322 7: "RSA_SIGN_PKCS1_4096_SHA256", 323 16: "RSA_SIGN_PKCS1_4096_SHA512", 324 8: "RSA_DECRYPT_OAEP_2048_SHA256", 325 9: "RSA_DECRYPT_OAEP_3072_SHA256", 326 10: "RSA_DECRYPT_OAEP_4096_SHA256", 327 17: "RSA_DECRYPT_OAEP_4096_SHA512", 328 12: "EC_SIGN_P256_SHA256", 329 13: "EC_SIGN_P384_SHA384", 330 31: "EC_SIGN_SECP256K1_SHA256", 331 32: "HMAC_SHA256", 332 18: "EXTERNAL_SYMMETRIC_ENCRYPTION", 333 } 334 CryptoKeyVersion_CryptoKeyVersionAlgorithm_value = map[string]int32{ 335 "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED": 0, 336 "GOOGLE_SYMMETRIC_ENCRYPTION": 1, 337 "RSA_SIGN_PSS_2048_SHA256": 2, 338 "RSA_SIGN_PSS_3072_SHA256": 3, 339 "RSA_SIGN_PSS_4096_SHA256": 4, 340 "RSA_SIGN_PSS_4096_SHA512": 15, 341 "RSA_SIGN_PKCS1_2048_SHA256": 5, 342 "RSA_SIGN_PKCS1_3072_SHA256": 6, 343 "RSA_SIGN_PKCS1_4096_SHA256": 7, 344 "RSA_SIGN_PKCS1_4096_SHA512": 16, 345 "RSA_DECRYPT_OAEP_2048_SHA256": 8, 346 "RSA_DECRYPT_OAEP_3072_SHA256": 9, 347 "RSA_DECRYPT_OAEP_4096_SHA256": 10, 348 "RSA_DECRYPT_OAEP_4096_SHA512": 17, 349 "EC_SIGN_P256_SHA256": 12, 350 "EC_SIGN_P384_SHA384": 13, 351 "EC_SIGN_SECP256K1_SHA256": 31, 352 "HMAC_SHA256": 32, 353 "EXTERNAL_SYMMETRIC_ENCRYPTION": 18, 354 } 355) 356 357func (x CryptoKeyVersion_CryptoKeyVersionAlgorithm) Enum() *CryptoKeyVersion_CryptoKeyVersionAlgorithm { 358 p := new(CryptoKeyVersion_CryptoKeyVersionAlgorithm) 359 *p = x 360 return p 361} 362 363func (x CryptoKeyVersion_CryptoKeyVersionAlgorithm) String() string { 364 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 365} 366 367func (CryptoKeyVersion_CryptoKeyVersionAlgorithm) Descriptor() protoreflect.EnumDescriptor { 368 return file_google_cloud_kms_v1_resources_proto_enumTypes[3].Descriptor() 369} 370 371func (CryptoKeyVersion_CryptoKeyVersionAlgorithm) Type() protoreflect.EnumType { 372 return &file_google_cloud_kms_v1_resources_proto_enumTypes[3] 373} 374 375func (x CryptoKeyVersion_CryptoKeyVersionAlgorithm) Number() protoreflect.EnumNumber { 376 return protoreflect.EnumNumber(x) 377} 378 379// Deprecated: Use CryptoKeyVersion_CryptoKeyVersionAlgorithm.Descriptor instead. 380func (CryptoKeyVersion_CryptoKeyVersionAlgorithm) EnumDescriptor() ([]byte, []int) { 381 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{4, 0} 382} 383 384// The state of a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating if it can be used. 385type CryptoKeyVersion_CryptoKeyVersionState int32 386 387const ( 388 // Not specified. 389 CryptoKeyVersion_CRYPTO_KEY_VERSION_STATE_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionState = 0 390 // This version is still being generated. It may not be used, enabled, 391 // disabled, or destroyed yet. Cloud KMS will automatically mark this 392 // version [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] as soon as the version is ready. 393 CryptoKeyVersion_PENDING_GENERATION CryptoKeyVersion_CryptoKeyVersionState = 5 394 // This version may be used for cryptographic operations. 395 CryptoKeyVersion_ENABLED CryptoKeyVersion_CryptoKeyVersionState = 1 396 // This version may not be used, but the key material is still available, 397 // and the version can be placed back into the [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] state. 398 CryptoKeyVersion_DISABLED CryptoKeyVersion_CryptoKeyVersionState = 2 399 // This version is destroyed, and the key material is no longer stored. 400 // This version may only become [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] again if this version is 401 // [reimport_eligible][google.cloud.kms.v1.CryptoKeyVersion.reimport_eligible] and the original 402 // key material is reimported with a call to 403 // [KeyManagementService.ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion]. 404 CryptoKeyVersion_DESTROYED CryptoKeyVersion_CryptoKeyVersionState = 3 405 // This version is scheduled for destruction, and will be destroyed soon. 406 // Call 407 // [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion] 408 // to put it back into the [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED] state. 409 CryptoKeyVersion_DESTROY_SCHEDULED CryptoKeyVersion_CryptoKeyVersionState = 4 410 // This version is still being imported. It may not be used, enabled, 411 // disabled, or destroyed yet. Cloud KMS will automatically mark this 412 // version [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] as soon as the version is ready. 413 CryptoKeyVersion_PENDING_IMPORT CryptoKeyVersion_CryptoKeyVersionState = 6 414 // This version was not imported successfully. It may not be used, enabled, 415 // disabled, or destroyed. The submitted key material has been discarded. 416 // Additional details can be found in 417 // [CryptoKeyVersion.import_failure_reason][google.cloud.kms.v1.CryptoKeyVersion.import_failure_reason]. 418 CryptoKeyVersion_IMPORT_FAILED CryptoKeyVersion_CryptoKeyVersionState = 7 419) 420 421// Enum value maps for CryptoKeyVersion_CryptoKeyVersionState. 422var ( 423 CryptoKeyVersion_CryptoKeyVersionState_name = map[int32]string{ 424 0: "CRYPTO_KEY_VERSION_STATE_UNSPECIFIED", 425 5: "PENDING_GENERATION", 426 1: "ENABLED", 427 2: "DISABLED", 428 3: "DESTROYED", 429 4: "DESTROY_SCHEDULED", 430 6: "PENDING_IMPORT", 431 7: "IMPORT_FAILED", 432 } 433 CryptoKeyVersion_CryptoKeyVersionState_value = map[string]int32{ 434 "CRYPTO_KEY_VERSION_STATE_UNSPECIFIED": 0, 435 "PENDING_GENERATION": 5, 436 "ENABLED": 1, 437 "DISABLED": 2, 438 "DESTROYED": 3, 439 "DESTROY_SCHEDULED": 4, 440 "PENDING_IMPORT": 6, 441 "IMPORT_FAILED": 7, 442 } 443) 444 445func (x CryptoKeyVersion_CryptoKeyVersionState) Enum() *CryptoKeyVersion_CryptoKeyVersionState { 446 p := new(CryptoKeyVersion_CryptoKeyVersionState) 447 *p = x 448 return p 449} 450 451func (x CryptoKeyVersion_CryptoKeyVersionState) String() string { 452 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 453} 454 455func (CryptoKeyVersion_CryptoKeyVersionState) Descriptor() protoreflect.EnumDescriptor { 456 return file_google_cloud_kms_v1_resources_proto_enumTypes[4].Descriptor() 457} 458 459func (CryptoKeyVersion_CryptoKeyVersionState) Type() protoreflect.EnumType { 460 return &file_google_cloud_kms_v1_resources_proto_enumTypes[4] 461} 462 463func (x CryptoKeyVersion_CryptoKeyVersionState) Number() protoreflect.EnumNumber { 464 return protoreflect.EnumNumber(x) 465} 466 467// Deprecated: Use CryptoKeyVersion_CryptoKeyVersionState.Descriptor instead. 468func (CryptoKeyVersion_CryptoKeyVersionState) EnumDescriptor() ([]byte, []int) { 469 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{4, 1} 470} 471 472// A view for [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]s. Controls the level of detail returned 473// for [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] in 474// [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions] and 475// [KeyManagementService.ListCryptoKeys][google.cloud.kms.v1.KeyManagementService.ListCryptoKeys]. 476type CryptoKeyVersion_CryptoKeyVersionView int32 477 478const ( 479 // Default view for each [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Does not include 480 // the [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation] field. 481 CryptoKeyVersion_CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionView = 0 482 // Provides all fields in each [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], including the 483 // [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation]. 484 CryptoKeyVersion_FULL CryptoKeyVersion_CryptoKeyVersionView = 1 485) 486 487// Enum value maps for CryptoKeyVersion_CryptoKeyVersionView. 488var ( 489 CryptoKeyVersion_CryptoKeyVersionView_name = map[int32]string{ 490 0: "CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED", 491 1: "FULL", 492 } 493 CryptoKeyVersion_CryptoKeyVersionView_value = map[string]int32{ 494 "CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED": 0, 495 "FULL": 1, 496 } 497) 498 499func (x CryptoKeyVersion_CryptoKeyVersionView) Enum() *CryptoKeyVersion_CryptoKeyVersionView { 500 p := new(CryptoKeyVersion_CryptoKeyVersionView) 501 *p = x 502 return p 503} 504 505func (x CryptoKeyVersion_CryptoKeyVersionView) String() string { 506 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 507} 508 509func (CryptoKeyVersion_CryptoKeyVersionView) Descriptor() protoreflect.EnumDescriptor { 510 return file_google_cloud_kms_v1_resources_proto_enumTypes[5].Descriptor() 511} 512 513func (CryptoKeyVersion_CryptoKeyVersionView) Type() protoreflect.EnumType { 514 return &file_google_cloud_kms_v1_resources_proto_enumTypes[5] 515} 516 517func (x CryptoKeyVersion_CryptoKeyVersionView) Number() protoreflect.EnumNumber { 518 return protoreflect.EnumNumber(x) 519} 520 521// Deprecated: Use CryptoKeyVersion_CryptoKeyVersionView.Descriptor instead. 522func (CryptoKeyVersion_CryptoKeyVersionView) EnumDescriptor() ([]byte, []int) { 523 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{4, 2} 524} 525 526// [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] describes the key wrapping method chosen for this 527// [ImportJob][google.cloud.kms.v1.ImportJob]. 528type ImportJob_ImportMethod int32 529 530const ( 531 // Not specified. 532 ImportJob_IMPORT_METHOD_UNSPECIFIED ImportJob_ImportMethod = 0 533 // This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping 534 // scheme defined in the PKCS #11 standard. In summary, this involves 535 // wrapping the raw key with an ephemeral AES key, and wrapping the 536 // ephemeral AES key with a 3072 bit RSA key. For more details, see 537 // [RSA AES key wrap 538 // mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908). 539 ImportJob_RSA_OAEP_3072_SHA1_AES_256 ImportJob_ImportMethod = 1 540 // This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping 541 // scheme defined in the PKCS #11 standard. In summary, this involves 542 // wrapping the raw key with an ephemeral AES key, and wrapping the 543 // ephemeral AES key with a 4096 bit RSA key. For more details, see 544 // [RSA AES key wrap 545 // mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908). 546 ImportJob_RSA_OAEP_4096_SHA1_AES_256 ImportJob_ImportMethod = 2 547) 548 549// Enum value maps for ImportJob_ImportMethod. 550var ( 551 ImportJob_ImportMethod_name = map[int32]string{ 552 0: "IMPORT_METHOD_UNSPECIFIED", 553 1: "RSA_OAEP_3072_SHA1_AES_256", 554 2: "RSA_OAEP_4096_SHA1_AES_256", 555 } 556 ImportJob_ImportMethod_value = map[string]int32{ 557 "IMPORT_METHOD_UNSPECIFIED": 0, 558 "RSA_OAEP_3072_SHA1_AES_256": 1, 559 "RSA_OAEP_4096_SHA1_AES_256": 2, 560 } 561) 562 563func (x ImportJob_ImportMethod) Enum() *ImportJob_ImportMethod { 564 p := new(ImportJob_ImportMethod) 565 *p = x 566 return p 567} 568 569func (x ImportJob_ImportMethod) String() string { 570 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 571} 572 573func (ImportJob_ImportMethod) Descriptor() protoreflect.EnumDescriptor { 574 return file_google_cloud_kms_v1_resources_proto_enumTypes[6].Descriptor() 575} 576 577func (ImportJob_ImportMethod) Type() protoreflect.EnumType { 578 return &file_google_cloud_kms_v1_resources_proto_enumTypes[6] 579} 580 581func (x ImportJob_ImportMethod) Number() protoreflect.EnumNumber { 582 return protoreflect.EnumNumber(x) 583} 584 585// Deprecated: Use ImportJob_ImportMethod.Descriptor instead. 586func (ImportJob_ImportMethod) EnumDescriptor() ([]byte, []int) { 587 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{6, 0} 588} 589 590// The state of the [ImportJob][google.cloud.kms.v1.ImportJob], indicating if it can be used. 591type ImportJob_ImportJobState int32 592 593const ( 594 // Not specified. 595 ImportJob_IMPORT_JOB_STATE_UNSPECIFIED ImportJob_ImportJobState = 0 596 // The wrapping key for this job is still being generated. It may not be 597 // used. Cloud KMS will automatically mark this job as 598 // [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] as soon as the wrapping key is generated. 599 ImportJob_PENDING_GENERATION ImportJob_ImportJobState = 1 600 // This job may be used in 601 // [CreateCryptoKey][google.cloud.kms.v1.KeyManagementService.CreateCryptoKey] and 602 // [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] 603 // requests. 604 ImportJob_ACTIVE ImportJob_ImportJobState = 2 605 // This job can no longer be used and may not leave this state once entered. 606 ImportJob_EXPIRED ImportJob_ImportJobState = 3 607) 608 609// Enum value maps for ImportJob_ImportJobState. 610var ( 611 ImportJob_ImportJobState_name = map[int32]string{ 612 0: "IMPORT_JOB_STATE_UNSPECIFIED", 613 1: "PENDING_GENERATION", 614 2: "ACTIVE", 615 3: "EXPIRED", 616 } 617 ImportJob_ImportJobState_value = map[string]int32{ 618 "IMPORT_JOB_STATE_UNSPECIFIED": 0, 619 "PENDING_GENERATION": 1, 620 "ACTIVE": 2, 621 "EXPIRED": 3, 622 } 623) 624 625func (x ImportJob_ImportJobState) Enum() *ImportJob_ImportJobState { 626 p := new(ImportJob_ImportJobState) 627 *p = x 628 return p 629} 630 631func (x ImportJob_ImportJobState) String() string { 632 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 633} 634 635func (ImportJob_ImportJobState) Descriptor() protoreflect.EnumDescriptor { 636 return file_google_cloud_kms_v1_resources_proto_enumTypes[7].Descriptor() 637} 638 639func (ImportJob_ImportJobState) Type() protoreflect.EnumType { 640 return &file_google_cloud_kms_v1_resources_proto_enumTypes[7] 641} 642 643func (x ImportJob_ImportJobState) Number() protoreflect.EnumNumber { 644 return protoreflect.EnumNumber(x) 645} 646 647// Deprecated: Use ImportJob_ImportJobState.Descriptor instead. 648func (ImportJob_ImportJobState) EnumDescriptor() ([]byte, []int) { 649 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{6, 1} 650} 651 652// A [KeyRing][google.cloud.kms.v1.KeyRing] is a toplevel logical grouping of [CryptoKeys][google.cloud.kms.v1.CryptoKey]. 653type KeyRing struct { 654 state protoimpl.MessageState 655 sizeCache protoimpl.SizeCache 656 unknownFields protoimpl.UnknownFields 657 658 // Output only. The resource name for the [KeyRing][google.cloud.kms.v1.KeyRing] in the format 659 // `projects/*/locations/*/keyRings/*`. 660 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 661 // Output only. The time at which this [KeyRing][google.cloud.kms.v1.KeyRing] was created. 662 CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 663} 664 665func (x *KeyRing) Reset() { 666 *x = KeyRing{} 667 if protoimpl.UnsafeEnabled { 668 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[0] 669 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 670 ms.StoreMessageInfo(mi) 671 } 672} 673 674func (x *KeyRing) String() string { 675 return protoimpl.X.MessageStringOf(x) 676} 677 678func (*KeyRing) ProtoMessage() {} 679 680func (x *KeyRing) ProtoReflect() protoreflect.Message { 681 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[0] 682 if protoimpl.UnsafeEnabled && x != nil { 683 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 684 if ms.LoadMessageInfo() == nil { 685 ms.StoreMessageInfo(mi) 686 } 687 return ms 688 } 689 return mi.MessageOf(x) 690} 691 692// Deprecated: Use KeyRing.ProtoReflect.Descriptor instead. 693func (*KeyRing) Descriptor() ([]byte, []int) { 694 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{0} 695} 696 697func (x *KeyRing) GetName() string { 698 if x != nil { 699 return x.Name 700 } 701 return "" 702} 703 704func (x *KeyRing) GetCreateTime() *timestamppb.Timestamp { 705 if x != nil { 706 return x.CreateTime 707 } 708 return nil 709} 710 711// A [CryptoKey][google.cloud.kms.v1.CryptoKey] represents a logical key that can be used for cryptographic 712// operations. 713// 714// A [CryptoKey][google.cloud.kms.v1.CryptoKey] is made up of zero or more [versions][google.cloud.kms.v1.CryptoKeyVersion], 715// which represent the actual key material used in cryptographic operations. 716type CryptoKey struct { 717 state protoimpl.MessageState 718 sizeCache protoimpl.SizeCache 719 unknownFields protoimpl.UnknownFields 720 721 // Output only. The resource name for this [CryptoKey][google.cloud.kms.v1.CryptoKey] in the format 722 // `projects/*/locations/*/keyRings/*/cryptoKeys/*`. 723 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 724 // Output only. A copy of the "primary" [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that will be used 725 // by [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] when this [CryptoKey][google.cloud.kms.v1.CryptoKey] is given 726 // in [EncryptRequest.name][google.cloud.kms.v1.EncryptRequest.name]. 727 // 728 // The [CryptoKey][google.cloud.kms.v1.CryptoKey]'s primary version can be updated via 729 // [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion]. 730 // 731 // Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose] 732 // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] may have a 733 // primary. For other keys, this field will be omitted. 734 Primary *CryptoKeyVersion `protobuf:"bytes,2,opt,name=primary,proto3" json:"primary,omitempty"` 735 // Immutable. The immutable purpose of this [CryptoKey][google.cloud.kms.v1.CryptoKey]. 736 Purpose CryptoKey_CryptoKeyPurpose `protobuf:"varint,3,opt,name=purpose,proto3,enum=google.cloud.kms.v1.CryptoKey_CryptoKeyPurpose" json:"purpose,omitempty"` 737 // Output only. The time at which this [CryptoKey][google.cloud.kms.v1.CryptoKey] was created. 738 CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 739 // At [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time], the Key Management Service will automatically: 740 // 741 // 1. Create a new version of this [CryptoKey][google.cloud.kms.v1.CryptoKey]. 742 // 2. Mark the new version as primary. 743 // 744 // Key rotations performed manually via 745 // [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] and 746 // [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion] 747 // do not affect [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time]. 748 // 749 // Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose] 750 // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] support 751 // automatic rotation. For other keys, this field must be omitted. 752 NextRotationTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=next_rotation_time,json=nextRotationTime,proto3" json:"next_rotation_time,omitempty"` 753 // Controls the rate of automatic rotation. 754 // 755 // Types that are assignable to RotationSchedule: 756 // *CryptoKey_RotationPeriod 757 RotationSchedule isCryptoKey_RotationSchedule `protobuf_oneof:"rotation_schedule"` 758 // A template describing settings for new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] instances. 759 // The properties of new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] instances created by either 760 // [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] or 761 // auto-rotation are controlled by this template. 762 VersionTemplate *CryptoKeyVersionTemplate `protobuf:"bytes,11,opt,name=version_template,json=versionTemplate,proto3" json:"version_template,omitempty"` 763 // Labels with user-defined metadata. For more information, see 764 // [Labeling Keys](https://cloud.google.com/kms/docs/labeling-keys). 765 Labels map[string]string `protobuf:"bytes,10,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 766 // Immutable. Whether this key may contain imported versions only. 767 ImportOnly bool `protobuf:"varint,13,opt,name=import_only,json=importOnly,proto3" json:"import_only,omitempty"` 768 // Immutable. The period of time that versions of this key spend in the 769 // [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED] 770 // state before transitioning to 771 // [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED]. If not 772 // specified at creation time, the default duration is 24 hours. 773 DestroyScheduledDuration *durationpb.Duration `protobuf:"bytes,14,opt,name=destroy_scheduled_duration,json=destroyScheduledDuration,proto3" json:"destroy_scheduled_duration,omitempty"` 774} 775 776func (x *CryptoKey) Reset() { 777 *x = CryptoKey{} 778 if protoimpl.UnsafeEnabled { 779 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[1] 780 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 781 ms.StoreMessageInfo(mi) 782 } 783} 784 785func (x *CryptoKey) String() string { 786 return protoimpl.X.MessageStringOf(x) 787} 788 789func (*CryptoKey) ProtoMessage() {} 790 791func (x *CryptoKey) ProtoReflect() protoreflect.Message { 792 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[1] 793 if protoimpl.UnsafeEnabled && x != nil { 794 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 795 if ms.LoadMessageInfo() == nil { 796 ms.StoreMessageInfo(mi) 797 } 798 return ms 799 } 800 return mi.MessageOf(x) 801} 802 803// Deprecated: Use CryptoKey.ProtoReflect.Descriptor instead. 804func (*CryptoKey) Descriptor() ([]byte, []int) { 805 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{1} 806} 807 808func (x *CryptoKey) GetName() string { 809 if x != nil { 810 return x.Name 811 } 812 return "" 813} 814 815func (x *CryptoKey) GetPrimary() *CryptoKeyVersion { 816 if x != nil { 817 return x.Primary 818 } 819 return nil 820} 821 822func (x *CryptoKey) GetPurpose() CryptoKey_CryptoKeyPurpose { 823 if x != nil { 824 return x.Purpose 825 } 826 return CryptoKey_CRYPTO_KEY_PURPOSE_UNSPECIFIED 827} 828 829func (x *CryptoKey) GetCreateTime() *timestamppb.Timestamp { 830 if x != nil { 831 return x.CreateTime 832 } 833 return nil 834} 835 836func (x *CryptoKey) GetNextRotationTime() *timestamppb.Timestamp { 837 if x != nil { 838 return x.NextRotationTime 839 } 840 return nil 841} 842 843func (m *CryptoKey) GetRotationSchedule() isCryptoKey_RotationSchedule { 844 if m != nil { 845 return m.RotationSchedule 846 } 847 return nil 848} 849 850func (x *CryptoKey) GetRotationPeriod() *durationpb.Duration { 851 if x, ok := x.GetRotationSchedule().(*CryptoKey_RotationPeriod); ok { 852 return x.RotationPeriod 853 } 854 return nil 855} 856 857func (x *CryptoKey) GetVersionTemplate() *CryptoKeyVersionTemplate { 858 if x != nil { 859 return x.VersionTemplate 860 } 861 return nil 862} 863 864func (x *CryptoKey) GetLabels() map[string]string { 865 if x != nil { 866 return x.Labels 867 } 868 return nil 869} 870 871func (x *CryptoKey) GetImportOnly() bool { 872 if x != nil { 873 return x.ImportOnly 874 } 875 return false 876} 877 878func (x *CryptoKey) GetDestroyScheduledDuration() *durationpb.Duration { 879 if x != nil { 880 return x.DestroyScheduledDuration 881 } 882 return nil 883} 884 885type isCryptoKey_RotationSchedule interface { 886 isCryptoKey_RotationSchedule() 887} 888 889type CryptoKey_RotationPeriod struct { 890 // [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time] will be advanced by this period when the service 891 // automatically rotates a key. Must be at least 24 hours and at most 892 // 876,000 hours. 893 // 894 // If [rotation_period][google.cloud.kms.v1.CryptoKey.rotation_period] is set, [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time] must also be set. 895 // 896 // Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose] 897 // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] support 898 // automatic rotation. For other keys, this field must be omitted. 899 RotationPeriod *durationpb.Duration `protobuf:"bytes,8,opt,name=rotation_period,json=rotationPeriod,proto3,oneof"` 900} 901 902func (*CryptoKey_RotationPeriod) isCryptoKey_RotationSchedule() {} 903 904// A [CryptoKeyVersionTemplate][google.cloud.kms.v1.CryptoKeyVersionTemplate] specifies the properties to use when creating 905// a new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], either manually with 906// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] or 907// automatically as a result of auto-rotation. 908type CryptoKeyVersionTemplate struct { 909 state protoimpl.MessageState 910 sizeCache protoimpl.SizeCache 911 unknownFields protoimpl.UnknownFields 912 913 // [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] to use when creating a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on 914 // this template. Immutable. Defaults to [SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE]. 915 ProtectionLevel ProtectionLevel `protobuf:"varint,1,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"` 916 // Required. [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] to use 917 // when creating a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on this template. 918 // 919 // For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both 920 // this field is omitted and [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] is 921 // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]. 922 Algorithm CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,3,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"` 923} 924 925func (x *CryptoKeyVersionTemplate) Reset() { 926 *x = CryptoKeyVersionTemplate{} 927 if protoimpl.UnsafeEnabled { 928 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[2] 929 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 930 ms.StoreMessageInfo(mi) 931 } 932} 933 934func (x *CryptoKeyVersionTemplate) String() string { 935 return protoimpl.X.MessageStringOf(x) 936} 937 938func (*CryptoKeyVersionTemplate) ProtoMessage() {} 939 940func (x *CryptoKeyVersionTemplate) ProtoReflect() protoreflect.Message { 941 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[2] 942 if protoimpl.UnsafeEnabled && x != nil { 943 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 944 if ms.LoadMessageInfo() == nil { 945 ms.StoreMessageInfo(mi) 946 } 947 return ms 948 } 949 return mi.MessageOf(x) 950} 951 952// Deprecated: Use CryptoKeyVersionTemplate.ProtoReflect.Descriptor instead. 953func (*CryptoKeyVersionTemplate) Descriptor() ([]byte, []int) { 954 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{2} 955} 956 957func (x *CryptoKeyVersionTemplate) GetProtectionLevel() ProtectionLevel { 958 if x != nil { 959 return x.ProtectionLevel 960 } 961 return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED 962} 963 964func (x *CryptoKeyVersionTemplate) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm { 965 if x != nil { 966 return x.Algorithm 967 } 968 return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED 969} 970 971// Contains an HSM-generated attestation about a key operation. For more 972// information, see [Verifying attestations] 973// (https://cloud.google.com/kms/docs/attest-key). 974type KeyOperationAttestation struct { 975 state protoimpl.MessageState 976 sizeCache protoimpl.SizeCache 977 unknownFields protoimpl.UnknownFields 978 979 // Output only. The format of the attestation data. 980 Format KeyOperationAttestation_AttestationFormat `protobuf:"varint,4,opt,name=format,proto3,enum=google.cloud.kms.v1.KeyOperationAttestation_AttestationFormat" json:"format,omitempty"` 981 // Output only. The attestation data provided by the HSM when the key 982 // operation was performed. 983 Content []byte `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` 984} 985 986func (x *KeyOperationAttestation) Reset() { 987 *x = KeyOperationAttestation{} 988 if protoimpl.UnsafeEnabled { 989 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[3] 990 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 991 ms.StoreMessageInfo(mi) 992 } 993} 994 995func (x *KeyOperationAttestation) String() string { 996 return protoimpl.X.MessageStringOf(x) 997} 998 999func (*KeyOperationAttestation) ProtoMessage() {} 1000 1001func (x *KeyOperationAttestation) ProtoReflect() protoreflect.Message { 1002 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[3] 1003 if protoimpl.UnsafeEnabled && x != nil { 1004 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1005 if ms.LoadMessageInfo() == nil { 1006 ms.StoreMessageInfo(mi) 1007 } 1008 return ms 1009 } 1010 return mi.MessageOf(x) 1011} 1012 1013// Deprecated: Use KeyOperationAttestation.ProtoReflect.Descriptor instead. 1014func (*KeyOperationAttestation) Descriptor() ([]byte, []int) { 1015 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{3} 1016} 1017 1018func (x *KeyOperationAttestation) GetFormat() KeyOperationAttestation_AttestationFormat { 1019 if x != nil { 1020 return x.Format 1021 } 1022 return KeyOperationAttestation_ATTESTATION_FORMAT_UNSPECIFIED 1023} 1024 1025func (x *KeyOperationAttestation) GetContent() []byte { 1026 if x != nil { 1027 return x.Content 1028 } 1029 return nil 1030} 1031 1032// A [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents an individual cryptographic key, and the 1033// associated key material. 1034// 1035// An [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] version can be 1036// used for cryptographic operations. 1037// 1038// For security reasons, the raw cryptographic key material represented by a 1039// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] can never be viewed or exported. It can only be used to 1040// encrypt, decrypt, or sign data when an authorized user or application invokes 1041// Cloud KMS. 1042type CryptoKeyVersion struct { 1043 state protoimpl.MessageState 1044 sizeCache protoimpl.SizeCache 1045 unknownFields protoimpl.UnknownFields 1046 1047 // Output only. The resource name for this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in the format 1048 // `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. 1049 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1050 // The current state of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. 1051 State CryptoKeyVersion_CryptoKeyVersionState `protobuf:"varint,3,opt,name=state,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionState" json:"state,omitempty"` 1052 // Output only. The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] describing how crypto operations are 1053 // performed with this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. 1054 ProtectionLevel ProtectionLevel `protobuf:"varint,7,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"` 1055 // Output only. The [CryptoKeyVersionAlgorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] that this 1056 // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] supports. 1057 Algorithm CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,10,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"` 1058 // Output only. Statement that was generated and signed by the HSM at key 1059 // creation time. Use this statement to verify attributes of the key as stored 1060 // on the HSM, independently of Google. Only provided for key versions with 1061 // [protection_level][google.cloud.kms.v1.CryptoKeyVersion.protection_level] [HSM][google.cloud.kms.v1.ProtectionLevel.HSM]. 1062 Attestation *KeyOperationAttestation `protobuf:"bytes,8,opt,name=attestation,proto3" json:"attestation,omitempty"` 1063 // Output only. The time at which this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] was created. 1064 CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 1065 // Output only. The time this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material was 1066 // generated. 1067 GenerateTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=generate_time,json=generateTime,proto3" json:"generate_time,omitempty"` 1068 // Output only. The time this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material is scheduled 1069 // for destruction. Only present if [state][google.cloud.kms.v1.CryptoKeyVersion.state] is 1070 // [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED]. 1071 DestroyTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=destroy_time,json=destroyTime,proto3" json:"destroy_time,omitempty"` 1072 // Output only. The time this CryptoKeyVersion's key material was 1073 // destroyed. Only present if [state][google.cloud.kms.v1.CryptoKeyVersion.state] is 1074 // [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED]. 1075 DestroyEventTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=destroy_event_time,json=destroyEventTime,proto3" json:"destroy_event_time,omitempty"` 1076 // Output only. The name of the [ImportJob][google.cloud.kms.v1.ImportJob] used in the most recent import of this 1077 // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Only present if the underlying key material was 1078 // imported. 1079 ImportJob string `protobuf:"bytes,14,opt,name=import_job,json=importJob,proto3" json:"import_job,omitempty"` 1080 // Output only. The time at which this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material 1081 // was most recently imported. 1082 ImportTime *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=import_time,json=importTime,proto3" json:"import_time,omitempty"` 1083 // Output only. The root cause of the most recent import failure. Only present if 1084 // [state][google.cloud.kms.v1.CryptoKeyVersion.state] is 1085 // [IMPORT_FAILED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.IMPORT_FAILED]. 1086 ImportFailureReason string `protobuf:"bytes,16,opt,name=import_failure_reason,json=importFailureReason,proto3" json:"import_failure_reason,omitempty"` 1087 // ExternalProtectionLevelOptions stores a group of additional fields for 1088 // configuring a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that are specific to the 1089 // [EXTERNAL][google.cloud.kms.v1.ProtectionLevel.EXTERNAL] protection level. 1090 ExternalProtectionLevelOptions *ExternalProtectionLevelOptions `protobuf:"bytes,17,opt,name=external_protection_level_options,json=externalProtectionLevelOptions,proto3" json:"external_protection_level_options,omitempty"` 1091 // Output only. Whether or not this key version is eligible for reimport, by being 1092 // specified as a target in 1093 // [ImportCryptoKeyVersionRequest.crypto_key_version][google.cloud.kms.v1.ImportCryptoKeyVersionRequest.crypto_key_version]. 1094 ReimportEligible bool `protobuf:"varint,18,opt,name=reimport_eligible,json=reimportEligible,proto3" json:"reimport_eligible,omitempty"` 1095} 1096 1097func (x *CryptoKeyVersion) Reset() { 1098 *x = CryptoKeyVersion{} 1099 if protoimpl.UnsafeEnabled { 1100 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[4] 1101 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1102 ms.StoreMessageInfo(mi) 1103 } 1104} 1105 1106func (x *CryptoKeyVersion) String() string { 1107 return protoimpl.X.MessageStringOf(x) 1108} 1109 1110func (*CryptoKeyVersion) ProtoMessage() {} 1111 1112func (x *CryptoKeyVersion) ProtoReflect() protoreflect.Message { 1113 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[4] 1114 if protoimpl.UnsafeEnabled && x != nil { 1115 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1116 if ms.LoadMessageInfo() == nil { 1117 ms.StoreMessageInfo(mi) 1118 } 1119 return ms 1120 } 1121 return mi.MessageOf(x) 1122} 1123 1124// Deprecated: Use CryptoKeyVersion.ProtoReflect.Descriptor instead. 1125func (*CryptoKeyVersion) Descriptor() ([]byte, []int) { 1126 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{4} 1127} 1128 1129func (x *CryptoKeyVersion) GetName() string { 1130 if x != nil { 1131 return x.Name 1132 } 1133 return "" 1134} 1135 1136func (x *CryptoKeyVersion) GetState() CryptoKeyVersion_CryptoKeyVersionState { 1137 if x != nil { 1138 return x.State 1139 } 1140 return CryptoKeyVersion_CRYPTO_KEY_VERSION_STATE_UNSPECIFIED 1141} 1142 1143func (x *CryptoKeyVersion) GetProtectionLevel() ProtectionLevel { 1144 if x != nil { 1145 return x.ProtectionLevel 1146 } 1147 return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED 1148} 1149 1150func (x *CryptoKeyVersion) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm { 1151 if x != nil { 1152 return x.Algorithm 1153 } 1154 return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED 1155} 1156 1157func (x *CryptoKeyVersion) GetAttestation() *KeyOperationAttestation { 1158 if x != nil { 1159 return x.Attestation 1160 } 1161 return nil 1162} 1163 1164func (x *CryptoKeyVersion) GetCreateTime() *timestamppb.Timestamp { 1165 if x != nil { 1166 return x.CreateTime 1167 } 1168 return nil 1169} 1170 1171func (x *CryptoKeyVersion) GetGenerateTime() *timestamppb.Timestamp { 1172 if x != nil { 1173 return x.GenerateTime 1174 } 1175 return nil 1176} 1177 1178func (x *CryptoKeyVersion) GetDestroyTime() *timestamppb.Timestamp { 1179 if x != nil { 1180 return x.DestroyTime 1181 } 1182 return nil 1183} 1184 1185func (x *CryptoKeyVersion) GetDestroyEventTime() *timestamppb.Timestamp { 1186 if x != nil { 1187 return x.DestroyEventTime 1188 } 1189 return nil 1190} 1191 1192func (x *CryptoKeyVersion) GetImportJob() string { 1193 if x != nil { 1194 return x.ImportJob 1195 } 1196 return "" 1197} 1198 1199func (x *CryptoKeyVersion) GetImportTime() *timestamppb.Timestamp { 1200 if x != nil { 1201 return x.ImportTime 1202 } 1203 return nil 1204} 1205 1206func (x *CryptoKeyVersion) GetImportFailureReason() string { 1207 if x != nil { 1208 return x.ImportFailureReason 1209 } 1210 return "" 1211} 1212 1213func (x *CryptoKeyVersion) GetExternalProtectionLevelOptions() *ExternalProtectionLevelOptions { 1214 if x != nil { 1215 return x.ExternalProtectionLevelOptions 1216 } 1217 return nil 1218} 1219 1220func (x *CryptoKeyVersion) GetReimportEligible() bool { 1221 if x != nil { 1222 return x.ReimportEligible 1223 } 1224 return false 1225} 1226 1227// The public key for a given [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Obtained via 1228// [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey]. 1229type PublicKey struct { 1230 state protoimpl.MessageState 1231 sizeCache protoimpl.SizeCache 1232 unknownFields protoimpl.UnknownFields 1233 1234 // The public key, encoded in PEM format. For more information, see the 1235 // [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for 1236 // [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) and 1237 // [Textual Encoding of Subject Public Key Info] 1238 // (https://tools.ietf.org/html/rfc7468#section-13). 1239 Pem string `protobuf:"bytes,1,opt,name=pem,proto3" json:"pem,omitempty"` 1240 // The [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] associated 1241 // with this key. 1242 Algorithm CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,2,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"` 1243 // Integrity verification field. A CRC32C checksum of the returned 1244 // [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem]. An integrity check of [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem] can be performed 1245 // by computing the CRC32C checksum of [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem] and 1246 // comparing your results to this field. Discard the response in case of 1247 // non-matching checksum values, and perform a limited number of retries. A 1248 // persistent mismatch may indicate an issue in your computation of the CRC32C 1249 // checksum. 1250 // Note: This field is defined as int64 for reasons of compatibility across 1251 // different languages. However, it is a non-negative integer, which will 1252 // never exceed 2^32-1, and can be safely downconverted to uint32 in languages 1253 // that support this type. 1254 // 1255 // NOTE: This field is in Beta. 1256 PemCrc32C *wrapperspb.Int64Value `protobuf:"bytes,3,opt,name=pem_crc32c,json=pemCrc32c,proto3" json:"pem_crc32c,omitempty"` 1257 // The [name][google.cloud.kms.v1.CryptoKeyVersion.name] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key. 1258 // Provided here for verification. 1259 // 1260 // NOTE: This field is in Beta. 1261 Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` 1262 // The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key. 1263 ProtectionLevel ProtectionLevel `protobuf:"varint,5,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"` 1264} 1265 1266func (x *PublicKey) Reset() { 1267 *x = PublicKey{} 1268 if protoimpl.UnsafeEnabled { 1269 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[5] 1270 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1271 ms.StoreMessageInfo(mi) 1272 } 1273} 1274 1275func (x *PublicKey) String() string { 1276 return protoimpl.X.MessageStringOf(x) 1277} 1278 1279func (*PublicKey) ProtoMessage() {} 1280 1281func (x *PublicKey) ProtoReflect() protoreflect.Message { 1282 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[5] 1283 if protoimpl.UnsafeEnabled && x != nil { 1284 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1285 if ms.LoadMessageInfo() == nil { 1286 ms.StoreMessageInfo(mi) 1287 } 1288 return ms 1289 } 1290 return mi.MessageOf(x) 1291} 1292 1293// Deprecated: Use PublicKey.ProtoReflect.Descriptor instead. 1294func (*PublicKey) Descriptor() ([]byte, []int) { 1295 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{5} 1296} 1297 1298func (x *PublicKey) GetPem() string { 1299 if x != nil { 1300 return x.Pem 1301 } 1302 return "" 1303} 1304 1305func (x *PublicKey) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm { 1306 if x != nil { 1307 return x.Algorithm 1308 } 1309 return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED 1310} 1311 1312func (x *PublicKey) GetPemCrc32C() *wrapperspb.Int64Value { 1313 if x != nil { 1314 return x.PemCrc32C 1315 } 1316 return nil 1317} 1318 1319func (x *PublicKey) GetName() string { 1320 if x != nil { 1321 return x.Name 1322 } 1323 return "" 1324} 1325 1326func (x *PublicKey) GetProtectionLevel() ProtectionLevel { 1327 if x != nil { 1328 return x.ProtectionLevel 1329 } 1330 return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED 1331} 1332 1333// An [ImportJob][google.cloud.kms.v1.ImportJob] can be used to create [CryptoKeys][google.cloud.kms.v1.CryptoKey] and 1334// [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] using pre-existing key material, 1335// generated outside of Cloud KMS. 1336// 1337// When an [ImportJob][google.cloud.kms.v1.ImportJob] is created, Cloud KMS will generate a "wrapping key", 1338// which is a public/private key pair. You use the wrapping key to encrypt (also 1339// known as wrap) the pre-existing key material to protect it during the import 1340// process. The nature of the wrapping key depends on the choice of 1341// [import_method][google.cloud.kms.v1.ImportJob.import_method]. When the wrapping key generation 1342// is complete, the [state][google.cloud.kms.v1.ImportJob.state] will be set to 1343// [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] and the [public_key][google.cloud.kms.v1.ImportJob.public_key] 1344// can be fetched. The fetched public key can then be used to wrap your 1345// pre-existing key material. 1346// 1347// Once the key material is wrapped, it can be imported into a new 1348// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in an existing [CryptoKey][google.cloud.kms.v1.CryptoKey] by calling 1349// [ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion]. 1350// Multiple [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] can be imported with a single 1351// [ImportJob][google.cloud.kms.v1.ImportJob]. Cloud KMS uses the private key portion of the wrapping key to 1352// unwrap the key material. Only Cloud KMS has access to the private key. 1353// 1354// An [ImportJob][google.cloud.kms.v1.ImportJob] expires 3 days after it is created. Once expired, Cloud KMS 1355// will no longer be able to import or unwrap any key material that was wrapped 1356// with the [ImportJob][google.cloud.kms.v1.ImportJob]'s public key. 1357// 1358// For more information, see 1359// [Importing a key](https://cloud.google.com/kms/docs/importing-a-key). 1360type ImportJob struct { 1361 state protoimpl.MessageState 1362 sizeCache protoimpl.SizeCache 1363 unknownFields protoimpl.UnknownFields 1364 1365 // Output only. The resource name for this [ImportJob][google.cloud.kms.v1.ImportJob] in the format 1366 // `projects/*/locations/*/keyRings/*/importJobs/*`. 1367 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1368 // Required. Immutable. The wrapping method to be used for incoming key material. 1369 ImportMethod ImportJob_ImportMethod `protobuf:"varint,2,opt,name=import_method,json=importMethod,proto3,enum=google.cloud.kms.v1.ImportJob_ImportMethod" json:"import_method,omitempty"` 1370 // Required. Immutable. The protection level of the [ImportJob][google.cloud.kms.v1.ImportJob]. This must match the 1371 // [protection_level][google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level] of the 1372 // [version_template][google.cloud.kms.v1.CryptoKey.version_template] on the [CryptoKey][google.cloud.kms.v1.CryptoKey] you 1373 // attempt to import into. 1374 ProtectionLevel ProtectionLevel `protobuf:"varint,9,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"` 1375 // Output only. The time at which this [ImportJob][google.cloud.kms.v1.ImportJob] was created. 1376 CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 1377 // Output only. The time this [ImportJob][google.cloud.kms.v1.ImportJob]'s key material was generated. 1378 GenerateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=generate_time,json=generateTime,proto3" json:"generate_time,omitempty"` 1379 // Output only. The time at which this [ImportJob][google.cloud.kms.v1.ImportJob] is scheduled for 1380 // expiration and can no longer be used to import key material. 1381 ExpireTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` 1382 // Output only. The time this [ImportJob][google.cloud.kms.v1.ImportJob] expired. Only present if 1383 // [state][google.cloud.kms.v1.ImportJob.state] is [EXPIRED][google.cloud.kms.v1.ImportJob.ImportJobState.EXPIRED]. 1384 ExpireEventTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=expire_event_time,json=expireEventTime,proto3" json:"expire_event_time,omitempty"` 1385 // Output only. The current state of the [ImportJob][google.cloud.kms.v1.ImportJob], indicating if it can 1386 // be used. 1387 State ImportJob_ImportJobState `protobuf:"varint,6,opt,name=state,proto3,enum=google.cloud.kms.v1.ImportJob_ImportJobState" json:"state,omitempty"` 1388 // Output only. The public key with which to wrap key material prior to 1389 // import. Only returned if [state][google.cloud.kms.v1.ImportJob.state] is 1390 // [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE]. 1391 PublicKey *ImportJob_WrappingPublicKey `protobuf:"bytes,7,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` 1392 // Output only. Statement that was generated and signed by the key creator 1393 // (for example, an HSM) at key creation time. Use this statement to verify 1394 // attributes of the key as stored on the HSM, independently of Google. 1395 // Only present if the chosen [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] is one with a protection 1396 // level of [HSM][google.cloud.kms.v1.ProtectionLevel.HSM]. 1397 Attestation *KeyOperationAttestation `protobuf:"bytes,8,opt,name=attestation,proto3" json:"attestation,omitempty"` 1398} 1399 1400func (x *ImportJob) Reset() { 1401 *x = ImportJob{} 1402 if protoimpl.UnsafeEnabled { 1403 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[6] 1404 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1405 ms.StoreMessageInfo(mi) 1406 } 1407} 1408 1409func (x *ImportJob) String() string { 1410 return protoimpl.X.MessageStringOf(x) 1411} 1412 1413func (*ImportJob) ProtoMessage() {} 1414 1415func (x *ImportJob) ProtoReflect() protoreflect.Message { 1416 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[6] 1417 if protoimpl.UnsafeEnabled && x != nil { 1418 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1419 if ms.LoadMessageInfo() == nil { 1420 ms.StoreMessageInfo(mi) 1421 } 1422 return ms 1423 } 1424 return mi.MessageOf(x) 1425} 1426 1427// Deprecated: Use ImportJob.ProtoReflect.Descriptor instead. 1428func (*ImportJob) Descriptor() ([]byte, []int) { 1429 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{6} 1430} 1431 1432func (x *ImportJob) GetName() string { 1433 if x != nil { 1434 return x.Name 1435 } 1436 return "" 1437} 1438 1439func (x *ImportJob) GetImportMethod() ImportJob_ImportMethod { 1440 if x != nil { 1441 return x.ImportMethod 1442 } 1443 return ImportJob_IMPORT_METHOD_UNSPECIFIED 1444} 1445 1446func (x *ImportJob) GetProtectionLevel() ProtectionLevel { 1447 if x != nil { 1448 return x.ProtectionLevel 1449 } 1450 return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED 1451} 1452 1453func (x *ImportJob) GetCreateTime() *timestamppb.Timestamp { 1454 if x != nil { 1455 return x.CreateTime 1456 } 1457 return nil 1458} 1459 1460func (x *ImportJob) GetGenerateTime() *timestamppb.Timestamp { 1461 if x != nil { 1462 return x.GenerateTime 1463 } 1464 return nil 1465} 1466 1467func (x *ImportJob) GetExpireTime() *timestamppb.Timestamp { 1468 if x != nil { 1469 return x.ExpireTime 1470 } 1471 return nil 1472} 1473 1474func (x *ImportJob) GetExpireEventTime() *timestamppb.Timestamp { 1475 if x != nil { 1476 return x.ExpireEventTime 1477 } 1478 return nil 1479} 1480 1481func (x *ImportJob) GetState() ImportJob_ImportJobState { 1482 if x != nil { 1483 return x.State 1484 } 1485 return ImportJob_IMPORT_JOB_STATE_UNSPECIFIED 1486} 1487 1488func (x *ImportJob) GetPublicKey() *ImportJob_WrappingPublicKey { 1489 if x != nil { 1490 return x.PublicKey 1491 } 1492 return nil 1493} 1494 1495func (x *ImportJob) GetAttestation() *KeyOperationAttestation { 1496 if x != nil { 1497 return x.Attestation 1498 } 1499 return nil 1500} 1501 1502// ExternalProtectionLevelOptions stores a group of additional fields for 1503// configuring a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that are specific to the 1504// [EXTERNAL][google.cloud.kms.v1.ProtectionLevel.EXTERNAL] protection level. 1505type ExternalProtectionLevelOptions struct { 1506 state protoimpl.MessageState 1507 sizeCache protoimpl.SizeCache 1508 unknownFields protoimpl.UnknownFields 1509 1510 // The URI for an external resource that this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents. 1511 ExternalKeyUri string `protobuf:"bytes,1,opt,name=external_key_uri,json=externalKeyUri,proto3" json:"external_key_uri,omitempty"` 1512} 1513 1514func (x *ExternalProtectionLevelOptions) Reset() { 1515 *x = ExternalProtectionLevelOptions{} 1516 if protoimpl.UnsafeEnabled { 1517 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[7] 1518 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1519 ms.StoreMessageInfo(mi) 1520 } 1521} 1522 1523func (x *ExternalProtectionLevelOptions) String() string { 1524 return protoimpl.X.MessageStringOf(x) 1525} 1526 1527func (*ExternalProtectionLevelOptions) ProtoMessage() {} 1528 1529func (x *ExternalProtectionLevelOptions) ProtoReflect() protoreflect.Message { 1530 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[7] 1531 if protoimpl.UnsafeEnabled && x != nil { 1532 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1533 if ms.LoadMessageInfo() == nil { 1534 ms.StoreMessageInfo(mi) 1535 } 1536 return ms 1537 } 1538 return mi.MessageOf(x) 1539} 1540 1541// Deprecated: Use ExternalProtectionLevelOptions.ProtoReflect.Descriptor instead. 1542func (*ExternalProtectionLevelOptions) Descriptor() ([]byte, []int) { 1543 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{7} 1544} 1545 1546func (x *ExternalProtectionLevelOptions) GetExternalKeyUri() string { 1547 if x != nil { 1548 return x.ExternalKeyUri 1549 } 1550 return "" 1551} 1552 1553// The public key component of the wrapping key. For details of the type of 1554// key this public key corresponds to, see the [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod]. 1555type ImportJob_WrappingPublicKey struct { 1556 state protoimpl.MessageState 1557 sizeCache protoimpl.SizeCache 1558 unknownFields protoimpl.UnknownFields 1559 1560 // The public key, encoded in PEM format. For more information, see the [RFC 1561 // 7468](https://tools.ietf.org/html/rfc7468) sections for [General 1562 // Considerations](https://tools.ietf.org/html/rfc7468#section-2) and 1563 // [Textual Encoding of Subject Public Key Info] 1564 // (https://tools.ietf.org/html/rfc7468#section-13). 1565 Pem string `protobuf:"bytes,1,opt,name=pem,proto3" json:"pem,omitempty"` 1566} 1567 1568func (x *ImportJob_WrappingPublicKey) Reset() { 1569 *x = ImportJob_WrappingPublicKey{} 1570 if protoimpl.UnsafeEnabled { 1571 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[9] 1572 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1573 ms.StoreMessageInfo(mi) 1574 } 1575} 1576 1577func (x *ImportJob_WrappingPublicKey) String() string { 1578 return protoimpl.X.MessageStringOf(x) 1579} 1580 1581func (*ImportJob_WrappingPublicKey) ProtoMessage() {} 1582 1583func (x *ImportJob_WrappingPublicKey) ProtoReflect() protoreflect.Message { 1584 mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[9] 1585 if protoimpl.UnsafeEnabled && x != nil { 1586 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1587 if ms.LoadMessageInfo() == nil { 1588 ms.StoreMessageInfo(mi) 1589 } 1590 return ms 1591 } 1592 return mi.MessageOf(x) 1593} 1594 1595// Deprecated: Use ImportJob_WrappingPublicKey.ProtoReflect.Descriptor instead. 1596func (*ImportJob_WrappingPublicKey) Descriptor() ([]byte, []int) { 1597 return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{6, 0} 1598} 1599 1600func (x *ImportJob_WrappingPublicKey) GetPem() string { 1601 if x != nil { 1602 return x.Pem 1603 } 1604 return "" 1605} 1606 1607var File_google_cloud_kms_v1_resources_proto protoreflect.FileDescriptor 1608 1609var file_google_cloud_kms_v1_resources_proto_rawDesc = []byte{ 1610 0x0a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6b, 1611 0x6d, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 1612 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 1613 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 1614 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 1615 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 1616 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 1617 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 1618 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1619 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 1620 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 1621 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 1622 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 1623 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 1624 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 1625 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc7, 0x01, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x52, 0x69, 0x6e, 1626 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 1627 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 1628 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 1629 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 1630 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 1631 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x61, 0xea, 0x41, 1632 0x5e, 0x0a, 0x1f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1633 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x65, 0x79, 0x52, 0x69, 1634 0x6e, 0x67, 0x12, 0x3b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 1635 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 1636 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x52, 1637 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x7d, 0x22, 1638 0xff, 0x07, 0x0a, 0x09, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 1639 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 1640 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 1641 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1642 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 1643 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 1644 0xe0, 0x41, 0x03, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x4e, 0x0a, 0x07, 1645 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 1646 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 1647 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x2e, 0x43, 0x72, 1648 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x42, 0x03, 1649 0xe0, 0x41, 0x05, 0x52, 0x07, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0b, 1650 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 1651 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1652 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 1653 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x48, 1654 0x0a, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 1655 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 1656 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 1657 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x52, 0x6f, 0x74, 0x61, 1658 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x72, 0x6f, 0x74, 0x61, 1659 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 1660 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1661 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 1662 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x58, 1663 0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 1664 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1665 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 1666 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 1667 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 1668 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 1669 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1670 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 1671 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 1672 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x24, 0x0a, 0x0b, 1673 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 1674 0x08, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x6e, 1675 0x6c, 0x79, 0x12, 0x5c, 0x0a, 0x1a, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x73, 0x63, 1676 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1677 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1678 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 1679 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x18, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x53, 1680 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1681 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 1682 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 1683 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 1684 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x81, 0x01, 0x0a, 0x10, 1685 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 1686 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x50, 1687 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 1688 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 1689 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x53, 0x59, 1690 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x05, 0x12, 0x16, 1691 0x0a, 0x12, 0x41, 0x53, 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x44, 0x45, 0x43, 1692 0x52, 0x59, 0x50, 0x54, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x41, 0x43, 0x10, 0x09, 0x3a, 1693 0x7b, 0xea, 0x41, 0x78, 0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 1694 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x72, 1695 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x53, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 1696 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 1697 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 1698 0x2f, 0x6b, 0x65, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x72, 1699 0x69, 0x6e, 0x67, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x73, 0x2f, 1700 0x7b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x42, 0x13, 0x0a, 0x11, 1701 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 1702 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 1703 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x4f, 1704 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 1705 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1706 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 1707 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0f, 1708 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 1709 0x62, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01, 1710 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1711 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 1712 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 1713 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 1714 0x74, 0x68, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 1715 0x74, 0x68, 0x6d, 0x22, 0x82, 0x02, 0x0a, 0x17, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 1716 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 1717 0x5b, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 1718 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 1719 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 1720 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x74, 1721 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 1722 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x07, 1723 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 1724 0x41, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x6b, 0x0a, 0x11, 0x41, 1725 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 1726 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 1727 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 1728 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x41, 0x56, 0x49, 0x55, 0x4d, 0x5f, 0x56, 1729 0x31, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, 0x18, 1730 0x0a, 0x14, 0x43, 0x41, 0x56, 0x49, 0x55, 0x4d, 0x5f, 0x56, 0x32, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 1731 0x52, 0x45, 0x53, 0x53, 0x45, 0x44, 0x10, 0x04, 0x22, 0xa6, 0x10, 0x0a, 0x10, 0x43, 0x72, 0x79, 1732 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 1733 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 1734 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 1735 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1736 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x79, 0x70, 1737 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x79, 1738 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 1739 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x10, 0x70, 0x72, 0x6f, 1740 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 1741 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1742 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 1743 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 1744 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 1745 0x62, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x0a, 0x20, 0x01, 1746 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1747 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 1748 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 1749 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 1750 0x74, 0x68, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 1751 0x74, 0x68, 0x6d, 0x12, 0x53, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 1752 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1753 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 1754 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 1755 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x61, 0x74, 0x74, 1756 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 1757 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 1758 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 1759 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 1760 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x67, 0x65, 1761 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 1762 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1763 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 1764 0x41, 0x03, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 1765 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 1766 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1767 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 1768 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 1769 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 1770 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 1771 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 1772 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 1773 0x03, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 1774 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6a, 0x6f, 1775 0x62, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x69, 0x6d, 1776 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x40, 0x0a, 0x0b, 0x69, 0x6d, 0x70, 0x6f, 0x72, 1777 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 1778 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 1779 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x69, 1780 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6d, 0x70, 1781 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 1782 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x69, 1783 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 1784 0x6f, 0x6e, 0x12, 0x7e, 0x0a, 0x21, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 1785 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 1786 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 1787 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 1788 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 1789 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 1790 0x6e, 0x73, 0x52, 0x1e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 1791 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 1792 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 1793 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 1794 0x41, 0x03, 0x52, 0x10, 0x72, 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6c, 0x69, 0x67, 1795 0x69, 0x62, 0x6c, 0x65, 0x22, 0xee, 0x04, 0x0a, 0x19, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 1796 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 1797 0x68, 0x6d, 0x12, 0x2c, 0x0a, 0x28, 0x43, 0x52, 0x59, 0x50, 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59, 1798 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 1799 0x48, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 1800 0x12, 0x1f, 0x0a, 0x1b, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x59, 0x4d, 0x4d, 0x45, 1801 0x54, 0x52, 0x49, 0x43, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 1802 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x53, 1803 0x53, 0x5f, 0x32, 0x30, 0x34, 0x38, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x02, 0x12, 1804 0x1c, 0x0a, 0x18, 0x52, 0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x53, 0x53, 0x5f, 1805 0x33, 0x30, 0x37, 0x32, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x03, 0x12, 0x1c, 0x0a, 1806 0x18, 0x52, 0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x34, 0x30, 1807 0x39, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x52, 1808 0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x34, 0x30, 0x39, 0x36, 1809 0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x0f, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41, 1810 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x32, 0x30, 0x34, 0x38, 1811 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41, 1812 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x33, 0x30, 0x37, 0x32, 1813 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41, 1814 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x34, 0x30, 0x39, 0x36, 1815 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41, 1816 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x34, 0x30, 0x39, 0x36, 1817 0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x10, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x53, 0x41, 1818 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x32, 0x30, 1819 0x34, 0x38, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x52, 1820 0x53, 0x41, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 1821 0x33, 0x30, 0x37, 0x32, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x09, 0x12, 0x20, 0x0a, 1822 0x1c, 0x52, 0x53, 0x41, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4f, 0x41, 0x45, 1823 0x50, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x0a, 0x12, 1824 0x20, 0x0a, 0x1c, 0x52, 0x53, 0x41, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4f, 1825 0x41, 0x45, 0x50, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 1826 0x11, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x43, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x32, 0x35, 1827 0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x0c, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x43, 1828 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x33, 0x38, 0x34, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 1829 0x34, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x43, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x53, 1830 0x45, 0x43, 0x50, 0x32, 0x35, 0x36, 0x4b, 0x31, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 1831 0x1f, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x4d, 0x41, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 1832 0x10, 0x20, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x53, 1833 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 1834 0x49, 0x4f, 0x4e, 0x10, 0x12, 0x22, 0xc1, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 1835 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 1836 0x28, 0x0a, 0x24, 0x43, 0x52, 0x59, 0x50, 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x56, 0x45, 1837 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 1838 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x45, 0x4e, 1839 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 1840 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 1841 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 1842 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x44, 1843 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 1844 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x4d, 1845 0x50, 0x4f, 0x52, 0x54, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 1846 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x22, 0x49, 0x0a, 0x14, 0x43, 0x72, 0x79, 1847 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 1848 0x77, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x52, 0x59, 0x50, 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 1849 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, 0x4e, 0x53, 1850 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 1851 0x4c, 0x4c, 0x10, 0x01, 0x3a, 0xaa, 0x01, 0xea, 0x41, 0xa6, 0x01, 0x0a, 0x28, 0x63, 0x6c, 0x6f, 1852 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 1853 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 1854 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x7a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 1855 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 1856 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 1857 0x65, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 1858 0x67, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x63, 1859 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 1860 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x72, 1861 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 1862 0x7d, 0x22, 0xce, 0x03, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 1863 0x10, 0x0a, 0x03, 0x70, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x65, 1864 0x6d, 0x12, 0x5d, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 1865 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 1866 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 1867 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x79, 0x70, 1868 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 1869 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 1870 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x65, 0x6d, 0x5f, 0x63, 0x72, 0x63, 0x33, 0x32, 0x63, 0x18, 0x03, 1871 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1872 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 1873 0x65, 0x52, 0x09, 0x70, 0x65, 0x6d, 0x43, 0x72, 0x63, 0x33, 0x32, 0x63, 0x12, 0x12, 0x0a, 0x04, 1874 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 1875 0x12, 0x4f, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 1876 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 1877 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 1878 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 1879 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 1880 0x6c, 0x3a, 0xae, 0x01, 0xea, 0x41, 0xaa, 0x01, 0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 1881 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 1882 0x6d, 0x2f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x84, 0x01, 0x70, 0x72, 1883 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 1884 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 1885 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 1886 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 1887 0x4b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 1888 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 1889 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 1890 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 1891 0x65, 0x79, 0x22, 0xdb, 0x08, 0x0a, 0x09, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 1892 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 1893 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x58, 0x0a, 0x0d, 0x69, 0x6d, 0x70, 1894 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 1895 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1896 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 1897 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x06, 0xe0, 1898 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0c, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 1899 0x68, 0x6f, 0x64, 0x12, 0x57, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 1900 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 1901 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 1902 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 1903 0x76, 0x65, 0x6c, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x70, 0x72, 0x6f, 1904 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x40, 0x0a, 0x0b, 1905 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 1906 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1907 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 1908 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 1909 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 1910 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 1911 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 1912 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 1913 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 1914 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1915 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 1916 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 1917 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 1918 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 1919 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1920 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 1921 0x41, 0x03, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 1922 0x69, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 1923 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1924 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 1925 0x6f, 0x62, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 1926 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 1927 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 1928 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1929 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 1930 0x62, 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 1931 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 1932 0x4b, 0x65, 0x79, 0x12, 0x53, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 1933 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1934 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 1935 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 1936 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x61, 0x74, 0x74, 1937 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x25, 0x0a, 0x11, 0x57, 0x72, 0x61, 0x70, 1938 0x70, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 1939 0x03, 0x70, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x65, 0x6d, 0x22, 1940 0x6d, 0x0a, 0x0c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 1941 0x1d, 0x0a, 0x19, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 1942 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 1943 0x0a, 0x1a, 0x52, 0x53, 0x41, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x33, 0x30, 0x37, 0x32, 0x5f, 1944 0x53, 0x48, 0x41, 0x31, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x01, 0x12, 0x1e, 1945 0x0a, 0x1a, 0x52, 0x53, 0x41, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 1946 0x53, 0x48, 0x41, 0x31, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x02, 0x22, 0x63, 1947 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 1948 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 1949 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 1950 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x47, 0x45, 1951 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 1952 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 1953 0x44, 0x10, 0x03, 0x3a, 0x7b, 0xea, 0x41, 0x78, 0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 1954 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 1955 0x6d, 0x2f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x53, 0x70, 0x72, 0x6f, 1956 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 1957 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 1958 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b, 1959 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x7d, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 1960 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x7d, 1961 0x22, 0x4a, 0x0a, 0x1e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 1962 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 1963 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6b, 1964 0x65, 0x79, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 1965 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x55, 0x72, 0x69, 0x2a, 0x58, 0x0a, 0x0f, 1966 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 1967 0x20, 0x0a, 0x1c, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 1968 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 1969 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x4f, 0x46, 0x54, 0x57, 0x41, 0x52, 0x45, 0x10, 0x01, 0x12, 1970 0x07, 0x0a, 0x03, 0x48, 0x53, 0x4d, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x54, 0x45, 1971 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x42, 0x95, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 1972 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 1973 0x76, 0x31, 0x42, 0x11, 0x4b, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 1974 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1975 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 1976 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 1977 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6b, 0x6d, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x6b, 0x6d, 0x73, 0xf8, 1978 0x01, 0x01, 0xaa, 0x02, 0x13, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 1979 0x64, 0x2e, 0x4b, 0x6d, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 1980 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4b, 0x6d, 0x73, 0x5c, 0x56, 0x31, 0x62, 0x06, 1981 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1982} 1983 1984var ( 1985 file_google_cloud_kms_v1_resources_proto_rawDescOnce sync.Once 1986 file_google_cloud_kms_v1_resources_proto_rawDescData = file_google_cloud_kms_v1_resources_proto_rawDesc 1987) 1988 1989func file_google_cloud_kms_v1_resources_proto_rawDescGZIP() []byte { 1990 file_google_cloud_kms_v1_resources_proto_rawDescOnce.Do(func() { 1991 file_google_cloud_kms_v1_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_kms_v1_resources_proto_rawDescData) 1992 }) 1993 return file_google_cloud_kms_v1_resources_proto_rawDescData 1994} 1995 1996var file_google_cloud_kms_v1_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 8) 1997var file_google_cloud_kms_v1_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 10) 1998var file_google_cloud_kms_v1_resources_proto_goTypes = []interface{}{ 1999 (ProtectionLevel)(0), // 0: google.cloud.kms.v1.ProtectionLevel 2000 (CryptoKey_CryptoKeyPurpose)(0), // 1: google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose 2001 (KeyOperationAttestation_AttestationFormat)(0), // 2: google.cloud.kms.v1.KeyOperationAttestation.AttestationFormat 2002 (CryptoKeyVersion_CryptoKeyVersionAlgorithm)(0), // 3: google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm 2003 (CryptoKeyVersion_CryptoKeyVersionState)(0), // 4: google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState 2004 (CryptoKeyVersion_CryptoKeyVersionView)(0), // 5: google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionView 2005 (ImportJob_ImportMethod)(0), // 6: google.cloud.kms.v1.ImportJob.ImportMethod 2006 (ImportJob_ImportJobState)(0), // 7: google.cloud.kms.v1.ImportJob.ImportJobState 2007 (*KeyRing)(nil), // 8: google.cloud.kms.v1.KeyRing 2008 (*CryptoKey)(nil), // 9: google.cloud.kms.v1.CryptoKey 2009 (*CryptoKeyVersionTemplate)(nil), // 10: google.cloud.kms.v1.CryptoKeyVersionTemplate 2010 (*KeyOperationAttestation)(nil), // 11: google.cloud.kms.v1.KeyOperationAttestation 2011 (*CryptoKeyVersion)(nil), // 12: google.cloud.kms.v1.CryptoKeyVersion 2012 (*PublicKey)(nil), // 13: google.cloud.kms.v1.PublicKey 2013 (*ImportJob)(nil), // 14: google.cloud.kms.v1.ImportJob 2014 (*ExternalProtectionLevelOptions)(nil), // 15: google.cloud.kms.v1.ExternalProtectionLevelOptions 2015 nil, // 16: google.cloud.kms.v1.CryptoKey.LabelsEntry 2016 (*ImportJob_WrappingPublicKey)(nil), // 17: google.cloud.kms.v1.ImportJob.WrappingPublicKey 2017 (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp 2018 (*durationpb.Duration)(nil), // 19: google.protobuf.Duration 2019 (*wrapperspb.Int64Value)(nil), // 20: google.protobuf.Int64Value 2020} 2021var file_google_cloud_kms_v1_resources_proto_depIdxs = []int32{ 2022 18, // 0: google.cloud.kms.v1.KeyRing.create_time:type_name -> google.protobuf.Timestamp 2023 12, // 1: google.cloud.kms.v1.CryptoKey.primary:type_name -> google.cloud.kms.v1.CryptoKeyVersion 2024 1, // 2: google.cloud.kms.v1.CryptoKey.purpose:type_name -> google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose 2025 18, // 3: google.cloud.kms.v1.CryptoKey.create_time:type_name -> google.protobuf.Timestamp 2026 18, // 4: google.cloud.kms.v1.CryptoKey.next_rotation_time:type_name -> google.protobuf.Timestamp 2027 19, // 5: google.cloud.kms.v1.CryptoKey.rotation_period:type_name -> google.protobuf.Duration 2028 10, // 6: google.cloud.kms.v1.CryptoKey.version_template:type_name -> google.cloud.kms.v1.CryptoKeyVersionTemplate 2029 16, // 7: google.cloud.kms.v1.CryptoKey.labels:type_name -> google.cloud.kms.v1.CryptoKey.LabelsEntry 2030 19, // 8: google.cloud.kms.v1.CryptoKey.destroy_scheduled_duration:type_name -> google.protobuf.Duration 2031 0, // 9: google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level:type_name -> google.cloud.kms.v1.ProtectionLevel 2032 3, // 10: google.cloud.kms.v1.CryptoKeyVersionTemplate.algorithm:type_name -> google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm 2033 2, // 11: google.cloud.kms.v1.KeyOperationAttestation.format:type_name -> google.cloud.kms.v1.KeyOperationAttestation.AttestationFormat 2034 4, // 12: google.cloud.kms.v1.CryptoKeyVersion.state:type_name -> google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState 2035 0, // 13: google.cloud.kms.v1.CryptoKeyVersion.protection_level:type_name -> google.cloud.kms.v1.ProtectionLevel 2036 3, // 14: google.cloud.kms.v1.CryptoKeyVersion.algorithm:type_name -> google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm 2037 11, // 15: google.cloud.kms.v1.CryptoKeyVersion.attestation:type_name -> google.cloud.kms.v1.KeyOperationAttestation 2038 18, // 16: google.cloud.kms.v1.CryptoKeyVersion.create_time:type_name -> google.protobuf.Timestamp 2039 18, // 17: google.cloud.kms.v1.CryptoKeyVersion.generate_time:type_name -> google.protobuf.Timestamp 2040 18, // 18: google.cloud.kms.v1.CryptoKeyVersion.destroy_time:type_name -> google.protobuf.Timestamp 2041 18, // 19: google.cloud.kms.v1.CryptoKeyVersion.destroy_event_time:type_name -> google.protobuf.Timestamp 2042 18, // 20: google.cloud.kms.v1.CryptoKeyVersion.import_time:type_name -> google.protobuf.Timestamp 2043 15, // 21: google.cloud.kms.v1.CryptoKeyVersion.external_protection_level_options:type_name -> google.cloud.kms.v1.ExternalProtectionLevelOptions 2044 3, // 22: google.cloud.kms.v1.PublicKey.algorithm:type_name -> google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm 2045 20, // 23: google.cloud.kms.v1.PublicKey.pem_crc32c:type_name -> google.protobuf.Int64Value 2046 0, // 24: google.cloud.kms.v1.PublicKey.protection_level:type_name -> google.cloud.kms.v1.ProtectionLevel 2047 6, // 25: google.cloud.kms.v1.ImportJob.import_method:type_name -> google.cloud.kms.v1.ImportJob.ImportMethod 2048 0, // 26: google.cloud.kms.v1.ImportJob.protection_level:type_name -> google.cloud.kms.v1.ProtectionLevel 2049 18, // 27: google.cloud.kms.v1.ImportJob.create_time:type_name -> google.protobuf.Timestamp 2050 18, // 28: google.cloud.kms.v1.ImportJob.generate_time:type_name -> google.protobuf.Timestamp 2051 18, // 29: google.cloud.kms.v1.ImportJob.expire_time:type_name -> google.protobuf.Timestamp 2052 18, // 30: google.cloud.kms.v1.ImportJob.expire_event_time:type_name -> google.protobuf.Timestamp 2053 7, // 31: google.cloud.kms.v1.ImportJob.state:type_name -> google.cloud.kms.v1.ImportJob.ImportJobState 2054 17, // 32: google.cloud.kms.v1.ImportJob.public_key:type_name -> google.cloud.kms.v1.ImportJob.WrappingPublicKey 2055 11, // 33: google.cloud.kms.v1.ImportJob.attestation:type_name -> google.cloud.kms.v1.KeyOperationAttestation 2056 34, // [34:34] is the sub-list for method output_type 2057 34, // [34:34] is the sub-list for method input_type 2058 34, // [34:34] is the sub-list for extension type_name 2059 34, // [34:34] is the sub-list for extension extendee 2060 0, // [0:34] is the sub-list for field type_name 2061} 2062 2063func init() { file_google_cloud_kms_v1_resources_proto_init() } 2064func file_google_cloud_kms_v1_resources_proto_init() { 2065 if File_google_cloud_kms_v1_resources_proto != nil { 2066 return 2067 } 2068 if !protoimpl.UnsafeEnabled { 2069 file_google_cloud_kms_v1_resources_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2070 switch v := v.(*KeyRing); i { 2071 case 0: 2072 return &v.state 2073 case 1: 2074 return &v.sizeCache 2075 case 2: 2076 return &v.unknownFields 2077 default: 2078 return nil 2079 } 2080 } 2081 file_google_cloud_kms_v1_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2082 switch v := v.(*CryptoKey); i { 2083 case 0: 2084 return &v.state 2085 case 1: 2086 return &v.sizeCache 2087 case 2: 2088 return &v.unknownFields 2089 default: 2090 return nil 2091 } 2092 } 2093 file_google_cloud_kms_v1_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2094 switch v := v.(*CryptoKeyVersionTemplate); i { 2095 case 0: 2096 return &v.state 2097 case 1: 2098 return &v.sizeCache 2099 case 2: 2100 return &v.unknownFields 2101 default: 2102 return nil 2103 } 2104 } 2105 file_google_cloud_kms_v1_resources_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2106 switch v := v.(*KeyOperationAttestation); i { 2107 case 0: 2108 return &v.state 2109 case 1: 2110 return &v.sizeCache 2111 case 2: 2112 return &v.unknownFields 2113 default: 2114 return nil 2115 } 2116 } 2117 file_google_cloud_kms_v1_resources_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2118 switch v := v.(*CryptoKeyVersion); i { 2119 case 0: 2120 return &v.state 2121 case 1: 2122 return &v.sizeCache 2123 case 2: 2124 return &v.unknownFields 2125 default: 2126 return nil 2127 } 2128 } 2129 file_google_cloud_kms_v1_resources_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2130 switch v := v.(*PublicKey); i { 2131 case 0: 2132 return &v.state 2133 case 1: 2134 return &v.sizeCache 2135 case 2: 2136 return &v.unknownFields 2137 default: 2138 return nil 2139 } 2140 } 2141 file_google_cloud_kms_v1_resources_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2142 switch v := v.(*ImportJob); i { 2143 case 0: 2144 return &v.state 2145 case 1: 2146 return &v.sizeCache 2147 case 2: 2148 return &v.unknownFields 2149 default: 2150 return nil 2151 } 2152 } 2153 file_google_cloud_kms_v1_resources_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2154 switch v := v.(*ExternalProtectionLevelOptions); i { 2155 case 0: 2156 return &v.state 2157 case 1: 2158 return &v.sizeCache 2159 case 2: 2160 return &v.unknownFields 2161 default: 2162 return nil 2163 } 2164 } 2165 file_google_cloud_kms_v1_resources_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2166 switch v := v.(*ImportJob_WrappingPublicKey); i { 2167 case 0: 2168 return &v.state 2169 case 1: 2170 return &v.sizeCache 2171 case 2: 2172 return &v.unknownFields 2173 default: 2174 return nil 2175 } 2176 } 2177 } 2178 file_google_cloud_kms_v1_resources_proto_msgTypes[1].OneofWrappers = []interface{}{ 2179 (*CryptoKey_RotationPeriod)(nil), 2180 } 2181 type x struct{} 2182 out := protoimpl.TypeBuilder{ 2183 File: protoimpl.DescBuilder{ 2184 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2185 RawDescriptor: file_google_cloud_kms_v1_resources_proto_rawDesc, 2186 NumEnums: 8, 2187 NumMessages: 10, 2188 NumExtensions: 0, 2189 NumServices: 0, 2190 }, 2191 GoTypes: file_google_cloud_kms_v1_resources_proto_goTypes, 2192 DependencyIndexes: file_google_cloud_kms_v1_resources_proto_depIdxs, 2193 EnumInfos: file_google_cloud_kms_v1_resources_proto_enumTypes, 2194 MessageInfos: file_google_cloud_kms_v1_resources_proto_msgTypes, 2195 }.Build() 2196 File_google_cloud_kms_v1_resources_proto = out.File 2197 file_google_cloud_kms_v1_resources_proto_rawDesc = nil 2198 file_google_cloud_kms_v1_resources_proto_goTypes = nil 2199 file_google_cloud_kms_v1_resources_proto_depIdxs = nil 2200} 2201