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