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/security/privateca/v1beta1/resources.proto 20 21package privateca 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// A [RevocationReason][google.cloud.security.privateca.v1beta1.RevocationReason] indicates whether a [Certificate][google.cloud.security.privateca.v1beta1.Certificate] has been revoked, 48// and the reason for revocation. These correspond to standard revocation 49// reasons from RFC 5280. Note that the enum labels and values in this 50// definition are not the same ASN.1 values defined in RFC 5280. These values 51// will be translated to the correct ASN.1 values when a CRL is created. 52type RevocationReason int32 53 54const ( 55 // Default unspecified value. This value does indicate that a [Certificate][google.cloud.security.privateca.v1beta1.Certificate] 56 // has been revoked, but that a reason has not been recorded. 57 RevocationReason_REVOCATION_REASON_UNSPECIFIED RevocationReason = 0 58 // Key material for this [Certificate][google.cloud.security.privateca.v1beta1.Certificate] may have leaked. 59 RevocationReason_KEY_COMPROMISE RevocationReason = 1 60 // The key material for a certificate authority in the issuing path may have 61 // leaked. 62 RevocationReason_CERTIFICATE_AUTHORITY_COMPROMISE RevocationReason = 2 63 // The subject or other attributes in this [Certificate][google.cloud.security.privateca.v1beta1.Certificate] have changed. 64 RevocationReason_AFFILIATION_CHANGED RevocationReason = 3 65 // This [Certificate][google.cloud.security.privateca.v1beta1.Certificate] has been superseded. 66 RevocationReason_SUPERSEDED RevocationReason = 4 67 // This [Certificate][google.cloud.security.privateca.v1beta1.Certificate] or entities in the issuing path have ceased to 68 // operate. 69 RevocationReason_CESSATION_OF_OPERATION RevocationReason = 5 70 // This [Certificate][google.cloud.security.privateca.v1beta1.Certificate] should not be considered valid, it is expected that it 71 // may become valid in the future. 72 RevocationReason_CERTIFICATE_HOLD RevocationReason = 6 73 // This [Certificate][google.cloud.security.privateca.v1beta1.Certificate] no longer has permission to assert the listed 74 // attributes. 75 RevocationReason_PRIVILEGE_WITHDRAWN RevocationReason = 7 76 // The authority which determines appropriate attributes for a [Certificate][google.cloud.security.privateca.v1beta1.Certificate] 77 // may have been compromised. 78 RevocationReason_ATTRIBUTE_AUTHORITY_COMPROMISE RevocationReason = 8 79) 80 81// Enum value maps for RevocationReason. 82var ( 83 RevocationReason_name = map[int32]string{ 84 0: "REVOCATION_REASON_UNSPECIFIED", 85 1: "KEY_COMPROMISE", 86 2: "CERTIFICATE_AUTHORITY_COMPROMISE", 87 3: "AFFILIATION_CHANGED", 88 4: "SUPERSEDED", 89 5: "CESSATION_OF_OPERATION", 90 6: "CERTIFICATE_HOLD", 91 7: "PRIVILEGE_WITHDRAWN", 92 8: "ATTRIBUTE_AUTHORITY_COMPROMISE", 93 } 94 RevocationReason_value = map[string]int32{ 95 "REVOCATION_REASON_UNSPECIFIED": 0, 96 "KEY_COMPROMISE": 1, 97 "CERTIFICATE_AUTHORITY_COMPROMISE": 2, 98 "AFFILIATION_CHANGED": 3, 99 "SUPERSEDED": 4, 100 "CESSATION_OF_OPERATION": 5, 101 "CERTIFICATE_HOLD": 6, 102 "PRIVILEGE_WITHDRAWN": 7, 103 "ATTRIBUTE_AUTHORITY_COMPROMISE": 8, 104 } 105) 106 107func (x RevocationReason) Enum() *RevocationReason { 108 p := new(RevocationReason) 109 *p = x 110 return p 111} 112 113func (x RevocationReason) String() string { 114 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 115} 116 117func (RevocationReason) Descriptor() protoreflect.EnumDescriptor { 118 return file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[0].Descriptor() 119} 120 121func (RevocationReason) Type() protoreflect.EnumType { 122 return &file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[0] 123} 124 125func (x RevocationReason) Number() protoreflect.EnumNumber { 126 return protoreflect.EnumNumber(x) 127} 128 129// Deprecated: Use RevocationReason.Descriptor instead. 130func (RevocationReason) EnumDescriptor() ([]byte, []int) { 131 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0} 132} 133 134// The type of a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority], indicating its issuing chain. 135type CertificateAuthority_Type int32 136 137const ( 138 // Not specified. 139 CertificateAuthority_TYPE_UNSPECIFIED CertificateAuthority_Type = 0 140 // Self-signed CA. 141 CertificateAuthority_SELF_SIGNED CertificateAuthority_Type = 1 142 // Subordinate CA. Could be issued by a Private CA [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] 143 // or an unmanaged CA. 144 CertificateAuthority_SUBORDINATE CertificateAuthority_Type = 2 145) 146 147// Enum value maps for CertificateAuthority_Type. 148var ( 149 CertificateAuthority_Type_name = map[int32]string{ 150 0: "TYPE_UNSPECIFIED", 151 1: "SELF_SIGNED", 152 2: "SUBORDINATE", 153 } 154 CertificateAuthority_Type_value = map[string]int32{ 155 "TYPE_UNSPECIFIED": 0, 156 "SELF_SIGNED": 1, 157 "SUBORDINATE": 2, 158 } 159) 160 161func (x CertificateAuthority_Type) Enum() *CertificateAuthority_Type { 162 p := new(CertificateAuthority_Type) 163 *p = x 164 return p 165} 166 167func (x CertificateAuthority_Type) String() string { 168 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 169} 170 171func (CertificateAuthority_Type) Descriptor() protoreflect.EnumDescriptor { 172 return file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[1].Descriptor() 173} 174 175func (CertificateAuthority_Type) Type() protoreflect.EnumType { 176 return &file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[1] 177} 178 179func (x CertificateAuthority_Type) Number() protoreflect.EnumNumber { 180 return protoreflect.EnumNumber(x) 181} 182 183// Deprecated: Use CertificateAuthority_Type.Descriptor instead. 184func (CertificateAuthority_Type) EnumDescriptor() ([]byte, []int) { 185 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0, 0} 186} 187 188// The tier of a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority], indicating its supported 189// functionality and/or billing SKU. 190type CertificateAuthority_Tier int32 191 192const ( 193 // Not specified. 194 CertificateAuthority_TIER_UNSPECIFIED CertificateAuthority_Tier = 0 195 // Enterprise tier. 196 CertificateAuthority_ENTERPRISE CertificateAuthority_Tier = 1 197 // DevOps tier. 198 CertificateAuthority_DEVOPS CertificateAuthority_Tier = 2 199) 200 201// Enum value maps for CertificateAuthority_Tier. 202var ( 203 CertificateAuthority_Tier_name = map[int32]string{ 204 0: "TIER_UNSPECIFIED", 205 1: "ENTERPRISE", 206 2: "DEVOPS", 207 } 208 CertificateAuthority_Tier_value = map[string]int32{ 209 "TIER_UNSPECIFIED": 0, 210 "ENTERPRISE": 1, 211 "DEVOPS": 2, 212 } 213) 214 215func (x CertificateAuthority_Tier) Enum() *CertificateAuthority_Tier { 216 p := new(CertificateAuthority_Tier) 217 *p = x 218 return p 219} 220 221func (x CertificateAuthority_Tier) String() string { 222 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 223} 224 225func (CertificateAuthority_Tier) Descriptor() protoreflect.EnumDescriptor { 226 return file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[2].Descriptor() 227} 228 229func (CertificateAuthority_Tier) Type() protoreflect.EnumType { 230 return &file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[2] 231} 232 233func (x CertificateAuthority_Tier) Number() protoreflect.EnumNumber { 234 return protoreflect.EnumNumber(x) 235} 236 237// Deprecated: Use CertificateAuthority_Tier.Descriptor instead. 238func (CertificateAuthority_Tier) EnumDescriptor() ([]byte, []int) { 239 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0, 1} 240} 241 242// The state of a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority], indicating if it can be used. 243type CertificateAuthority_State int32 244 245const ( 246 // Not specified. 247 CertificateAuthority_STATE_UNSPECIFIED CertificateAuthority_State = 0 248 // Certificates can be issued from this CA. CRLs will be generated for this 249 // CA. 250 CertificateAuthority_ENABLED CertificateAuthority_State = 1 251 // Certificates cannot be issued from this CA. CRLs will still be generated. 252 CertificateAuthority_DISABLED CertificateAuthority_State = 2 253 // Certificates cannot be issued from this CA. CRLs will not be generated. 254 CertificateAuthority_PENDING_ACTIVATION CertificateAuthority_State = 3 255 // Certificates cannot be issued from this CA. CRLs will not be generated. 256 CertificateAuthority_PENDING_DELETION CertificateAuthority_State = 4 257) 258 259// Enum value maps for CertificateAuthority_State. 260var ( 261 CertificateAuthority_State_name = map[int32]string{ 262 0: "STATE_UNSPECIFIED", 263 1: "ENABLED", 264 2: "DISABLED", 265 3: "PENDING_ACTIVATION", 266 4: "PENDING_DELETION", 267 } 268 CertificateAuthority_State_value = map[string]int32{ 269 "STATE_UNSPECIFIED": 0, 270 "ENABLED": 1, 271 "DISABLED": 2, 272 "PENDING_ACTIVATION": 3, 273 "PENDING_DELETION": 4, 274 } 275) 276 277func (x CertificateAuthority_State) Enum() *CertificateAuthority_State { 278 p := new(CertificateAuthority_State) 279 *p = x 280 return p 281} 282 283func (x CertificateAuthority_State) String() string { 284 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 285} 286 287func (CertificateAuthority_State) Descriptor() protoreflect.EnumDescriptor { 288 return file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[3].Descriptor() 289} 290 291func (CertificateAuthority_State) Type() protoreflect.EnumType { 292 return &file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[3] 293} 294 295func (x CertificateAuthority_State) Number() protoreflect.EnumNumber { 296 return protoreflect.EnumNumber(x) 297} 298 299// Deprecated: Use CertificateAuthority_State.Descriptor instead. 300func (CertificateAuthority_State) EnumDescriptor() ([]byte, []int) { 301 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0, 2} 302} 303 304// The algorithm of a Cloud KMS CryptoKeyVersion of a 305// [CryptoKey][google.cloud.kms.v1.CryptoKey] with the 306// [CryptoKeyPurpose][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose] value 307// `ASYMMETRIC_SIGN`. These values correspond to the 308// [CryptoKeyVersionAlgorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] 309// values. For RSA signing algorithms, the PSS algorithms should be preferred, 310// use PKCS1 algorithms if required for compatibility. For further 311// recommandations, see 312// https://cloud.google.com/kms/docs/algorithms#algorithm_recommendations. 313type CertificateAuthority_SignHashAlgorithm int32 314 315const ( 316 // Not specified. 317 CertificateAuthority_SIGN_HASH_ALGORITHM_UNSPECIFIED CertificateAuthority_SignHashAlgorithm = 0 318 // maps to CryptoKeyVersionAlgorithm.RSA_SIGN_PSS_2048_SHA256 319 CertificateAuthority_RSA_PSS_2048_SHA256 CertificateAuthority_SignHashAlgorithm = 1 320 // maps to CryptoKeyVersionAlgorithm. RSA_SIGN_PSS_3072_SHA256 321 CertificateAuthority_RSA_PSS_3072_SHA256 CertificateAuthority_SignHashAlgorithm = 2 322 // maps to CryptoKeyVersionAlgorithm.RSA_SIGN_PSS_4096_SHA256 323 CertificateAuthority_RSA_PSS_4096_SHA256 CertificateAuthority_SignHashAlgorithm = 3 324 // maps to CryptoKeyVersionAlgorithm.RSA_SIGN_PKCS1_2048_SHA256 325 CertificateAuthority_RSA_PKCS1_2048_SHA256 CertificateAuthority_SignHashAlgorithm = 6 326 // maps to CryptoKeyVersionAlgorithm.RSA_SIGN_PKCS1_3072_SHA256 327 CertificateAuthority_RSA_PKCS1_3072_SHA256 CertificateAuthority_SignHashAlgorithm = 7 328 // maps to CryptoKeyVersionAlgorithm.RSA_SIGN_PKCS1_4096_SHA256 329 CertificateAuthority_RSA_PKCS1_4096_SHA256 CertificateAuthority_SignHashAlgorithm = 8 330 // maps to CryptoKeyVersionAlgorithm.EC_SIGN_P256_SHA256 331 CertificateAuthority_EC_P256_SHA256 CertificateAuthority_SignHashAlgorithm = 4 332 // maps to CryptoKeyVersionAlgorithm.EC_SIGN_P384_SHA384 333 CertificateAuthority_EC_P384_SHA384 CertificateAuthority_SignHashAlgorithm = 5 334) 335 336// Enum value maps for CertificateAuthority_SignHashAlgorithm. 337var ( 338 CertificateAuthority_SignHashAlgorithm_name = map[int32]string{ 339 0: "SIGN_HASH_ALGORITHM_UNSPECIFIED", 340 1: "RSA_PSS_2048_SHA256", 341 2: "RSA_PSS_3072_SHA256", 342 3: "RSA_PSS_4096_SHA256", 343 6: "RSA_PKCS1_2048_SHA256", 344 7: "RSA_PKCS1_3072_SHA256", 345 8: "RSA_PKCS1_4096_SHA256", 346 4: "EC_P256_SHA256", 347 5: "EC_P384_SHA384", 348 } 349 CertificateAuthority_SignHashAlgorithm_value = map[string]int32{ 350 "SIGN_HASH_ALGORITHM_UNSPECIFIED": 0, 351 "RSA_PSS_2048_SHA256": 1, 352 "RSA_PSS_3072_SHA256": 2, 353 "RSA_PSS_4096_SHA256": 3, 354 "RSA_PKCS1_2048_SHA256": 6, 355 "RSA_PKCS1_3072_SHA256": 7, 356 "RSA_PKCS1_4096_SHA256": 8, 357 "EC_P256_SHA256": 4, 358 "EC_P384_SHA384": 5, 359 } 360) 361 362func (x CertificateAuthority_SignHashAlgorithm) Enum() *CertificateAuthority_SignHashAlgorithm { 363 p := new(CertificateAuthority_SignHashAlgorithm) 364 *p = x 365 return p 366} 367 368func (x CertificateAuthority_SignHashAlgorithm) String() string { 369 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 370} 371 372func (CertificateAuthority_SignHashAlgorithm) Descriptor() protoreflect.EnumDescriptor { 373 return file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[4].Descriptor() 374} 375 376func (CertificateAuthority_SignHashAlgorithm) Type() protoreflect.EnumType { 377 return &file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[4] 378} 379 380func (x CertificateAuthority_SignHashAlgorithm) Number() protoreflect.EnumNumber { 381 return protoreflect.EnumNumber(x) 382} 383 384// Deprecated: Use CertificateAuthority_SignHashAlgorithm.Descriptor instead. 385func (CertificateAuthority_SignHashAlgorithm) EnumDescriptor() ([]byte, []int) { 386 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0, 3} 387} 388 389// The state of a [CertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateRevocationList], indicating if it is current. 390type CertificateRevocationList_State int32 391 392const ( 393 // Not specified. 394 CertificateRevocationList_STATE_UNSPECIFIED CertificateRevocationList_State = 0 395 // The [CertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateRevocationList] is up to date. 396 CertificateRevocationList_ACTIVE CertificateRevocationList_State = 1 397 // The [CertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateRevocationList] is no longer current. 398 CertificateRevocationList_SUPERSEDED CertificateRevocationList_State = 2 399) 400 401// Enum value maps for CertificateRevocationList_State. 402var ( 403 CertificateRevocationList_State_name = map[int32]string{ 404 0: "STATE_UNSPECIFIED", 405 1: "ACTIVE", 406 2: "SUPERSEDED", 407 } 408 CertificateRevocationList_State_value = map[string]int32{ 409 "STATE_UNSPECIFIED": 0, 410 "ACTIVE": 1, 411 "SUPERSEDED": 2, 412 } 413) 414 415func (x CertificateRevocationList_State) Enum() *CertificateRevocationList_State { 416 p := new(CertificateRevocationList_State) 417 *p = x 418 return p 419} 420 421func (x CertificateRevocationList_State) String() string { 422 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 423} 424 425func (CertificateRevocationList_State) Descriptor() protoreflect.EnumDescriptor { 426 return file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[5].Descriptor() 427} 428 429func (CertificateRevocationList_State) Type() protoreflect.EnumType { 430 return &file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[5] 431} 432 433func (x CertificateRevocationList_State) Number() protoreflect.EnumNumber { 434 return protoreflect.EnumNumber(x) 435} 436 437// Deprecated: Use CertificateRevocationList_State.Descriptor instead. 438func (CertificateRevocationList_State) EnumDescriptor() ([]byte, []int) { 439 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{1, 0} 440} 441 442// Types of public keys that are supported. 443// At a minimum, we support RSA and ECDSA, for the key sizes or curves listed: 444// https://cloud.google.com/kms/docs/algorithms#asymmetric_signing_algorithms 445type PublicKey_KeyType int32 446 447const ( 448 // Default unspecified value. 449 PublicKey_KEY_TYPE_UNSPECIFIED PublicKey_KeyType = 0 450 // A PEM-encoded PKCS#1/RFC 3447 RSAPrivateKey structure. 451 PublicKey_PEM_RSA_KEY PublicKey_KeyType = 1 452 // A PEM-encoded compressed NIST P-256/secp256r1/prime256v1 or P-384 key. 453 PublicKey_PEM_EC_KEY PublicKey_KeyType = 2 454) 455 456// Enum value maps for PublicKey_KeyType. 457var ( 458 PublicKey_KeyType_name = map[int32]string{ 459 0: "KEY_TYPE_UNSPECIFIED", 460 1: "PEM_RSA_KEY", 461 2: "PEM_EC_KEY", 462 } 463 PublicKey_KeyType_value = map[string]int32{ 464 "KEY_TYPE_UNSPECIFIED": 0, 465 "PEM_RSA_KEY": 1, 466 "PEM_EC_KEY": 2, 467 } 468) 469 470func (x PublicKey_KeyType) Enum() *PublicKey_KeyType { 471 p := new(PublicKey_KeyType) 472 *p = x 473 return p 474} 475 476func (x PublicKey_KeyType) String() string { 477 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 478} 479 480func (PublicKey_KeyType) Descriptor() protoreflect.EnumDescriptor { 481 return file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[6].Descriptor() 482} 483 484func (PublicKey_KeyType) Type() protoreflect.EnumType { 485 return &file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes[6] 486} 487 488func (x PublicKey_KeyType) Number() protoreflect.EnumNumber { 489 return protoreflect.EnumNumber(x) 490} 491 492// Deprecated: Use PublicKey_KeyType.Descriptor instead. 493func (PublicKey_KeyType) EnumDescriptor() ([]byte, []int) { 494 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{7, 0} 495} 496 497// A [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] represents an individual Certificate Authority. 498// A [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] can be used to create [Certificates][google.cloud.security.privateca.v1beta1.Certificate]. 499type CertificateAuthority struct { 500 state protoimpl.MessageState 501 sizeCache protoimpl.SizeCache 502 unknownFields protoimpl.UnknownFields 503 504 // Output only. The resource name for this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] in the 505 // format `projects/*/locations/*/certificateAuthorities/*`. 506 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 507 // Required. Immutable. The [Type][google.cloud.security.privateca.v1beta1.CertificateAuthority.Type] of this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. 508 Type CertificateAuthority_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.security.privateca.v1beta1.CertificateAuthority_Type" json:"type,omitempty"` 509 // Required. Immutable. The [Tier][google.cloud.security.privateca.v1beta1.CertificateAuthority.Tier] of this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. 510 Tier CertificateAuthority_Tier `protobuf:"varint,3,opt,name=tier,proto3,enum=google.cloud.security.privateca.v1beta1.CertificateAuthority_Tier" json:"tier,omitempty"` 511 // Required. Immutable. The config used to create a self-signed X.509 certificate or CSR. 512 Config *CertificateConfig `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"` 513 // Required. The desired lifetime of the CA certificate. Used to create the 514 // "not_before_time" and "not_after_time" fields inside an X.509 515 // certificate. 516 Lifetime *durationpb.Duration `protobuf:"bytes,5,opt,name=lifetime,proto3" json:"lifetime,omitempty"` 517 // Required. Immutable. Used when issuing certificates for this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. If this 518 // [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] is a self-signed CertificateAuthority, this key 519 // is also used to sign the self-signed CA certificate. Otherwise, it 520 // is used to sign a CSR. 521 KeySpec *CertificateAuthority_KeyVersionSpec `protobuf:"bytes,6,opt,name=key_spec,json=keySpec,proto3" json:"key_spec,omitempty"` 522 // Optional. The [CertificateAuthorityPolicy][google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy] to enforce when issuing 523 // [Certificates][google.cloud.security.privateca.v1beta1.Certificate] from this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. 524 CertificatePolicy *CertificateAuthority_CertificateAuthorityPolicy `protobuf:"bytes,7,opt,name=certificate_policy,json=certificatePolicy,proto3" json:"certificate_policy,omitempty"` 525 // Optional. The [IssuingOptions][google.cloud.security.privateca.v1beta1.CertificateAuthority.IssuingOptions] to follow when issuing [Certificates][google.cloud.security.privateca.v1beta1.Certificate] 526 // from this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. 527 IssuingOptions *CertificateAuthority_IssuingOptions `protobuf:"bytes,8,opt,name=issuing_options,json=issuingOptions,proto3" json:"issuing_options,omitempty"` 528 // Optional. If this is a subordinate [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority], this field will be set 529 // with the subordinate configuration, which describes its issuers. This may 530 // be updated, but this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] must continue to validate. 531 SubordinateConfig *SubordinateConfig `protobuf:"bytes,19,opt,name=subordinate_config,json=subordinateConfig,proto3" json:"subordinate_config,omitempty"` 532 // Output only. The [State][google.cloud.security.privateca.v1beta1.CertificateAuthority.State] for this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. 533 State CertificateAuthority_State `protobuf:"varint,10,opt,name=state,proto3,enum=google.cloud.security.privateca.v1beta1.CertificateAuthority_State" json:"state,omitempty"` 534 // Output only. This [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]'s certificate chain, including the current 535 // [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]'s certificate. Ordered such that the root issuer 536 // is the final element (consistent with RFC 5246). For a self-signed CA, this 537 // will only list the current [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]'s certificate. 538 PemCaCertificates []string `protobuf:"bytes,9,rep,name=pem_ca_certificates,json=pemCaCertificates,proto3" json:"pem_ca_certificates,omitempty"` 539 // Output only. A structured description of this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]'s CA certificate 540 // and its issuers. Ordered as self-to-root. 541 CaCertificateDescriptions []*CertificateDescription `protobuf:"bytes,12,rep,name=ca_certificate_descriptions,json=caCertificateDescriptions,proto3" json:"ca_certificate_descriptions,omitempty"` 542 // Immutable. The name of a Cloud Storage bucket where this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] will 543 // publish content, such as the CA certificate and CRLs. This must be a bucket 544 // name, without any prefixes (such as `gs://`) or suffixes (such as 545 // `.googleapis.com`). For example, to use a bucket named `my-bucket`, you 546 // would simply specify `my-bucket`. If not specified, a managed bucket will 547 // be created. 548 GcsBucket string `protobuf:"bytes,13,opt,name=gcs_bucket,json=gcsBucket,proto3" json:"gcs_bucket,omitempty"` 549 // Output only. URLs for accessing content published by this CA, such as the CA certificate 550 // and CRLs. 551 AccessUrls *CertificateAuthority_AccessUrls `protobuf:"bytes,14,opt,name=access_urls,json=accessUrls,proto3" json:"access_urls,omitempty"` 552 // Output only. The time at which this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] was created. 553 CreateTime *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 554 // Output only. The time at which this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] was updated. 555 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 556 // Output only. The time at which this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] will be deleted, if 557 // scheduled for deletion. 558 DeleteTime *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"` 559 // Optional. Labels with user-defined metadata. 560 Labels map[string]string `protobuf:"bytes,18,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 561} 562 563func (x *CertificateAuthority) Reset() { 564 *x = CertificateAuthority{} 565 if protoimpl.UnsafeEnabled { 566 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[0] 567 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 568 ms.StoreMessageInfo(mi) 569 } 570} 571 572func (x *CertificateAuthority) String() string { 573 return protoimpl.X.MessageStringOf(x) 574} 575 576func (*CertificateAuthority) ProtoMessage() {} 577 578func (x *CertificateAuthority) ProtoReflect() protoreflect.Message { 579 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[0] 580 if protoimpl.UnsafeEnabled && x != nil { 581 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 582 if ms.LoadMessageInfo() == nil { 583 ms.StoreMessageInfo(mi) 584 } 585 return ms 586 } 587 return mi.MessageOf(x) 588} 589 590// Deprecated: Use CertificateAuthority.ProtoReflect.Descriptor instead. 591func (*CertificateAuthority) Descriptor() ([]byte, []int) { 592 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0} 593} 594 595func (x *CertificateAuthority) GetName() string { 596 if x != nil { 597 return x.Name 598 } 599 return "" 600} 601 602func (x *CertificateAuthority) GetType() CertificateAuthority_Type { 603 if x != nil { 604 return x.Type 605 } 606 return CertificateAuthority_TYPE_UNSPECIFIED 607} 608 609func (x *CertificateAuthority) GetTier() CertificateAuthority_Tier { 610 if x != nil { 611 return x.Tier 612 } 613 return CertificateAuthority_TIER_UNSPECIFIED 614} 615 616func (x *CertificateAuthority) GetConfig() *CertificateConfig { 617 if x != nil { 618 return x.Config 619 } 620 return nil 621} 622 623func (x *CertificateAuthority) GetLifetime() *durationpb.Duration { 624 if x != nil { 625 return x.Lifetime 626 } 627 return nil 628} 629 630func (x *CertificateAuthority) GetKeySpec() *CertificateAuthority_KeyVersionSpec { 631 if x != nil { 632 return x.KeySpec 633 } 634 return nil 635} 636 637func (x *CertificateAuthority) GetCertificatePolicy() *CertificateAuthority_CertificateAuthorityPolicy { 638 if x != nil { 639 return x.CertificatePolicy 640 } 641 return nil 642} 643 644func (x *CertificateAuthority) GetIssuingOptions() *CertificateAuthority_IssuingOptions { 645 if x != nil { 646 return x.IssuingOptions 647 } 648 return nil 649} 650 651func (x *CertificateAuthority) GetSubordinateConfig() *SubordinateConfig { 652 if x != nil { 653 return x.SubordinateConfig 654 } 655 return nil 656} 657 658func (x *CertificateAuthority) GetState() CertificateAuthority_State { 659 if x != nil { 660 return x.State 661 } 662 return CertificateAuthority_STATE_UNSPECIFIED 663} 664 665func (x *CertificateAuthority) GetPemCaCertificates() []string { 666 if x != nil { 667 return x.PemCaCertificates 668 } 669 return nil 670} 671 672func (x *CertificateAuthority) GetCaCertificateDescriptions() []*CertificateDescription { 673 if x != nil { 674 return x.CaCertificateDescriptions 675 } 676 return nil 677} 678 679func (x *CertificateAuthority) GetGcsBucket() string { 680 if x != nil { 681 return x.GcsBucket 682 } 683 return "" 684} 685 686func (x *CertificateAuthority) GetAccessUrls() *CertificateAuthority_AccessUrls { 687 if x != nil { 688 return x.AccessUrls 689 } 690 return nil 691} 692 693func (x *CertificateAuthority) GetCreateTime() *timestamppb.Timestamp { 694 if x != nil { 695 return x.CreateTime 696 } 697 return nil 698} 699 700func (x *CertificateAuthority) GetUpdateTime() *timestamppb.Timestamp { 701 if x != nil { 702 return x.UpdateTime 703 } 704 return nil 705} 706 707func (x *CertificateAuthority) GetDeleteTime() *timestamppb.Timestamp { 708 if x != nil { 709 return x.DeleteTime 710 } 711 return nil 712} 713 714func (x *CertificateAuthority) GetLabels() map[string]string { 715 if x != nil { 716 return x.Labels 717 } 718 return nil 719} 720 721// A [CertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateRevocationList] corresponds to a signed X.509 certificate 722// Revocation List (CRL). A CRL contains the serial numbers of certificates that 723// should no longer be trusted. 724type CertificateRevocationList struct { 725 state protoimpl.MessageState 726 sizeCache protoimpl.SizeCache 727 unknownFields protoimpl.UnknownFields 728 729 // Output only. The resource path for this [CertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateRevocationList] in 730 // the format 731 // `projects/*/locations/*/certificateAuthorities/*/ 732 // certificateRevocationLists/*`. 733 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 734 // Output only. The CRL sequence number that appears in pem_crl. 735 SequenceNumber int64 `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` 736 // Output only. The revoked serial numbers that appear in pem_crl. 737 RevokedCertificates []*CertificateRevocationList_RevokedCertificate `protobuf:"bytes,3,rep,name=revoked_certificates,json=revokedCertificates,proto3" json:"revoked_certificates,omitempty"` 738 // Output only. The PEM-encoded X.509 CRL. 739 PemCrl string `protobuf:"bytes,4,opt,name=pem_crl,json=pemCrl,proto3" json:"pem_crl,omitempty"` 740 // Output only. The location where 'pem_crl' can be accessed. 741 AccessUrl string `protobuf:"bytes,5,opt,name=access_url,json=accessUrl,proto3" json:"access_url,omitempty"` 742 // Output only. The [State][google.cloud.security.privateca.v1beta1.CertificateRevocationList.State] for this [CertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateRevocationList]. 743 State CertificateRevocationList_State `protobuf:"varint,6,opt,name=state,proto3,enum=google.cloud.security.privateca.v1beta1.CertificateRevocationList_State" json:"state,omitempty"` 744 // Output only. The time at which this [CertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateRevocationList] was created. 745 CreateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 746 // Output only. The time at which this [CertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateRevocationList] was updated. 747 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 748 // Optional. Labels with user-defined metadata. 749 Labels map[string]string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 750} 751 752func (x *CertificateRevocationList) Reset() { 753 *x = CertificateRevocationList{} 754 if protoimpl.UnsafeEnabled { 755 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[1] 756 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 757 ms.StoreMessageInfo(mi) 758 } 759} 760 761func (x *CertificateRevocationList) String() string { 762 return protoimpl.X.MessageStringOf(x) 763} 764 765func (*CertificateRevocationList) ProtoMessage() {} 766 767func (x *CertificateRevocationList) ProtoReflect() protoreflect.Message { 768 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[1] 769 if protoimpl.UnsafeEnabled && x != nil { 770 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 771 if ms.LoadMessageInfo() == nil { 772 ms.StoreMessageInfo(mi) 773 } 774 return ms 775 } 776 return mi.MessageOf(x) 777} 778 779// Deprecated: Use CertificateRevocationList.ProtoReflect.Descriptor instead. 780func (*CertificateRevocationList) Descriptor() ([]byte, []int) { 781 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{1} 782} 783 784func (x *CertificateRevocationList) GetName() string { 785 if x != nil { 786 return x.Name 787 } 788 return "" 789} 790 791func (x *CertificateRevocationList) GetSequenceNumber() int64 { 792 if x != nil { 793 return x.SequenceNumber 794 } 795 return 0 796} 797 798func (x *CertificateRevocationList) GetRevokedCertificates() []*CertificateRevocationList_RevokedCertificate { 799 if x != nil { 800 return x.RevokedCertificates 801 } 802 return nil 803} 804 805func (x *CertificateRevocationList) GetPemCrl() string { 806 if x != nil { 807 return x.PemCrl 808 } 809 return "" 810} 811 812func (x *CertificateRevocationList) GetAccessUrl() string { 813 if x != nil { 814 return x.AccessUrl 815 } 816 return "" 817} 818 819func (x *CertificateRevocationList) GetState() CertificateRevocationList_State { 820 if x != nil { 821 return x.State 822 } 823 return CertificateRevocationList_STATE_UNSPECIFIED 824} 825 826func (x *CertificateRevocationList) GetCreateTime() *timestamppb.Timestamp { 827 if x != nil { 828 return x.CreateTime 829 } 830 return nil 831} 832 833func (x *CertificateRevocationList) GetUpdateTime() *timestamppb.Timestamp { 834 if x != nil { 835 return x.UpdateTime 836 } 837 return nil 838} 839 840func (x *CertificateRevocationList) GetLabels() map[string]string { 841 if x != nil { 842 return x.Labels 843 } 844 return nil 845} 846 847// A [Certificate][google.cloud.security.privateca.v1beta1.Certificate] corresponds to a signed X.509 certificate issued by a 848// [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. 849type Certificate struct { 850 state protoimpl.MessageState 851 sizeCache protoimpl.SizeCache 852 unknownFields protoimpl.UnknownFields 853 854 // Output only. The resource path for this [Certificate][google.cloud.security.privateca.v1beta1.Certificate] in the format 855 // `projects/*/locations/*/certificateAuthorities/*/certificates/*`. 856 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 857 // The config used to create a signed X.509 certificate. 858 // 859 // Types that are assignable to CertificateConfig: 860 // *Certificate_PemCsr 861 // *Certificate_Config 862 CertificateConfig isCertificate_CertificateConfig `protobuf_oneof:"certificate_config"` 863 // Required. Immutable. The desired lifetime of a certificate. Used to create the 864 // "not_before_time" and "not_after_time" fields inside an X.509 865 // certificate. Note that the lifetime may be truncated if it would extend 866 // past the life of any certificate authority in the issuing chain. 867 Lifetime *durationpb.Duration `protobuf:"bytes,4,opt,name=lifetime,proto3" json:"lifetime,omitempty"` 868 // Output only. Details regarding the revocation of this [Certificate][google.cloud.security.privateca.v1beta1.Certificate]. This 869 // [Certificate][google.cloud.security.privateca.v1beta1.Certificate] is considered revoked if and only if this field is present. 870 RevocationDetails *Certificate_RevocationDetails `protobuf:"bytes,5,opt,name=revocation_details,json=revocationDetails,proto3" json:"revocation_details,omitempty"` 871 // Output only. The pem-encoded, signed X.509 certificate. 872 PemCertificate string `protobuf:"bytes,6,opt,name=pem_certificate,json=pemCertificate,proto3" json:"pem_certificate,omitempty"` 873 // Output only. A structured description of the issued X.509 certificate. 874 CertificateDescription *CertificateDescription `protobuf:"bytes,7,opt,name=certificate_description,json=certificateDescription,proto3" json:"certificate_description,omitempty"` 875 // Output only. The chain that may be used to verify the X.509 certificate. Expected to be 876 // in issuer-to-root order according to RFC 5246. 877 PemCertificateChain []string `protobuf:"bytes,8,rep,name=pem_certificate_chain,json=pemCertificateChain,proto3" json:"pem_certificate_chain,omitempty"` 878 // Output only. The time at which this [Certificate][google.cloud.security.privateca.v1beta1.Certificate] was created. 879 CreateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 880 // Output only. The time at which this [Certificate][google.cloud.security.privateca.v1beta1.Certificate] was updated. 881 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 882 // Optional. Labels with user-defined metadata. 883 Labels map[string]string `protobuf:"bytes,11,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 884} 885 886func (x *Certificate) Reset() { 887 *x = Certificate{} 888 if protoimpl.UnsafeEnabled { 889 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[2] 890 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 891 ms.StoreMessageInfo(mi) 892 } 893} 894 895func (x *Certificate) String() string { 896 return protoimpl.X.MessageStringOf(x) 897} 898 899func (*Certificate) ProtoMessage() {} 900 901func (x *Certificate) ProtoReflect() protoreflect.Message { 902 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[2] 903 if protoimpl.UnsafeEnabled && x != nil { 904 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 905 if ms.LoadMessageInfo() == nil { 906 ms.StoreMessageInfo(mi) 907 } 908 return ms 909 } 910 return mi.MessageOf(x) 911} 912 913// Deprecated: Use Certificate.ProtoReflect.Descriptor instead. 914func (*Certificate) Descriptor() ([]byte, []int) { 915 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{2} 916} 917 918func (x *Certificate) GetName() string { 919 if x != nil { 920 return x.Name 921 } 922 return "" 923} 924 925func (m *Certificate) GetCertificateConfig() isCertificate_CertificateConfig { 926 if m != nil { 927 return m.CertificateConfig 928 } 929 return nil 930} 931 932func (x *Certificate) GetPemCsr() string { 933 if x, ok := x.GetCertificateConfig().(*Certificate_PemCsr); ok { 934 return x.PemCsr 935 } 936 return "" 937} 938 939func (x *Certificate) GetConfig() *CertificateConfig { 940 if x, ok := x.GetCertificateConfig().(*Certificate_Config); ok { 941 return x.Config 942 } 943 return nil 944} 945 946func (x *Certificate) GetLifetime() *durationpb.Duration { 947 if x != nil { 948 return x.Lifetime 949 } 950 return nil 951} 952 953func (x *Certificate) GetRevocationDetails() *Certificate_RevocationDetails { 954 if x != nil { 955 return x.RevocationDetails 956 } 957 return nil 958} 959 960func (x *Certificate) GetPemCertificate() string { 961 if x != nil { 962 return x.PemCertificate 963 } 964 return "" 965} 966 967func (x *Certificate) GetCertificateDescription() *CertificateDescription { 968 if x != nil { 969 return x.CertificateDescription 970 } 971 return nil 972} 973 974func (x *Certificate) GetPemCertificateChain() []string { 975 if x != nil { 976 return x.PemCertificateChain 977 } 978 return nil 979} 980 981func (x *Certificate) GetCreateTime() *timestamppb.Timestamp { 982 if x != nil { 983 return x.CreateTime 984 } 985 return nil 986} 987 988func (x *Certificate) GetUpdateTime() *timestamppb.Timestamp { 989 if x != nil { 990 return x.UpdateTime 991 } 992 return nil 993} 994 995func (x *Certificate) GetLabels() map[string]string { 996 if x != nil { 997 return x.Labels 998 } 999 return nil 1000} 1001 1002type isCertificate_CertificateConfig interface { 1003 isCertificate_CertificateConfig() 1004} 1005 1006type Certificate_PemCsr struct { 1007 // Immutable. A pem-encoded X.509 certificate signing request (CSR). 1008 PemCsr string `protobuf:"bytes,2,opt,name=pem_csr,json=pemCsr,proto3,oneof"` 1009} 1010 1011type Certificate_Config struct { 1012 // Immutable. A description of the certificate and key that does not require X.509 or 1013 // ASN.1. 1014 Config *CertificateConfig `protobuf:"bytes,3,opt,name=config,proto3,oneof"` 1015} 1016 1017func (*Certificate_PemCsr) isCertificate_CertificateConfig() {} 1018 1019func (*Certificate_Config) isCertificate_CertificateConfig() {} 1020 1021// A [ReusableConfig][google.cloud.security.privateca.v1beta1.ReusableConfig] refers to a managed [ReusableConfigValues][google.cloud.security.privateca.v1beta1.ReusableConfigValues]. Those, in 1022// turn, are used to describe certain fields of an X.509 certificate, such as 1023// the key usage fields, fields specific to CA certificates, certificate policy 1024// extensions and custom extensions. 1025type ReusableConfig struct { 1026 state protoimpl.MessageState 1027 sizeCache protoimpl.SizeCache 1028 unknownFields protoimpl.UnknownFields 1029 1030 // Output only. The resource path for this [ReusableConfig][google.cloud.security.privateca.v1beta1.ReusableConfig] in the format 1031 // `projects/*/locations/*/reusableConfigs/*`. 1032 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1033 // Required. The config values. 1034 Values *ReusableConfigValues `protobuf:"bytes,2,opt,name=values,proto3" json:"values,omitempty"` 1035 // Optional. A human-readable description of scenarios these ReusableConfigValues may be 1036 // compatible with. 1037 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 1038 // Output only. The time at which this [ReusableConfig][google.cloud.security.privateca.v1beta1.ReusableConfig] was created. 1039 CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 1040 // Output only. The time at which this [ReusableConfig][google.cloud.security.privateca.v1beta1.ReusableConfig] was updated. 1041 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 1042 // Optional. Labels with user-defined metadata. 1043 Labels map[string]string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1044} 1045 1046func (x *ReusableConfig) Reset() { 1047 *x = ReusableConfig{} 1048 if protoimpl.UnsafeEnabled { 1049 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[3] 1050 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1051 ms.StoreMessageInfo(mi) 1052 } 1053} 1054 1055func (x *ReusableConfig) String() string { 1056 return protoimpl.X.MessageStringOf(x) 1057} 1058 1059func (*ReusableConfig) ProtoMessage() {} 1060 1061func (x *ReusableConfig) ProtoReflect() protoreflect.Message { 1062 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[3] 1063 if protoimpl.UnsafeEnabled && x != nil { 1064 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1065 if ms.LoadMessageInfo() == nil { 1066 ms.StoreMessageInfo(mi) 1067 } 1068 return ms 1069 } 1070 return mi.MessageOf(x) 1071} 1072 1073// Deprecated: Use ReusableConfig.ProtoReflect.Descriptor instead. 1074func (*ReusableConfig) Descriptor() ([]byte, []int) { 1075 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{3} 1076} 1077 1078func (x *ReusableConfig) GetName() string { 1079 if x != nil { 1080 return x.Name 1081 } 1082 return "" 1083} 1084 1085func (x *ReusableConfig) GetValues() *ReusableConfigValues { 1086 if x != nil { 1087 return x.Values 1088 } 1089 return nil 1090} 1091 1092func (x *ReusableConfig) GetDescription() string { 1093 if x != nil { 1094 return x.Description 1095 } 1096 return "" 1097} 1098 1099func (x *ReusableConfig) GetCreateTime() *timestamppb.Timestamp { 1100 if x != nil { 1101 return x.CreateTime 1102 } 1103 return nil 1104} 1105 1106func (x *ReusableConfig) GetUpdateTime() *timestamppb.Timestamp { 1107 if x != nil { 1108 return x.UpdateTime 1109 } 1110 return nil 1111} 1112 1113func (x *ReusableConfig) GetLabels() map[string]string { 1114 if x != nil { 1115 return x.Labels 1116 } 1117 return nil 1118} 1119 1120// A [ReusableConfigValues][google.cloud.security.privateca.v1beta1.ReusableConfigValues] is used to describe certain fields of an 1121// X.509 certificate, such as the key usage fields, fields specific to CA 1122// certificates, certificate policy extensions and custom extensions. 1123type ReusableConfigValues struct { 1124 state protoimpl.MessageState 1125 sizeCache protoimpl.SizeCache 1126 unknownFields protoimpl.UnknownFields 1127 1128 // Optional. Indicates the intended use for keys that correspond to a certificate. 1129 KeyUsage *KeyUsage `protobuf:"bytes,1,opt,name=key_usage,json=keyUsage,proto3" json:"key_usage,omitempty"` 1130 // Optional. Describes options in this [ReusableConfigValues][google.cloud.security.privateca.v1beta1.ReusableConfigValues] that are 1131 // relevant in a CA certificate. 1132 CaOptions *ReusableConfigValues_CaOptions `protobuf:"bytes,2,opt,name=ca_options,json=caOptions,proto3" json:"ca_options,omitempty"` 1133 // Optional. Describes the X.509 certificate policy object identifiers, per 1134 // https://tools.ietf.org/html/rfc5280#section-4.2.1.4. 1135 PolicyIds []*ObjectId `protobuf:"bytes,3,rep,name=policy_ids,json=policyIds,proto3" json:"policy_ids,omitempty"` 1136 // Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses 1137 // that appear in the "Authority Information Access" extension in the 1138 // certificate. 1139 AiaOcspServers []string `protobuf:"bytes,4,rep,name=aia_ocsp_servers,json=aiaOcspServers,proto3" json:"aia_ocsp_servers,omitempty"` 1140 // Optional. Describes custom X.509 extensions. 1141 AdditionalExtensions []*X509Extension `protobuf:"bytes,5,rep,name=additional_extensions,json=additionalExtensions,proto3" json:"additional_extensions,omitempty"` 1142} 1143 1144func (x *ReusableConfigValues) Reset() { 1145 *x = ReusableConfigValues{} 1146 if protoimpl.UnsafeEnabled { 1147 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[4] 1148 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1149 ms.StoreMessageInfo(mi) 1150 } 1151} 1152 1153func (x *ReusableConfigValues) String() string { 1154 return protoimpl.X.MessageStringOf(x) 1155} 1156 1157func (*ReusableConfigValues) ProtoMessage() {} 1158 1159func (x *ReusableConfigValues) ProtoReflect() protoreflect.Message { 1160 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[4] 1161 if protoimpl.UnsafeEnabled && x != nil { 1162 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1163 if ms.LoadMessageInfo() == nil { 1164 ms.StoreMessageInfo(mi) 1165 } 1166 return ms 1167 } 1168 return mi.MessageOf(x) 1169} 1170 1171// Deprecated: Use ReusableConfigValues.ProtoReflect.Descriptor instead. 1172func (*ReusableConfigValues) Descriptor() ([]byte, []int) { 1173 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{4} 1174} 1175 1176func (x *ReusableConfigValues) GetKeyUsage() *KeyUsage { 1177 if x != nil { 1178 return x.KeyUsage 1179 } 1180 return nil 1181} 1182 1183func (x *ReusableConfigValues) GetCaOptions() *ReusableConfigValues_CaOptions { 1184 if x != nil { 1185 return x.CaOptions 1186 } 1187 return nil 1188} 1189 1190func (x *ReusableConfigValues) GetPolicyIds() []*ObjectId { 1191 if x != nil { 1192 return x.PolicyIds 1193 } 1194 return nil 1195} 1196 1197func (x *ReusableConfigValues) GetAiaOcspServers() []string { 1198 if x != nil { 1199 return x.AiaOcspServers 1200 } 1201 return nil 1202} 1203 1204func (x *ReusableConfigValues) GetAdditionalExtensions() []*X509Extension { 1205 if x != nil { 1206 return x.AdditionalExtensions 1207 } 1208 return nil 1209} 1210 1211// A [ReusableConfigWrapper][google.cloud.security.privateca.v1beta1.ReusableConfigWrapper] describes values that may assist in creating an 1212// X.509 certificate, or a reference to a pre-defined set of values. 1213type ReusableConfigWrapper struct { 1214 state protoimpl.MessageState 1215 sizeCache protoimpl.SizeCache 1216 unknownFields protoimpl.UnknownFields 1217 1218 // Reusable or inline config values. 1219 // 1220 // Types that are assignable to ConfigValues: 1221 // *ReusableConfigWrapper_ReusableConfig 1222 // *ReusableConfigWrapper_ReusableConfigValues 1223 ConfigValues isReusableConfigWrapper_ConfigValues `protobuf_oneof:"config_values"` 1224} 1225 1226func (x *ReusableConfigWrapper) Reset() { 1227 *x = ReusableConfigWrapper{} 1228 if protoimpl.UnsafeEnabled { 1229 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[5] 1230 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1231 ms.StoreMessageInfo(mi) 1232 } 1233} 1234 1235func (x *ReusableConfigWrapper) String() string { 1236 return protoimpl.X.MessageStringOf(x) 1237} 1238 1239func (*ReusableConfigWrapper) ProtoMessage() {} 1240 1241func (x *ReusableConfigWrapper) ProtoReflect() protoreflect.Message { 1242 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[5] 1243 if protoimpl.UnsafeEnabled && x != nil { 1244 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1245 if ms.LoadMessageInfo() == nil { 1246 ms.StoreMessageInfo(mi) 1247 } 1248 return ms 1249 } 1250 return mi.MessageOf(x) 1251} 1252 1253// Deprecated: Use ReusableConfigWrapper.ProtoReflect.Descriptor instead. 1254func (*ReusableConfigWrapper) Descriptor() ([]byte, []int) { 1255 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{5} 1256} 1257 1258func (m *ReusableConfigWrapper) GetConfigValues() isReusableConfigWrapper_ConfigValues { 1259 if m != nil { 1260 return m.ConfigValues 1261 } 1262 return nil 1263} 1264 1265func (x *ReusableConfigWrapper) GetReusableConfig() string { 1266 if x, ok := x.GetConfigValues().(*ReusableConfigWrapper_ReusableConfig); ok { 1267 return x.ReusableConfig 1268 } 1269 return "" 1270} 1271 1272func (x *ReusableConfigWrapper) GetReusableConfigValues() *ReusableConfigValues { 1273 if x, ok := x.GetConfigValues().(*ReusableConfigWrapper_ReusableConfigValues); ok { 1274 return x.ReusableConfigValues 1275 } 1276 return nil 1277} 1278 1279type isReusableConfigWrapper_ConfigValues interface { 1280 isReusableConfigWrapper_ConfigValues() 1281} 1282 1283type ReusableConfigWrapper_ReusableConfig struct { 1284 // Required. A resource path to a [ReusableConfig][google.cloud.security.privateca.v1beta1.ReusableConfig] in the format 1285 // `projects/*/locations/*/reusableConfigs/*`. 1286 ReusableConfig string `protobuf:"bytes,1,opt,name=reusable_config,json=reusableConfig,proto3,oneof"` 1287} 1288 1289type ReusableConfigWrapper_ReusableConfigValues struct { 1290 // Required. A user-specified inline [ReusableConfigValues][google.cloud.security.privateca.v1beta1.ReusableConfigValues]. 1291 ReusableConfigValues *ReusableConfigValues `protobuf:"bytes,2,opt,name=reusable_config_values,json=reusableConfigValues,proto3,oneof"` 1292} 1293 1294func (*ReusableConfigWrapper_ReusableConfig) isReusableConfigWrapper_ConfigValues() {} 1295 1296func (*ReusableConfigWrapper_ReusableConfigValues) isReusableConfigWrapper_ConfigValues() {} 1297 1298// Describes a subordinate CA's issuers. This is either a resource path to a 1299// known issuing [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority], or a PEM issuer certificate chain. 1300type SubordinateConfig struct { 1301 state protoimpl.MessageState 1302 sizeCache protoimpl.SizeCache 1303 unknownFields protoimpl.UnknownFields 1304 1305 // Types that are assignable to SubordinateConfig: 1306 // *SubordinateConfig_CertificateAuthority 1307 // *SubordinateConfig_PemIssuerChain 1308 SubordinateConfig isSubordinateConfig_SubordinateConfig `protobuf_oneof:"subordinate_config"` 1309} 1310 1311func (x *SubordinateConfig) Reset() { 1312 *x = SubordinateConfig{} 1313 if protoimpl.UnsafeEnabled { 1314 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[6] 1315 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1316 ms.StoreMessageInfo(mi) 1317 } 1318} 1319 1320func (x *SubordinateConfig) String() string { 1321 return protoimpl.X.MessageStringOf(x) 1322} 1323 1324func (*SubordinateConfig) ProtoMessage() {} 1325 1326func (x *SubordinateConfig) ProtoReflect() protoreflect.Message { 1327 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[6] 1328 if protoimpl.UnsafeEnabled && x != nil { 1329 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1330 if ms.LoadMessageInfo() == nil { 1331 ms.StoreMessageInfo(mi) 1332 } 1333 return ms 1334 } 1335 return mi.MessageOf(x) 1336} 1337 1338// Deprecated: Use SubordinateConfig.ProtoReflect.Descriptor instead. 1339func (*SubordinateConfig) Descriptor() ([]byte, []int) { 1340 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{6} 1341} 1342 1343func (m *SubordinateConfig) GetSubordinateConfig() isSubordinateConfig_SubordinateConfig { 1344 if m != nil { 1345 return m.SubordinateConfig 1346 } 1347 return nil 1348} 1349 1350func (x *SubordinateConfig) GetCertificateAuthority() string { 1351 if x, ok := x.GetSubordinateConfig().(*SubordinateConfig_CertificateAuthority); ok { 1352 return x.CertificateAuthority 1353 } 1354 return "" 1355} 1356 1357func (x *SubordinateConfig) GetPemIssuerChain() *SubordinateConfig_SubordinateConfigChain { 1358 if x, ok := x.GetSubordinateConfig().(*SubordinateConfig_PemIssuerChain); ok { 1359 return x.PemIssuerChain 1360 } 1361 return nil 1362} 1363 1364type isSubordinateConfig_SubordinateConfig interface { 1365 isSubordinateConfig_SubordinateConfig() 1366} 1367 1368type SubordinateConfig_CertificateAuthority struct { 1369 // Required. This can refer to a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] in the same project that 1370 // was used to create a subordinate [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. This field 1371 // is used for information and usability purposes only. The resource name 1372 // is in the format `projects/*/locations/*/certificateAuthorities/*`. 1373 CertificateAuthority string `protobuf:"bytes,1,opt,name=certificate_authority,json=certificateAuthority,proto3,oneof"` 1374} 1375 1376type SubordinateConfig_PemIssuerChain struct { 1377 // Required. Contains the PEM certificate chain for the issuers of this 1378 // [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority], but not pem certificate for this CA itself. 1379 PemIssuerChain *SubordinateConfig_SubordinateConfigChain `protobuf:"bytes,2,opt,name=pem_issuer_chain,json=pemIssuerChain,proto3,oneof"` 1380} 1381 1382func (*SubordinateConfig_CertificateAuthority) isSubordinateConfig_SubordinateConfig() {} 1383 1384func (*SubordinateConfig_PemIssuerChain) isSubordinateConfig_SubordinateConfig() {} 1385 1386// A [PublicKey][google.cloud.security.privateca.v1beta1.PublicKey] describes a public key. 1387type PublicKey struct { 1388 state protoimpl.MessageState 1389 sizeCache protoimpl.SizeCache 1390 unknownFields protoimpl.UnknownFields 1391 1392 // Required. The type of public key. 1393 Type PublicKey_KeyType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.security.privateca.v1beta1.PublicKey_KeyType" json:"type,omitempty"` 1394 // Required. A public key. Padding and encoding varies by 'KeyType' and is described 1395 // along with the KeyType values. 1396 Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` 1397} 1398 1399func (x *PublicKey) Reset() { 1400 *x = PublicKey{} 1401 if protoimpl.UnsafeEnabled { 1402 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[7] 1403 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1404 ms.StoreMessageInfo(mi) 1405 } 1406} 1407 1408func (x *PublicKey) String() string { 1409 return protoimpl.X.MessageStringOf(x) 1410} 1411 1412func (*PublicKey) ProtoMessage() {} 1413 1414func (x *PublicKey) ProtoReflect() protoreflect.Message { 1415 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[7] 1416 if protoimpl.UnsafeEnabled && x != nil { 1417 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1418 if ms.LoadMessageInfo() == nil { 1419 ms.StoreMessageInfo(mi) 1420 } 1421 return ms 1422 } 1423 return mi.MessageOf(x) 1424} 1425 1426// Deprecated: Use PublicKey.ProtoReflect.Descriptor instead. 1427func (*PublicKey) Descriptor() ([]byte, []int) { 1428 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{7} 1429} 1430 1431func (x *PublicKey) GetType() PublicKey_KeyType { 1432 if x != nil { 1433 return x.Type 1434 } 1435 return PublicKey_KEY_TYPE_UNSPECIFIED 1436} 1437 1438func (x *PublicKey) GetKey() []byte { 1439 if x != nil { 1440 return x.Key 1441 } 1442 return nil 1443} 1444 1445// A [CertificateConfig][google.cloud.security.privateca.v1beta1.CertificateConfig] describes an X.509 certificate or CSR that is to be 1446// created, as an alternative to using ASN.1. 1447type CertificateConfig struct { 1448 state protoimpl.MessageState 1449 sizeCache protoimpl.SizeCache 1450 unknownFields protoimpl.UnknownFields 1451 1452 // Required. Specifies some of the values in a certificate that are related to the 1453 // subject. 1454 SubjectConfig *CertificateConfig_SubjectConfig `protobuf:"bytes,1,opt,name=subject_config,json=subjectConfig,proto3" json:"subject_config,omitempty"` 1455 // Required. Describes how some of the technical fields in a certificate should be 1456 // populated. 1457 ReusableConfig *ReusableConfigWrapper `protobuf:"bytes,2,opt,name=reusable_config,json=reusableConfig,proto3" json:"reusable_config,omitempty"` 1458 // Optional. The public key that corresponds to this config. This is, for example, used 1459 // when issuing [Certificates][google.cloud.security.privateca.v1beta1.Certificate], but not when creating a 1460 // self-signed [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] or [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] CSR. 1461 PublicKey *PublicKey `protobuf:"bytes,3,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` 1462} 1463 1464func (x *CertificateConfig) Reset() { 1465 *x = CertificateConfig{} 1466 if protoimpl.UnsafeEnabled { 1467 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[8] 1468 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1469 ms.StoreMessageInfo(mi) 1470 } 1471} 1472 1473func (x *CertificateConfig) String() string { 1474 return protoimpl.X.MessageStringOf(x) 1475} 1476 1477func (*CertificateConfig) ProtoMessage() {} 1478 1479func (x *CertificateConfig) ProtoReflect() protoreflect.Message { 1480 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[8] 1481 if protoimpl.UnsafeEnabled && x != nil { 1482 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1483 if ms.LoadMessageInfo() == nil { 1484 ms.StoreMessageInfo(mi) 1485 } 1486 return ms 1487 } 1488 return mi.MessageOf(x) 1489} 1490 1491// Deprecated: Use CertificateConfig.ProtoReflect.Descriptor instead. 1492func (*CertificateConfig) Descriptor() ([]byte, []int) { 1493 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{8} 1494} 1495 1496func (x *CertificateConfig) GetSubjectConfig() *CertificateConfig_SubjectConfig { 1497 if x != nil { 1498 return x.SubjectConfig 1499 } 1500 return nil 1501} 1502 1503func (x *CertificateConfig) GetReusableConfig() *ReusableConfigWrapper { 1504 if x != nil { 1505 return x.ReusableConfig 1506 } 1507 return nil 1508} 1509 1510func (x *CertificateConfig) GetPublicKey() *PublicKey { 1511 if x != nil { 1512 return x.PublicKey 1513 } 1514 return nil 1515} 1516 1517// A [CertificateDescription][google.cloud.security.privateca.v1beta1.CertificateDescription] describes an X.509 certificate or CSR that has 1518// been issued, as an alternative to using ASN.1 / X.509. 1519type CertificateDescription struct { 1520 state protoimpl.MessageState 1521 sizeCache protoimpl.SizeCache 1522 unknownFields protoimpl.UnknownFields 1523 1524 // Describes some of the values in a certificate that are related to the 1525 // subject and lifetime. 1526 SubjectDescription *CertificateDescription_SubjectDescription `protobuf:"bytes,1,opt,name=subject_description,json=subjectDescription,proto3" json:"subject_description,omitempty"` 1527 // Describes some of the technical fields in a certificate. 1528 ConfigValues *ReusableConfigValues `protobuf:"bytes,2,opt,name=config_values,json=configValues,proto3" json:"config_values,omitempty"` 1529 // The public key that corresponds to an issued certificate. 1530 PublicKey *PublicKey `protobuf:"bytes,3,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` 1531 // Provides a means of identifiying certificates that contain a particular 1532 // public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2. 1533 SubjectKeyId *CertificateDescription_KeyId `protobuf:"bytes,4,opt,name=subject_key_id,json=subjectKeyId,proto3" json:"subject_key_id,omitempty"` 1534 // Identifies the subject_key_id of the parent certificate, per 1535 // https://tools.ietf.org/html/rfc5280#section-4.2.1.1 1536 AuthorityKeyId *CertificateDescription_KeyId `protobuf:"bytes,5,opt,name=authority_key_id,json=authorityKeyId,proto3" json:"authority_key_id,omitempty"` 1537 // Describes a list of locations to obtain CRL information, i.e. 1538 // the DistributionPoint.fullName described by 1539 // https://tools.ietf.org/html/rfc5280#section-4.2.1.13 1540 CrlDistributionPoints []string `protobuf:"bytes,6,rep,name=crl_distribution_points,json=crlDistributionPoints,proto3" json:"crl_distribution_points,omitempty"` 1541 // Describes lists of issuer CA certificate URLs that appear in the 1542 // "Authority Information Access" extension in the certificate. 1543 AiaIssuingCertificateUrls []string `protobuf:"bytes,7,rep,name=aia_issuing_certificate_urls,json=aiaIssuingCertificateUrls,proto3" json:"aia_issuing_certificate_urls,omitempty"` 1544 // The hash of the x.509 certificate. 1545 CertFingerprint *CertificateDescription_CertificateFingerprint `protobuf:"bytes,8,opt,name=cert_fingerprint,json=certFingerprint,proto3" json:"cert_fingerprint,omitempty"` 1546} 1547 1548func (x *CertificateDescription) Reset() { 1549 *x = CertificateDescription{} 1550 if protoimpl.UnsafeEnabled { 1551 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[9] 1552 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1553 ms.StoreMessageInfo(mi) 1554 } 1555} 1556 1557func (x *CertificateDescription) String() string { 1558 return protoimpl.X.MessageStringOf(x) 1559} 1560 1561func (*CertificateDescription) ProtoMessage() {} 1562 1563func (x *CertificateDescription) ProtoReflect() protoreflect.Message { 1564 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[9] 1565 if protoimpl.UnsafeEnabled && x != nil { 1566 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1567 if ms.LoadMessageInfo() == nil { 1568 ms.StoreMessageInfo(mi) 1569 } 1570 return ms 1571 } 1572 return mi.MessageOf(x) 1573} 1574 1575// Deprecated: Use CertificateDescription.ProtoReflect.Descriptor instead. 1576func (*CertificateDescription) Descriptor() ([]byte, []int) { 1577 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{9} 1578} 1579 1580func (x *CertificateDescription) GetSubjectDescription() *CertificateDescription_SubjectDescription { 1581 if x != nil { 1582 return x.SubjectDescription 1583 } 1584 return nil 1585} 1586 1587func (x *CertificateDescription) GetConfigValues() *ReusableConfigValues { 1588 if x != nil { 1589 return x.ConfigValues 1590 } 1591 return nil 1592} 1593 1594func (x *CertificateDescription) GetPublicKey() *PublicKey { 1595 if x != nil { 1596 return x.PublicKey 1597 } 1598 return nil 1599} 1600 1601func (x *CertificateDescription) GetSubjectKeyId() *CertificateDescription_KeyId { 1602 if x != nil { 1603 return x.SubjectKeyId 1604 } 1605 return nil 1606} 1607 1608func (x *CertificateDescription) GetAuthorityKeyId() *CertificateDescription_KeyId { 1609 if x != nil { 1610 return x.AuthorityKeyId 1611 } 1612 return nil 1613} 1614 1615func (x *CertificateDescription) GetCrlDistributionPoints() []string { 1616 if x != nil { 1617 return x.CrlDistributionPoints 1618 } 1619 return nil 1620} 1621 1622func (x *CertificateDescription) GetAiaIssuingCertificateUrls() []string { 1623 if x != nil { 1624 return x.AiaIssuingCertificateUrls 1625 } 1626 return nil 1627} 1628 1629func (x *CertificateDescription) GetCertFingerprint() *CertificateDescription_CertificateFingerprint { 1630 if x != nil { 1631 return x.CertFingerprint 1632 } 1633 return nil 1634} 1635 1636// An [ObjectId][google.cloud.security.privateca.v1beta1.ObjectId] specifies an object identifier (OID). These provide context 1637// and describe types in ASN.1 messages. 1638type ObjectId struct { 1639 state protoimpl.MessageState 1640 sizeCache protoimpl.SizeCache 1641 unknownFields protoimpl.UnknownFields 1642 1643 // Required. The parts of an OID path. The most significant parts of the path come 1644 // first. 1645 ObjectIdPath []int32 `protobuf:"varint,1,rep,packed,name=object_id_path,json=objectIdPath,proto3" json:"object_id_path,omitempty"` 1646} 1647 1648func (x *ObjectId) Reset() { 1649 *x = ObjectId{} 1650 if protoimpl.UnsafeEnabled { 1651 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[10] 1652 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1653 ms.StoreMessageInfo(mi) 1654 } 1655} 1656 1657func (x *ObjectId) String() string { 1658 return protoimpl.X.MessageStringOf(x) 1659} 1660 1661func (*ObjectId) ProtoMessage() {} 1662 1663func (x *ObjectId) ProtoReflect() protoreflect.Message { 1664 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[10] 1665 if protoimpl.UnsafeEnabled && x != nil { 1666 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1667 if ms.LoadMessageInfo() == nil { 1668 ms.StoreMessageInfo(mi) 1669 } 1670 return ms 1671 } 1672 return mi.MessageOf(x) 1673} 1674 1675// Deprecated: Use ObjectId.ProtoReflect.Descriptor instead. 1676func (*ObjectId) Descriptor() ([]byte, []int) { 1677 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{10} 1678} 1679 1680func (x *ObjectId) GetObjectIdPath() []int32 { 1681 if x != nil { 1682 return x.ObjectIdPath 1683 } 1684 return nil 1685} 1686 1687// An [X509Extension][google.cloud.security.privateca.v1beta1.X509Extension] specifies an X.509 extension, which may be used in 1688// different parts of X.509 objects like certificates, CSRs, and CRLs. 1689type X509Extension struct { 1690 state protoimpl.MessageState 1691 sizeCache protoimpl.SizeCache 1692 unknownFields protoimpl.UnknownFields 1693 1694 // Required. The OID for this X.509 extension. 1695 ObjectId *ObjectId `protobuf:"bytes,1,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"` 1696 // Required. Indicates whether or not this extension is critical (i.e., if the client 1697 // does not know how to handle this extension, the client should consider this 1698 // to be an error). 1699 Critical bool `protobuf:"varint,2,opt,name=critical,proto3" json:"critical,omitempty"` 1700 // Required. The value of this X.509 extension. 1701 Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` 1702} 1703 1704func (x *X509Extension) Reset() { 1705 *x = X509Extension{} 1706 if protoimpl.UnsafeEnabled { 1707 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[11] 1708 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1709 ms.StoreMessageInfo(mi) 1710 } 1711} 1712 1713func (x *X509Extension) String() string { 1714 return protoimpl.X.MessageStringOf(x) 1715} 1716 1717func (*X509Extension) ProtoMessage() {} 1718 1719func (x *X509Extension) ProtoReflect() protoreflect.Message { 1720 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[11] 1721 if protoimpl.UnsafeEnabled && x != nil { 1722 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1723 if ms.LoadMessageInfo() == nil { 1724 ms.StoreMessageInfo(mi) 1725 } 1726 return ms 1727 } 1728 return mi.MessageOf(x) 1729} 1730 1731// Deprecated: Use X509Extension.ProtoReflect.Descriptor instead. 1732func (*X509Extension) Descriptor() ([]byte, []int) { 1733 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{11} 1734} 1735 1736func (x *X509Extension) GetObjectId() *ObjectId { 1737 if x != nil { 1738 return x.ObjectId 1739 } 1740 return nil 1741} 1742 1743func (x *X509Extension) GetCritical() bool { 1744 if x != nil { 1745 return x.Critical 1746 } 1747 return false 1748} 1749 1750func (x *X509Extension) GetValue() []byte { 1751 if x != nil { 1752 return x.Value 1753 } 1754 return nil 1755} 1756 1757// A [KeyUsage][google.cloud.security.privateca.v1beta1.KeyUsage] describes key usage values that may appear in an X.509 1758// certificate. 1759type KeyUsage struct { 1760 state protoimpl.MessageState 1761 sizeCache protoimpl.SizeCache 1762 unknownFields protoimpl.UnknownFields 1763 1764 // Describes high-level ways in which a key may be used. 1765 BaseKeyUsage *KeyUsage_KeyUsageOptions `protobuf:"bytes,1,opt,name=base_key_usage,json=baseKeyUsage,proto3" json:"base_key_usage,omitempty"` 1766 // Detailed scenarios in which a key may be used. 1767 ExtendedKeyUsage *KeyUsage_ExtendedKeyUsageOptions `protobuf:"bytes,2,opt,name=extended_key_usage,json=extendedKeyUsage,proto3" json:"extended_key_usage,omitempty"` 1768 // Used to describe extended key usages that are not listed in the 1769 // [KeyUsage.ExtendedKeyUsageOptions][google.cloud.security.privateca.v1beta1.KeyUsage.ExtendedKeyUsageOptions] message. 1770 UnknownExtendedKeyUsages []*ObjectId `protobuf:"bytes,3,rep,name=unknown_extended_key_usages,json=unknownExtendedKeyUsages,proto3" json:"unknown_extended_key_usages,omitempty"` 1771} 1772 1773func (x *KeyUsage) Reset() { 1774 *x = KeyUsage{} 1775 if protoimpl.UnsafeEnabled { 1776 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[12] 1777 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1778 ms.StoreMessageInfo(mi) 1779 } 1780} 1781 1782func (x *KeyUsage) String() string { 1783 return protoimpl.X.MessageStringOf(x) 1784} 1785 1786func (*KeyUsage) ProtoMessage() {} 1787 1788func (x *KeyUsage) ProtoReflect() protoreflect.Message { 1789 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[12] 1790 if protoimpl.UnsafeEnabled && x != nil { 1791 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1792 if ms.LoadMessageInfo() == nil { 1793 ms.StoreMessageInfo(mi) 1794 } 1795 return ms 1796 } 1797 return mi.MessageOf(x) 1798} 1799 1800// Deprecated: Use KeyUsage.ProtoReflect.Descriptor instead. 1801func (*KeyUsage) Descriptor() ([]byte, []int) { 1802 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{12} 1803} 1804 1805func (x *KeyUsage) GetBaseKeyUsage() *KeyUsage_KeyUsageOptions { 1806 if x != nil { 1807 return x.BaseKeyUsage 1808 } 1809 return nil 1810} 1811 1812func (x *KeyUsage) GetExtendedKeyUsage() *KeyUsage_ExtendedKeyUsageOptions { 1813 if x != nil { 1814 return x.ExtendedKeyUsage 1815 } 1816 return nil 1817} 1818 1819func (x *KeyUsage) GetUnknownExtendedKeyUsages() []*ObjectId { 1820 if x != nil { 1821 return x.UnknownExtendedKeyUsages 1822 } 1823 return nil 1824} 1825 1826// [Subject][google.cloud.security.privateca.v1beta1.Subject] describes parts of a distinguished name that, in turn, 1827// describes the subject of the certificate. 1828type Subject struct { 1829 state protoimpl.MessageState 1830 sizeCache protoimpl.SizeCache 1831 unknownFields protoimpl.UnknownFields 1832 1833 // The country code of the subject. 1834 CountryCode string `protobuf:"bytes,1,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` 1835 // The organization of the subject. 1836 Organization string `protobuf:"bytes,2,opt,name=organization,proto3" json:"organization,omitempty"` 1837 // The organizational_unit of the subject. 1838 OrganizationalUnit string `protobuf:"bytes,3,opt,name=organizational_unit,json=organizationalUnit,proto3" json:"organizational_unit,omitempty"` 1839 // The locality or city of the subject. 1840 Locality string `protobuf:"bytes,4,opt,name=locality,proto3" json:"locality,omitempty"` 1841 // The province, territory, or regional state of the subject. 1842 Province string `protobuf:"bytes,5,opt,name=province,proto3" json:"province,omitempty"` 1843 // The street address of the subject. 1844 StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` 1845 // The postal code of the subject. 1846 PostalCode string `protobuf:"bytes,7,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` 1847} 1848 1849func (x *Subject) Reset() { 1850 *x = Subject{} 1851 if protoimpl.UnsafeEnabled { 1852 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[13] 1853 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1854 ms.StoreMessageInfo(mi) 1855 } 1856} 1857 1858func (x *Subject) String() string { 1859 return protoimpl.X.MessageStringOf(x) 1860} 1861 1862func (*Subject) ProtoMessage() {} 1863 1864func (x *Subject) ProtoReflect() protoreflect.Message { 1865 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[13] 1866 if protoimpl.UnsafeEnabled && x != nil { 1867 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1868 if ms.LoadMessageInfo() == nil { 1869 ms.StoreMessageInfo(mi) 1870 } 1871 return ms 1872 } 1873 return mi.MessageOf(x) 1874} 1875 1876// Deprecated: Use Subject.ProtoReflect.Descriptor instead. 1877func (*Subject) Descriptor() ([]byte, []int) { 1878 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{13} 1879} 1880 1881func (x *Subject) GetCountryCode() string { 1882 if x != nil { 1883 return x.CountryCode 1884 } 1885 return "" 1886} 1887 1888func (x *Subject) GetOrganization() string { 1889 if x != nil { 1890 return x.Organization 1891 } 1892 return "" 1893} 1894 1895func (x *Subject) GetOrganizationalUnit() string { 1896 if x != nil { 1897 return x.OrganizationalUnit 1898 } 1899 return "" 1900} 1901 1902func (x *Subject) GetLocality() string { 1903 if x != nil { 1904 return x.Locality 1905 } 1906 return "" 1907} 1908 1909func (x *Subject) GetProvince() string { 1910 if x != nil { 1911 return x.Province 1912 } 1913 return "" 1914} 1915 1916func (x *Subject) GetStreetAddress() string { 1917 if x != nil { 1918 return x.StreetAddress 1919 } 1920 return "" 1921} 1922 1923func (x *Subject) GetPostalCode() string { 1924 if x != nil { 1925 return x.PostalCode 1926 } 1927 return "" 1928} 1929 1930// [SubjectAltNames][google.cloud.security.privateca.v1beta1.SubjectAltNames] corresponds to a more modern way of listing what 1931// the asserted identity is in a certificate (i.e., compared to the "common 1932// name" in the distinguished name). 1933type SubjectAltNames struct { 1934 state protoimpl.MessageState 1935 sizeCache protoimpl.SizeCache 1936 unknownFields protoimpl.UnknownFields 1937 1938 // Contains only valid, fully-qualified host names. 1939 DnsNames []string `protobuf:"bytes,1,rep,name=dns_names,json=dnsNames,proto3" json:"dns_names,omitempty"` 1940 // Contains only valid RFC 3986 URIs. 1941 Uris []string `protobuf:"bytes,2,rep,name=uris,proto3" json:"uris,omitempty"` 1942 // Contains only valid RFC 2822 E-mail addresses. 1943 EmailAddresses []string `protobuf:"bytes,3,rep,name=email_addresses,json=emailAddresses,proto3" json:"email_addresses,omitempty"` 1944 // Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses. 1945 IpAddresses []string `protobuf:"bytes,4,rep,name=ip_addresses,json=ipAddresses,proto3" json:"ip_addresses,omitempty"` 1946 // Contains additional subject alternative name values. 1947 CustomSans []*X509Extension `protobuf:"bytes,5,rep,name=custom_sans,json=customSans,proto3" json:"custom_sans,omitempty"` 1948} 1949 1950func (x *SubjectAltNames) Reset() { 1951 *x = SubjectAltNames{} 1952 if protoimpl.UnsafeEnabled { 1953 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[14] 1954 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1955 ms.StoreMessageInfo(mi) 1956 } 1957} 1958 1959func (x *SubjectAltNames) String() string { 1960 return protoimpl.X.MessageStringOf(x) 1961} 1962 1963func (*SubjectAltNames) ProtoMessage() {} 1964 1965func (x *SubjectAltNames) ProtoReflect() protoreflect.Message { 1966 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[14] 1967 if protoimpl.UnsafeEnabled && x != nil { 1968 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1969 if ms.LoadMessageInfo() == nil { 1970 ms.StoreMessageInfo(mi) 1971 } 1972 return ms 1973 } 1974 return mi.MessageOf(x) 1975} 1976 1977// Deprecated: Use SubjectAltNames.ProtoReflect.Descriptor instead. 1978func (*SubjectAltNames) Descriptor() ([]byte, []int) { 1979 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{14} 1980} 1981 1982func (x *SubjectAltNames) GetDnsNames() []string { 1983 if x != nil { 1984 return x.DnsNames 1985 } 1986 return nil 1987} 1988 1989func (x *SubjectAltNames) GetUris() []string { 1990 if x != nil { 1991 return x.Uris 1992 } 1993 return nil 1994} 1995 1996func (x *SubjectAltNames) GetEmailAddresses() []string { 1997 if x != nil { 1998 return x.EmailAddresses 1999 } 2000 return nil 2001} 2002 2003func (x *SubjectAltNames) GetIpAddresses() []string { 2004 if x != nil { 2005 return x.IpAddresses 2006 } 2007 return nil 2008} 2009 2010func (x *SubjectAltNames) GetCustomSans() []*X509Extension { 2011 if x != nil { 2012 return x.CustomSans 2013 } 2014 return nil 2015} 2016 2017// Options that affect all certificates issued by a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. 2018type CertificateAuthority_IssuingOptions struct { 2019 state protoimpl.MessageState 2020 sizeCache protoimpl.SizeCache 2021 unknownFields protoimpl.UnknownFields 2022 2023 // Required. When true, includes a URL to the issuing CA certificate in the 2024 // "authority information access" X.509 extension. 2025 IncludeCaCertUrl bool `protobuf:"varint,1,opt,name=include_ca_cert_url,json=includeCaCertUrl,proto3" json:"include_ca_cert_url,omitempty"` 2026 // Required. When true, includes a URL to the CRL corresponding to certificates 2027 // issued from a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. 2028 // CRLs will expire 7 days from their creation. However, we will rebuild 2029 // daily. CRLs are also rebuilt shortly after a certificate is revoked. 2030 IncludeCrlAccessUrl bool `protobuf:"varint,2,opt,name=include_crl_access_url,json=includeCrlAccessUrl,proto3" json:"include_crl_access_url,omitempty"` 2031} 2032 2033func (x *CertificateAuthority_IssuingOptions) Reset() { 2034 *x = CertificateAuthority_IssuingOptions{} 2035 if protoimpl.UnsafeEnabled { 2036 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[15] 2037 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2038 ms.StoreMessageInfo(mi) 2039 } 2040} 2041 2042func (x *CertificateAuthority_IssuingOptions) String() string { 2043 return protoimpl.X.MessageStringOf(x) 2044} 2045 2046func (*CertificateAuthority_IssuingOptions) ProtoMessage() {} 2047 2048func (x *CertificateAuthority_IssuingOptions) ProtoReflect() protoreflect.Message { 2049 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[15] 2050 if protoimpl.UnsafeEnabled && x != nil { 2051 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2052 if ms.LoadMessageInfo() == nil { 2053 ms.StoreMessageInfo(mi) 2054 } 2055 return ms 2056 } 2057 return mi.MessageOf(x) 2058} 2059 2060// Deprecated: Use CertificateAuthority_IssuingOptions.ProtoReflect.Descriptor instead. 2061func (*CertificateAuthority_IssuingOptions) Descriptor() ([]byte, []int) { 2062 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0, 0} 2063} 2064 2065func (x *CertificateAuthority_IssuingOptions) GetIncludeCaCertUrl() bool { 2066 if x != nil { 2067 return x.IncludeCaCertUrl 2068 } 2069 return false 2070} 2071 2072func (x *CertificateAuthority_IssuingOptions) GetIncludeCrlAccessUrl() bool { 2073 if x != nil { 2074 return x.IncludeCrlAccessUrl 2075 } 2076 return false 2077} 2078 2079// The issuing policy for a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. 2080// [Certificates][google.cloud.security.privateca.v1beta1.Certificate] will not be successfully issued from this 2081// [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] if they violate the policy. 2082type CertificateAuthority_CertificateAuthorityPolicy struct { 2083 state protoimpl.MessageState 2084 sizeCache protoimpl.SizeCache 2085 unknownFields protoimpl.UnknownFields 2086 2087 // Allowed configurations or a single configuration for all issued 2088 // certificates. 2089 // 2090 // Types that are assignable to ConfigPolicy: 2091 // *CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList_ 2092 // *CertificateAuthority_CertificateAuthorityPolicy_OverwriteConfigValues 2093 ConfigPolicy isCertificateAuthority_CertificateAuthorityPolicy_ConfigPolicy `protobuf_oneof:"config_policy"` 2094 // Optional. If any [Subject][google.cloud.security.privateca.v1beta1.Subject] is specified here, then all 2095 // [Certificates][google.cloud.security.privateca.v1beta1.Certificate] issued by the [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] must 2096 // match at least one listed [Subject][google.cloud.security.privateca.v1beta1.Subject]. If a [Subject][google.cloud.security.privateca.v1beta1.Subject] has an empty 2097 // field, any value will be allowed for that field. 2098 AllowedLocationsAndOrganizations []*Subject `protobuf:"bytes,3,rep,name=allowed_locations_and_organizations,json=allowedLocationsAndOrganizations,proto3" json:"allowed_locations_and_organizations,omitempty"` 2099 // Optional. If any value is specified here, then all 2100 // [Certificates][google.cloud.security.privateca.v1beta1.Certificate] issued by the [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] must 2101 // match at least one listed value. If no value is specified, all values 2102 // will be allowed for this fied. Glob patterns are also supported. 2103 AllowedCommonNames []string `protobuf:"bytes,4,rep,name=allowed_common_names,json=allowedCommonNames,proto3" json:"allowed_common_names,omitempty"` 2104 // Optional. If a [AllowedSubjectAltNames][google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedSubjectAltNames] is specified here, then all 2105 // [Certificates][google.cloud.security.privateca.v1beta1.Certificate] issued by the [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] must 2106 // match [AllowedSubjectAltNames][google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedSubjectAltNames]. If no value or an empty value 2107 // is specified, any value will be allowed for the [SubjectAltNames][google.cloud.security.privateca.v1beta1.SubjectAltNames] 2108 // field. 2109 AllowedSans *CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames `protobuf:"bytes,5,opt,name=allowed_sans,json=allowedSans,proto3" json:"allowed_sans,omitempty"` 2110 // Optional. The maximum lifetime allowed by the [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. Note that 2111 // if the any part if the issuing chain expires before a [Certificate][google.cloud.security.privateca.v1beta1.Certificate]'s 2112 // requested maximum_lifetime, the effective lifetime will be explicitly 2113 // truncated. 2114 MaximumLifetime *durationpb.Duration `protobuf:"bytes,6,opt,name=maximum_lifetime,json=maximumLifetime,proto3" json:"maximum_lifetime,omitempty"` 2115 // Optional. If specified, then only methods allowed in the [IssuanceModes][google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.IssuanceModes] may be 2116 // used to issue [Certificates][google.cloud.security.privateca.v1beta1.Certificate]. 2117 AllowedIssuanceModes *CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes `protobuf:"bytes,8,opt,name=allowed_issuance_modes,json=allowedIssuanceModes,proto3" json:"allowed_issuance_modes,omitempty"` 2118} 2119 2120func (x *CertificateAuthority_CertificateAuthorityPolicy) Reset() { 2121 *x = CertificateAuthority_CertificateAuthorityPolicy{} 2122 if protoimpl.UnsafeEnabled { 2123 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[16] 2124 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2125 ms.StoreMessageInfo(mi) 2126 } 2127} 2128 2129func (x *CertificateAuthority_CertificateAuthorityPolicy) String() string { 2130 return protoimpl.X.MessageStringOf(x) 2131} 2132 2133func (*CertificateAuthority_CertificateAuthorityPolicy) ProtoMessage() {} 2134 2135func (x *CertificateAuthority_CertificateAuthorityPolicy) ProtoReflect() protoreflect.Message { 2136 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[16] 2137 if protoimpl.UnsafeEnabled && x != nil { 2138 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2139 if ms.LoadMessageInfo() == nil { 2140 ms.StoreMessageInfo(mi) 2141 } 2142 return ms 2143 } 2144 return mi.MessageOf(x) 2145} 2146 2147// Deprecated: Use CertificateAuthority_CertificateAuthorityPolicy.ProtoReflect.Descriptor instead. 2148func (*CertificateAuthority_CertificateAuthorityPolicy) Descriptor() ([]byte, []int) { 2149 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0, 1} 2150} 2151 2152func (m *CertificateAuthority_CertificateAuthorityPolicy) GetConfigPolicy() isCertificateAuthority_CertificateAuthorityPolicy_ConfigPolicy { 2153 if m != nil { 2154 return m.ConfigPolicy 2155 } 2156 return nil 2157} 2158 2159func (x *CertificateAuthority_CertificateAuthorityPolicy) GetAllowedConfigList() *CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList { 2160 if x, ok := x.GetConfigPolicy().(*CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList_); ok { 2161 return x.AllowedConfigList 2162 } 2163 return nil 2164} 2165 2166func (x *CertificateAuthority_CertificateAuthorityPolicy) GetOverwriteConfigValues() *ReusableConfigWrapper { 2167 if x, ok := x.GetConfigPolicy().(*CertificateAuthority_CertificateAuthorityPolicy_OverwriteConfigValues); ok { 2168 return x.OverwriteConfigValues 2169 } 2170 return nil 2171} 2172 2173func (x *CertificateAuthority_CertificateAuthorityPolicy) GetAllowedLocationsAndOrganizations() []*Subject { 2174 if x != nil { 2175 return x.AllowedLocationsAndOrganizations 2176 } 2177 return nil 2178} 2179 2180func (x *CertificateAuthority_CertificateAuthorityPolicy) GetAllowedCommonNames() []string { 2181 if x != nil { 2182 return x.AllowedCommonNames 2183 } 2184 return nil 2185} 2186 2187func (x *CertificateAuthority_CertificateAuthorityPolicy) GetAllowedSans() *CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames { 2188 if x != nil { 2189 return x.AllowedSans 2190 } 2191 return nil 2192} 2193 2194func (x *CertificateAuthority_CertificateAuthorityPolicy) GetMaximumLifetime() *durationpb.Duration { 2195 if x != nil { 2196 return x.MaximumLifetime 2197 } 2198 return nil 2199} 2200 2201func (x *CertificateAuthority_CertificateAuthorityPolicy) GetAllowedIssuanceModes() *CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes { 2202 if x != nil { 2203 return x.AllowedIssuanceModes 2204 } 2205 return nil 2206} 2207 2208type isCertificateAuthority_CertificateAuthorityPolicy_ConfigPolicy interface { 2209 isCertificateAuthority_CertificateAuthorityPolicy_ConfigPolicy() 2210} 2211 2212type CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList_ struct { 2213 // Optional. All [Certificates][google.cloud.security.privateca.v1beta1.Certificate] issued by the [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] 2214 // must match at least one listed [ReusableConfigWrapper][google.cloud.security.privateca.v1beta1.ReusableConfigWrapper] in the list. 2215 AllowedConfigList *CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList `protobuf:"bytes,1,opt,name=allowed_config_list,json=allowedConfigList,proto3,oneof"` 2216} 2217 2218type CertificateAuthority_CertificateAuthorityPolicy_OverwriteConfigValues struct { 2219 // Optional. All [Certificates][google.cloud.security.privateca.v1beta1.Certificate] issued by the [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] 2220 // will use the provided configuration values, overwriting any requested 2221 // configuration values. 2222 OverwriteConfigValues *ReusableConfigWrapper `protobuf:"bytes,2,opt,name=overwrite_config_values,json=overwriteConfigValues,proto3,oneof"` 2223} 2224 2225func (*CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList_) isCertificateAuthority_CertificateAuthorityPolicy_ConfigPolicy() { 2226} 2227 2228func (*CertificateAuthority_CertificateAuthorityPolicy_OverwriteConfigValues) isCertificateAuthority_CertificateAuthorityPolicy_ConfigPolicy() { 2229} 2230 2231// URLs where a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] will publish content. 2232type CertificateAuthority_AccessUrls struct { 2233 state protoimpl.MessageState 2234 sizeCache protoimpl.SizeCache 2235 unknownFields protoimpl.UnknownFields 2236 2237 // The URL where this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]'s CA certificate is 2238 // published. This will only be set for CAs that have been activated. 2239 CaCertificateAccessUrl string `protobuf:"bytes,1,opt,name=ca_certificate_access_url,json=caCertificateAccessUrl,proto3" json:"ca_certificate_access_url,omitempty"` 2240 // The URL where this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]'s CRLs are published. This 2241 // will only be set for CAs that have been activated. 2242 CrlAccessUrl string `protobuf:"bytes,2,opt,name=crl_access_url,json=crlAccessUrl,proto3" json:"crl_access_url,omitempty"` 2243} 2244 2245func (x *CertificateAuthority_AccessUrls) Reset() { 2246 *x = CertificateAuthority_AccessUrls{} 2247 if protoimpl.UnsafeEnabled { 2248 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[17] 2249 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2250 ms.StoreMessageInfo(mi) 2251 } 2252} 2253 2254func (x *CertificateAuthority_AccessUrls) String() string { 2255 return protoimpl.X.MessageStringOf(x) 2256} 2257 2258func (*CertificateAuthority_AccessUrls) ProtoMessage() {} 2259 2260func (x *CertificateAuthority_AccessUrls) ProtoReflect() protoreflect.Message { 2261 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[17] 2262 if protoimpl.UnsafeEnabled && x != nil { 2263 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2264 if ms.LoadMessageInfo() == nil { 2265 ms.StoreMessageInfo(mi) 2266 } 2267 return ms 2268 } 2269 return mi.MessageOf(x) 2270} 2271 2272// Deprecated: Use CertificateAuthority_AccessUrls.ProtoReflect.Descriptor instead. 2273func (*CertificateAuthority_AccessUrls) Descriptor() ([]byte, []int) { 2274 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0, 2} 2275} 2276 2277func (x *CertificateAuthority_AccessUrls) GetCaCertificateAccessUrl() string { 2278 if x != nil { 2279 return x.CaCertificateAccessUrl 2280 } 2281 return "" 2282} 2283 2284func (x *CertificateAuthority_AccessUrls) GetCrlAccessUrl() string { 2285 if x != nil { 2286 return x.CrlAccessUrl 2287 } 2288 return "" 2289} 2290 2291// A Cloud KMS key configuration that a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] will use. 2292type CertificateAuthority_KeyVersionSpec struct { 2293 state protoimpl.MessageState 2294 sizeCache protoimpl.SizeCache 2295 unknownFields protoimpl.UnknownFields 2296 2297 // Types that are assignable to KeyVersion: 2298 // *CertificateAuthority_KeyVersionSpec_CloudKmsKeyVersion 2299 // *CertificateAuthority_KeyVersionSpec_Algorithm 2300 KeyVersion isCertificateAuthority_KeyVersionSpec_KeyVersion `protobuf_oneof:"KeyVersion"` 2301} 2302 2303func (x *CertificateAuthority_KeyVersionSpec) Reset() { 2304 *x = CertificateAuthority_KeyVersionSpec{} 2305 if protoimpl.UnsafeEnabled { 2306 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[18] 2307 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2308 ms.StoreMessageInfo(mi) 2309 } 2310} 2311 2312func (x *CertificateAuthority_KeyVersionSpec) String() string { 2313 return protoimpl.X.MessageStringOf(x) 2314} 2315 2316func (*CertificateAuthority_KeyVersionSpec) ProtoMessage() {} 2317 2318func (x *CertificateAuthority_KeyVersionSpec) ProtoReflect() protoreflect.Message { 2319 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[18] 2320 if protoimpl.UnsafeEnabled && x != nil { 2321 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2322 if ms.LoadMessageInfo() == nil { 2323 ms.StoreMessageInfo(mi) 2324 } 2325 return ms 2326 } 2327 return mi.MessageOf(x) 2328} 2329 2330// Deprecated: Use CertificateAuthority_KeyVersionSpec.ProtoReflect.Descriptor instead. 2331func (*CertificateAuthority_KeyVersionSpec) Descriptor() ([]byte, []int) { 2332 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0, 3} 2333} 2334 2335func (m *CertificateAuthority_KeyVersionSpec) GetKeyVersion() isCertificateAuthority_KeyVersionSpec_KeyVersion { 2336 if m != nil { 2337 return m.KeyVersion 2338 } 2339 return nil 2340} 2341 2342func (x *CertificateAuthority_KeyVersionSpec) GetCloudKmsKeyVersion() string { 2343 if x, ok := x.GetKeyVersion().(*CertificateAuthority_KeyVersionSpec_CloudKmsKeyVersion); ok { 2344 return x.CloudKmsKeyVersion 2345 } 2346 return "" 2347} 2348 2349func (x *CertificateAuthority_KeyVersionSpec) GetAlgorithm() CertificateAuthority_SignHashAlgorithm { 2350 if x, ok := x.GetKeyVersion().(*CertificateAuthority_KeyVersionSpec_Algorithm); ok { 2351 return x.Algorithm 2352 } 2353 return CertificateAuthority_SIGN_HASH_ALGORITHM_UNSPECIFIED 2354} 2355 2356type isCertificateAuthority_KeyVersionSpec_KeyVersion interface { 2357 isCertificateAuthority_KeyVersionSpec_KeyVersion() 2358} 2359 2360type CertificateAuthority_KeyVersionSpec_CloudKmsKeyVersion struct { 2361 // Required. The resource name for an existing Cloud KMS CryptoKeyVersion in the 2362 // format 2363 // `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. 2364 // This option enables full flexibility in the key's capabilities and 2365 // properties. 2366 CloudKmsKeyVersion string `protobuf:"bytes,1,opt,name=cloud_kms_key_version,json=cloudKmsKeyVersion,proto3,oneof"` 2367} 2368 2369type CertificateAuthority_KeyVersionSpec_Algorithm struct { 2370 // Required. The algorithm to use for creating a managed Cloud KMS key for a for a 2371 // simplified experience. All managed keys will be have their 2372 // [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] as `HSM`. 2373 Algorithm CertificateAuthority_SignHashAlgorithm `protobuf:"varint,2,opt,name=algorithm,proto3,enum=google.cloud.security.privateca.v1beta1.CertificateAuthority_SignHashAlgorithm,oneof"` 2374} 2375 2376func (*CertificateAuthority_KeyVersionSpec_CloudKmsKeyVersion) isCertificateAuthority_KeyVersionSpec_KeyVersion() { 2377} 2378 2379func (*CertificateAuthority_KeyVersionSpec_Algorithm) isCertificateAuthority_KeyVersionSpec_KeyVersion() { 2380} 2381 2382type CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList struct { 2383 state protoimpl.MessageState 2384 sizeCache protoimpl.SizeCache 2385 unknownFields protoimpl.UnknownFields 2386 2387 // Required. All [Certificates][google.cloud.security.privateca.v1beta1.Certificate] issued by the [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] 2388 // must match at least one listed [ReusableConfigWrapper][google.cloud.security.privateca.v1beta1.ReusableConfigWrapper]. If a 2389 // [ReusableConfigWrapper][google.cloud.security.privateca.v1beta1.ReusableConfigWrapper] has an empty field, any value will be 2390 // allowed for that field. 2391 AllowedConfigValues []*ReusableConfigWrapper `protobuf:"bytes,1,rep,name=allowed_config_values,json=allowedConfigValues,proto3" json:"allowed_config_values,omitempty"` 2392} 2393 2394func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList) Reset() { 2395 *x = CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList{} 2396 if protoimpl.UnsafeEnabled { 2397 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[20] 2398 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2399 ms.StoreMessageInfo(mi) 2400 } 2401} 2402 2403func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList) String() string { 2404 return protoimpl.X.MessageStringOf(x) 2405} 2406 2407func (*CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList) ProtoMessage() {} 2408 2409func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList) ProtoReflect() protoreflect.Message { 2410 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[20] 2411 if protoimpl.UnsafeEnabled && x != nil { 2412 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2413 if ms.LoadMessageInfo() == nil { 2414 ms.StoreMessageInfo(mi) 2415 } 2416 return ms 2417 } 2418 return mi.MessageOf(x) 2419} 2420 2421// Deprecated: Use CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList.ProtoReflect.Descriptor instead. 2422func (*CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList) Descriptor() ([]byte, []int) { 2423 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0, 1, 0} 2424} 2425 2426func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList) GetAllowedConfigValues() []*ReusableConfigWrapper { 2427 if x != nil { 2428 return x.AllowedConfigValues 2429 } 2430 return nil 2431} 2432 2433// [AllowedSubjectAltNames][google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedSubjectAltNames] specifies the allowed values for 2434// [SubjectAltNames][google.cloud.security.privateca.v1beta1.SubjectAltNames] by the [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] when issuing 2435// [Certificates][google.cloud.security.privateca.v1beta1.Certificate]. 2436type CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames struct { 2437 state protoimpl.MessageState 2438 sizeCache protoimpl.SizeCache 2439 unknownFields protoimpl.UnknownFields 2440 2441 // Optional. Contains valid, fully-qualified host names. Glob patterns are also 2442 // supported. To allow an explicit wildcard certificate, escape with 2443 // backlash (i.e. "\*"). 2444 // E.g. for globbed entries: '*bar.com' will allow foo.bar.com, but not 2445 // *.bar.com, unless the [allow_globbing_dns_wildcards][google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedSubjectAltNames.allow_globbing_dns_wildcards] field is set. 2446 // E.g. for wildcard entries: '\*.bar.com' will allow '*.bar.com', but not 2447 // 'foo.bar.com'. 2448 AllowedDnsNames []string `protobuf:"bytes,1,rep,name=allowed_dns_names,json=allowedDnsNames,proto3" json:"allowed_dns_names,omitempty"` 2449 // Optional. Contains valid RFC 3986 URIs. Glob patterns are also supported. To 2450 // match across path seperators (i.e. '/') use the double star glob 2451 // pattern (i.e. '**'). 2452 AllowedUris []string `protobuf:"bytes,2,rep,name=allowed_uris,json=allowedUris,proto3" json:"allowed_uris,omitempty"` 2453 // Optional. Contains valid RFC 2822 E-mail addresses. Glob patterns are also 2454 // supported. 2455 AllowedEmailAddresses []string `protobuf:"bytes,3,rep,name=allowed_email_addresses,json=allowedEmailAddresses,proto3" json:"allowed_email_addresses,omitempty"` 2456 // Optional. Contains valid 32-bit IPv4 addresses and subnet ranges or RFC 4291 IPv6 2457 // addresses and subnet ranges. Subnet ranges are specified using the 2458 // '/' notation (e.g. 10.0.0.0/8, 2001:700:300:1800::/64). Glob patterns 2459 // are supported only for ip address entries (i.e. not for subnet ranges). 2460 AllowedIps []string `protobuf:"bytes,4,rep,name=allowed_ips,json=allowedIps,proto3" json:"allowed_ips,omitempty"` 2461 // Optional. Specifies if glob patterns used for [allowed_dns_names][google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedSubjectAltNames.allowed_dns_names] allows 2462 // wildcard certificates. 2463 AllowGlobbingDnsWildcards bool `protobuf:"varint,5,opt,name=allow_globbing_dns_wildcards,json=allowGlobbingDnsWildcards,proto3" json:"allow_globbing_dns_wildcards,omitempty"` 2464 // Optional. Specifies if to allow custom X509Extension values. 2465 AllowCustomSans bool `protobuf:"varint,6,opt,name=allow_custom_sans,json=allowCustomSans,proto3" json:"allow_custom_sans,omitempty"` 2466} 2467 2468func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames) Reset() { 2469 *x = CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames{} 2470 if protoimpl.UnsafeEnabled { 2471 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[21] 2472 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2473 ms.StoreMessageInfo(mi) 2474 } 2475} 2476 2477func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames) String() string { 2478 return protoimpl.X.MessageStringOf(x) 2479} 2480 2481func (*CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames) ProtoMessage() {} 2482 2483func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames) ProtoReflect() protoreflect.Message { 2484 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[21] 2485 if protoimpl.UnsafeEnabled && x != nil { 2486 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2487 if ms.LoadMessageInfo() == nil { 2488 ms.StoreMessageInfo(mi) 2489 } 2490 return ms 2491 } 2492 return mi.MessageOf(x) 2493} 2494 2495// Deprecated: Use CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames.ProtoReflect.Descriptor instead. 2496func (*CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames) Descriptor() ([]byte, []int) { 2497 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0, 1, 1} 2498} 2499 2500func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames) GetAllowedDnsNames() []string { 2501 if x != nil { 2502 return x.AllowedDnsNames 2503 } 2504 return nil 2505} 2506 2507func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames) GetAllowedUris() []string { 2508 if x != nil { 2509 return x.AllowedUris 2510 } 2511 return nil 2512} 2513 2514func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames) GetAllowedEmailAddresses() []string { 2515 if x != nil { 2516 return x.AllowedEmailAddresses 2517 } 2518 return nil 2519} 2520 2521func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames) GetAllowedIps() []string { 2522 if x != nil { 2523 return x.AllowedIps 2524 } 2525 return nil 2526} 2527 2528func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames) GetAllowGlobbingDnsWildcards() bool { 2529 if x != nil { 2530 return x.AllowGlobbingDnsWildcards 2531 } 2532 return false 2533} 2534 2535func (x *CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames) GetAllowCustomSans() bool { 2536 if x != nil { 2537 return x.AllowCustomSans 2538 } 2539 return false 2540} 2541 2542// [IssuanceModes][google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.IssuanceModes] specifies the allowed ways in which 2543// [Certificates][google.cloud.security.privateca.v1beta1.Certificate] may be requested from this 2544// [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]. 2545type CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes struct { 2546 state protoimpl.MessageState 2547 sizeCache protoimpl.SizeCache 2548 unknownFields protoimpl.UnknownFields 2549 2550 // Required. When true, allows callers to create [Certificates][google.cloud.security.privateca.v1beta1.Certificate] by 2551 // specifying a CSR. 2552 AllowCsrBasedIssuance bool `protobuf:"varint,1,opt,name=allow_csr_based_issuance,json=allowCsrBasedIssuance,proto3" json:"allow_csr_based_issuance,omitempty"` 2553 // Required. When true, allows callers to create [Certificates][google.cloud.security.privateca.v1beta1.Certificate] by 2554 // specifying a [CertificateConfig][google.cloud.security.privateca.v1beta1.CertificateConfig]. 2555 AllowConfigBasedIssuance bool `protobuf:"varint,2,opt,name=allow_config_based_issuance,json=allowConfigBasedIssuance,proto3" json:"allow_config_based_issuance,omitempty"` 2556} 2557 2558func (x *CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes) Reset() { 2559 *x = CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes{} 2560 if protoimpl.UnsafeEnabled { 2561 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[22] 2562 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2563 ms.StoreMessageInfo(mi) 2564 } 2565} 2566 2567func (x *CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes) String() string { 2568 return protoimpl.X.MessageStringOf(x) 2569} 2570 2571func (*CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes) ProtoMessage() {} 2572 2573func (x *CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes) ProtoReflect() protoreflect.Message { 2574 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[22] 2575 if protoimpl.UnsafeEnabled && x != nil { 2576 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2577 if ms.LoadMessageInfo() == nil { 2578 ms.StoreMessageInfo(mi) 2579 } 2580 return ms 2581 } 2582 return mi.MessageOf(x) 2583} 2584 2585// Deprecated: Use CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes.ProtoReflect.Descriptor instead. 2586func (*CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes) Descriptor() ([]byte, []int) { 2587 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{0, 1, 2} 2588} 2589 2590func (x *CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes) GetAllowCsrBasedIssuance() bool { 2591 if x != nil { 2592 return x.AllowCsrBasedIssuance 2593 } 2594 return false 2595} 2596 2597func (x *CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes) GetAllowConfigBasedIssuance() bool { 2598 if x != nil { 2599 return x.AllowConfigBasedIssuance 2600 } 2601 return false 2602} 2603 2604// Describes a revoked [Certificate][google.cloud.security.privateca.v1beta1.Certificate]. 2605type CertificateRevocationList_RevokedCertificate struct { 2606 state protoimpl.MessageState 2607 sizeCache protoimpl.SizeCache 2608 unknownFields protoimpl.UnknownFields 2609 2610 // The resource path for the [Certificate][google.cloud.security.privateca.v1beta1.Certificate] in the format 2611 // `projects/*/locations/*/certificateAuthorities/*/certificates/*`. 2612 Certificate string `protobuf:"bytes,1,opt,name=certificate,proto3" json:"certificate,omitempty"` 2613 // The serial number of the [Certificate][google.cloud.security.privateca.v1beta1.Certificate]. 2614 HexSerialNumber string `protobuf:"bytes,2,opt,name=hex_serial_number,json=hexSerialNumber,proto3" json:"hex_serial_number,omitempty"` 2615 // The reason the [Certificate][google.cloud.security.privateca.v1beta1.Certificate] was revoked. 2616 RevocationReason RevocationReason `protobuf:"varint,3,opt,name=revocation_reason,json=revocationReason,proto3,enum=google.cloud.security.privateca.v1beta1.RevocationReason" json:"revocation_reason,omitempty"` 2617} 2618 2619func (x *CertificateRevocationList_RevokedCertificate) Reset() { 2620 *x = CertificateRevocationList_RevokedCertificate{} 2621 if protoimpl.UnsafeEnabled { 2622 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[23] 2623 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2624 ms.StoreMessageInfo(mi) 2625 } 2626} 2627 2628func (x *CertificateRevocationList_RevokedCertificate) String() string { 2629 return protoimpl.X.MessageStringOf(x) 2630} 2631 2632func (*CertificateRevocationList_RevokedCertificate) ProtoMessage() {} 2633 2634func (x *CertificateRevocationList_RevokedCertificate) ProtoReflect() protoreflect.Message { 2635 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[23] 2636 if protoimpl.UnsafeEnabled && x != nil { 2637 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2638 if ms.LoadMessageInfo() == nil { 2639 ms.StoreMessageInfo(mi) 2640 } 2641 return ms 2642 } 2643 return mi.MessageOf(x) 2644} 2645 2646// Deprecated: Use CertificateRevocationList_RevokedCertificate.ProtoReflect.Descriptor instead. 2647func (*CertificateRevocationList_RevokedCertificate) Descriptor() ([]byte, []int) { 2648 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{1, 0} 2649} 2650 2651func (x *CertificateRevocationList_RevokedCertificate) GetCertificate() string { 2652 if x != nil { 2653 return x.Certificate 2654 } 2655 return "" 2656} 2657 2658func (x *CertificateRevocationList_RevokedCertificate) GetHexSerialNumber() string { 2659 if x != nil { 2660 return x.HexSerialNumber 2661 } 2662 return "" 2663} 2664 2665func (x *CertificateRevocationList_RevokedCertificate) GetRevocationReason() RevocationReason { 2666 if x != nil { 2667 return x.RevocationReason 2668 } 2669 return RevocationReason_REVOCATION_REASON_UNSPECIFIED 2670} 2671 2672// Describes fields that are relavent to the revocation of a [Certificate][google.cloud.security.privateca.v1beta1.Certificate]. 2673type Certificate_RevocationDetails struct { 2674 state protoimpl.MessageState 2675 sizeCache protoimpl.SizeCache 2676 unknownFields protoimpl.UnknownFields 2677 2678 // Indicates why a [Certificate][google.cloud.security.privateca.v1beta1.Certificate] was revoked. 2679 RevocationState RevocationReason `protobuf:"varint,1,opt,name=revocation_state,json=revocationState,proto3,enum=google.cloud.security.privateca.v1beta1.RevocationReason" json:"revocation_state,omitempty"` 2680 // The time at which this [Certificate][google.cloud.security.privateca.v1beta1.Certificate] was revoked. 2681 RevocationTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=revocation_time,json=revocationTime,proto3" json:"revocation_time,omitempty"` 2682} 2683 2684func (x *Certificate_RevocationDetails) Reset() { 2685 *x = Certificate_RevocationDetails{} 2686 if protoimpl.UnsafeEnabled { 2687 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[25] 2688 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2689 ms.StoreMessageInfo(mi) 2690 } 2691} 2692 2693func (x *Certificate_RevocationDetails) String() string { 2694 return protoimpl.X.MessageStringOf(x) 2695} 2696 2697func (*Certificate_RevocationDetails) ProtoMessage() {} 2698 2699func (x *Certificate_RevocationDetails) ProtoReflect() protoreflect.Message { 2700 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[25] 2701 if protoimpl.UnsafeEnabled && x != nil { 2702 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2703 if ms.LoadMessageInfo() == nil { 2704 ms.StoreMessageInfo(mi) 2705 } 2706 return ms 2707 } 2708 return mi.MessageOf(x) 2709} 2710 2711// Deprecated: Use Certificate_RevocationDetails.ProtoReflect.Descriptor instead. 2712func (*Certificate_RevocationDetails) Descriptor() ([]byte, []int) { 2713 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{2, 0} 2714} 2715 2716func (x *Certificate_RevocationDetails) GetRevocationState() RevocationReason { 2717 if x != nil { 2718 return x.RevocationState 2719 } 2720 return RevocationReason_REVOCATION_REASON_UNSPECIFIED 2721} 2722 2723func (x *Certificate_RevocationDetails) GetRevocationTime() *timestamppb.Timestamp { 2724 if x != nil { 2725 return x.RevocationTime 2726 } 2727 return nil 2728} 2729 2730// Describes values that are relevant in a CA certificate. 2731type ReusableConfigValues_CaOptions struct { 2732 state protoimpl.MessageState 2733 sizeCache protoimpl.SizeCache 2734 unknownFields protoimpl.UnknownFields 2735 2736 // Optional. Refers to the "CA" X.509 extension, which is a boolean value. When this 2737 // value is missing, the extension will be omitted from the CA certificate. 2738 IsCa *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=is_ca,json=isCa,proto3" json:"is_ca,omitempty"` 2739 // Optional. Refers to the path length restriction X.509 extension. For a CA 2740 // certificate, this value describes the depth of subordinate CA 2741 // certificates that are allowed. 2742 // If this value is less than 0, the request will fail. 2743 // If this value is missing, the max path length will be omitted from the 2744 // CA certificate. 2745 MaxIssuerPathLength *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=max_issuer_path_length,json=maxIssuerPathLength,proto3" json:"max_issuer_path_length,omitempty"` 2746} 2747 2748func (x *ReusableConfigValues_CaOptions) Reset() { 2749 *x = ReusableConfigValues_CaOptions{} 2750 if protoimpl.UnsafeEnabled { 2751 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[28] 2752 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2753 ms.StoreMessageInfo(mi) 2754 } 2755} 2756 2757func (x *ReusableConfigValues_CaOptions) String() string { 2758 return protoimpl.X.MessageStringOf(x) 2759} 2760 2761func (*ReusableConfigValues_CaOptions) ProtoMessage() {} 2762 2763func (x *ReusableConfigValues_CaOptions) ProtoReflect() protoreflect.Message { 2764 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[28] 2765 if protoimpl.UnsafeEnabled && x != nil { 2766 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2767 if ms.LoadMessageInfo() == nil { 2768 ms.StoreMessageInfo(mi) 2769 } 2770 return ms 2771 } 2772 return mi.MessageOf(x) 2773} 2774 2775// Deprecated: Use ReusableConfigValues_CaOptions.ProtoReflect.Descriptor instead. 2776func (*ReusableConfigValues_CaOptions) Descriptor() ([]byte, []int) { 2777 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{4, 0} 2778} 2779 2780func (x *ReusableConfigValues_CaOptions) GetIsCa() *wrapperspb.BoolValue { 2781 if x != nil { 2782 return x.IsCa 2783 } 2784 return nil 2785} 2786 2787func (x *ReusableConfigValues_CaOptions) GetMaxIssuerPathLength() *wrapperspb.Int32Value { 2788 if x != nil { 2789 return x.MaxIssuerPathLength 2790 } 2791 return nil 2792} 2793 2794// This message describes a subordinate CA's issuer certificate chain. This 2795// wrapper exists for compatibility reasons. 2796type SubordinateConfig_SubordinateConfigChain struct { 2797 state protoimpl.MessageState 2798 sizeCache protoimpl.SizeCache 2799 unknownFields protoimpl.UnknownFields 2800 2801 // Required. Expected to be in leaf-to-root order according to RFC 5246. 2802 PemCertificates []string `protobuf:"bytes,1,rep,name=pem_certificates,json=pemCertificates,proto3" json:"pem_certificates,omitempty"` 2803} 2804 2805func (x *SubordinateConfig_SubordinateConfigChain) Reset() { 2806 *x = SubordinateConfig_SubordinateConfigChain{} 2807 if protoimpl.UnsafeEnabled { 2808 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[29] 2809 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2810 ms.StoreMessageInfo(mi) 2811 } 2812} 2813 2814func (x *SubordinateConfig_SubordinateConfigChain) String() string { 2815 return protoimpl.X.MessageStringOf(x) 2816} 2817 2818func (*SubordinateConfig_SubordinateConfigChain) ProtoMessage() {} 2819 2820func (x *SubordinateConfig_SubordinateConfigChain) ProtoReflect() protoreflect.Message { 2821 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[29] 2822 if protoimpl.UnsafeEnabled && x != nil { 2823 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2824 if ms.LoadMessageInfo() == nil { 2825 ms.StoreMessageInfo(mi) 2826 } 2827 return ms 2828 } 2829 return mi.MessageOf(x) 2830} 2831 2832// Deprecated: Use SubordinateConfig_SubordinateConfigChain.ProtoReflect.Descriptor instead. 2833func (*SubordinateConfig_SubordinateConfigChain) Descriptor() ([]byte, []int) { 2834 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{6, 0} 2835} 2836 2837func (x *SubordinateConfig_SubordinateConfigChain) GetPemCertificates() []string { 2838 if x != nil { 2839 return x.PemCertificates 2840 } 2841 return nil 2842} 2843 2844// These values are used to create the distinguished name and subject 2845// alternative name fields in an X.509 certificate. 2846type CertificateConfig_SubjectConfig struct { 2847 state protoimpl.MessageState 2848 sizeCache protoimpl.SizeCache 2849 unknownFields protoimpl.UnknownFields 2850 2851 // Required. Contains distinguished name fields such as the location and organization. 2852 Subject *Subject `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"` 2853 // Optional. The "common name" of the distinguished name. 2854 CommonName string `protobuf:"bytes,2,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty"` 2855 // Optional. The subject alternative name fields. 2856 SubjectAltName *SubjectAltNames `protobuf:"bytes,3,opt,name=subject_alt_name,json=subjectAltName,proto3" json:"subject_alt_name,omitempty"` 2857} 2858 2859func (x *CertificateConfig_SubjectConfig) Reset() { 2860 *x = CertificateConfig_SubjectConfig{} 2861 if protoimpl.UnsafeEnabled { 2862 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[30] 2863 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2864 ms.StoreMessageInfo(mi) 2865 } 2866} 2867 2868func (x *CertificateConfig_SubjectConfig) String() string { 2869 return protoimpl.X.MessageStringOf(x) 2870} 2871 2872func (*CertificateConfig_SubjectConfig) ProtoMessage() {} 2873 2874func (x *CertificateConfig_SubjectConfig) ProtoReflect() protoreflect.Message { 2875 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[30] 2876 if protoimpl.UnsafeEnabled && x != nil { 2877 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2878 if ms.LoadMessageInfo() == nil { 2879 ms.StoreMessageInfo(mi) 2880 } 2881 return ms 2882 } 2883 return mi.MessageOf(x) 2884} 2885 2886// Deprecated: Use CertificateConfig_SubjectConfig.ProtoReflect.Descriptor instead. 2887func (*CertificateConfig_SubjectConfig) Descriptor() ([]byte, []int) { 2888 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{8, 0} 2889} 2890 2891func (x *CertificateConfig_SubjectConfig) GetSubject() *Subject { 2892 if x != nil { 2893 return x.Subject 2894 } 2895 return nil 2896} 2897 2898func (x *CertificateConfig_SubjectConfig) GetCommonName() string { 2899 if x != nil { 2900 return x.CommonName 2901 } 2902 return "" 2903} 2904 2905func (x *CertificateConfig_SubjectConfig) GetSubjectAltName() *SubjectAltNames { 2906 if x != nil { 2907 return x.SubjectAltName 2908 } 2909 return nil 2910} 2911 2912// These values describe fields in an issued X.509 certificate such as the 2913// distinguished name, subject alternative names, serial number, and lifetime. 2914type CertificateDescription_SubjectDescription struct { 2915 state protoimpl.MessageState 2916 sizeCache protoimpl.SizeCache 2917 unknownFields protoimpl.UnknownFields 2918 2919 // Contains distinguished name fields such as the location and organization. 2920 Subject *Subject `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"` 2921 // The "common name" of the distinguished name. 2922 CommonName string `protobuf:"bytes,2,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty"` 2923 // The subject alternative name fields. 2924 SubjectAltName *SubjectAltNames `protobuf:"bytes,3,opt,name=subject_alt_name,json=subjectAltName,proto3" json:"subject_alt_name,omitempty"` 2925 // The serial number encoded in lowercase hexadecimal. 2926 HexSerialNumber string `protobuf:"bytes,4,opt,name=hex_serial_number,json=hexSerialNumber,proto3" json:"hex_serial_number,omitempty"` 2927 // For convenience, the actual lifetime of an issued certificate. 2928 // Corresponds to 'not_after_time' - 'not_before_time'. 2929 Lifetime *durationpb.Duration `protobuf:"bytes,5,opt,name=lifetime,proto3" json:"lifetime,omitempty"` 2930 // The time at which the certificate becomes valid. 2931 NotBeforeTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=not_before_time,json=notBeforeTime,proto3" json:"not_before_time,omitempty"` 2932 // The time at which the certificate expires. 2933 NotAfterTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=not_after_time,json=notAfterTime,proto3" json:"not_after_time,omitempty"` 2934} 2935 2936func (x *CertificateDescription_SubjectDescription) Reset() { 2937 *x = CertificateDescription_SubjectDescription{} 2938 if protoimpl.UnsafeEnabled { 2939 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[31] 2940 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2941 ms.StoreMessageInfo(mi) 2942 } 2943} 2944 2945func (x *CertificateDescription_SubjectDescription) String() string { 2946 return protoimpl.X.MessageStringOf(x) 2947} 2948 2949func (*CertificateDescription_SubjectDescription) ProtoMessage() {} 2950 2951func (x *CertificateDescription_SubjectDescription) ProtoReflect() protoreflect.Message { 2952 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[31] 2953 if protoimpl.UnsafeEnabled && x != nil { 2954 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2955 if ms.LoadMessageInfo() == nil { 2956 ms.StoreMessageInfo(mi) 2957 } 2958 return ms 2959 } 2960 return mi.MessageOf(x) 2961} 2962 2963// Deprecated: Use CertificateDescription_SubjectDescription.ProtoReflect.Descriptor instead. 2964func (*CertificateDescription_SubjectDescription) Descriptor() ([]byte, []int) { 2965 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{9, 0} 2966} 2967 2968func (x *CertificateDescription_SubjectDescription) GetSubject() *Subject { 2969 if x != nil { 2970 return x.Subject 2971 } 2972 return nil 2973} 2974 2975func (x *CertificateDescription_SubjectDescription) GetCommonName() string { 2976 if x != nil { 2977 return x.CommonName 2978 } 2979 return "" 2980} 2981 2982func (x *CertificateDescription_SubjectDescription) GetSubjectAltName() *SubjectAltNames { 2983 if x != nil { 2984 return x.SubjectAltName 2985 } 2986 return nil 2987} 2988 2989func (x *CertificateDescription_SubjectDescription) GetHexSerialNumber() string { 2990 if x != nil { 2991 return x.HexSerialNumber 2992 } 2993 return "" 2994} 2995 2996func (x *CertificateDescription_SubjectDescription) GetLifetime() *durationpb.Duration { 2997 if x != nil { 2998 return x.Lifetime 2999 } 3000 return nil 3001} 3002 3003func (x *CertificateDescription_SubjectDescription) GetNotBeforeTime() *timestamppb.Timestamp { 3004 if x != nil { 3005 return x.NotBeforeTime 3006 } 3007 return nil 3008} 3009 3010func (x *CertificateDescription_SubjectDescription) GetNotAfterTime() *timestamppb.Timestamp { 3011 if x != nil { 3012 return x.NotAfterTime 3013 } 3014 return nil 3015} 3016 3017// A KeyId identifies a specific public key, usually by hashing the public 3018// key. 3019type CertificateDescription_KeyId struct { 3020 state protoimpl.MessageState 3021 sizeCache protoimpl.SizeCache 3022 unknownFields protoimpl.UnknownFields 3023 3024 // Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most 3025 // likely the 160 bit SHA-1 hash of the public key. 3026 KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` 3027} 3028 3029func (x *CertificateDescription_KeyId) Reset() { 3030 *x = CertificateDescription_KeyId{} 3031 if protoimpl.UnsafeEnabled { 3032 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[32] 3033 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3034 ms.StoreMessageInfo(mi) 3035 } 3036} 3037 3038func (x *CertificateDescription_KeyId) String() string { 3039 return protoimpl.X.MessageStringOf(x) 3040} 3041 3042func (*CertificateDescription_KeyId) ProtoMessage() {} 3043 3044func (x *CertificateDescription_KeyId) ProtoReflect() protoreflect.Message { 3045 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[32] 3046 if protoimpl.UnsafeEnabled && x != nil { 3047 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3048 if ms.LoadMessageInfo() == nil { 3049 ms.StoreMessageInfo(mi) 3050 } 3051 return ms 3052 } 3053 return mi.MessageOf(x) 3054} 3055 3056// Deprecated: Use CertificateDescription_KeyId.ProtoReflect.Descriptor instead. 3057func (*CertificateDescription_KeyId) Descriptor() ([]byte, []int) { 3058 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{9, 1} 3059} 3060 3061func (x *CertificateDescription_KeyId) GetKeyId() string { 3062 if x != nil { 3063 return x.KeyId 3064 } 3065 return "" 3066} 3067 3068// A group of fingerprints for the x509 certificate. 3069type CertificateDescription_CertificateFingerprint struct { 3070 state protoimpl.MessageState 3071 sizeCache protoimpl.SizeCache 3072 unknownFields protoimpl.UnknownFields 3073 3074 // The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate. 3075 Sha256Hash string `protobuf:"bytes,1,opt,name=sha256_hash,json=sha256Hash,proto3" json:"sha256_hash,omitempty"` 3076} 3077 3078func (x *CertificateDescription_CertificateFingerprint) Reset() { 3079 *x = CertificateDescription_CertificateFingerprint{} 3080 if protoimpl.UnsafeEnabled { 3081 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[33] 3082 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3083 ms.StoreMessageInfo(mi) 3084 } 3085} 3086 3087func (x *CertificateDescription_CertificateFingerprint) String() string { 3088 return protoimpl.X.MessageStringOf(x) 3089} 3090 3091func (*CertificateDescription_CertificateFingerprint) ProtoMessage() {} 3092 3093func (x *CertificateDescription_CertificateFingerprint) ProtoReflect() protoreflect.Message { 3094 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[33] 3095 if protoimpl.UnsafeEnabled && x != nil { 3096 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3097 if ms.LoadMessageInfo() == nil { 3098 ms.StoreMessageInfo(mi) 3099 } 3100 return ms 3101 } 3102 return mi.MessageOf(x) 3103} 3104 3105// Deprecated: Use CertificateDescription_CertificateFingerprint.ProtoReflect.Descriptor instead. 3106func (*CertificateDescription_CertificateFingerprint) Descriptor() ([]byte, []int) { 3107 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{9, 2} 3108} 3109 3110func (x *CertificateDescription_CertificateFingerprint) GetSha256Hash() string { 3111 if x != nil { 3112 return x.Sha256Hash 3113 } 3114 return "" 3115} 3116 3117// [KeyUsage.KeyUsageOptions][google.cloud.security.privateca.v1beta1.KeyUsage.KeyUsageOptions] corresponds to the key usage values 3118// described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. 3119type KeyUsage_KeyUsageOptions struct { 3120 state protoimpl.MessageState 3121 sizeCache protoimpl.SizeCache 3122 unknownFields protoimpl.UnknownFields 3123 3124 // The key may be used for digital signatures. 3125 DigitalSignature bool `protobuf:"varint,1,opt,name=digital_signature,json=digitalSignature,proto3" json:"digital_signature,omitempty"` 3126 // The key may be used for cryptographic commitments. Note that this may 3127 // also be referred to as "non-repudiation". 3128 ContentCommitment bool `protobuf:"varint,2,opt,name=content_commitment,json=contentCommitment,proto3" json:"content_commitment,omitempty"` 3129 // The key may be used to encipher other keys. 3130 KeyEncipherment bool `protobuf:"varint,3,opt,name=key_encipherment,json=keyEncipherment,proto3" json:"key_encipherment,omitempty"` 3131 // The key may be used to encipher data. 3132 DataEncipherment bool `protobuf:"varint,4,opt,name=data_encipherment,json=dataEncipherment,proto3" json:"data_encipherment,omitempty"` 3133 // The key may be used in a key agreement protocol. 3134 KeyAgreement bool `protobuf:"varint,5,opt,name=key_agreement,json=keyAgreement,proto3" json:"key_agreement,omitempty"` 3135 // The key may be used to sign certificates. 3136 CertSign bool `protobuf:"varint,6,opt,name=cert_sign,json=certSign,proto3" json:"cert_sign,omitempty"` 3137 // The key may be used sign certificate revocation lists. 3138 CrlSign bool `protobuf:"varint,7,opt,name=crl_sign,json=crlSign,proto3" json:"crl_sign,omitempty"` 3139 // The key may be used to encipher only. 3140 EncipherOnly bool `protobuf:"varint,8,opt,name=encipher_only,json=encipherOnly,proto3" json:"encipher_only,omitempty"` 3141 // The key may be used to decipher only. 3142 DecipherOnly bool `protobuf:"varint,9,opt,name=decipher_only,json=decipherOnly,proto3" json:"decipher_only,omitempty"` 3143} 3144 3145func (x *KeyUsage_KeyUsageOptions) Reset() { 3146 *x = KeyUsage_KeyUsageOptions{} 3147 if protoimpl.UnsafeEnabled { 3148 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[34] 3149 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3150 ms.StoreMessageInfo(mi) 3151 } 3152} 3153 3154func (x *KeyUsage_KeyUsageOptions) String() string { 3155 return protoimpl.X.MessageStringOf(x) 3156} 3157 3158func (*KeyUsage_KeyUsageOptions) ProtoMessage() {} 3159 3160func (x *KeyUsage_KeyUsageOptions) ProtoReflect() protoreflect.Message { 3161 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[34] 3162 if protoimpl.UnsafeEnabled && x != nil { 3163 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3164 if ms.LoadMessageInfo() == nil { 3165 ms.StoreMessageInfo(mi) 3166 } 3167 return ms 3168 } 3169 return mi.MessageOf(x) 3170} 3171 3172// Deprecated: Use KeyUsage_KeyUsageOptions.ProtoReflect.Descriptor instead. 3173func (*KeyUsage_KeyUsageOptions) Descriptor() ([]byte, []int) { 3174 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{12, 0} 3175} 3176 3177func (x *KeyUsage_KeyUsageOptions) GetDigitalSignature() bool { 3178 if x != nil { 3179 return x.DigitalSignature 3180 } 3181 return false 3182} 3183 3184func (x *KeyUsage_KeyUsageOptions) GetContentCommitment() bool { 3185 if x != nil { 3186 return x.ContentCommitment 3187 } 3188 return false 3189} 3190 3191func (x *KeyUsage_KeyUsageOptions) GetKeyEncipherment() bool { 3192 if x != nil { 3193 return x.KeyEncipherment 3194 } 3195 return false 3196} 3197 3198func (x *KeyUsage_KeyUsageOptions) GetDataEncipherment() bool { 3199 if x != nil { 3200 return x.DataEncipherment 3201 } 3202 return false 3203} 3204 3205func (x *KeyUsage_KeyUsageOptions) GetKeyAgreement() bool { 3206 if x != nil { 3207 return x.KeyAgreement 3208 } 3209 return false 3210} 3211 3212func (x *KeyUsage_KeyUsageOptions) GetCertSign() bool { 3213 if x != nil { 3214 return x.CertSign 3215 } 3216 return false 3217} 3218 3219func (x *KeyUsage_KeyUsageOptions) GetCrlSign() bool { 3220 if x != nil { 3221 return x.CrlSign 3222 } 3223 return false 3224} 3225 3226func (x *KeyUsage_KeyUsageOptions) GetEncipherOnly() bool { 3227 if x != nil { 3228 return x.EncipherOnly 3229 } 3230 return false 3231} 3232 3233func (x *KeyUsage_KeyUsageOptions) GetDecipherOnly() bool { 3234 if x != nil { 3235 return x.DecipherOnly 3236 } 3237 return false 3238} 3239 3240// [KeyUsage.ExtendedKeyUsageOptions][google.cloud.security.privateca.v1beta1.KeyUsage.ExtendedKeyUsageOptions] has fields that correspond to 3241// certain common OIDs that could be specified as an extended key usage value. 3242type KeyUsage_ExtendedKeyUsageOptions struct { 3243 state protoimpl.MessageState 3244 sizeCache protoimpl.SizeCache 3245 unknownFields protoimpl.UnknownFields 3246 3247 // Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as "TLS WWW 3248 // server authentication", though regularly used for non-WWW TLS. 3249 ServerAuth bool `protobuf:"varint,1,opt,name=server_auth,json=serverAuth,proto3" json:"server_auth,omitempty"` 3250 // Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as "TLS WWW 3251 // client authentication", though regularly used for non-WWW TLS. 3252 ClientAuth bool `protobuf:"varint,2,opt,name=client_auth,json=clientAuth,proto3" json:"client_auth,omitempty"` 3253 // Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as "Signing of 3254 // downloadable executable code client authentication". 3255 CodeSigning bool `protobuf:"varint,3,opt,name=code_signing,json=codeSigning,proto3" json:"code_signing,omitempty"` 3256 // Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as "Email 3257 // protection". 3258 EmailProtection bool `protobuf:"varint,4,opt,name=email_protection,json=emailProtection,proto3" json:"email_protection,omitempty"` 3259 // Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as "Binding 3260 // the hash of an object to a time". 3261 TimeStamping bool `protobuf:"varint,5,opt,name=time_stamping,json=timeStamping,proto3" json:"time_stamping,omitempty"` 3262 // Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as "Signing 3263 // OCSP responses". 3264 OcspSigning bool `protobuf:"varint,6,opt,name=ocsp_signing,json=ocspSigning,proto3" json:"ocsp_signing,omitempty"` 3265} 3266 3267func (x *KeyUsage_ExtendedKeyUsageOptions) Reset() { 3268 *x = KeyUsage_ExtendedKeyUsageOptions{} 3269 if protoimpl.UnsafeEnabled { 3270 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[35] 3271 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3272 ms.StoreMessageInfo(mi) 3273 } 3274} 3275 3276func (x *KeyUsage_ExtendedKeyUsageOptions) String() string { 3277 return protoimpl.X.MessageStringOf(x) 3278} 3279 3280func (*KeyUsage_ExtendedKeyUsageOptions) ProtoMessage() {} 3281 3282func (x *KeyUsage_ExtendedKeyUsageOptions) ProtoReflect() protoreflect.Message { 3283 mi := &file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[35] 3284 if protoimpl.UnsafeEnabled && x != nil { 3285 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3286 if ms.LoadMessageInfo() == nil { 3287 ms.StoreMessageInfo(mi) 3288 } 3289 return ms 3290 } 3291 return mi.MessageOf(x) 3292} 3293 3294// Deprecated: Use KeyUsage_ExtendedKeyUsageOptions.ProtoReflect.Descriptor instead. 3295func (*KeyUsage_ExtendedKeyUsageOptions) Descriptor() ([]byte, []int) { 3296 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP(), []int{12, 1} 3297} 3298 3299func (x *KeyUsage_ExtendedKeyUsageOptions) GetServerAuth() bool { 3300 if x != nil { 3301 return x.ServerAuth 3302 } 3303 return false 3304} 3305 3306func (x *KeyUsage_ExtendedKeyUsageOptions) GetClientAuth() bool { 3307 if x != nil { 3308 return x.ClientAuth 3309 } 3310 return false 3311} 3312 3313func (x *KeyUsage_ExtendedKeyUsageOptions) GetCodeSigning() bool { 3314 if x != nil { 3315 return x.CodeSigning 3316 } 3317 return false 3318} 3319 3320func (x *KeyUsage_ExtendedKeyUsageOptions) GetEmailProtection() bool { 3321 if x != nil { 3322 return x.EmailProtection 3323 } 3324 return false 3325} 3326 3327func (x *KeyUsage_ExtendedKeyUsageOptions) GetTimeStamping() bool { 3328 if x != nil { 3329 return x.TimeStamping 3330 } 3331 return false 3332} 3333 3334func (x *KeyUsage_ExtendedKeyUsageOptions) GetOcspSigning() bool { 3335 if x != nil { 3336 return x.OcspSigning 3337 } 3338 return false 3339} 3340 3341var File_google_cloud_security_privateca_v1beta1_resources_proto protoreflect.FileDescriptor 3342 3343var file_google_cloud_security_privateca_v1beta1_resources_proto_rawDesc = []byte{ 3344 0x0a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 3345 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 3346 0x61, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 3347 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3348 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 3349 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 3350 0x61, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 3351 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 3352 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 3353 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 3354 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 3355 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 3356 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 3357 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 3358 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 3359 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 3360 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 3361 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc7, 0x21, 3362 0x0a, 0x14, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 3363 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 3364 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 3365 0x5e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 3366 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 3367 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 3368 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 3369 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 3370 0x65, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 3371 0x5e, 0x0a, 0x04, 0x74, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 3372 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 3373 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 3374 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 3375 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x69, 0x65, 3376 0x72, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x74, 0x69, 0x65, 0x72, 0x12, 3377 0x5a, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 3378 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 3379 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 3380 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 3381 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x06, 0xe0, 0x41, 0x02, 3382 0xe0, 0x41, 0x05, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x08, 0x6c, 3383 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 3384 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 3385 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6c, 3386 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x6f, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x73, 3387 0x70, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3388 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 3389 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 3390 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 3391 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 3392 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 3393 0x07, 0x6b, 0x65, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x8c, 0x01, 0x0a, 0x12, 0x63, 0x65, 0x72, 3394 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 3395 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3396 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 3397 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3398 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 3399 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 3400 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 3401 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 3402 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x7a, 0x0a, 0x0f, 0x69, 0x73, 0x73, 0x75, 0x69, 3403 0x6e, 0x67, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 3404 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3405 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 3406 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 3407 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 3408 0x49, 0x73, 0x73, 0x75, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x03, 3409 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x69, 0x73, 0x73, 0x75, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 3410 0x6f, 0x6e, 0x73, 0x12, 0x6e, 0x0a, 0x12, 0x73, 0x75, 0x62, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 3411 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 3412 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 3413 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 3414 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6f, 0x72, 0x64, 3415 0x69, 0x6e, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 3416 0x52, 0x11, 0x73, 0x75, 0x62, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 3417 0x66, 0x69, 0x67, 0x12, 0x5e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 3418 0x28, 0x0e, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3419 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 3420 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 3421 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 3422 0x79, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 3423 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x65, 0x6d, 0x5f, 0x63, 0x61, 0x5f, 0x63, 0x65, 3424 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 3425 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x70, 0x65, 0x6d, 0x43, 0x61, 0x43, 0x65, 0x72, 0x74, 3426 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x1b, 0x63, 0x61, 0x5f, 3427 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 3428 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 3429 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 3430 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 3431 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 3432 0x63, 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 3433 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x63, 0x61, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 3434 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 3435 0x22, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x0d, 0x20, 3436 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x09, 0x67, 0x63, 0x73, 0x42, 0x75, 0x63, 3437 0x6b, 0x65, 0x74, 0x12, 0x6e, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 3438 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3439 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 3440 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 3441 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 3442 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 3443 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 3444 0x72, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 3445 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3446 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 3447 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 3448 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 3449 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 3450 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 3451 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 3452 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 3453 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 3454 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 3455 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x64, 3456 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x66, 0x0a, 0x06, 0x6c, 0x61, 0x62, 3457 0x65, 0x6c, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3458 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 3459 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 3460 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 3461 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 3462 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 3463 0x73, 0x1a, 0x7e, 0x0a, 0x0e, 0x49, 0x73, 0x73, 0x75, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 3464 0x6f, 0x6e, 0x73, 0x12, 0x32, 0x0a, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 3465 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 3466 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x61, 3467 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x38, 0x0a, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 3468 0x64, 0x65, 0x5f, 0x63, 0x72, 0x6c, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 3469 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x69, 0x6e, 3470 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x72, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 3471 0x6c, 0x1a, 0x88, 0x0c, 0x0a, 0x1a, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 3472 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 3473 0x12, 0xa1, 0x01, 0x0a, 0x13, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 3474 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6a, 3475 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 3476 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 3477 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 3478 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x65, 3479 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 3480 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 3481 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 3482 0x00, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 3483 0x4c, 0x69, 0x73, 0x74, 0x12, 0x7d, 0x0a, 0x17, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 3484 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 3485 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3486 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 3487 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3488 0x52, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x57, 0x72, 3489 0x61, 0x70, 0x70, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x15, 0x6f, 0x76, 3490 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x61, 0x6c, 3491 0x75, 0x65, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x23, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 3492 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x6f, 0x72, 3493 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 3494 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3495 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 3496 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 3497 0x65, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 3498 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x41, 0x6e, 0x64, 0x4f, 0x72, 0x67, 3499 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x14, 0x61, 0x6c, 3500 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 3501 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x61, 3502 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 3503 0x73, 0x12, 0x97, 0x01, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x73, 0x61, 3504 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3505 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 3506 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 3507 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 3508 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 3509 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 3510 0x63, 0x79, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 3511 0x74, 0x41, 0x6c, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 3512 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x61, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x6d, 3513 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 3514 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 3515 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3516 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4c, 0x69, 3517 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 3518 0x65, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 3519 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x66, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3520 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 3521 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 3522 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 3523 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 3524 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 3525 0x79, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x42, 3526 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x49, 0x73, 0x73, 3527 0x75, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x8c, 0x01, 0x0a, 0x11, 0x41, 3528 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 3529 0x12, 0x77, 0x0a, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 3530 0x69, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 3531 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 3532 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 3533 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x75, 0x73, 0x61, 0x62, 3534 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x42, 3535 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x6f, 0x6e, 3536 0x66, 0x69, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0xcb, 0x02, 0x0a, 0x16, 0x41, 0x6c, 3537 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x74, 0x4e, 3538 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 3539 0x64, 0x6e, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 3540 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x6e, 0x73, 3541 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 3542 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 3543 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x55, 0x72, 0x69, 0x73, 0x12, 0x3b, 0x0a, 3544 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 3545 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 3546 0xe0, 0x41, 0x01, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x45, 0x6d, 0x61, 0x69, 3547 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x6c, 3548 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 3549 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x49, 0x70, 0x73, 3550 0x12, 0x44, 0x0a, 0x1c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x62, 0x69, 3551 0x6e, 0x67, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x73, 3552 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x19, 0x61, 0x6c, 0x6c, 3553 0x6f, 0x77, 0x47, 0x6c, 0x6f, 0x62, 0x62, 0x69, 0x6e, 0x67, 0x44, 0x6e, 0x73, 0x57, 0x69, 0x6c, 3554 0x64, 0x63, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 3555 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x73, 0x61, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 3556 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 3557 0x74, 0x6f, 0x6d, 0x53, 0x61, 0x6e, 0x73, 0x1a, 0x91, 0x01, 0x0a, 0x0d, 0x49, 0x73, 0x73, 0x75, 3558 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x18, 0x61, 0x6c, 0x6c, 3559 0x6f, 0x77, 0x5f, 0x63, 0x73, 0x72, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x69, 0x73, 0x73, 3560 0x75, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 3561 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x73, 0x72, 0x42, 0x61, 0x73, 0x65, 0x64, 0x49, 3562 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x1b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 3563 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x69, 0x73, 3564 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 3565 0x02, 0x52, 0x18, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x61, 3566 0x73, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x63, 3567 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x6d, 0x0a, 0x0a, 3568 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x63, 0x61, 3569 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x63, 3570 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x63, 3571 0x61, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 3572 0x73, 0x73, 0x55, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x63, 0x72, 0x6c, 0x5f, 0x61, 0x63, 0x63, 3573 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 3574 0x72, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x6c, 0x1a, 0xce, 0x01, 0x0a, 0x0e, 3575 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x38, 3576 0x0a, 0x15, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 3577 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 3578 0x41, 0x02, 0x48, 0x00, 0x52, 0x12, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x4b, 0x6d, 0x73, 0x4b, 0x65, 3579 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x74, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 3580 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4f, 0x2e, 0x67, 0x6f, 3581 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 3582 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 3583 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 3584 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x48, 3585 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x03, 0xe0, 0x41, 3586 0x02, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0c, 3587 0x0a, 0x0a, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, 3588 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 3589 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 3590 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 3591 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3e, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 3592 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 3593 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x53, 0x49, 3594 0x47, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x55, 0x42, 0x4f, 0x52, 0x44, 3595 0x49, 0x4e, 0x41, 0x54, 0x45, 0x10, 0x02, 0x22, 0x38, 0x0a, 0x04, 0x54, 0x69, 0x65, 0x72, 0x12, 3596 0x14, 0x0a, 0x10, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 3597 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x52, 3598 0x49, 0x53, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x56, 0x4f, 0x50, 0x53, 0x10, 3599 0x02, 0x22, 0x67, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 3600 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 3601 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 3602 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 3603 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x49, 3604 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 3605 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x22, 0xfc, 0x01, 0x0a, 0x11, 0x53, 3606 0x69, 0x67, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 3607 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 3608 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 3609 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x53, 0x41, 0x5f, 0x50, 0x53, 0x53, 3610 0x5f, 0x32, 0x30, 0x34, 0x38, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x01, 0x12, 0x17, 3611 0x0a, 0x13, 0x52, 0x53, 0x41, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x33, 0x30, 0x37, 0x32, 0x5f, 0x53, 3612 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x53, 0x41, 0x5f, 0x50, 3613 0x53, 0x53, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x03, 3614 0x12, 0x19, 0x0a, 0x15, 0x52, 0x53, 0x41, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x32, 0x30, 3615 0x34, 0x38, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x52, 3616 0x53, 0x41, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x33, 0x30, 0x37, 0x32, 0x5f, 0x53, 0x48, 3617 0x41, 0x32, 0x35, 0x36, 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x53, 0x41, 0x5f, 0x50, 0x4b, 3618 0x43, 0x53, 0x31, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 3619 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x43, 0x5f, 0x50, 0x32, 0x35, 0x36, 0x5f, 0x53, 0x48, 0x41, 3620 0x32, 0x35, 0x36, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x43, 0x5f, 0x50, 0x33, 0x38, 0x34, 3621 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x05, 0x3a, 0x8b, 0x01, 0xea, 0x41, 0x87, 0x01, 3622 0x0a, 0x2d, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3623 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x65, 0x72, 0x74, 0x69, 3624 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 3625 0x56, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 3626 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 3627 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 3628 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 3629 0x7b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x75, 0x74, 3630 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x7d, 0x22, 0x9b, 0x09, 0x0a, 0x19, 0x43, 0x65, 0x72, 0x74, 3631 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 3632 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 3633 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 3634 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 3635 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x73, 0x65, 3636 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x8d, 0x01, 0x0a, 3637 0x14, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 3638 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 3639 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 3640 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 3641 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 3642 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x2e, 3643 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 3644 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 3645 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x07, 3646 0x70, 0x65, 0x6d, 0x5f, 0x63, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 3647 0x41, 0x03, 0x52, 0x06, 0x70, 0x65, 0x6d, 0x43, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x63, 3648 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 3649 0xe0, 0x41, 0x03, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x6c, 0x12, 0x63, 3650 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x48, 0x2e, 3651 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 3652 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 3653 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 3654 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 3655 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 3656 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 3657 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3658 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 3659 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 3660 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 3661 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 3662 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 3663 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 3664 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x6b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 3665 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3666 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 3667 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 3668 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 3669 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 3670 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 3671 0x62, 0x65, 0x6c, 0x73, 0x1a, 0xca, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 3672 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 3673 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3674 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 3675 0x11, 0x68, 0x65, 0x78, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 3676 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x68, 0x65, 0x78, 0x53, 0x65, 0x72, 3677 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x66, 0x0a, 0x11, 0x72, 0x65, 0x76, 3678 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 3679 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3680 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 3681 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 3682 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 3683 0x10, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 3684 0x6e, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 3685 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 3686 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 3687 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3a, 0x0a, 0x05, 3688 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 3689 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 3690 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x55, 0x50, 0x45, 3691 0x52, 0x53, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x3a, 0xca, 0x01, 0xea, 0x41, 0xc6, 0x01, 0x0a, 3692 0x32, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3693 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 3694 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 3695 0x69, 0x73, 0x74, 0x12, 0x8f, 0x01, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 3696 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 3697 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x65, 3698 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 3699 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 3700 0x65, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x7d, 0x2f, 0x63, 0x65, 0x72, 3701 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 3702 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 3703 0x63, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 3704 0x6c, 0x69, 0x73, 0x74, 0x7d, 0x22, 0xd7, 0x09, 0x0a, 0x0b, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 3705 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 3706 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 3707 0x0a, 0x07, 0x70, 0x65, 0x6d, 0x5f, 0x63, 0x73, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 3708 0x03, 0xe0, 0x41, 0x05, 0x48, 0x00, 0x52, 0x06, 0x70, 0x65, 0x6d, 0x43, 0x73, 0x72, 0x12, 0x59, 3709 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 3710 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 3711 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 3712 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 3713 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x48, 3714 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3d, 0x0a, 0x08, 0x6c, 0x69, 0x66, 3715 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 3716 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 3717 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x08, 3718 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x7a, 0x0a, 0x12, 0x72, 0x65, 0x76, 0x6f, 3719 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 3720 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3721 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 3722 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 3723 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x63, 3724 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 3725 0x03, 0x52, 0x11, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 3726 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x65, 0x6d, 0x5f, 0x63, 0x65, 0x72, 0x74, 3727 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 3728 0x41, 0x03, 0x52, 0x0e, 0x70, 0x65, 0x6d, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 3729 0x74, 0x65, 0x12, 0x7d, 0x0a, 0x17, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 3730 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 3731 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3732 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 3733 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 3734 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 3735 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x16, 0x63, 0x65, 0x72, 0x74, 0x69, 3736 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 3737 0x6e, 0x12, 0x37, 0x0a, 0x15, 0x70, 0x65, 0x6d, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 3738 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 3739 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x70, 0x65, 0x6d, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 3740 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 3741 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 3742 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 3743 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 3744 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 3745 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 3746 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3747 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 3748 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5d, 3749 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 3750 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 3751 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 3752 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 3753 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 3754 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0xbe, 0x01, 3755 0x0a, 0x11, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 3756 0x69, 0x6c, 0x73, 0x12, 0x64, 0x0a, 0x10, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 3757 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 3758 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 3759 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 3760 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 3761 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, 3762 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x0f, 0x72, 0x65, 0x76, 3763 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 3764 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3765 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 3766 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x39, 3767 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 3768 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 3769 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 3770 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x9d, 0x01, 0xea, 0x41, 0x99, 0x01, 3771 0x0a, 0x24, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3772 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x65, 0x72, 0x74, 0x69, 3773 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x71, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 3774 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 3775 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 3776 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 3777 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 3778 0x61, 0x74, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x7d, 0x2f, 0x63, 3779 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x65, 0x72, 3780 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x7d, 0x42, 0x14, 0x0a, 0x12, 0x63, 0x65, 0x72, 3781 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 3782 0xc6, 0x04, 0x0a, 0x0e, 0x52, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 3783 0x69, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3784 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x06, 0x76, 3785 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 3786 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 3787 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 3788 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 3789 0x6e, 0x66, 0x69, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 3790 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 3791 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 3792 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 3793 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 3794 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 3795 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 3796 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 3797 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 3798 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 3799 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 3800 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 3801 0x6d, 0x65, 0x12, 0x60, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 3802 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3803 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 3804 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x75, 3805 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x61, 0x62, 0x65, 3806 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 3807 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 3808 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3809 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 3810 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 3811 0x77, 0xea, 0x41, 0x74, 0x0a, 0x27, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 3812 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 3813 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x49, 0x70, 3814 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 3815 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 3816 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x72, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 3817 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 3818 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x7d, 0x22, 0xeb, 0x04, 0x0a, 0x14, 0x52, 0x65, 0x75, 3819 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 3820 0x73, 0x12, 0x53, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 3821 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3822 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 3823 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4b, 3824 0x65, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6b, 0x65, 3825 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x6b, 0x0a, 0x0a, 0x63, 0x61, 0x5f, 0x6f, 0x70, 0x74, 3826 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 3827 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 3828 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 3829 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 3830 0x66, 0x69, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x43, 0x61, 0x4f, 0x70, 0x74, 0x69, 3831 0x6f, 0x6e, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x61, 0x4f, 0x70, 0x74, 0x69, 3832 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 3833 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3834 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 3835 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 3836 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 3837 0x09, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x61, 0x69, 3838 0x61, 0x5f, 0x6f, 0x63, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x04, 3839 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x61, 0x69, 0x61, 0x4f, 0x63, 3840 0x73, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x70, 0x0a, 0x15, 0x61, 0x64, 0x64, 3841 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 3842 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3843 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 3844 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 3845 0x61, 0x31, 0x2e, 0x58, 0x35, 0x30, 0x39, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 3846 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 3847 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x98, 0x01, 0x0a, 0x09, 3848 0x43, 0x61, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x69, 0x73, 0x5f, 3849 0x63, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3850 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 3851 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x69, 0x73, 0x43, 0x61, 0x12, 3852 0x55, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x70, 0x61, 3853 0x74, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 3854 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 3855 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 3856 0x01, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x50, 0x61, 0x74, 0x68, 3857 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd4, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x75, 0x73, 0x61, 3858 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 3859 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 3860 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 3861 0x52, 0x0e, 0x72, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 3862 0x12, 0x7a, 0x0a, 0x16, 0x72, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 3863 0x66, 0x69, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 3864 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3865 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 3866 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x75, 0x73, 0x61, 3867 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 3868 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 3869 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 3870 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xb4, 0x02, 3871 0x0a, 0x11, 0x53, 0x75, 0x62, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 3872 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x15, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 3873 0x74, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 3874 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x14, 0x63, 0x65, 0x72, 0x74, 0x69, 3875 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 3876 0x82, 0x01, 0x0a, 0x10, 0x70, 0x65, 0x6d, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x63, 3877 0x68, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 3878 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 3879 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 3880 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 3881 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x75, 0x62, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 3882 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x03, 0xe0, 3883 0x41, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x65, 0x6d, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x43, 3884 0x68, 0x61, 0x69, 0x6e, 0x1a, 0x48, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x6f, 0x72, 0x64, 0x69, 0x6e, 3885 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x2e, 3886 0x0a, 0x10, 0x70, 0x65, 0x6d, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 3887 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x70, 3888 0x65, 0x6d, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x42, 0x14, 3889 0x0a, 0x12, 0x73, 0x75, 0x62, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 3890 0x6e, 0x66, 0x69, 0x67, 0x22, 0xbd, 0x01, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 3891 0x65, 0x79, 0x12, 0x53, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 3892 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3893 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 3894 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 3895 0x63, 0x4b, 0x65, 0x79, 0x2e, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 3896 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 3897 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x44, 3898 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x45, 0x59, 3899 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 3900 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x45, 0x4d, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x4b, 3901 0x45, 0x59, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x45, 0x4d, 0x5f, 0x45, 0x43, 0x5f, 0x4b, 3902 0x45, 0x59, 0x10, 0x02, 0x22, 0xc1, 0x04, 0x0a, 0x11, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 3903 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x74, 0x0a, 0x0e, 0x73, 0x75, 3904 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 3905 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3906 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 3907 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 3908 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 3909 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 3910 0x02, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 3911 0x12, 0x6c, 0x0a, 0x0f, 0x72, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 3912 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3913 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 3914 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 3915 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 3916 0x69, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 3917 0x72, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x56, 3918 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 3919 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3920 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 3921 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75, 0x62, 3922 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x75, 0x62, 3923 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x1a, 0xef, 0x01, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6a, 0x65, 3924 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 3925 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3926 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 3927 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 3928 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 3929 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 3930 0x6d, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 3931 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 3932 0x67, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x6c, 0x74, 0x5f, 0x6e, 3933 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3934 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 3935 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 3936 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x74, 0x4e, 0x61, 3937 0x6d, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 3938 0x74, 0x41, 0x6c, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xe1, 0x0a, 0x0a, 0x16, 0x43, 0x65, 0x72, 3939 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 3940 0x69, 0x6f, 0x6e, 0x12, 0x83, 0x01, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 3941 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 3942 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3943 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 3944 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 3945 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 3946 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 3947 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 3948 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 3949 0x66, 0x69, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 3950 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3951 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 3952 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x75, 0x73, 0x61, 3953 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 3954 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x51, 0x0a, 3955 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 3956 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3957 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 3958 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x6c, 3959 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 3960 0x12, 0x6b, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 3961 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3962 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 3963 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 3964 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x65, 3965 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x52, 3966 0x0c, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x6f, 0x0a, 3967 0x10, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 3968 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3969 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 3970 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 3971 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 3972 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x52, 0x0e, 3973 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x36, 3974 0x0a, 0x17, 0x63, 0x72, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 3975 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 3976 0x15, 0x63, 0x72, 0x6c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 3977 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x1c, 0x61, 0x69, 0x61, 0x5f, 0x69, 0x73, 3978 0x73, 0x75, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 3979 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x19, 0x61, 0x69, 3980 0x61, 0x49, 0x73, 0x73, 0x75, 0x69, 0x6e, 0x67, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 3981 0x61, 0x74, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x81, 0x01, 0x0a, 0x10, 0x63, 0x65, 0x72, 0x74, 3982 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 3983 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3984 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 3985 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 3986 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 3987 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x46, 3988 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x52, 0x0f, 0x63, 0x65, 0x72, 0x74, 3989 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x1a, 0xce, 0x03, 0x0a, 0x12, 3990 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 3991 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 3992 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3993 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 3994 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 3995 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1f, 3996 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 3997 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 3998 0x62, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x6c, 0x74, 0x5f, 0x6e, 3999 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 4000 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 4001 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 4002 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x74, 0x4e, 0x61, 4003 0x6d, 0x65, 0x73, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x74, 0x4e, 4004 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x65, 0x78, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 4005 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 4006 0x68, 0x65, 0x78, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 4007 0x35, 0x0a, 0x08, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 4008 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 4009 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x69, 4010 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x65, 4011 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 4012 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 4013 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 4014 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x6e, 0x6f, 4015 0x74, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 4016 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 4017 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 4018 0x6e, 0x6f, 0x74, 0x41, 0x66, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x23, 0x0a, 0x05, 4019 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 4020 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x6b, 0x65, 0x79, 0x49, 4021 0x64, 0x1a, 0x39, 0x0a, 0x16, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 4022 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 4023 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 4024 0x52, 0x0a, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x48, 0x61, 0x73, 0x68, 0x22, 0x35, 0x0a, 0x08, 4025 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 4026 0x63, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 4027 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x50, 4028 0x61, 0x74, 0x68, 0x22, 0xa0, 0x01, 0x0a, 0x0d, 0x58, 0x35, 0x30, 0x39, 0x45, 0x78, 0x74, 0x65, 4029 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 4030 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4031 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 4032 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 4033 0x61, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 4034 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x08, 0x63, 0x72, 4035 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 4036 0x02, 0x52, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x05, 0x76, 4037 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 4038 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc1, 0x07, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x55, 0x73, 4039 0x61, 0x67, 0x65, 0x12, 0x67, 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 4040 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 4041 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 4042 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 4043 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4b, 4044 0x65, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 4045 0x62, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x77, 0x0a, 0x12, 4046 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x73, 0x61, 4047 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4048 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 4049 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 4050 0x61, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 4051 0x6e, 0x64, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 4052 0x6f, 0x6e, 0x73, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x4b, 0x65, 0x79, 4053 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x70, 0x0a, 0x1b, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 4054 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x73, 4055 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 4056 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 4057 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 4058 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x52, 0x18, 0x75, 4059 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x4b, 0x65, 4060 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x1a, 0xec, 0x02, 0x0a, 0x0f, 0x4b, 0x65, 0x79, 0x55, 4061 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x64, 4062 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 4063 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x53, 4064 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 4065 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 4066 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 4067 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x6b, 0x65, 0x79, 0x5f, 0x65, 4068 0x6e, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 4069 0x08, 0x52, 0x0f, 0x6b, 0x65, 0x79, 0x45, 0x6e, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x6d, 0x65, 4070 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6e, 0x63, 0x69, 0x70, 4071 0x68, 0x65, 0x72, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 4072 0x61, 0x74, 0x61, 0x45, 0x6e, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x6d, 0x65, 0x6e, 0x74, 0x12, 4073 0x23, 0x0a, 0x0d, 0x6b, 0x65, 0x79, 0x5f, 0x61, 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 4074 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6b, 0x65, 0x79, 0x41, 0x67, 0x72, 0x65, 0x65, 4075 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x73, 0x69, 0x67, 4076 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x65, 0x72, 0x74, 0x53, 0x69, 0x67, 4077 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x72, 0x6c, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x07, 0x20, 4078 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x72, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 4079 0x65, 0x6e, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x08, 0x20, 4080 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 4081 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x6f, 0x6e, 4082 0x6c, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x69, 0x70, 0x68, 4083 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x79, 0x1a, 0xf1, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x74, 0x65, 0x6e, 4084 0x64, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 4085 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, 4086 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 4087 0x75, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x75, 4088 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 4089 0x41, 0x75, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x69, 0x67, 4090 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x6f, 0x64, 0x65, 4091 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6d, 0x61, 0x69, 0x6c, 4092 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 4093 0x08, 0x52, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 4094 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 4095 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x53, 4096 0x74, 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x63, 0x73, 0x70, 0x5f, 4097 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6f, 4098 0x63, 0x73, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x81, 0x02, 0x0a, 0x07, 0x53, 4099 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 4100 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 4101 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 4102 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 4103 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 4104 0x13, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 4105 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x72, 0x67, 0x61, 4106 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1a, 4107 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 4108 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 4109 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 4110 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 4111 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 4112 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 4113 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 4114 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xe7, 4115 0x01, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x74, 0x4e, 0x61, 0x6d, 4116 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6e, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 4117 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 4118 0x12, 0x0a, 0x04, 0x75, 0x72, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x75, 4119 0x72, 0x69, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 4120 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6d, 4121 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 4122 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 4123 0x28, 0x09, 0x52, 0x0b, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 4124 0x57, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x73, 0x61, 0x6e, 0x73, 0x18, 0x05, 4125 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 4126 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x69, 4127 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x58, 4128 0x35, 0x30, 0x39, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x75, 4129 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x61, 0x6e, 0x73, 0x2a, 0x87, 0x02, 0x0a, 0x10, 0x52, 0x65, 0x76, 4130 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 4131 0x1d, 0x52, 0x45, 0x56, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x53, 4132 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 4133 0x12, 0x12, 0x0a, 0x0e, 0x4b, 0x45, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x4f, 0x4d, 0x49, 4134 0x53, 0x45, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 4135 0x41, 0x54, 0x45, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 4136 0x4d, 0x50, 0x52, 0x4f, 0x4d, 0x49, 0x53, 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x46, 4137 0x46, 0x49, 0x4c, 0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 4138 0x44, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x55, 0x50, 0x45, 0x52, 0x53, 0x45, 0x44, 0x45, 4139 0x44, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x45, 0x53, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 4140 0x5f, 0x4f, 0x46, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 4141 0x14, 0x0a, 0x10, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x48, 4142 0x4f, 0x4c, 0x44, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x52, 0x49, 0x56, 0x49, 0x4c, 0x45, 4143 0x47, 0x45, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x4e, 0x10, 0x07, 0x12, 0x22, 4144 0x0a, 0x1e, 0x41, 0x54, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x45, 0x5f, 0x41, 0x55, 0x54, 0x48, 4145 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x4f, 0x4d, 0x49, 0x53, 0x45, 4146 0x10, 0x08, 0x42, 0x9f, 0x02, 0x0a, 0x2b, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4147 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 4148 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 4149 0x61, 0x31, 0x42, 0x17, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x61, 0x52, 0x65, 0x73, 4150 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x50, 0x67, 4151 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 4152 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4153 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x65, 0x63, 0x75, 0x72, 4154 0x69, 0x74, 0x79, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0x2f, 0x76, 0x31, 4155 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x63, 0x61, 0xf8, 4156 0x01, 0x01, 0xaa, 0x02, 0x27, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 4157 0x64, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 4158 0x74, 0x65, 0x43, 0x41, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x27, 0x47, 4159 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x53, 0x65, 0x63, 0x75, 4160 0x72, 0x69, 0x74, 0x79, 0x5c, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x41, 0x5c, 0x56, 4161 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x2b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 4162 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 4163 0x3a, 0x3a, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x41, 0x3a, 0x3a, 0x56, 0x31, 0x62, 4164 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 4165} 4166 4167var ( 4168 file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescOnce sync.Once 4169 file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescData = file_google_cloud_security_privateca_v1beta1_resources_proto_rawDesc 4170) 4171 4172func file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescGZIP() []byte { 4173 file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescOnce.Do(func() { 4174 file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescData) 4175 }) 4176 return file_google_cloud_security_privateca_v1beta1_resources_proto_rawDescData 4177} 4178 4179var file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 7) 4180var file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 36) 4181var file_google_cloud_security_privateca_v1beta1_resources_proto_goTypes = []interface{}{ 4182 (RevocationReason)(0), // 0: google.cloud.security.privateca.v1beta1.RevocationReason 4183 (CertificateAuthority_Type)(0), // 1: google.cloud.security.privateca.v1beta1.CertificateAuthority.Type 4184 (CertificateAuthority_Tier)(0), // 2: google.cloud.security.privateca.v1beta1.CertificateAuthority.Tier 4185 (CertificateAuthority_State)(0), // 3: google.cloud.security.privateca.v1beta1.CertificateAuthority.State 4186 (CertificateAuthority_SignHashAlgorithm)(0), // 4: google.cloud.security.privateca.v1beta1.CertificateAuthority.SignHashAlgorithm 4187 (CertificateRevocationList_State)(0), // 5: google.cloud.security.privateca.v1beta1.CertificateRevocationList.State 4188 (PublicKey_KeyType)(0), // 6: google.cloud.security.privateca.v1beta1.PublicKey.KeyType 4189 (*CertificateAuthority)(nil), // 7: google.cloud.security.privateca.v1beta1.CertificateAuthority 4190 (*CertificateRevocationList)(nil), // 8: google.cloud.security.privateca.v1beta1.CertificateRevocationList 4191 (*Certificate)(nil), // 9: google.cloud.security.privateca.v1beta1.Certificate 4192 (*ReusableConfig)(nil), // 10: google.cloud.security.privateca.v1beta1.ReusableConfig 4193 (*ReusableConfigValues)(nil), // 11: google.cloud.security.privateca.v1beta1.ReusableConfigValues 4194 (*ReusableConfigWrapper)(nil), // 12: google.cloud.security.privateca.v1beta1.ReusableConfigWrapper 4195 (*SubordinateConfig)(nil), // 13: google.cloud.security.privateca.v1beta1.SubordinateConfig 4196 (*PublicKey)(nil), // 14: google.cloud.security.privateca.v1beta1.PublicKey 4197 (*CertificateConfig)(nil), // 15: google.cloud.security.privateca.v1beta1.CertificateConfig 4198 (*CertificateDescription)(nil), // 16: google.cloud.security.privateca.v1beta1.CertificateDescription 4199 (*ObjectId)(nil), // 17: google.cloud.security.privateca.v1beta1.ObjectId 4200 (*X509Extension)(nil), // 18: google.cloud.security.privateca.v1beta1.X509Extension 4201 (*KeyUsage)(nil), // 19: google.cloud.security.privateca.v1beta1.KeyUsage 4202 (*Subject)(nil), // 20: google.cloud.security.privateca.v1beta1.Subject 4203 (*SubjectAltNames)(nil), // 21: google.cloud.security.privateca.v1beta1.SubjectAltNames 4204 (*CertificateAuthority_IssuingOptions)(nil), // 22: google.cloud.security.privateca.v1beta1.CertificateAuthority.IssuingOptions 4205 (*CertificateAuthority_CertificateAuthorityPolicy)(nil), // 23: google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy 4206 (*CertificateAuthority_AccessUrls)(nil), // 24: google.cloud.security.privateca.v1beta1.CertificateAuthority.AccessUrls 4207 (*CertificateAuthority_KeyVersionSpec)(nil), // 25: google.cloud.security.privateca.v1beta1.CertificateAuthority.KeyVersionSpec 4208 nil, // 26: google.cloud.security.privateca.v1beta1.CertificateAuthority.LabelsEntry 4209 (*CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList)(nil), // 27: google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedConfigList 4210 (*CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames)(nil), // 28: google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedSubjectAltNames 4211 (*CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes)(nil), // 29: google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.IssuanceModes 4212 (*CertificateRevocationList_RevokedCertificate)(nil), // 30: google.cloud.security.privateca.v1beta1.CertificateRevocationList.RevokedCertificate 4213 nil, // 31: google.cloud.security.privateca.v1beta1.CertificateRevocationList.LabelsEntry 4214 (*Certificate_RevocationDetails)(nil), // 32: google.cloud.security.privateca.v1beta1.Certificate.RevocationDetails 4215 nil, // 33: google.cloud.security.privateca.v1beta1.Certificate.LabelsEntry 4216 nil, // 34: google.cloud.security.privateca.v1beta1.ReusableConfig.LabelsEntry 4217 (*ReusableConfigValues_CaOptions)(nil), // 35: google.cloud.security.privateca.v1beta1.ReusableConfigValues.CaOptions 4218 (*SubordinateConfig_SubordinateConfigChain)(nil), // 36: google.cloud.security.privateca.v1beta1.SubordinateConfig.SubordinateConfigChain 4219 (*CertificateConfig_SubjectConfig)(nil), // 37: google.cloud.security.privateca.v1beta1.CertificateConfig.SubjectConfig 4220 (*CertificateDescription_SubjectDescription)(nil), // 38: google.cloud.security.privateca.v1beta1.CertificateDescription.SubjectDescription 4221 (*CertificateDescription_KeyId)(nil), // 39: google.cloud.security.privateca.v1beta1.CertificateDescription.KeyId 4222 (*CertificateDescription_CertificateFingerprint)(nil), // 40: google.cloud.security.privateca.v1beta1.CertificateDescription.CertificateFingerprint 4223 (*KeyUsage_KeyUsageOptions)(nil), // 41: google.cloud.security.privateca.v1beta1.KeyUsage.KeyUsageOptions 4224 (*KeyUsage_ExtendedKeyUsageOptions)(nil), // 42: google.cloud.security.privateca.v1beta1.KeyUsage.ExtendedKeyUsageOptions 4225 (*durationpb.Duration)(nil), // 43: google.protobuf.Duration 4226 (*timestamppb.Timestamp)(nil), // 44: google.protobuf.Timestamp 4227 (*wrapperspb.BoolValue)(nil), // 45: google.protobuf.BoolValue 4228 (*wrapperspb.Int32Value)(nil), // 46: google.protobuf.Int32Value 4229} 4230var file_google_cloud_security_privateca_v1beta1_resources_proto_depIdxs = []int32{ 4231 1, // 0: google.cloud.security.privateca.v1beta1.CertificateAuthority.type:type_name -> google.cloud.security.privateca.v1beta1.CertificateAuthority.Type 4232 2, // 1: google.cloud.security.privateca.v1beta1.CertificateAuthority.tier:type_name -> google.cloud.security.privateca.v1beta1.CertificateAuthority.Tier 4233 15, // 2: google.cloud.security.privateca.v1beta1.CertificateAuthority.config:type_name -> google.cloud.security.privateca.v1beta1.CertificateConfig 4234 43, // 3: google.cloud.security.privateca.v1beta1.CertificateAuthority.lifetime:type_name -> google.protobuf.Duration 4235 25, // 4: google.cloud.security.privateca.v1beta1.CertificateAuthority.key_spec:type_name -> google.cloud.security.privateca.v1beta1.CertificateAuthority.KeyVersionSpec 4236 23, // 5: google.cloud.security.privateca.v1beta1.CertificateAuthority.certificate_policy:type_name -> google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy 4237 22, // 6: google.cloud.security.privateca.v1beta1.CertificateAuthority.issuing_options:type_name -> google.cloud.security.privateca.v1beta1.CertificateAuthority.IssuingOptions 4238 13, // 7: google.cloud.security.privateca.v1beta1.CertificateAuthority.subordinate_config:type_name -> google.cloud.security.privateca.v1beta1.SubordinateConfig 4239 3, // 8: google.cloud.security.privateca.v1beta1.CertificateAuthority.state:type_name -> google.cloud.security.privateca.v1beta1.CertificateAuthority.State 4240 16, // 9: google.cloud.security.privateca.v1beta1.CertificateAuthority.ca_certificate_descriptions:type_name -> google.cloud.security.privateca.v1beta1.CertificateDescription 4241 24, // 10: google.cloud.security.privateca.v1beta1.CertificateAuthority.access_urls:type_name -> google.cloud.security.privateca.v1beta1.CertificateAuthority.AccessUrls 4242 44, // 11: google.cloud.security.privateca.v1beta1.CertificateAuthority.create_time:type_name -> google.protobuf.Timestamp 4243 44, // 12: google.cloud.security.privateca.v1beta1.CertificateAuthority.update_time:type_name -> google.protobuf.Timestamp 4244 44, // 13: google.cloud.security.privateca.v1beta1.CertificateAuthority.delete_time:type_name -> google.protobuf.Timestamp 4245 26, // 14: google.cloud.security.privateca.v1beta1.CertificateAuthority.labels:type_name -> google.cloud.security.privateca.v1beta1.CertificateAuthority.LabelsEntry 4246 30, // 15: google.cloud.security.privateca.v1beta1.CertificateRevocationList.revoked_certificates:type_name -> google.cloud.security.privateca.v1beta1.CertificateRevocationList.RevokedCertificate 4247 5, // 16: google.cloud.security.privateca.v1beta1.CertificateRevocationList.state:type_name -> google.cloud.security.privateca.v1beta1.CertificateRevocationList.State 4248 44, // 17: google.cloud.security.privateca.v1beta1.CertificateRevocationList.create_time:type_name -> google.protobuf.Timestamp 4249 44, // 18: google.cloud.security.privateca.v1beta1.CertificateRevocationList.update_time:type_name -> google.protobuf.Timestamp 4250 31, // 19: google.cloud.security.privateca.v1beta1.CertificateRevocationList.labels:type_name -> google.cloud.security.privateca.v1beta1.CertificateRevocationList.LabelsEntry 4251 15, // 20: google.cloud.security.privateca.v1beta1.Certificate.config:type_name -> google.cloud.security.privateca.v1beta1.CertificateConfig 4252 43, // 21: google.cloud.security.privateca.v1beta1.Certificate.lifetime:type_name -> google.protobuf.Duration 4253 32, // 22: google.cloud.security.privateca.v1beta1.Certificate.revocation_details:type_name -> google.cloud.security.privateca.v1beta1.Certificate.RevocationDetails 4254 16, // 23: google.cloud.security.privateca.v1beta1.Certificate.certificate_description:type_name -> google.cloud.security.privateca.v1beta1.CertificateDescription 4255 44, // 24: google.cloud.security.privateca.v1beta1.Certificate.create_time:type_name -> google.protobuf.Timestamp 4256 44, // 25: google.cloud.security.privateca.v1beta1.Certificate.update_time:type_name -> google.protobuf.Timestamp 4257 33, // 26: google.cloud.security.privateca.v1beta1.Certificate.labels:type_name -> google.cloud.security.privateca.v1beta1.Certificate.LabelsEntry 4258 11, // 27: google.cloud.security.privateca.v1beta1.ReusableConfig.values:type_name -> google.cloud.security.privateca.v1beta1.ReusableConfigValues 4259 44, // 28: google.cloud.security.privateca.v1beta1.ReusableConfig.create_time:type_name -> google.protobuf.Timestamp 4260 44, // 29: google.cloud.security.privateca.v1beta1.ReusableConfig.update_time:type_name -> google.protobuf.Timestamp 4261 34, // 30: google.cloud.security.privateca.v1beta1.ReusableConfig.labels:type_name -> google.cloud.security.privateca.v1beta1.ReusableConfig.LabelsEntry 4262 19, // 31: google.cloud.security.privateca.v1beta1.ReusableConfigValues.key_usage:type_name -> google.cloud.security.privateca.v1beta1.KeyUsage 4263 35, // 32: google.cloud.security.privateca.v1beta1.ReusableConfigValues.ca_options:type_name -> google.cloud.security.privateca.v1beta1.ReusableConfigValues.CaOptions 4264 17, // 33: google.cloud.security.privateca.v1beta1.ReusableConfigValues.policy_ids:type_name -> google.cloud.security.privateca.v1beta1.ObjectId 4265 18, // 34: google.cloud.security.privateca.v1beta1.ReusableConfigValues.additional_extensions:type_name -> google.cloud.security.privateca.v1beta1.X509Extension 4266 11, // 35: google.cloud.security.privateca.v1beta1.ReusableConfigWrapper.reusable_config_values:type_name -> google.cloud.security.privateca.v1beta1.ReusableConfigValues 4267 36, // 36: google.cloud.security.privateca.v1beta1.SubordinateConfig.pem_issuer_chain:type_name -> google.cloud.security.privateca.v1beta1.SubordinateConfig.SubordinateConfigChain 4268 6, // 37: google.cloud.security.privateca.v1beta1.PublicKey.type:type_name -> google.cloud.security.privateca.v1beta1.PublicKey.KeyType 4269 37, // 38: google.cloud.security.privateca.v1beta1.CertificateConfig.subject_config:type_name -> google.cloud.security.privateca.v1beta1.CertificateConfig.SubjectConfig 4270 12, // 39: google.cloud.security.privateca.v1beta1.CertificateConfig.reusable_config:type_name -> google.cloud.security.privateca.v1beta1.ReusableConfigWrapper 4271 14, // 40: google.cloud.security.privateca.v1beta1.CertificateConfig.public_key:type_name -> google.cloud.security.privateca.v1beta1.PublicKey 4272 38, // 41: google.cloud.security.privateca.v1beta1.CertificateDescription.subject_description:type_name -> google.cloud.security.privateca.v1beta1.CertificateDescription.SubjectDescription 4273 11, // 42: google.cloud.security.privateca.v1beta1.CertificateDescription.config_values:type_name -> google.cloud.security.privateca.v1beta1.ReusableConfigValues 4274 14, // 43: google.cloud.security.privateca.v1beta1.CertificateDescription.public_key:type_name -> google.cloud.security.privateca.v1beta1.PublicKey 4275 39, // 44: google.cloud.security.privateca.v1beta1.CertificateDescription.subject_key_id:type_name -> google.cloud.security.privateca.v1beta1.CertificateDescription.KeyId 4276 39, // 45: google.cloud.security.privateca.v1beta1.CertificateDescription.authority_key_id:type_name -> google.cloud.security.privateca.v1beta1.CertificateDescription.KeyId 4277 40, // 46: google.cloud.security.privateca.v1beta1.CertificateDescription.cert_fingerprint:type_name -> google.cloud.security.privateca.v1beta1.CertificateDescription.CertificateFingerprint 4278 17, // 47: google.cloud.security.privateca.v1beta1.X509Extension.object_id:type_name -> google.cloud.security.privateca.v1beta1.ObjectId 4279 41, // 48: google.cloud.security.privateca.v1beta1.KeyUsage.base_key_usage:type_name -> google.cloud.security.privateca.v1beta1.KeyUsage.KeyUsageOptions 4280 42, // 49: google.cloud.security.privateca.v1beta1.KeyUsage.extended_key_usage:type_name -> google.cloud.security.privateca.v1beta1.KeyUsage.ExtendedKeyUsageOptions 4281 17, // 50: google.cloud.security.privateca.v1beta1.KeyUsage.unknown_extended_key_usages:type_name -> google.cloud.security.privateca.v1beta1.ObjectId 4282 18, // 51: google.cloud.security.privateca.v1beta1.SubjectAltNames.custom_sans:type_name -> google.cloud.security.privateca.v1beta1.X509Extension 4283 27, // 52: google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.allowed_config_list:type_name -> google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedConfigList 4284 12, // 53: google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.overwrite_config_values:type_name -> google.cloud.security.privateca.v1beta1.ReusableConfigWrapper 4285 20, // 54: google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.allowed_locations_and_organizations:type_name -> google.cloud.security.privateca.v1beta1.Subject 4286 28, // 55: google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.allowed_sans:type_name -> google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedSubjectAltNames 4287 43, // 56: google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.maximum_lifetime:type_name -> google.protobuf.Duration 4288 29, // 57: google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.allowed_issuance_modes:type_name -> google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.IssuanceModes 4289 4, // 58: google.cloud.security.privateca.v1beta1.CertificateAuthority.KeyVersionSpec.algorithm:type_name -> google.cloud.security.privateca.v1beta1.CertificateAuthority.SignHashAlgorithm 4290 12, // 59: google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedConfigList.allowed_config_values:type_name -> google.cloud.security.privateca.v1beta1.ReusableConfigWrapper 4291 0, // 60: google.cloud.security.privateca.v1beta1.CertificateRevocationList.RevokedCertificate.revocation_reason:type_name -> google.cloud.security.privateca.v1beta1.RevocationReason 4292 0, // 61: google.cloud.security.privateca.v1beta1.Certificate.RevocationDetails.revocation_state:type_name -> google.cloud.security.privateca.v1beta1.RevocationReason 4293 44, // 62: google.cloud.security.privateca.v1beta1.Certificate.RevocationDetails.revocation_time:type_name -> google.protobuf.Timestamp 4294 45, // 63: google.cloud.security.privateca.v1beta1.ReusableConfigValues.CaOptions.is_ca:type_name -> google.protobuf.BoolValue 4295 46, // 64: google.cloud.security.privateca.v1beta1.ReusableConfigValues.CaOptions.max_issuer_path_length:type_name -> google.protobuf.Int32Value 4296 20, // 65: google.cloud.security.privateca.v1beta1.CertificateConfig.SubjectConfig.subject:type_name -> google.cloud.security.privateca.v1beta1.Subject 4297 21, // 66: google.cloud.security.privateca.v1beta1.CertificateConfig.SubjectConfig.subject_alt_name:type_name -> google.cloud.security.privateca.v1beta1.SubjectAltNames 4298 20, // 67: google.cloud.security.privateca.v1beta1.CertificateDescription.SubjectDescription.subject:type_name -> google.cloud.security.privateca.v1beta1.Subject 4299 21, // 68: google.cloud.security.privateca.v1beta1.CertificateDescription.SubjectDescription.subject_alt_name:type_name -> google.cloud.security.privateca.v1beta1.SubjectAltNames 4300 43, // 69: google.cloud.security.privateca.v1beta1.CertificateDescription.SubjectDescription.lifetime:type_name -> google.protobuf.Duration 4301 44, // 70: google.cloud.security.privateca.v1beta1.CertificateDescription.SubjectDescription.not_before_time:type_name -> google.protobuf.Timestamp 4302 44, // 71: google.cloud.security.privateca.v1beta1.CertificateDescription.SubjectDescription.not_after_time:type_name -> google.protobuf.Timestamp 4303 72, // [72:72] is the sub-list for method output_type 4304 72, // [72:72] is the sub-list for method input_type 4305 72, // [72:72] is the sub-list for extension type_name 4306 72, // [72:72] is the sub-list for extension extendee 4307 0, // [0:72] is the sub-list for field type_name 4308} 4309 4310func init() { file_google_cloud_security_privateca_v1beta1_resources_proto_init() } 4311func file_google_cloud_security_privateca_v1beta1_resources_proto_init() { 4312 if File_google_cloud_security_privateca_v1beta1_resources_proto != nil { 4313 return 4314 } 4315 if !protoimpl.UnsafeEnabled { 4316 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 4317 switch v := v.(*CertificateAuthority); i { 4318 case 0: 4319 return &v.state 4320 case 1: 4321 return &v.sizeCache 4322 case 2: 4323 return &v.unknownFields 4324 default: 4325 return nil 4326 } 4327 } 4328 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 4329 switch v := v.(*CertificateRevocationList); i { 4330 case 0: 4331 return &v.state 4332 case 1: 4333 return &v.sizeCache 4334 case 2: 4335 return &v.unknownFields 4336 default: 4337 return nil 4338 } 4339 } 4340 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 4341 switch v := v.(*Certificate); i { 4342 case 0: 4343 return &v.state 4344 case 1: 4345 return &v.sizeCache 4346 case 2: 4347 return &v.unknownFields 4348 default: 4349 return nil 4350 } 4351 } 4352 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 4353 switch v := v.(*ReusableConfig); i { 4354 case 0: 4355 return &v.state 4356 case 1: 4357 return &v.sizeCache 4358 case 2: 4359 return &v.unknownFields 4360 default: 4361 return nil 4362 } 4363 } 4364 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 4365 switch v := v.(*ReusableConfigValues); i { 4366 case 0: 4367 return &v.state 4368 case 1: 4369 return &v.sizeCache 4370 case 2: 4371 return &v.unknownFields 4372 default: 4373 return nil 4374 } 4375 } 4376 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 4377 switch v := v.(*ReusableConfigWrapper); i { 4378 case 0: 4379 return &v.state 4380 case 1: 4381 return &v.sizeCache 4382 case 2: 4383 return &v.unknownFields 4384 default: 4385 return nil 4386 } 4387 } 4388 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 4389 switch v := v.(*SubordinateConfig); i { 4390 case 0: 4391 return &v.state 4392 case 1: 4393 return &v.sizeCache 4394 case 2: 4395 return &v.unknownFields 4396 default: 4397 return nil 4398 } 4399 } 4400 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 4401 switch v := v.(*PublicKey); i { 4402 case 0: 4403 return &v.state 4404 case 1: 4405 return &v.sizeCache 4406 case 2: 4407 return &v.unknownFields 4408 default: 4409 return nil 4410 } 4411 } 4412 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 4413 switch v := v.(*CertificateConfig); i { 4414 case 0: 4415 return &v.state 4416 case 1: 4417 return &v.sizeCache 4418 case 2: 4419 return &v.unknownFields 4420 default: 4421 return nil 4422 } 4423 } 4424 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 4425 switch v := v.(*CertificateDescription); i { 4426 case 0: 4427 return &v.state 4428 case 1: 4429 return &v.sizeCache 4430 case 2: 4431 return &v.unknownFields 4432 default: 4433 return nil 4434 } 4435 } 4436 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 4437 switch v := v.(*ObjectId); i { 4438 case 0: 4439 return &v.state 4440 case 1: 4441 return &v.sizeCache 4442 case 2: 4443 return &v.unknownFields 4444 default: 4445 return nil 4446 } 4447 } 4448 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 4449 switch v := v.(*X509Extension); i { 4450 case 0: 4451 return &v.state 4452 case 1: 4453 return &v.sizeCache 4454 case 2: 4455 return &v.unknownFields 4456 default: 4457 return nil 4458 } 4459 } 4460 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 4461 switch v := v.(*KeyUsage); i { 4462 case 0: 4463 return &v.state 4464 case 1: 4465 return &v.sizeCache 4466 case 2: 4467 return &v.unknownFields 4468 default: 4469 return nil 4470 } 4471 } 4472 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 4473 switch v := v.(*Subject); i { 4474 case 0: 4475 return &v.state 4476 case 1: 4477 return &v.sizeCache 4478 case 2: 4479 return &v.unknownFields 4480 default: 4481 return nil 4482 } 4483 } 4484 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 4485 switch v := v.(*SubjectAltNames); i { 4486 case 0: 4487 return &v.state 4488 case 1: 4489 return &v.sizeCache 4490 case 2: 4491 return &v.unknownFields 4492 default: 4493 return nil 4494 } 4495 } 4496 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 4497 switch v := v.(*CertificateAuthority_IssuingOptions); i { 4498 case 0: 4499 return &v.state 4500 case 1: 4501 return &v.sizeCache 4502 case 2: 4503 return &v.unknownFields 4504 default: 4505 return nil 4506 } 4507 } 4508 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 4509 switch v := v.(*CertificateAuthority_CertificateAuthorityPolicy); i { 4510 case 0: 4511 return &v.state 4512 case 1: 4513 return &v.sizeCache 4514 case 2: 4515 return &v.unknownFields 4516 default: 4517 return nil 4518 } 4519 } 4520 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 4521 switch v := v.(*CertificateAuthority_AccessUrls); i { 4522 case 0: 4523 return &v.state 4524 case 1: 4525 return &v.sizeCache 4526 case 2: 4527 return &v.unknownFields 4528 default: 4529 return nil 4530 } 4531 } 4532 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 4533 switch v := v.(*CertificateAuthority_KeyVersionSpec); i { 4534 case 0: 4535 return &v.state 4536 case 1: 4537 return &v.sizeCache 4538 case 2: 4539 return &v.unknownFields 4540 default: 4541 return nil 4542 } 4543 } 4544 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 4545 switch v := v.(*CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList); i { 4546 case 0: 4547 return &v.state 4548 case 1: 4549 return &v.sizeCache 4550 case 2: 4551 return &v.unknownFields 4552 default: 4553 return nil 4554 } 4555 } 4556 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 4557 switch v := v.(*CertificateAuthority_CertificateAuthorityPolicy_AllowedSubjectAltNames); i { 4558 case 0: 4559 return &v.state 4560 case 1: 4561 return &v.sizeCache 4562 case 2: 4563 return &v.unknownFields 4564 default: 4565 return nil 4566 } 4567 } 4568 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 4569 switch v := v.(*CertificateAuthority_CertificateAuthorityPolicy_IssuanceModes); i { 4570 case 0: 4571 return &v.state 4572 case 1: 4573 return &v.sizeCache 4574 case 2: 4575 return &v.unknownFields 4576 default: 4577 return nil 4578 } 4579 } 4580 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 4581 switch v := v.(*CertificateRevocationList_RevokedCertificate); i { 4582 case 0: 4583 return &v.state 4584 case 1: 4585 return &v.sizeCache 4586 case 2: 4587 return &v.unknownFields 4588 default: 4589 return nil 4590 } 4591 } 4592 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 4593 switch v := v.(*Certificate_RevocationDetails); i { 4594 case 0: 4595 return &v.state 4596 case 1: 4597 return &v.sizeCache 4598 case 2: 4599 return &v.unknownFields 4600 default: 4601 return nil 4602 } 4603 } 4604 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 4605 switch v := v.(*ReusableConfigValues_CaOptions); i { 4606 case 0: 4607 return &v.state 4608 case 1: 4609 return &v.sizeCache 4610 case 2: 4611 return &v.unknownFields 4612 default: 4613 return nil 4614 } 4615 } 4616 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 4617 switch v := v.(*SubordinateConfig_SubordinateConfigChain); i { 4618 case 0: 4619 return &v.state 4620 case 1: 4621 return &v.sizeCache 4622 case 2: 4623 return &v.unknownFields 4624 default: 4625 return nil 4626 } 4627 } 4628 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 4629 switch v := v.(*CertificateConfig_SubjectConfig); i { 4630 case 0: 4631 return &v.state 4632 case 1: 4633 return &v.sizeCache 4634 case 2: 4635 return &v.unknownFields 4636 default: 4637 return nil 4638 } 4639 } 4640 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 4641 switch v := v.(*CertificateDescription_SubjectDescription); i { 4642 case 0: 4643 return &v.state 4644 case 1: 4645 return &v.sizeCache 4646 case 2: 4647 return &v.unknownFields 4648 default: 4649 return nil 4650 } 4651 } 4652 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 4653 switch v := v.(*CertificateDescription_KeyId); i { 4654 case 0: 4655 return &v.state 4656 case 1: 4657 return &v.sizeCache 4658 case 2: 4659 return &v.unknownFields 4660 default: 4661 return nil 4662 } 4663 } 4664 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 4665 switch v := v.(*CertificateDescription_CertificateFingerprint); i { 4666 case 0: 4667 return &v.state 4668 case 1: 4669 return &v.sizeCache 4670 case 2: 4671 return &v.unknownFields 4672 default: 4673 return nil 4674 } 4675 } 4676 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 4677 switch v := v.(*KeyUsage_KeyUsageOptions); i { 4678 case 0: 4679 return &v.state 4680 case 1: 4681 return &v.sizeCache 4682 case 2: 4683 return &v.unknownFields 4684 default: 4685 return nil 4686 } 4687 } 4688 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 4689 switch v := v.(*KeyUsage_ExtendedKeyUsageOptions); i { 4690 case 0: 4691 return &v.state 4692 case 1: 4693 return &v.sizeCache 4694 case 2: 4695 return &v.unknownFields 4696 default: 4697 return nil 4698 } 4699 } 4700 } 4701 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[2].OneofWrappers = []interface{}{ 4702 (*Certificate_PemCsr)(nil), 4703 (*Certificate_Config)(nil), 4704 } 4705 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[5].OneofWrappers = []interface{}{ 4706 (*ReusableConfigWrapper_ReusableConfig)(nil), 4707 (*ReusableConfigWrapper_ReusableConfigValues)(nil), 4708 } 4709 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[6].OneofWrappers = []interface{}{ 4710 (*SubordinateConfig_CertificateAuthority)(nil), 4711 (*SubordinateConfig_PemIssuerChain)(nil), 4712 } 4713 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[16].OneofWrappers = []interface{}{ 4714 (*CertificateAuthority_CertificateAuthorityPolicy_AllowedConfigList_)(nil), 4715 (*CertificateAuthority_CertificateAuthorityPolicy_OverwriteConfigValues)(nil), 4716 } 4717 file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes[18].OneofWrappers = []interface{}{ 4718 (*CertificateAuthority_KeyVersionSpec_CloudKmsKeyVersion)(nil), 4719 (*CertificateAuthority_KeyVersionSpec_Algorithm)(nil), 4720 } 4721 type x struct{} 4722 out := protoimpl.TypeBuilder{ 4723 File: protoimpl.DescBuilder{ 4724 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 4725 RawDescriptor: file_google_cloud_security_privateca_v1beta1_resources_proto_rawDesc, 4726 NumEnums: 7, 4727 NumMessages: 36, 4728 NumExtensions: 0, 4729 NumServices: 0, 4730 }, 4731 GoTypes: file_google_cloud_security_privateca_v1beta1_resources_proto_goTypes, 4732 DependencyIndexes: file_google_cloud_security_privateca_v1beta1_resources_proto_depIdxs, 4733 EnumInfos: file_google_cloud_security_privateca_v1beta1_resources_proto_enumTypes, 4734 MessageInfos: file_google_cloud_security_privateca_v1beta1_resources_proto_msgTypes, 4735 }.Build() 4736 File_google_cloud_security_privateca_v1beta1_resources_proto = out.File 4737 file_google_cloud_security_privateca_v1beta1_resources_proto_rawDesc = nil 4738 file_google_cloud_security_privateca_v1beta1_resources_proto_goTypes = nil 4739 file_google_cloud_security_privateca_v1beta1_resources_proto_depIdxs = nil 4740} 4741