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