1// Copyright 2020 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.22.0 18// protoc v3.11.2 19// source: google/cloud/talent/v4beta1/profile.proto 20 21package talent 22 23import ( 24 reflect "reflect" 25 sync "sync" 26 27 proto "github.com/golang/protobuf/proto" 28 _ "github.com/golang/protobuf/ptypes/duration" 29 timestamp "github.com/golang/protobuf/ptypes/timestamp" 30 wrappers "github.com/golang/protobuf/ptypes/wrappers" 31 _ "google.golang.org/genproto/googleapis/api/annotations" 32 date "google.golang.org/genproto/googleapis/type/date" 33 postaladdress "google.golang.org/genproto/googleapis/type/postaladdress" 34 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 35 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 36) 37 38const ( 39 // Verify that this generated code is sufficiently up-to-date. 40 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 41 // Verify that runtime/protoimpl is sufficiently up-to-date. 42 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 43) 44 45// This is a compile-time assertion that a sufficiently up-to-date version 46// of the legacy proto package is being used. 47const _ = proto.ProtoPackageIsVersion4 48 49// The format of a structured resume. 50type Resume_ResumeType int32 51 52const ( 53 // Default value. 54 Resume_RESUME_TYPE_UNSPECIFIED Resume_ResumeType = 0 55 // The profile contents in HR-XML format. 56 // See https://schemas.liquid-technologies.com/hr-xml/2007-04-15/ for more 57 // information about Human Resources XML. 58 Resume_HRXML Resume_ResumeType = 1 59 // Resume type not specified. 60 Resume_OTHER_RESUME_TYPE Resume_ResumeType = 2 61) 62 63// Enum value maps for Resume_ResumeType. 64var ( 65 Resume_ResumeType_name = map[int32]string{ 66 0: "RESUME_TYPE_UNSPECIFIED", 67 1: "HRXML", 68 2: "OTHER_RESUME_TYPE", 69 } 70 Resume_ResumeType_value = map[string]int32{ 71 "RESUME_TYPE_UNSPECIFIED": 0, 72 "HRXML": 1, 73 "OTHER_RESUME_TYPE": 2, 74 } 75) 76 77func (x Resume_ResumeType) Enum() *Resume_ResumeType { 78 p := new(Resume_ResumeType) 79 *p = x 80 return p 81} 82 83func (x Resume_ResumeType) String() string { 84 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 85} 86 87func (Resume_ResumeType) Descriptor() protoreflect.EnumDescriptor { 88 return file_google_cloud_talent_v4beta1_profile_proto_enumTypes[0].Descriptor() 89} 90 91func (Resume_ResumeType) Type() protoreflect.EnumType { 92 return &file_google_cloud_talent_v4beta1_profile_proto_enumTypes[0] 93} 94 95func (x Resume_ResumeType) Number() protoreflect.EnumNumber { 96 return protoreflect.EnumNumber(x) 97} 98 99// Deprecated: Use Resume_ResumeType.Descriptor instead. 100func (Resume_ResumeType) EnumDescriptor() ([]byte, []int) { 101 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{2, 0} 102} 103 104// Enum that represents the type of the telephone. 105type Phone_PhoneType int32 106 107const ( 108 // Default value. 109 Phone_PHONE_TYPE_UNSPECIFIED Phone_PhoneType = 0 110 // A landline. 111 Phone_LANDLINE Phone_PhoneType = 1 112 // A mobile. 113 Phone_MOBILE Phone_PhoneType = 2 114 // A fax. 115 Phone_FAX Phone_PhoneType = 3 116 // A pager. 117 Phone_PAGER Phone_PhoneType = 4 118 // A TTY (test telephone) or TDD (telecommunication device for the deaf). 119 Phone_TTY_OR_TDD Phone_PhoneType = 5 120 // A voicemail. 121 Phone_VOICEMAIL Phone_PhoneType = 6 122 // A virtual telephone number is a number that can be routed to another 123 // number and managed by the user via Web, SMS, IVR, and so on. It is 124 // associated with a particular person, and may be routed to either a MOBILE 125 // or LANDLINE number. The [phone usage][google.cloud.talent.v4beta1.ContactInfoUsage] should 126 // be set to PERSONAL for these phone types. Some more information can be 127 // found here: https://en.wikipedia.org/wiki/Personal_Numbers 128 Phone_VIRTUAL Phone_PhoneType = 7 129 // Voice over IP numbers. This includes TSoIP (Telephony Service over IP). 130 Phone_VOIP Phone_PhoneType = 8 131 // In some regions (e.g. the USA), it is impossible to distinguish between 132 // fixed-line and mobile numbers by looking at the phone number itself. 133 Phone_MOBILE_OR_LANDLINE Phone_PhoneType = 9 134) 135 136// Enum value maps for Phone_PhoneType. 137var ( 138 Phone_PhoneType_name = map[int32]string{ 139 0: "PHONE_TYPE_UNSPECIFIED", 140 1: "LANDLINE", 141 2: "MOBILE", 142 3: "FAX", 143 4: "PAGER", 144 5: "TTY_OR_TDD", 145 6: "VOICEMAIL", 146 7: "VIRTUAL", 147 8: "VOIP", 148 9: "MOBILE_OR_LANDLINE", 149 } 150 Phone_PhoneType_value = map[string]int32{ 151 "PHONE_TYPE_UNSPECIFIED": 0, 152 "LANDLINE": 1, 153 "MOBILE": 2, 154 "FAX": 3, 155 "PAGER": 4, 156 "TTY_OR_TDD": 5, 157 "VOICEMAIL": 6, 158 "VIRTUAL": 7, 159 "VOIP": 8, 160 "MOBILE_OR_LANDLINE": 9, 161 } 162) 163 164func (x Phone_PhoneType) Enum() *Phone_PhoneType { 165 p := new(Phone_PhoneType) 166 *p = x 167 return p 168} 169 170func (x Phone_PhoneType) String() string { 171 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 172} 173 174func (Phone_PhoneType) Descriptor() protoreflect.EnumDescriptor { 175 return file_google_cloud_talent_v4beta1_profile_proto_enumTypes[1].Descriptor() 176} 177 178func (Phone_PhoneType) Type() protoreflect.EnumType { 179 return &file_google_cloud_talent_v4beta1_profile_proto_enumTypes[1] 180} 181 182func (x Phone_PhoneType) Number() protoreflect.EnumNumber { 183 return protoreflect.EnumNumber(x) 184} 185 186// Deprecated: Use Phone_PhoneType.Descriptor instead. 187func (Phone_PhoneType) EnumDescriptor() ([]byte, []int) { 188 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{6, 0} 189} 190 191// A resource that represents the profile for a job candidate (also referred to 192// as a "single-source profile"). 193type Profile struct { 194 state protoimpl.MessageState 195 sizeCache protoimpl.SizeCache 196 unknownFields protoimpl.UnknownFields 197 198 // Required during profile update. 199 // 200 // Resource name assigned to a profile by the API. 201 // 202 // The format is 203 // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}", 204 // for example, "projects/foo/tenants/bar/profiles/baz". 205 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 206 // Profile's id in client system, if available. This value is unique for each 207 // profile inside a tenant. An error is thrown if another profile with the 208 // same external_id is created. 209 // 210 // The maximum number of bytes allowed is 100. 211 ExternalId string `protobuf:"bytes,2,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"` 212 // The source description indicating where the profile is acquired. 213 // 214 // For example, if a candidate profile is acquired from a resume, the user can 215 // input "resume" here to indicate the source. 216 // 217 // The maximum number of bytes allowed is 100. 218 Source string `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"` 219 // The URI set by clients that links to this profile's client-side copy. 220 // 221 // The maximum number of bytes allowed is 4000. 222 Uri string `protobuf:"bytes,4,opt,name=uri,proto3" json:"uri,omitempty"` 223 // The cluster id of the profile to associate with other profile(s) for the 224 // same candidate. 225 // 226 // This field should be generated by the customer. If a value is not provided, 227 // a random UUID is assigned to this field of the profile. 228 // 229 // This is used to link multiple profiles to the same candidate. For example, 230 // a client has a candidate with two profiles, where one was created recently 231 // and the other one was created 5 years ago. These two profiles may be very 232 // different. The clients can create the first profile and get a generated 233 // [group_id][google.cloud.talent.v4beta1.Profile.group_id], and assign it when the second profile is created, 234 // indicating these two profiles are referring to the same candidate. 235 GroupId string `protobuf:"bytes,5,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` 236 // Indicates the hirable status of the candidate. 237 IsHirable *wrappers.BoolValue `protobuf:"bytes,6,opt,name=is_hirable,json=isHirable,proto3" json:"is_hirable,omitempty"` 238 // The timestamp when the profile was first created at this source. 239 CreateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 240 // The timestamp when the profile was last updated at this source. 241 UpdateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 242 // The timestamp when the profile was last updated as a result of a direct or 243 // indirect action by a candidate. 244 // 245 // These actions include: 246 // 247 // * Direct actions such as the candidate submitting a new resume as part of a 248 // job application to the agency, using a self-service tool such as a website 249 // to update their profile, and so on. 250 // * Indirect actions by the candidate such as uploading a resume to a job 251 // board that is collected by the agency through a feed, providing a resume to 252 // a recruiter who then uploads it into the ATS, and so on. 253 // * Updates made to the candidate's profile by the recruiter as a result of 254 // interacting with the candidate (for example adding a skill or work 255 // preference, and so on). Changes to [recruiting_notes][google.cloud.talent.v4beta1.Profile.recruiting_notes] are specifically 256 // excluded from this action type. 257 // 258 // Note: [candidate_update_time][google.cloud.talent.v4beta1.Profile.candidate_update_time] must be greater than or equal to 259 // [resume_update_time][google.cloud.talent.v4beta1.Profile.resume_update_time] or an error is thrown. 260 CandidateUpdateTime *timestamp.Timestamp `protobuf:"bytes,67,opt,name=candidate_update_time,json=candidateUpdateTime,proto3" json:"candidate_update_time,omitempty"` 261 // The timestamp when the candidate's resume was added or updated on the 262 // candidate's profile. Whether that resume was directly uploaded by a 263 // candidate, pulled from a 3rd party job board feed, added by a recruiter, 264 // and so on. 265 // 266 // If this field is updated, it's expected that [resume][google.cloud.talent.v4beta1.Profile.resume] is provided in 267 // the create or update calls. 268 ResumeUpdateTime *timestamp.Timestamp `protobuf:"bytes,68,opt,name=resume_update_time,json=resumeUpdateTime,proto3" json:"resume_update_time,omitempty"` 269 // The resume representing this profile. 270 Resume *Resume `protobuf:"bytes,53,opt,name=resume,proto3" json:"resume,omitempty"` 271 // The names of the candidate this profile references. 272 // 273 // Currently only one person name is supported. 274 PersonNames []*PersonName `protobuf:"bytes,11,rep,name=person_names,json=personNames,proto3" json:"person_names,omitempty"` 275 // The candidate's postal addresses. It's highly recommended to 276 // input this information as accurately as possible to help improve search 277 // quality. Here are some recommendations: 278 // 279 // * Provide [Address.usage][google.cloud.talent.v4beta1.Address.usage] if possible, especially if the address is 280 // PERSONAL. During a search only personal addresses are considered. If there 281 // is no such address, all addresses with unspecified usage are assumed to be 282 // personal. 283 // * Provide [Address.current][google.cloud.talent.v4beta1.Address.current] for the current address if possible. During 284 // a search, only current addresses are considered. If there is no such 285 // address, all addresses are assumed to be current. 286 // 287 // When displaying a candidate's addresses, it is sometimes desirable to limit 288 // the number of addresses shown. In these cases we recommend that you display 289 // the addresses in the following order of priority: 290 // 1. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL and [Address.current][google.cloud.talent.v4beta1.Address.current] is true. 291 // 2. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL and [Address.current][google.cloud.talent.v4beta1.Address.current] is false or not 292 // set. 293 // 3. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is CONTACT_INFO_USAGE_UNSPECIFIED and 294 // [Address.current][google.cloud.talent.v4beta1.Address.current] is true. 295 // 4. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is CONTACT_INFO_USAGE_UNSPECIFIED and 296 // [Address.current][google.cloud.talent.v4beta1.Address.current] is false or not set. 297 Addresses []*Address `protobuf:"bytes,12,rep,name=addresses,proto3" json:"addresses,omitempty"` 298 // The candidate's email addresses. 299 EmailAddresses []*Email `protobuf:"bytes,13,rep,name=email_addresses,json=emailAddresses,proto3" json:"email_addresses,omitempty"` 300 // The candidate's phone number(s). 301 PhoneNumbers []*Phone `protobuf:"bytes,14,rep,name=phone_numbers,json=phoneNumbers,proto3" json:"phone_numbers,omitempty"` 302 // The candidate's personal URIs. 303 PersonalUris []*PersonalUri `protobuf:"bytes,15,rep,name=personal_uris,json=personalUris,proto3" json:"personal_uris,omitempty"` 304 // Available contact information besides [addresses][google.cloud.talent.v4beta1.Profile.addresses], [email_addresses][google.cloud.talent.v4beta1.Profile.email_addresses], 305 // [phone_numbers][google.cloud.talent.v4beta1.Profile.phone_numbers] and [personal_uris][google.cloud.talent.v4beta1.Profile.personal_uris]. For example, Hang-out, Skype. 306 AdditionalContactInfo []*AdditionalContactInfo `protobuf:"bytes,16,rep,name=additional_contact_info,json=additionalContactInfo,proto3" json:"additional_contact_info,omitempty"` 307 // The employment history records of the candidate. It's highly recommended 308 // to input this information as accurately as possible to help improve search 309 // quality. Here are some recommendations: 310 // 311 // * Specify the start and end dates of the employment records. 312 // * List different employment types separately, no matter how minor the 313 // change is. 314 // For example, only job title is changed from "software engineer" to "senior 315 // software engineer". 316 // * Provide [EmploymentRecord.is_current][google.cloud.talent.v4beta1.EmploymentRecord.is_current] for the current employment if 317 // possible. If not, it's inferred from user inputs. 318 // 319 // The limitation for max number of employment records is 100. 320 EmploymentRecords []*EmploymentRecord `protobuf:"bytes,17,rep,name=employment_records,json=employmentRecords,proto3" json:"employment_records,omitempty"` 321 // The education history record of the candidate. It's highly recommended to 322 // input this information as accurately as possible to help improve search 323 // quality. Here are some recommendations: 324 // 325 // * Specify the start and end dates of the education records. 326 // * List each education type separately, no matter how minor the change is. 327 // For example, the profile contains the education experience from the same 328 // school but different degrees. 329 // * Provide [EducationRecord.is_current][google.cloud.talent.v4beta1.EducationRecord.is_current] for the current education if 330 // possible. If not, it's inferred from user inputs. 331 // 332 // The limitation for max number of education records is 100. 333 EducationRecords []*EducationRecord `protobuf:"bytes,18,rep,name=education_records,json=educationRecords,proto3" json:"education_records,omitempty"` 334 // The skill set of the candidate. It's highly recommended to provide as 335 // much information as possible to help improve the search quality. 336 // 337 // The limitation for max number of skills is 500. 338 Skills []*Skill `protobuf:"bytes,19,rep,name=skills,proto3" json:"skills,omitempty"` 339 // The individual or collaborative activities which the candidate has 340 // participated in, for example, open-source projects, class assignments that 341 // aren't listed in [employment_records][google.cloud.talent.v4beta1.Profile.employment_records]. 342 // 343 // The limitation for max number of activities is 50. 344 Activities []*Activity `protobuf:"bytes,20,rep,name=activities,proto3" json:"activities,omitempty"` 345 // The publications published by the candidate. 346 // 347 // The limitation for max number of publications is 50. 348 Publications []*Publication `protobuf:"bytes,21,rep,name=publications,proto3" json:"publications,omitempty"` 349 // The patents acquired by the candidate. 350 Patents []*Patent `protobuf:"bytes,22,rep,name=patents,proto3" json:"patents,omitempty"` 351 // The certifications acquired by the candidate. 352 Certifications []*Certification `protobuf:"bytes,23,rep,name=certifications,proto3" json:"certifications,omitempty"` 353 // Output only. The resource names of the candidate's applications. 354 Applications []string `protobuf:"bytes,47,rep,name=applications,proto3" json:"applications,omitempty"` 355 // Output only. The resource names of the candidate's assignments. 356 Assignments []string `protobuf:"bytes,48,rep,name=assignments,proto3" json:"assignments,omitempty"` 357 // A map of fields to hold both filterable and non-filterable custom profile 358 // attributes that aren't covered by the provided structured fields. See 359 // [CustomAttribute][google.cloud.talent.v4beta1.CustomAttribute] for more details. 360 // 361 // At most 100 filterable and at most 100 unfilterable keys are supported. If 362 // limit is exceeded, an error is thrown. Custom attributes are `unfilterable` 363 // by default. These are filterable when the `filterable` flag is set to 364 // `true`. 365 // 366 // Numeric custom attributes: each key can only map to one numeric value, 367 // otherwise an error is thrown. Client can also filter on numeric custom 368 // attributes using '>', '<' or '=' operators. 369 // 370 // String custom attributes: each key can map up to 50 string values. For 371 // filterable string value, each value has a byte size of no more than 256B. 372 // For unfilterable string values, the maximum byte size of a single key is 373 // 64B. An error is thrown for any request exceeding the limit. 374 // The maximum total byte size is 10KB. 375 CustomAttributes map[string]*CustomAttribute `protobuf:"bytes,26,rep,name=custom_attributes,json=customAttributes,proto3" json:"custom_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 376 // Output only. Indicates if a summarized profile was created as part of the 377 // profile creation API call. This flag does not indicate whether a profile is 378 // searchable or not. 379 Processed bool `protobuf:"varint,27,opt,name=processed,proto3" json:"processed,omitempty"` 380 // Output only. Keyword snippet shows how the search result is related to a 381 // search query. This is only returned in [SearchProfilesResponse][google.cloud.talent.v4beta1.SearchProfilesResponse]. 382 KeywordSnippet string `protobuf:"bytes,28,opt,name=keyword_snippet,json=keywordSnippet,proto3" json:"keyword_snippet,omitempty"` 383 // Output only. Candidate's availability signals. 384 AvailabilitySignals []*AvailabilitySignal `protobuf:"bytes,70,rep,name=availability_signals,json=availabilitySignals,proto3" json:"availability_signals,omitempty"` 385 // Output only. Derived locations of the profile, resolved from [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses]. 386 // 387 // [derived_addresses][google.cloud.talent.v4beta1.Profile.derived_addresses] are exactly matched to [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] in the 388 // same order. 389 DerivedAddresses []*Location `protobuf:"bytes,64,rep,name=derived_addresses,json=derivedAddresses,proto3" json:"derived_addresses,omitempty"` 390} 391 392func (x *Profile) Reset() { 393 *x = Profile{} 394 if protoimpl.UnsafeEnabled { 395 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[0] 396 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 397 ms.StoreMessageInfo(mi) 398 } 399} 400 401func (x *Profile) String() string { 402 return protoimpl.X.MessageStringOf(x) 403} 404 405func (*Profile) ProtoMessage() {} 406 407func (x *Profile) ProtoReflect() protoreflect.Message { 408 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[0] 409 if protoimpl.UnsafeEnabled && x != nil { 410 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 411 if ms.LoadMessageInfo() == nil { 412 ms.StoreMessageInfo(mi) 413 } 414 return ms 415 } 416 return mi.MessageOf(x) 417} 418 419// Deprecated: Use Profile.ProtoReflect.Descriptor instead. 420func (*Profile) Descriptor() ([]byte, []int) { 421 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{0} 422} 423 424func (x *Profile) GetName() string { 425 if x != nil { 426 return x.Name 427 } 428 return "" 429} 430 431func (x *Profile) GetExternalId() string { 432 if x != nil { 433 return x.ExternalId 434 } 435 return "" 436} 437 438func (x *Profile) GetSource() string { 439 if x != nil { 440 return x.Source 441 } 442 return "" 443} 444 445func (x *Profile) GetUri() string { 446 if x != nil { 447 return x.Uri 448 } 449 return "" 450} 451 452func (x *Profile) GetGroupId() string { 453 if x != nil { 454 return x.GroupId 455 } 456 return "" 457} 458 459func (x *Profile) GetIsHirable() *wrappers.BoolValue { 460 if x != nil { 461 return x.IsHirable 462 } 463 return nil 464} 465 466func (x *Profile) GetCreateTime() *timestamp.Timestamp { 467 if x != nil { 468 return x.CreateTime 469 } 470 return nil 471} 472 473func (x *Profile) GetUpdateTime() *timestamp.Timestamp { 474 if x != nil { 475 return x.UpdateTime 476 } 477 return nil 478} 479 480func (x *Profile) GetCandidateUpdateTime() *timestamp.Timestamp { 481 if x != nil { 482 return x.CandidateUpdateTime 483 } 484 return nil 485} 486 487func (x *Profile) GetResumeUpdateTime() *timestamp.Timestamp { 488 if x != nil { 489 return x.ResumeUpdateTime 490 } 491 return nil 492} 493 494func (x *Profile) GetResume() *Resume { 495 if x != nil { 496 return x.Resume 497 } 498 return nil 499} 500 501func (x *Profile) GetPersonNames() []*PersonName { 502 if x != nil { 503 return x.PersonNames 504 } 505 return nil 506} 507 508func (x *Profile) GetAddresses() []*Address { 509 if x != nil { 510 return x.Addresses 511 } 512 return nil 513} 514 515func (x *Profile) GetEmailAddresses() []*Email { 516 if x != nil { 517 return x.EmailAddresses 518 } 519 return nil 520} 521 522func (x *Profile) GetPhoneNumbers() []*Phone { 523 if x != nil { 524 return x.PhoneNumbers 525 } 526 return nil 527} 528 529func (x *Profile) GetPersonalUris() []*PersonalUri { 530 if x != nil { 531 return x.PersonalUris 532 } 533 return nil 534} 535 536func (x *Profile) GetAdditionalContactInfo() []*AdditionalContactInfo { 537 if x != nil { 538 return x.AdditionalContactInfo 539 } 540 return nil 541} 542 543func (x *Profile) GetEmploymentRecords() []*EmploymentRecord { 544 if x != nil { 545 return x.EmploymentRecords 546 } 547 return nil 548} 549 550func (x *Profile) GetEducationRecords() []*EducationRecord { 551 if x != nil { 552 return x.EducationRecords 553 } 554 return nil 555} 556 557func (x *Profile) GetSkills() []*Skill { 558 if x != nil { 559 return x.Skills 560 } 561 return nil 562} 563 564func (x *Profile) GetActivities() []*Activity { 565 if x != nil { 566 return x.Activities 567 } 568 return nil 569} 570 571func (x *Profile) GetPublications() []*Publication { 572 if x != nil { 573 return x.Publications 574 } 575 return nil 576} 577 578func (x *Profile) GetPatents() []*Patent { 579 if x != nil { 580 return x.Patents 581 } 582 return nil 583} 584 585func (x *Profile) GetCertifications() []*Certification { 586 if x != nil { 587 return x.Certifications 588 } 589 return nil 590} 591 592func (x *Profile) GetApplications() []string { 593 if x != nil { 594 return x.Applications 595 } 596 return nil 597} 598 599func (x *Profile) GetAssignments() []string { 600 if x != nil { 601 return x.Assignments 602 } 603 return nil 604} 605 606func (x *Profile) GetCustomAttributes() map[string]*CustomAttribute { 607 if x != nil { 608 return x.CustomAttributes 609 } 610 return nil 611} 612 613func (x *Profile) GetProcessed() bool { 614 if x != nil { 615 return x.Processed 616 } 617 return false 618} 619 620func (x *Profile) GetKeywordSnippet() string { 621 if x != nil { 622 return x.KeywordSnippet 623 } 624 return "" 625} 626 627func (x *Profile) GetAvailabilitySignals() []*AvailabilitySignal { 628 if x != nil { 629 return x.AvailabilitySignals 630 } 631 return nil 632} 633 634func (x *Profile) GetDerivedAddresses() []*Location { 635 if x != nil { 636 return x.DerivedAddresses 637 } 638 return nil 639} 640 641// Candidate availability signal. 642type AvailabilitySignal struct { 643 state protoimpl.MessageState 644 sizeCache protoimpl.SizeCache 645 unknownFields protoimpl.UnknownFields 646 647 // Type of signal. 648 Type AvailabilitySignalType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.talent.v4beta1.AvailabilitySignalType" json:"type,omitempty"` 649 // Timestamp of when the given availability activity last happened. 650 LastUpdateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"` 651 // Indicates if the [last_update_time][google.cloud.talent.v4beta1.AvailabilitySignal.last_update_time] is within 652 // [AvailabilityFilter.range][google.cloud.talent.v4beta1.AvailabilityFilter.range]. 653 // 654 // Returned only in a search response when there is an [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] 655 // in [ProfileQuery.availability_filters][google.cloud.talent.v4beta1.ProfileQuery.availability_filters] where 656 // [signal_type][google.cloud.talent.v4beta1.AvailabilityFilter.signal_type] matches [type][google.cloud.talent.v4beta1.AvailabilitySignal.type]. 657 FilterSatisfied *wrappers.BoolValue `protobuf:"bytes,3,opt,name=filter_satisfied,json=filterSatisfied,proto3" json:"filter_satisfied,omitempty"` 658} 659 660func (x *AvailabilitySignal) Reset() { 661 *x = AvailabilitySignal{} 662 if protoimpl.UnsafeEnabled { 663 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[1] 664 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 665 ms.StoreMessageInfo(mi) 666 } 667} 668 669func (x *AvailabilitySignal) String() string { 670 return protoimpl.X.MessageStringOf(x) 671} 672 673func (*AvailabilitySignal) ProtoMessage() {} 674 675func (x *AvailabilitySignal) ProtoReflect() protoreflect.Message { 676 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[1] 677 if protoimpl.UnsafeEnabled && x != nil { 678 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 679 if ms.LoadMessageInfo() == nil { 680 ms.StoreMessageInfo(mi) 681 } 682 return ms 683 } 684 return mi.MessageOf(x) 685} 686 687// Deprecated: Use AvailabilitySignal.ProtoReflect.Descriptor instead. 688func (*AvailabilitySignal) Descriptor() ([]byte, []int) { 689 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{1} 690} 691 692func (x *AvailabilitySignal) GetType() AvailabilitySignalType { 693 if x != nil { 694 return x.Type 695 } 696 return AvailabilitySignalType_AVAILABILITY_SIGNAL_TYPE_UNSPECIFIED 697} 698 699func (x *AvailabilitySignal) GetLastUpdateTime() *timestamp.Timestamp { 700 if x != nil { 701 return x.LastUpdateTime 702 } 703 return nil 704} 705 706func (x *AvailabilitySignal) GetFilterSatisfied() *wrappers.BoolValue { 707 if x != nil { 708 return x.FilterSatisfied 709 } 710 return nil 711} 712 713// Resource that represents a resume. 714type Resume struct { 715 state protoimpl.MessageState 716 sizeCache protoimpl.SizeCache 717 unknownFields protoimpl.UnknownFields 718 719 // Users can create a profile with only this field field, if [resume_type][google.cloud.talent.v4beta1.Resume.resume_type] 720 // is [HRXML][google.cloud.talent.v4beta1.Resume.ResumeType.HRXML]. For example, the API parses this field and 721 // creates a profile 722 // with all structured fields populated. [EmploymentRecord][google.cloud.talent.v4beta1.EmploymentRecord], 723 // [EducationRecord][google.cloud.talent.v4beta1.EducationRecord], and so on. An error is thrown if this field cannot be 724 // parsed. 725 // 726 // Note that the use of the functionality offered by this field to extract 727 // data from resumes is an Alpha feature and as such is not covered by any 728 // SLA. 729 StructuredResume string `protobuf:"bytes,1,opt,name=structured_resume,json=structuredResume,proto3" json:"structured_resume,omitempty"` 730 // The format of [structured_resume][google.cloud.talent.v4beta1.Resume.structured_resume]. 731 ResumeType Resume_ResumeType `protobuf:"varint,2,opt,name=resume_type,json=resumeType,proto3,enum=google.cloud.talent.v4beta1.Resume_ResumeType" json:"resume_type,omitempty"` 732} 733 734func (x *Resume) Reset() { 735 *x = Resume{} 736 if protoimpl.UnsafeEnabled { 737 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[2] 738 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 739 ms.StoreMessageInfo(mi) 740 } 741} 742 743func (x *Resume) String() string { 744 return protoimpl.X.MessageStringOf(x) 745} 746 747func (*Resume) ProtoMessage() {} 748 749func (x *Resume) ProtoReflect() protoreflect.Message { 750 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[2] 751 if protoimpl.UnsafeEnabled && x != nil { 752 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 753 if ms.LoadMessageInfo() == nil { 754 ms.StoreMessageInfo(mi) 755 } 756 return ms 757 } 758 return mi.MessageOf(x) 759} 760 761// Deprecated: Use Resume.ProtoReflect.Descriptor instead. 762func (*Resume) Descriptor() ([]byte, []int) { 763 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{2} 764} 765 766func (x *Resume) GetStructuredResume() string { 767 if x != nil { 768 return x.StructuredResume 769 } 770 return "" 771} 772 773func (x *Resume) GetResumeType() Resume_ResumeType { 774 if x != nil { 775 return x.ResumeType 776 } 777 return Resume_RESUME_TYPE_UNSPECIFIED 778} 779 780// Resource that represents the name of a person. 781type PersonName struct { 782 state protoimpl.MessageState 783 sizeCache protoimpl.SizeCache 784 unknownFields protoimpl.UnknownFields 785 786 // The name of a person. It can be one of 787 // [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] or 788 // [structured_name][google.cloud.talent.v4beta1.PersonName.structured_name]. 789 // 790 // Types that are assignable to PersonName: 791 // *PersonName_FormattedName 792 // *PersonName_StructuredName 793 PersonName isPersonName_PersonName `protobuf_oneof:"person_name"` 794 // Preferred name for the person. This field is ignored if [structured_name][google.cloud.talent.v4beta1.PersonName.structured_name] 795 // is provided. 796 // 797 // Number of characters allowed is 100. 798 PreferredName string `protobuf:"bytes,3,opt,name=preferred_name,json=preferredName,proto3" json:"preferred_name,omitempty"` 799} 800 801func (x *PersonName) Reset() { 802 *x = PersonName{} 803 if protoimpl.UnsafeEnabled { 804 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[3] 805 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 806 ms.StoreMessageInfo(mi) 807 } 808} 809 810func (x *PersonName) String() string { 811 return protoimpl.X.MessageStringOf(x) 812} 813 814func (*PersonName) ProtoMessage() {} 815 816func (x *PersonName) ProtoReflect() protoreflect.Message { 817 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[3] 818 if protoimpl.UnsafeEnabled && x != nil { 819 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 820 if ms.LoadMessageInfo() == nil { 821 ms.StoreMessageInfo(mi) 822 } 823 return ms 824 } 825 return mi.MessageOf(x) 826} 827 828// Deprecated: Use PersonName.ProtoReflect.Descriptor instead. 829func (*PersonName) Descriptor() ([]byte, []int) { 830 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{3} 831} 832 833func (m *PersonName) GetPersonName() isPersonName_PersonName { 834 if m != nil { 835 return m.PersonName 836 } 837 return nil 838} 839 840func (x *PersonName) GetFormattedName() string { 841 if x, ok := x.GetPersonName().(*PersonName_FormattedName); ok { 842 return x.FormattedName 843 } 844 return "" 845} 846 847func (x *PersonName) GetStructuredName() *PersonName_PersonStructuredName { 848 if x, ok := x.GetPersonName().(*PersonName_StructuredName); ok { 849 return x.StructuredName 850 } 851 return nil 852} 853 854func (x *PersonName) GetPreferredName() string { 855 if x != nil { 856 return x.PreferredName 857 } 858 return "" 859} 860 861type isPersonName_PersonName interface { 862 isPersonName_PersonName() 863} 864 865type PersonName_FormattedName struct { 866 // A string represents a person's full name. For example, "Dr. John Smith". 867 // 868 // Number of characters allowed is 100. 869 FormattedName string `protobuf:"bytes,1,opt,name=formatted_name,json=formattedName,proto3,oneof"` 870} 871 872type PersonName_StructuredName struct { 873 // A person's name in a structured way (last name, first name, suffix, and 874 // so on.) 875 StructuredName *PersonName_PersonStructuredName `protobuf:"bytes,2,opt,name=structured_name,json=structuredName,proto3,oneof"` 876} 877 878func (*PersonName_FormattedName) isPersonName_PersonName() {} 879 880func (*PersonName_StructuredName) isPersonName_PersonName() {} 881 882// Resource that represents a address. 883type Address struct { 884 state protoimpl.MessageState 885 sizeCache protoimpl.SizeCache 886 unknownFields protoimpl.UnknownFields 887 888 // The usage of the address. For example, SCHOOL, WORK, PERSONAL. 889 Usage ContactInfoUsage `protobuf:"varint,1,opt,name=usage,proto3,enum=google.cloud.talent.v4beta1.ContactInfoUsage" json:"usage,omitempty"` 890 // The address of a person. It can be one of 891 // [unstructured_address][google.cloud.talent.v4beta1.Address.unstructured_address] or 892 // [structured_address][google.cloud.talent.v4beta1.Address.structured_address]. 893 // 894 // Types that are assignable to Address: 895 // *Address_UnstructuredAddress 896 // *Address_StructuredAddress 897 Address isAddress_Address `protobuf_oneof:"address"` 898 // Indicates if it's the person's current address. 899 Current *wrappers.BoolValue `protobuf:"bytes,4,opt,name=current,proto3" json:"current,omitempty"` 900} 901 902func (x *Address) Reset() { 903 *x = Address{} 904 if protoimpl.UnsafeEnabled { 905 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[4] 906 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 907 ms.StoreMessageInfo(mi) 908 } 909} 910 911func (x *Address) String() string { 912 return protoimpl.X.MessageStringOf(x) 913} 914 915func (*Address) ProtoMessage() {} 916 917func (x *Address) ProtoReflect() protoreflect.Message { 918 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[4] 919 if protoimpl.UnsafeEnabled && x != nil { 920 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 921 if ms.LoadMessageInfo() == nil { 922 ms.StoreMessageInfo(mi) 923 } 924 return ms 925 } 926 return mi.MessageOf(x) 927} 928 929// Deprecated: Use Address.ProtoReflect.Descriptor instead. 930func (*Address) Descriptor() ([]byte, []int) { 931 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{4} 932} 933 934func (x *Address) GetUsage() ContactInfoUsage { 935 if x != nil { 936 return x.Usage 937 } 938 return ContactInfoUsage_CONTACT_INFO_USAGE_UNSPECIFIED 939} 940 941func (m *Address) GetAddress() isAddress_Address { 942 if m != nil { 943 return m.Address 944 } 945 return nil 946} 947 948func (x *Address) GetUnstructuredAddress() string { 949 if x, ok := x.GetAddress().(*Address_UnstructuredAddress); ok { 950 return x.UnstructuredAddress 951 } 952 return "" 953} 954 955func (x *Address) GetStructuredAddress() *postaladdress.PostalAddress { 956 if x, ok := x.GetAddress().(*Address_StructuredAddress); ok { 957 return x.StructuredAddress 958 } 959 return nil 960} 961 962func (x *Address) GetCurrent() *wrappers.BoolValue { 963 if x != nil { 964 return x.Current 965 } 966 return nil 967} 968 969type isAddress_Address interface { 970 isAddress_Address() 971} 972 973type Address_UnstructuredAddress struct { 974 // Unstructured address. 975 // 976 // For example, "1600 Amphitheatre Pkwy, Mountain View, CA 94043", 977 // "Sunnyvale, California". 978 // 979 // Number of characters allowed is 100. 980 UnstructuredAddress string `protobuf:"bytes,2,opt,name=unstructured_address,json=unstructuredAddress,proto3,oneof"` 981} 982 983type Address_StructuredAddress struct { 984 // Structured address that contains street address, city, state, country, 985 // and so on. 986 StructuredAddress *postaladdress.PostalAddress `protobuf:"bytes,3,opt,name=structured_address,json=structuredAddress,proto3,oneof"` 987} 988 989func (*Address_UnstructuredAddress) isAddress_Address() {} 990 991func (*Address_StructuredAddress) isAddress_Address() {} 992 993// Resource that represents a person's email address. 994type Email struct { 995 state protoimpl.MessageState 996 sizeCache protoimpl.SizeCache 997 unknownFields protoimpl.UnknownFields 998 999 // The usage of the email address. For example, SCHOOL, WORK, PERSONAL. 1000 Usage ContactInfoUsage `protobuf:"varint,1,opt,name=usage,proto3,enum=google.cloud.talent.v4beta1.ContactInfoUsage" json:"usage,omitempty"` 1001 // Email address. 1002 // 1003 // Number of characters allowed is 4,000. 1004 EmailAddress string `protobuf:"bytes,2,opt,name=email_address,json=emailAddress,proto3" json:"email_address,omitempty"` 1005} 1006 1007func (x *Email) Reset() { 1008 *x = Email{} 1009 if protoimpl.UnsafeEnabled { 1010 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[5] 1011 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1012 ms.StoreMessageInfo(mi) 1013 } 1014} 1015 1016func (x *Email) String() string { 1017 return protoimpl.X.MessageStringOf(x) 1018} 1019 1020func (*Email) ProtoMessage() {} 1021 1022func (x *Email) ProtoReflect() protoreflect.Message { 1023 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[5] 1024 if protoimpl.UnsafeEnabled && x != nil { 1025 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1026 if ms.LoadMessageInfo() == nil { 1027 ms.StoreMessageInfo(mi) 1028 } 1029 return ms 1030 } 1031 return mi.MessageOf(x) 1032} 1033 1034// Deprecated: Use Email.ProtoReflect.Descriptor instead. 1035func (*Email) Descriptor() ([]byte, []int) { 1036 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{5} 1037} 1038 1039func (x *Email) GetUsage() ContactInfoUsage { 1040 if x != nil { 1041 return x.Usage 1042 } 1043 return ContactInfoUsage_CONTACT_INFO_USAGE_UNSPECIFIED 1044} 1045 1046func (x *Email) GetEmailAddress() string { 1047 if x != nil { 1048 return x.EmailAddress 1049 } 1050 return "" 1051} 1052 1053// Resource that represents a person's telephone number. 1054type Phone struct { 1055 state protoimpl.MessageState 1056 sizeCache protoimpl.SizeCache 1057 unknownFields protoimpl.UnknownFields 1058 1059 // The usage of the phone. For example, SCHOOL, WORK, PERSONAL. 1060 Usage ContactInfoUsage `protobuf:"varint,1,opt,name=usage,proto3,enum=google.cloud.talent.v4beta1.ContactInfoUsage" json:"usage,omitempty"` 1061 // The phone type. For example, LANDLINE, MOBILE, FAX. 1062 Type Phone_PhoneType `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.talent.v4beta1.Phone_PhoneType" json:"type,omitempty"` 1063 // Phone number. 1064 // 1065 // Any phone formats are supported and only exact matches are performed on 1066 // searches. For example, if a phone number in profile is provided in the 1067 // format of "(xxx)xxx-xxxx", in profile searches the same phone format 1068 // has to be provided. 1069 // 1070 // Number of characters allowed is 20. 1071 Number string `protobuf:"bytes,3,opt,name=number,proto3" json:"number,omitempty"` 1072 // When this number is available. Any descriptive string is expected. 1073 // 1074 // Number of characters allowed is 100. 1075 WhenAvailable string `protobuf:"bytes,4,opt,name=when_available,json=whenAvailable,proto3" json:"when_available,omitempty"` 1076} 1077 1078func (x *Phone) Reset() { 1079 *x = Phone{} 1080 if protoimpl.UnsafeEnabled { 1081 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[6] 1082 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1083 ms.StoreMessageInfo(mi) 1084 } 1085} 1086 1087func (x *Phone) String() string { 1088 return protoimpl.X.MessageStringOf(x) 1089} 1090 1091func (*Phone) ProtoMessage() {} 1092 1093func (x *Phone) ProtoReflect() protoreflect.Message { 1094 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[6] 1095 if protoimpl.UnsafeEnabled && x != nil { 1096 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1097 if ms.LoadMessageInfo() == nil { 1098 ms.StoreMessageInfo(mi) 1099 } 1100 return ms 1101 } 1102 return mi.MessageOf(x) 1103} 1104 1105// Deprecated: Use Phone.ProtoReflect.Descriptor instead. 1106func (*Phone) Descriptor() ([]byte, []int) { 1107 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{6} 1108} 1109 1110func (x *Phone) GetUsage() ContactInfoUsage { 1111 if x != nil { 1112 return x.Usage 1113 } 1114 return ContactInfoUsage_CONTACT_INFO_USAGE_UNSPECIFIED 1115} 1116 1117func (x *Phone) GetType() Phone_PhoneType { 1118 if x != nil { 1119 return x.Type 1120 } 1121 return Phone_PHONE_TYPE_UNSPECIFIED 1122} 1123 1124func (x *Phone) GetNumber() string { 1125 if x != nil { 1126 return x.Number 1127 } 1128 return "" 1129} 1130 1131func (x *Phone) GetWhenAvailable() string { 1132 if x != nil { 1133 return x.WhenAvailable 1134 } 1135 return "" 1136} 1137 1138// Resource that represents a valid URI for a personal use. 1139type PersonalUri struct { 1140 state protoimpl.MessageState 1141 sizeCache protoimpl.SizeCache 1142 unknownFields protoimpl.UnknownFields 1143 1144 // The personal URI. 1145 // 1146 // Number of characters allowed is 4,000. 1147 Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` 1148} 1149 1150func (x *PersonalUri) Reset() { 1151 *x = PersonalUri{} 1152 if protoimpl.UnsafeEnabled { 1153 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[7] 1154 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1155 ms.StoreMessageInfo(mi) 1156 } 1157} 1158 1159func (x *PersonalUri) String() string { 1160 return protoimpl.X.MessageStringOf(x) 1161} 1162 1163func (*PersonalUri) ProtoMessage() {} 1164 1165func (x *PersonalUri) ProtoReflect() protoreflect.Message { 1166 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[7] 1167 if protoimpl.UnsafeEnabled && x != nil { 1168 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1169 if ms.LoadMessageInfo() == nil { 1170 ms.StoreMessageInfo(mi) 1171 } 1172 return ms 1173 } 1174 return mi.MessageOf(x) 1175} 1176 1177// Deprecated: Use PersonalUri.ProtoReflect.Descriptor instead. 1178func (*PersonalUri) Descriptor() ([]byte, []int) { 1179 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{7} 1180} 1181 1182func (x *PersonalUri) GetUri() string { 1183 if x != nil { 1184 return x.Uri 1185 } 1186 return "" 1187} 1188 1189// Resource that represents contact information other than phone, email, 1190// URI and addresses. 1191type AdditionalContactInfo struct { 1192 state protoimpl.MessageState 1193 sizeCache protoimpl.SizeCache 1194 unknownFields protoimpl.UnknownFields 1195 1196 // The usage of this contact method. For example, SCHOOL, WORK, PERSONAL. 1197 Usage ContactInfoUsage `protobuf:"varint,1,opt,name=usage,proto3,enum=google.cloud.talent.v4beta1.ContactInfoUsage" json:"usage,omitempty"` 1198 // The name of the contact method. 1199 // 1200 // For example, "hangout", "skype". 1201 // 1202 // Number of characters allowed is 100. 1203 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` 1204 // The contact id. 1205 // 1206 // Number of characters allowed is 100. 1207 ContactId string `protobuf:"bytes,3,opt,name=contact_id,json=contactId,proto3" json:"contact_id,omitempty"` 1208} 1209 1210func (x *AdditionalContactInfo) Reset() { 1211 *x = AdditionalContactInfo{} 1212 if protoimpl.UnsafeEnabled { 1213 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[8] 1214 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1215 ms.StoreMessageInfo(mi) 1216 } 1217} 1218 1219func (x *AdditionalContactInfo) String() string { 1220 return protoimpl.X.MessageStringOf(x) 1221} 1222 1223func (*AdditionalContactInfo) ProtoMessage() {} 1224 1225func (x *AdditionalContactInfo) ProtoReflect() protoreflect.Message { 1226 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[8] 1227 if protoimpl.UnsafeEnabled && x != nil { 1228 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1229 if ms.LoadMessageInfo() == nil { 1230 ms.StoreMessageInfo(mi) 1231 } 1232 return ms 1233 } 1234 return mi.MessageOf(x) 1235} 1236 1237// Deprecated: Use AdditionalContactInfo.ProtoReflect.Descriptor instead. 1238func (*AdditionalContactInfo) Descriptor() ([]byte, []int) { 1239 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{8} 1240} 1241 1242func (x *AdditionalContactInfo) GetUsage() ContactInfoUsage { 1243 if x != nil { 1244 return x.Usage 1245 } 1246 return ContactInfoUsage_CONTACT_INFO_USAGE_UNSPECIFIED 1247} 1248 1249func (x *AdditionalContactInfo) GetName() string { 1250 if x != nil { 1251 return x.Name 1252 } 1253 return "" 1254} 1255 1256func (x *AdditionalContactInfo) GetContactId() string { 1257 if x != nil { 1258 return x.ContactId 1259 } 1260 return "" 1261} 1262 1263// Resource that represents an employment record of a candidate. 1264type EmploymentRecord struct { 1265 state protoimpl.MessageState 1266 sizeCache protoimpl.SizeCache 1267 unknownFields protoimpl.UnknownFields 1268 1269 // Start date of the employment. 1270 StartDate *date.Date `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` 1271 // End date of the employment. 1272 EndDate *date.Date `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` 1273 // The name of the employer company/organization. 1274 // 1275 // For example, "Google", "Alphabet", and so on. 1276 // 1277 // Number of characters allowed is 250. 1278 EmployerName string `protobuf:"bytes,3,opt,name=employer_name,json=employerName,proto3" json:"employer_name,omitempty"` 1279 // The division name of the employment. 1280 // 1281 // For example, division, department, client, and so on. 1282 // 1283 // Number of characters allowed is 100. 1284 DivisionName string `protobuf:"bytes,4,opt,name=division_name,json=divisionName,proto3" json:"division_name,omitempty"` 1285 // The physical address of the employer. 1286 Address *Address `protobuf:"bytes,5,opt,name=address,proto3" json:"address,omitempty"` 1287 // The job title of the employment. 1288 // 1289 // For example, "Software Engineer", "Data Scientist", and so on. 1290 // 1291 // Number of characters allowed is 250. 1292 JobTitle string `protobuf:"bytes,6,opt,name=job_title,json=jobTitle,proto3" json:"job_title,omitempty"` 1293 // The description of job content. 1294 // 1295 // Number of characters allowed is 100,000. 1296 JobDescription string `protobuf:"bytes,7,opt,name=job_description,json=jobDescription,proto3" json:"job_description,omitempty"` 1297 // If the jobs is a supervisor position. 1298 IsSupervisor *wrappers.BoolValue `protobuf:"bytes,8,opt,name=is_supervisor,json=isSupervisor,proto3" json:"is_supervisor,omitempty"` 1299 // If this employment is self-employed. 1300 IsSelfEmployed *wrappers.BoolValue `protobuf:"bytes,9,opt,name=is_self_employed,json=isSelfEmployed,proto3" json:"is_self_employed,omitempty"` 1301 // If this employment is current. 1302 IsCurrent *wrappers.BoolValue `protobuf:"bytes,10,opt,name=is_current,json=isCurrent,proto3" json:"is_current,omitempty"` 1303 // Output only. The job title snippet shows how the [job_title][google.cloud.talent.v4beta1.EmploymentRecord.job_title] is related 1304 // to a search query. It's empty if the [job_title][google.cloud.talent.v4beta1.EmploymentRecord.job_title] isn't related to the 1305 // search query. 1306 JobTitleSnippet string `protobuf:"bytes,11,opt,name=job_title_snippet,json=jobTitleSnippet,proto3" json:"job_title_snippet,omitempty"` 1307 // Output only. The job description snippet shows how the [job_description][google.cloud.talent.v4beta1.EmploymentRecord.job_description] 1308 // is related to a search query. It's empty if the [job_description][google.cloud.talent.v4beta1.EmploymentRecord.job_description] isn't 1309 // related to the search query. 1310 JobDescriptionSnippet string `protobuf:"bytes,12,opt,name=job_description_snippet,json=jobDescriptionSnippet,proto3" json:"job_description_snippet,omitempty"` 1311 // Output only. The employer name snippet shows how the [employer_name][google.cloud.talent.v4beta1.EmploymentRecord.employer_name] is 1312 // related to a search query. It's empty if the [employer_name][google.cloud.talent.v4beta1.EmploymentRecord.employer_name] isn't 1313 // related to the search query. 1314 EmployerNameSnippet string `protobuf:"bytes,13,opt,name=employer_name_snippet,json=employerNameSnippet,proto3" json:"employer_name_snippet,omitempty"` 1315} 1316 1317func (x *EmploymentRecord) Reset() { 1318 *x = EmploymentRecord{} 1319 if protoimpl.UnsafeEnabled { 1320 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[9] 1321 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1322 ms.StoreMessageInfo(mi) 1323 } 1324} 1325 1326func (x *EmploymentRecord) String() string { 1327 return protoimpl.X.MessageStringOf(x) 1328} 1329 1330func (*EmploymentRecord) ProtoMessage() {} 1331 1332func (x *EmploymentRecord) ProtoReflect() protoreflect.Message { 1333 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[9] 1334 if protoimpl.UnsafeEnabled && x != nil { 1335 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1336 if ms.LoadMessageInfo() == nil { 1337 ms.StoreMessageInfo(mi) 1338 } 1339 return ms 1340 } 1341 return mi.MessageOf(x) 1342} 1343 1344// Deprecated: Use EmploymentRecord.ProtoReflect.Descriptor instead. 1345func (*EmploymentRecord) Descriptor() ([]byte, []int) { 1346 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{9} 1347} 1348 1349func (x *EmploymentRecord) GetStartDate() *date.Date { 1350 if x != nil { 1351 return x.StartDate 1352 } 1353 return nil 1354} 1355 1356func (x *EmploymentRecord) GetEndDate() *date.Date { 1357 if x != nil { 1358 return x.EndDate 1359 } 1360 return nil 1361} 1362 1363func (x *EmploymentRecord) GetEmployerName() string { 1364 if x != nil { 1365 return x.EmployerName 1366 } 1367 return "" 1368} 1369 1370func (x *EmploymentRecord) GetDivisionName() string { 1371 if x != nil { 1372 return x.DivisionName 1373 } 1374 return "" 1375} 1376 1377func (x *EmploymentRecord) GetAddress() *Address { 1378 if x != nil { 1379 return x.Address 1380 } 1381 return nil 1382} 1383 1384func (x *EmploymentRecord) GetJobTitle() string { 1385 if x != nil { 1386 return x.JobTitle 1387 } 1388 return "" 1389} 1390 1391func (x *EmploymentRecord) GetJobDescription() string { 1392 if x != nil { 1393 return x.JobDescription 1394 } 1395 return "" 1396} 1397 1398func (x *EmploymentRecord) GetIsSupervisor() *wrappers.BoolValue { 1399 if x != nil { 1400 return x.IsSupervisor 1401 } 1402 return nil 1403} 1404 1405func (x *EmploymentRecord) GetIsSelfEmployed() *wrappers.BoolValue { 1406 if x != nil { 1407 return x.IsSelfEmployed 1408 } 1409 return nil 1410} 1411 1412func (x *EmploymentRecord) GetIsCurrent() *wrappers.BoolValue { 1413 if x != nil { 1414 return x.IsCurrent 1415 } 1416 return nil 1417} 1418 1419func (x *EmploymentRecord) GetJobTitleSnippet() string { 1420 if x != nil { 1421 return x.JobTitleSnippet 1422 } 1423 return "" 1424} 1425 1426func (x *EmploymentRecord) GetJobDescriptionSnippet() string { 1427 if x != nil { 1428 return x.JobDescriptionSnippet 1429 } 1430 return "" 1431} 1432 1433func (x *EmploymentRecord) GetEmployerNameSnippet() string { 1434 if x != nil { 1435 return x.EmployerNameSnippet 1436 } 1437 return "" 1438} 1439 1440// Resource that represents an education record of a candidate. 1441type EducationRecord struct { 1442 state protoimpl.MessageState 1443 sizeCache protoimpl.SizeCache 1444 unknownFields protoimpl.UnknownFields 1445 1446 // The start date of the education. 1447 StartDate *date.Date `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` 1448 // The end date of the education. 1449 EndDate *date.Date `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` 1450 // The expected graduation date if currently pursuing a degree. 1451 ExpectedGraduationDate *date.Date `protobuf:"bytes,3,opt,name=expected_graduation_date,json=expectedGraduationDate,proto3" json:"expected_graduation_date,omitempty"` 1452 // The name of the school or institution. 1453 // 1454 // For example, "Stanford University", "UC Berkeley", and so on. 1455 // 1456 // Number of characters allowed is 250. 1457 SchoolName string `protobuf:"bytes,4,opt,name=school_name,json=schoolName,proto3" json:"school_name,omitempty"` 1458 // The physical address of the education institution. 1459 Address *Address `protobuf:"bytes,5,opt,name=address,proto3" json:"address,omitempty"` 1460 // The degree information. It can be one of 1461 // [degree_description][google.cloud.talent.v4beta1.EducationRecord.degree_description] or 1462 // [structured_degree][google.cloud.talent.v4beta1.EducationRecord.structured_degree]. 1463 // 1464 // Types that are assignable to Degree: 1465 // *EducationRecord_DegreeDescription 1466 // *EducationRecord_StructuredDegree 1467 Degree isEducationRecord_Degree `protobuf_oneof:"degree"` 1468 // The description of the education. 1469 // 1470 // Number of characters allowed is 100,000. 1471 Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"` 1472 // If this education is current. 1473 IsCurrent *wrappers.BoolValue `protobuf:"bytes,9,opt,name=is_current,json=isCurrent,proto3" json:"is_current,omitempty"` 1474 // Output only. The school name snippet shows how the [school_name][google.cloud.talent.v4beta1.EducationRecord.school_name] is related to a 1475 // search query in search result. It's empty if the [school_name][google.cloud.talent.v4beta1.EducationRecord.school_name] isn't 1476 // related to the search query. 1477 SchoolNameSnippet string `protobuf:"bytes,10,opt,name=school_name_snippet,json=schoolNameSnippet,proto3" json:"school_name_snippet,omitempty"` 1478 // Output only. The job description snippet shows how the [Degree][google.cloud.talent.v4beta1.Degree] is related to a search 1479 // query in search result. It's empty if the [Degree][google.cloud.talent.v4beta1.Degree] isn't related to the 1480 // search query. 1481 DegreeSnippet string `protobuf:"bytes,11,opt,name=degree_snippet,json=degreeSnippet,proto3" json:"degree_snippet,omitempty"` 1482} 1483 1484func (x *EducationRecord) Reset() { 1485 *x = EducationRecord{} 1486 if protoimpl.UnsafeEnabled { 1487 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[10] 1488 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1489 ms.StoreMessageInfo(mi) 1490 } 1491} 1492 1493func (x *EducationRecord) String() string { 1494 return protoimpl.X.MessageStringOf(x) 1495} 1496 1497func (*EducationRecord) ProtoMessage() {} 1498 1499func (x *EducationRecord) ProtoReflect() protoreflect.Message { 1500 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[10] 1501 if protoimpl.UnsafeEnabled && x != nil { 1502 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1503 if ms.LoadMessageInfo() == nil { 1504 ms.StoreMessageInfo(mi) 1505 } 1506 return ms 1507 } 1508 return mi.MessageOf(x) 1509} 1510 1511// Deprecated: Use EducationRecord.ProtoReflect.Descriptor instead. 1512func (*EducationRecord) Descriptor() ([]byte, []int) { 1513 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{10} 1514} 1515 1516func (x *EducationRecord) GetStartDate() *date.Date { 1517 if x != nil { 1518 return x.StartDate 1519 } 1520 return nil 1521} 1522 1523func (x *EducationRecord) GetEndDate() *date.Date { 1524 if x != nil { 1525 return x.EndDate 1526 } 1527 return nil 1528} 1529 1530func (x *EducationRecord) GetExpectedGraduationDate() *date.Date { 1531 if x != nil { 1532 return x.ExpectedGraduationDate 1533 } 1534 return nil 1535} 1536 1537func (x *EducationRecord) GetSchoolName() string { 1538 if x != nil { 1539 return x.SchoolName 1540 } 1541 return "" 1542} 1543 1544func (x *EducationRecord) GetAddress() *Address { 1545 if x != nil { 1546 return x.Address 1547 } 1548 return nil 1549} 1550 1551func (m *EducationRecord) GetDegree() isEducationRecord_Degree { 1552 if m != nil { 1553 return m.Degree 1554 } 1555 return nil 1556} 1557 1558func (x *EducationRecord) GetDegreeDescription() string { 1559 if x, ok := x.GetDegree().(*EducationRecord_DegreeDescription); ok { 1560 return x.DegreeDescription 1561 } 1562 return "" 1563} 1564 1565func (x *EducationRecord) GetStructuredDegree() *Degree { 1566 if x, ok := x.GetDegree().(*EducationRecord_StructuredDegree); ok { 1567 return x.StructuredDegree 1568 } 1569 return nil 1570} 1571 1572func (x *EducationRecord) GetDescription() string { 1573 if x != nil { 1574 return x.Description 1575 } 1576 return "" 1577} 1578 1579func (x *EducationRecord) GetIsCurrent() *wrappers.BoolValue { 1580 if x != nil { 1581 return x.IsCurrent 1582 } 1583 return nil 1584} 1585 1586func (x *EducationRecord) GetSchoolNameSnippet() string { 1587 if x != nil { 1588 return x.SchoolNameSnippet 1589 } 1590 return "" 1591} 1592 1593func (x *EducationRecord) GetDegreeSnippet() string { 1594 if x != nil { 1595 return x.DegreeSnippet 1596 } 1597 return "" 1598} 1599 1600type isEducationRecord_Degree interface { 1601 isEducationRecord_Degree() 1602} 1603 1604type EducationRecord_DegreeDescription struct { 1605 // The full description of the degree. 1606 // 1607 // For example, "Master of Science in Computer Science", "B.S in Math". 1608 // 1609 // Number of characters allowed is 100. 1610 DegreeDescription string `protobuf:"bytes,6,opt,name=degree_description,json=degreeDescription,proto3,oneof"` 1611} 1612 1613type EducationRecord_StructuredDegree struct { 1614 // The structured notation of the degree. 1615 StructuredDegree *Degree `protobuf:"bytes,7,opt,name=structured_degree,json=structuredDegree,proto3,oneof"` 1616} 1617 1618func (*EducationRecord_DegreeDescription) isEducationRecord_Degree() {} 1619 1620func (*EducationRecord_StructuredDegree) isEducationRecord_Degree() {} 1621 1622// Resource that represents a degree pursuing or acquired by a candidate. 1623type Degree struct { 1624 state protoimpl.MessageState 1625 sizeCache protoimpl.SizeCache 1626 unknownFields protoimpl.UnknownFields 1627 1628 // ISCED degree type. 1629 DegreeType DegreeType `protobuf:"varint,1,opt,name=degree_type,json=degreeType,proto3,enum=google.cloud.talent.v4beta1.DegreeType" json:"degree_type,omitempty"` 1630 // Full Degree name. 1631 // 1632 // For example, "B.S.", "Master of Arts", and so on. 1633 // 1634 // Number of characters allowed is 100. 1635 DegreeName string `protobuf:"bytes,2,opt,name=degree_name,json=degreeName,proto3" json:"degree_name,omitempty"` 1636 // Fields of study for the degree. 1637 // 1638 // For example, "Computer science", "engineering". 1639 // 1640 // Number of characters allowed is 100. 1641 FieldsOfStudy []string `protobuf:"bytes,3,rep,name=fields_of_study,json=fieldsOfStudy,proto3" json:"fields_of_study,omitempty"` 1642} 1643 1644func (x *Degree) Reset() { 1645 *x = Degree{} 1646 if protoimpl.UnsafeEnabled { 1647 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[11] 1648 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1649 ms.StoreMessageInfo(mi) 1650 } 1651} 1652 1653func (x *Degree) String() string { 1654 return protoimpl.X.MessageStringOf(x) 1655} 1656 1657func (*Degree) ProtoMessage() {} 1658 1659func (x *Degree) ProtoReflect() protoreflect.Message { 1660 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[11] 1661 if protoimpl.UnsafeEnabled && x != nil { 1662 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1663 if ms.LoadMessageInfo() == nil { 1664 ms.StoreMessageInfo(mi) 1665 } 1666 return ms 1667 } 1668 return mi.MessageOf(x) 1669} 1670 1671// Deprecated: Use Degree.ProtoReflect.Descriptor instead. 1672func (*Degree) Descriptor() ([]byte, []int) { 1673 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{11} 1674} 1675 1676func (x *Degree) GetDegreeType() DegreeType { 1677 if x != nil { 1678 return x.DegreeType 1679 } 1680 return DegreeType_DEGREE_TYPE_UNSPECIFIED 1681} 1682 1683func (x *Degree) GetDegreeName() string { 1684 if x != nil { 1685 return x.DegreeName 1686 } 1687 return "" 1688} 1689 1690func (x *Degree) GetFieldsOfStudy() []string { 1691 if x != nil { 1692 return x.FieldsOfStudy 1693 } 1694 return nil 1695} 1696 1697// Resource that represents an individual or collaborative activity participated 1698// in by a candidate, for example, an open-source project, a class assignment, 1699// and so on. 1700type Activity struct { 1701 state protoimpl.MessageState 1702 sizeCache protoimpl.SizeCache 1703 unknownFields protoimpl.UnknownFields 1704 1705 // Activity display name. 1706 // 1707 // Number of characters allowed is 100. 1708 DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 1709 // Activity description. 1710 // 1711 // Number of characters allowed is 100,000. 1712 Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 1713 // Activity URI. 1714 // 1715 // Number of characters allowed is 4,000. 1716 Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"` 1717 // The first creation date of the activity. 1718 CreateDate *date.Date `protobuf:"bytes,4,opt,name=create_date,json=createDate,proto3" json:"create_date,omitempty"` 1719 // The last update date of the activity. 1720 UpdateDate *date.Date `protobuf:"bytes,5,opt,name=update_date,json=updateDate,proto3" json:"update_date,omitempty"` 1721 // A list of team members involved in this activity. 1722 // 1723 // Number of characters allowed is 100. 1724 // 1725 // The limitation for max number of team members is 50. 1726 TeamMembers []string `protobuf:"bytes,6,rep,name=team_members,json=teamMembers,proto3" json:"team_members,omitempty"` 1727 // A list of skills used in this activity. 1728 // 1729 // The limitation for max number of skills used is 50. 1730 SkillsUsed []*Skill `protobuf:"bytes,7,rep,name=skills_used,json=skillsUsed,proto3" json:"skills_used,omitempty"` 1731 // Output only. Activity name snippet shows how the [display_name][google.cloud.talent.v4beta1.Activity.display_name] is related to a search 1732 // query. It's empty if the [display_name][google.cloud.talent.v4beta1.Activity.display_name] isn't related to the search 1733 // query. 1734 ActivityNameSnippet string `protobuf:"bytes,8,opt,name=activity_name_snippet,json=activityNameSnippet,proto3" json:"activity_name_snippet,omitempty"` 1735 // Output only. Activity description snippet shows how the 1736 // [description][google.cloud.talent.v4beta1.Activity.description] is related to a search query. It's empty if the 1737 // [description][google.cloud.talent.v4beta1.Activity.description] isn't related to the search query. 1738 ActivityDescriptionSnippet string `protobuf:"bytes,9,opt,name=activity_description_snippet,json=activityDescriptionSnippet,proto3" json:"activity_description_snippet,omitempty"` 1739 // Output only. Skill used snippet shows how the corresponding 1740 // [skills_used][google.cloud.talent.v4beta1.Activity.skills_used] are related to a search query. It's empty if the 1741 // corresponding [skills_used][google.cloud.talent.v4beta1.Activity.skills_used] are not related to the search query. 1742 SkillsUsedSnippet []string `protobuf:"bytes,10,rep,name=skills_used_snippet,json=skillsUsedSnippet,proto3" json:"skills_used_snippet,omitempty"` 1743} 1744 1745func (x *Activity) Reset() { 1746 *x = Activity{} 1747 if protoimpl.UnsafeEnabled { 1748 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[12] 1749 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1750 ms.StoreMessageInfo(mi) 1751 } 1752} 1753 1754func (x *Activity) String() string { 1755 return protoimpl.X.MessageStringOf(x) 1756} 1757 1758func (*Activity) ProtoMessage() {} 1759 1760func (x *Activity) ProtoReflect() protoreflect.Message { 1761 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[12] 1762 if protoimpl.UnsafeEnabled && x != nil { 1763 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1764 if ms.LoadMessageInfo() == nil { 1765 ms.StoreMessageInfo(mi) 1766 } 1767 return ms 1768 } 1769 return mi.MessageOf(x) 1770} 1771 1772// Deprecated: Use Activity.ProtoReflect.Descriptor instead. 1773func (*Activity) Descriptor() ([]byte, []int) { 1774 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{12} 1775} 1776 1777func (x *Activity) GetDisplayName() string { 1778 if x != nil { 1779 return x.DisplayName 1780 } 1781 return "" 1782} 1783 1784func (x *Activity) GetDescription() string { 1785 if x != nil { 1786 return x.Description 1787 } 1788 return "" 1789} 1790 1791func (x *Activity) GetUri() string { 1792 if x != nil { 1793 return x.Uri 1794 } 1795 return "" 1796} 1797 1798func (x *Activity) GetCreateDate() *date.Date { 1799 if x != nil { 1800 return x.CreateDate 1801 } 1802 return nil 1803} 1804 1805func (x *Activity) GetUpdateDate() *date.Date { 1806 if x != nil { 1807 return x.UpdateDate 1808 } 1809 return nil 1810} 1811 1812func (x *Activity) GetTeamMembers() []string { 1813 if x != nil { 1814 return x.TeamMembers 1815 } 1816 return nil 1817} 1818 1819func (x *Activity) GetSkillsUsed() []*Skill { 1820 if x != nil { 1821 return x.SkillsUsed 1822 } 1823 return nil 1824} 1825 1826func (x *Activity) GetActivityNameSnippet() string { 1827 if x != nil { 1828 return x.ActivityNameSnippet 1829 } 1830 return "" 1831} 1832 1833func (x *Activity) GetActivityDescriptionSnippet() string { 1834 if x != nil { 1835 return x.ActivityDescriptionSnippet 1836 } 1837 return "" 1838} 1839 1840func (x *Activity) GetSkillsUsedSnippet() []string { 1841 if x != nil { 1842 return x.SkillsUsedSnippet 1843 } 1844 return nil 1845} 1846 1847// Resource that represents a publication resource of a candidate. 1848type Publication struct { 1849 state protoimpl.MessageState 1850 sizeCache protoimpl.SizeCache 1851 unknownFields protoimpl.UnknownFields 1852 1853 // A list of author names. 1854 // 1855 // Number of characters allowed is 100. 1856 Authors []string `protobuf:"bytes,1,rep,name=authors,proto3" json:"authors,omitempty"` 1857 // The title of the publication. 1858 // 1859 // Number of characters allowed is 100. 1860 Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` 1861 // The description of the publication. 1862 // 1863 // Number of characters allowed is 100,000. 1864 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 1865 // The journal name of the publication. 1866 // 1867 // Number of characters allowed is 100. 1868 Journal string `protobuf:"bytes,4,opt,name=journal,proto3" json:"journal,omitempty"` 1869 // Volume number. 1870 // 1871 // Number of characters allowed is 100. 1872 Volume string `protobuf:"bytes,5,opt,name=volume,proto3" json:"volume,omitempty"` 1873 // The publisher of the journal. 1874 // 1875 // Number of characters allowed is 100. 1876 Publisher string `protobuf:"bytes,6,opt,name=publisher,proto3" json:"publisher,omitempty"` 1877 // The publication date. 1878 PublicationDate *date.Date `protobuf:"bytes,7,opt,name=publication_date,json=publicationDate,proto3" json:"publication_date,omitempty"` 1879 // The publication type. 1880 // 1881 // Number of characters allowed is 100. 1882 PublicationType string `protobuf:"bytes,8,opt,name=publication_type,json=publicationType,proto3" json:"publication_type,omitempty"` 1883 // ISBN number. 1884 // 1885 // Number of characters allowed is 100. 1886 Isbn string `protobuf:"bytes,9,opt,name=isbn,proto3" json:"isbn,omitempty"` 1887} 1888 1889func (x *Publication) Reset() { 1890 *x = Publication{} 1891 if protoimpl.UnsafeEnabled { 1892 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[13] 1893 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1894 ms.StoreMessageInfo(mi) 1895 } 1896} 1897 1898func (x *Publication) String() string { 1899 return protoimpl.X.MessageStringOf(x) 1900} 1901 1902func (*Publication) ProtoMessage() {} 1903 1904func (x *Publication) ProtoReflect() protoreflect.Message { 1905 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[13] 1906 if protoimpl.UnsafeEnabled && x != nil { 1907 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1908 if ms.LoadMessageInfo() == nil { 1909 ms.StoreMessageInfo(mi) 1910 } 1911 return ms 1912 } 1913 return mi.MessageOf(x) 1914} 1915 1916// Deprecated: Use Publication.ProtoReflect.Descriptor instead. 1917func (*Publication) Descriptor() ([]byte, []int) { 1918 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{13} 1919} 1920 1921func (x *Publication) GetAuthors() []string { 1922 if x != nil { 1923 return x.Authors 1924 } 1925 return nil 1926} 1927 1928func (x *Publication) GetTitle() string { 1929 if x != nil { 1930 return x.Title 1931 } 1932 return "" 1933} 1934 1935func (x *Publication) GetDescription() string { 1936 if x != nil { 1937 return x.Description 1938 } 1939 return "" 1940} 1941 1942func (x *Publication) GetJournal() string { 1943 if x != nil { 1944 return x.Journal 1945 } 1946 return "" 1947} 1948 1949func (x *Publication) GetVolume() string { 1950 if x != nil { 1951 return x.Volume 1952 } 1953 return "" 1954} 1955 1956func (x *Publication) GetPublisher() string { 1957 if x != nil { 1958 return x.Publisher 1959 } 1960 return "" 1961} 1962 1963func (x *Publication) GetPublicationDate() *date.Date { 1964 if x != nil { 1965 return x.PublicationDate 1966 } 1967 return nil 1968} 1969 1970func (x *Publication) GetPublicationType() string { 1971 if x != nil { 1972 return x.PublicationType 1973 } 1974 return "" 1975} 1976 1977func (x *Publication) GetIsbn() string { 1978 if x != nil { 1979 return x.Isbn 1980 } 1981 return "" 1982} 1983 1984// Resource that represents the patent acquired by a candidate. 1985type Patent struct { 1986 state protoimpl.MessageState 1987 sizeCache protoimpl.SizeCache 1988 unknownFields protoimpl.UnknownFields 1989 1990 // Name of the patent. 1991 // 1992 // Number of characters allowed is 100. 1993 DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 1994 // A list of inventors' names. 1995 // 1996 // Number of characters allowed for each is 100. 1997 Inventors []string `protobuf:"bytes,2,rep,name=inventors,proto3" json:"inventors,omitempty"` 1998 // The status of the patent. 1999 // 2000 // Number of characters allowed is 100. 2001 PatentStatus string `protobuf:"bytes,3,opt,name=patent_status,json=patentStatus,proto3" json:"patent_status,omitempty"` 2002 // The date the last time the status of the patent was checked. 2003 PatentStatusDate *date.Date `protobuf:"bytes,4,opt,name=patent_status_date,json=patentStatusDate,proto3" json:"patent_status_date,omitempty"` 2004 // The date that the patent was filed. 2005 PatentFilingDate *date.Date `protobuf:"bytes,5,opt,name=patent_filing_date,json=patentFilingDate,proto3" json:"patent_filing_date,omitempty"` 2006 // The name of the patent office. 2007 // 2008 // Number of characters allowed is 100. 2009 PatentOffice string `protobuf:"bytes,6,opt,name=patent_office,json=patentOffice,proto3" json:"patent_office,omitempty"` 2010 // The number of the patent. 2011 // 2012 // Number of characters allowed is 100. 2013 PatentNumber string `protobuf:"bytes,7,opt,name=patent_number,json=patentNumber,proto3" json:"patent_number,omitempty"` 2014 // The description of the patent. 2015 // 2016 // Number of characters allowed is 100,000. 2017 PatentDescription string `protobuf:"bytes,8,opt,name=patent_description,json=patentDescription,proto3" json:"patent_description,omitempty"` 2018 // The skills used in this patent. 2019 SkillsUsed []*Skill `protobuf:"bytes,9,rep,name=skills_used,json=skillsUsed,proto3" json:"skills_used,omitempty"` 2020} 2021 2022func (x *Patent) Reset() { 2023 *x = Patent{} 2024 if protoimpl.UnsafeEnabled { 2025 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[14] 2026 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2027 ms.StoreMessageInfo(mi) 2028 } 2029} 2030 2031func (x *Patent) String() string { 2032 return protoimpl.X.MessageStringOf(x) 2033} 2034 2035func (*Patent) ProtoMessage() {} 2036 2037func (x *Patent) ProtoReflect() protoreflect.Message { 2038 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[14] 2039 if protoimpl.UnsafeEnabled && x != nil { 2040 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2041 if ms.LoadMessageInfo() == nil { 2042 ms.StoreMessageInfo(mi) 2043 } 2044 return ms 2045 } 2046 return mi.MessageOf(x) 2047} 2048 2049// Deprecated: Use Patent.ProtoReflect.Descriptor instead. 2050func (*Patent) Descriptor() ([]byte, []int) { 2051 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{14} 2052} 2053 2054func (x *Patent) GetDisplayName() string { 2055 if x != nil { 2056 return x.DisplayName 2057 } 2058 return "" 2059} 2060 2061func (x *Patent) GetInventors() []string { 2062 if x != nil { 2063 return x.Inventors 2064 } 2065 return nil 2066} 2067 2068func (x *Patent) GetPatentStatus() string { 2069 if x != nil { 2070 return x.PatentStatus 2071 } 2072 return "" 2073} 2074 2075func (x *Patent) GetPatentStatusDate() *date.Date { 2076 if x != nil { 2077 return x.PatentStatusDate 2078 } 2079 return nil 2080} 2081 2082func (x *Patent) GetPatentFilingDate() *date.Date { 2083 if x != nil { 2084 return x.PatentFilingDate 2085 } 2086 return nil 2087} 2088 2089func (x *Patent) GetPatentOffice() string { 2090 if x != nil { 2091 return x.PatentOffice 2092 } 2093 return "" 2094} 2095 2096func (x *Patent) GetPatentNumber() string { 2097 if x != nil { 2098 return x.PatentNumber 2099 } 2100 return "" 2101} 2102 2103func (x *Patent) GetPatentDescription() string { 2104 if x != nil { 2105 return x.PatentDescription 2106 } 2107 return "" 2108} 2109 2110func (x *Patent) GetSkillsUsed() []*Skill { 2111 if x != nil { 2112 return x.SkillsUsed 2113 } 2114 return nil 2115} 2116 2117// Resource that represents a person's structured name. 2118type PersonName_PersonStructuredName struct { 2119 state protoimpl.MessageState 2120 sizeCache protoimpl.SizeCache 2121 unknownFields protoimpl.UnknownFields 2122 2123 // Given/first name. 2124 // 2125 // It's derived from [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] if not provided. 2126 // 2127 // Number of characters allowed is 100. 2128 GivenName string `protobuf:"bytes,1,opt,name=given_name,json=givenName,proto3" json:"given_name,omitempty"` 2129 // Preferred given/first name or nickname. 2130 // 2131 // Number of characters allowed is 100. 2132 PreferredName string `protobuf:"bytes,6,opt,name=preferred_name,json=preferredName,proto3" json:"preferred_name,omitempty"` 2133 // Middle initial. 2134 // 2135 // It's derived from [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] if not provided. 2136 // 2137 // Number of characters allowed is 20. 2138 MiddleInitial string `protobuf:"bytes,2,opt,name=middle_initial,json=middleInitial,proto3" json:"middle_initial,omitempty"` 2139 // Family/last name. 2140 // 2141 // It's derived from [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] if not provided. 2142 // 2143 // Number of characters allowed is 100. 2144 FamilyName string `protobuf:"bytes,3,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"` 2145 // Suffixes. 2146 // 2147 // Number of characters allowed is 20. 2148 Suffixes []string `protobuf:"bytes,4,rep,name=suffixes,proto3" json:"suffixes,omitempty"` 2149 // Prefixes. 2150 // 2151 // Number of characters allowed is 20. 2152 Prefixes []string `protobuf:"bytes,5,rep,name=prefixes,proto3" json:"prefixes,omitempty"` 2153} 2154 2155func (x *PersonName_PersonStructuredName) Reset() { 2156 *x = PersonName_PersonStructuredName{} 2157 if protoimpl.UnsafeEnabled { 2158 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[16] 2159 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2160 ms.StoreMessageInfo(mi) 2161 } 2162} 2163 2164func (x *PersonName_PersonStructuredName) String() string { 2165 return protoimpl.X.MessageStringOf(x) 2166} 2167 2168func (*PersonName_PersonStructuredName) ProtoMessage() {} 2169 2170func (x *PersonName_PersonStructuredName) ProtoReflect() protoreflect.Message { 2171 mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[16] 2172 if protoimpl.UnsafeEnabled && x != nil { 2173 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2174 if ms.LoadMessageInfo() == nil { 2175 ms.StoreMessageInfo(mi) 2176 } 2177 return ms 2178 } 2179 return mi.MessageOf(x) 2180} 2181 2182// Deprecated: Use PersonName_PersonStructuredName.ProtoReflect.Descriptor instead. 2183func (*PersonName_PersonStructuredName) Descriptor() ([]byte, []int) { 2184 return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{3, 0} 2185} 2186 2187func (x *PersonName_PersonStructuredName) GetGivenName() string { 2188 if x != nil { 2189 return x.GivenName 2190 } 2191 return "" 2192} 2193 2194func (x *PersonName_PersonStructuredName) GetPreferredName() string { 2195 if x != nil { 2196 return x.PreferredName 2197 } 2198 return "" 2199} 2200 2201func (x *PersonName_PersonStructuredName) GetMiddleInitial() string { 2202 if x != nil { 2203 return x.MiddleInitial 2204 } 2205 return "" 2206} 2207 2208func (x *PersonName_PersonStructuredName) GetFamilyName() string { 2209 if x != nil { 2210 return x.FamilyName 2211 } 2212 return "" 2213} 2214 2215func (x *PersonName_PersonStructuredName) GetSuffixes() []string { 2216 if x != nil { 2217 return x.Suffixes 2218 } 2219 return nil 2220} 2221 2222func (x *PersonName_PersonStructuredName) GetPrefixes() []string { 2223 if x != nil { 2224 return x.Prefixes 2225 } 2226 return nil 2227} 2228 2229var File_google_cloud_talent_v4beta1_profile_proto protoreflect.FileDescriptor 2230 2231var file_google_cloud_talent_v4beta1_profile_proto_rawDesc = []byte{ 2232 0x0a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x74, 2233 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 2234 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f, 2235 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 2236 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2237 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 2238 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2239 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 2240 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 2241 0x75, 0x64, 0x2f, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 2242 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 2243 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 2244 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 2245 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 2246 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 2247 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2248 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 2249 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x64, 0x61, 0x74, 2250 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 2251 0x74, 0x79, 0x70, 0x65, 0x2f, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 2252 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2253 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2254 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa6, 0x11, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x66, 2255 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 2256 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 2257 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 2258 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 2259 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 2260 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 2261 0x72, 0x69, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 2262 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x39, 0x0a, 2263 0x0a, 0x69, 0x73, 0x5f, 0x68, 0x69, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 2264 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2265 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x69, 2266 0x73, 0x48, 0x69, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 2267 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 2268 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2269 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 2270 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 2271 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 2272 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 2273 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 2274 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x15, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 2275 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28, 2276 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2277 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x13, 0x63, 2278 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 2279 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 2280 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 2281 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2282 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x72, 0x65, 0x73, 0x75, 2283 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x06, 2284 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 2285 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 2286 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 2287 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x0c, 0x70, 0x65, 0x72, 2288 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 2289 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 2290 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 2291 0x72, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 2292 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 2293 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2294 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 2295 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 2296 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x65, 0x6d, 0x61, 2297 0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 2298 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2299 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 2300 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x0e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 2301 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 2302 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 2303 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 2304 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x68, 0x6f, 0x6e, 2305 0x65, 0x52, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 2306 0x4d, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x72, 0x69, 0x73, 2307 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2308 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 2309 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x72, 0x69, 2310 0x52, 0x0c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x72, 0x69, 0x73, 0x12, 0x6a, 2311 0x0a, 0x17, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 2312 0x74, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 2313 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 2314 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x64, 2315 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 2316 0x6e, 0x66, 0x6f, 0x52, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 2317 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x12, 0x65, 0x6d, 2318 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 2319 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2320 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 2321 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 2322 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x11, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 2323 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x59, 0x0a, 0x11, 0x65, 0x64, 0x75, 0x63, 2324 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x12, 0x20, 2325 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2326 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 2327 0x31, 0x2e, 0x45, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 2328 0x64, 0x52, 0x10, 0x65, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 2329 0x72, 0x64, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x13, 0x20, 2330 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2331 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 2332 0x31, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 2333 0x45, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x14, 0x20, 2334 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2335 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 2336 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 2337 0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 2338 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 2339 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 2340 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 2341 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 2342 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 2343 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2344 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 2345 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x70, 0x61, 0x74, 0x65, 2346 0x6e, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 2347 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 2348 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 2349 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 2350 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 2351 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 2352 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 2353 0x41, 0x03, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2354 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 2355 0x30, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x69, 2356 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x67, 0x0a, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 2357 0x6d, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x1a, 0x20, 0x03, 2358 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2359 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 2360 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 2361 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 2362 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 2363 0x12, 0x21, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x1b, 0x20, 2364 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 2365 0x73, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 2366 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 2367 0x03, 0x52, 0x0e, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 2368 0x74, 0x12, 0x67, 0x0a, 0x14, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 2369 0x79, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32, 2370 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 2371 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x76, 2372 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 2373 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 2374 0x69, 0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x57, 0x0a, 0x11, 0x64, 0x65, 2375 0x72, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 2376 0x40, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2377 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 2378 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 2379 0x03, 0x52, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 2380 0x73, 0x65, 0x73, 0x1a, 0x71, 0x0a, 0x15, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 2381 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 2382 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x42, 2383 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 2384 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 2385 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 2386 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 2387 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x58, 0xea, 0x41, 0x55, 0x0a, 0x1b, 0x6a, 0x6f, 0x62, 2388 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 2389 0x2f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x36, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 2390 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x74, 0x65, 0x6e, 2391 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x7d, 0x2f, 0x70, 0x72, 2392 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x7d, 2393 0x22, 0xea, 0x01, 0x0a, 0x12, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 2394 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x47, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 2395 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2396 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 2397 0x74, 0x61, 0x31, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 2398 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 2399 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 2400 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 2401 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 2402 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 2403 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 2404 0x5f, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 2405 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2406 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x66, 0x69, 2407 0x6c, 0x74, 0x65, 0x72, 0x53, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x22, 0xd3, 0x01, 2408 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x75, 2409 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 2410 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x52, 2411 0x65, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x5f, 2412 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 2413 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 2414 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x2e, 2415 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 2416 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4b, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 2417 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x53, 0x55, 0x4d, 0x45, 0x5f, 0x54, 2418 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 2419 0x00, 0x12, 0x09, 0x0a, 0x05, 0x48, 0x52, 0x58, 0x4d, 0x4c, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 2420 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4d, 0x45, 0x5f, 0x54, 0x59, 0x50, 2421 0x45, 0x10, 0x02, 0x22, 0xb3, 0x03, 0x0a, 0x0a, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 2422 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x5f, 2423 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x6f, 2424 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x67, 0x0a, 0x0f, 0x73, 2425 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 2426 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2427 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 2428 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x50, 0x65, 2429 0x72, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4e, 0x61, 2430 0x6d, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 2431 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 2432 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 2433 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0xdc, 0x01, 0x0a, 0x14, 2434 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 2435 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x5f, 0x6e, 0x61, 2436 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x4e, 2437 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 2438 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, 2439 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x69, 2440 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 2441 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 2442 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 2443 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61, 2444 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 2445 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x1a, 2446 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 2447 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x70, 0x65, 2448 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x91, 0x02, 0x0a, 0x07, 0x41, 0x64, 2449 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 2450 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2451 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 2452 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 2453 0x61, 0x67, 0x65, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x14, 0x75, 0x6e, 2454 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 2455 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x75, 0x6e, 0x73, 0x74, 2456 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 2457 0x4b, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x64, 2458 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 2459 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x61, 0x6c, 2460 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x11, 0x73, 0x74, 0x72, 0x75, 0x63, 2461 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x07, 2462 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 2463 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2464 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 2465 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x71, 0x0a, 2466 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x43, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 2467 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2468 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 2469 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 2470 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 2471 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 2472 0x28, 0x09, 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 2473 0x22, 0xf3, 0x02, 0x0a, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x75, 0x73, 2474 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2475 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 2476 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 2477 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 2478 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 2479 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 2480 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x68, 0x6f, 0x6e, 2481 0x65, 0x2e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 2482 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 2483 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x68, 0x65, 2484 0x6e, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 2485 0x09, 0x52, 0x0d, 0x77, 0x68, 0x65, 0x6e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 2486 0x22, 0xa3, 0x01, 0x0a, 0x09, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 2487 0x0a, 0x16, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 2488 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x41, 2489 0x4e, 0x44, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x42, 0x49, 2490 0x4c, 0x45, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x41, 0x58, 0x10, 0x03, 0x12, 0x09, 0x0a, 2491 0x05, 0x50, 0x41, 0x47, 0x45, 0x52, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x54, 0x59, 0x5f, 2492 0x4f, 0x52, 0x5f, 0x54, 0x44, 0x44, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x4f, 0x49, 0x43, 2493 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x49, 0x52, 0x54, 0x55, 2494 0x41, 0x4c, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x56, 0x4f, 0x49, 0x50, 0x10, 0x08, 0x12, 0x16, 2495 0x0a, 0x12, 0x4d, 0x4f, 0x42, 0x49, 0x4c, 0x45, 0x5f, 0x4f, 0x52, 0x5f, 0x4c, 0x41, 0x4e, 0x44, 2496 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x09, 0x22, 0x1f, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 2497 0x61, 0x6c, 0x55, 0x72, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 2498 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x22, 0x8f, 0x01, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x69, 2499 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 2500 0x6f, 0x12, 0x43, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 2501 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2502 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 2503 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 2504 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 2505 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 2506 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 2507 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x64, 0x22, 0xab, 0x05, 0x0a, 0x10, 0x45, 0x6d, 2508 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x30, 2509 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 2510 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 2511 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 2512 0x12, 0x2c, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 2513 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 2514 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x23, 2515 0x0a, 0x0d, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 2516 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x4e, 2517 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 2518 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x76, 0x69, 2519 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 2520 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2521 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 2522 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 2523 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 2524 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 2525 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x64, 0x65, 0x73, 2526 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 2527 0x6a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 2528 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x18, 2529 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 2530 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 2531 0x65, 0x52, 0x0c, 0x69, 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x12, 2532 0x44, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 2533 0x79, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2534 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 2535 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x69, 0x73, 0x53, 0x65, 0x6c, 0x66, 0x45, 0x6d, 0x70, 2536 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x63, 0x75, 0x72, 0x72, 2537 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2538 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 2539 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x69, 0x73, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 2540 0x12, 0x2f, 0x0a, 0x11, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x73, 0x6e, 2541 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 2542 0x52, 0x0f, 0x6a, 0x6f, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 2543 0x74, 0x12, 0x3b, 0x0a, 0x17, 0x6a, 0x6f, 0x62, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 2544 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 2545 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x6a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x63, 2546 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x12, 0x37, 2547 0x0a, 0x15, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 2548 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 2549 0x41, 0x03, 0x52, 0x13, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 2550 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x22, 0xec, 0x04, 0x0a, 0x0f, 0x45, 0x64, 0x75, 0x63, 2551 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x0a, 0x73, 2552 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 2553 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 2554 0x74, 0x65, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 2555 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 2556 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 2557 0x74, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x18, 0x65, 2558 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x75, 0x61, 0x74, 0x69, 2559 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 2560 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 2561 0x52, 0x16, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x47, 0x72, 0x61, 0x64, 0x75, 0x61, 2562 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x6f, 2563 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 2564 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x64, 0x64, 2565 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 2566 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 2567 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 2568 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2f, 0x0a, 0x12, 0x64, 0x65, 0x67, 2569 0x72, 0x65, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 2570 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x44, 2571 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x11, 0x73, 0x74, 2572 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x18, 2573 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2574 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 2575 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x67, 0x72, 0x65, 0x65, 0x48, 0x00, 0x52, 0x10, 0x73, 0x74, 2576 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x65, 0x67, 0x72, 0x65, 0x65, 0x12, 0x20, 2577 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 2578 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 2579 0x12, 0x39, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x09, 2580 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 2581 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 2582 0x52, 0x09, 0x69, 0x73, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x73, 2583 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 2584 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x73, 2585 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 2586 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 2587 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x64, 2588 0x65, 0x67, 0x72, 0x65, 0x65, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, 2589 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x67, 0x72, 0x65, 2590 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 2591 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2592 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 2593 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x67, 0x72, 0x65, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 2594 0x0a, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 2595 0x65, 0x67, 0x72, 0x65, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 2596 0x52, 0x0a, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 2597 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x75, 0x64, 0x79, 0x18, 2598 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x4f, 0x66, 0x53, 2599 0x74, 0x75, 0x64, 0x79, 0x22, 0xe6, 0x03, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 2600 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 2601 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 2602 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 2603 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 2604 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 2605 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x32, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 2606 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 2607 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 2608 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x0b, 2609 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 2610 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 2611 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 2612 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 2613 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 2614 0x65, 0x72, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x5f, 0x75, 0x73, 2615 0x65, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2616 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 2617 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x0a, 0x73, 0x6b, 2618 0x69, 0x6c, 0x6c, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x69, 2619 0x76, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 2620 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x61, 0x63, 2621 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 2622 0x74, 0x12, 0x45, 0x0a, 0x1c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x65, 2623 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 2624 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1a, 0x61, 0x63, 2625 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 2626 0x6e, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x73, 0x6b, 0x69, 0x6c, 2627 0x6c, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 2628 0x0a, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x73, 0x6b, 0x69, 0x6c, 2629 0x6c, 0x73, 0x55, 0x73, 0x65, 0x64, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x22, 0xac, 0x02, 2630 0x0a, 0x0b, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 2631 0x07, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 2632 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 2633 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 2634 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 2635 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 2636 0x18, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 2637 0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 2638 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 2639 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x06, 2640 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 2641 0x3c, 0x0a, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 2642 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2643 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x70, 0x75, 2644 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 2645 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 2646 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 2647 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x62, 0x6e, 2648 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x73, 0x62, 0x6e, 0x22, 0xae, 0x03, 0x0a, 2649 0x06, 0x50, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 2650 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 2651 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 2652 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x69, 2653 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x65, 2654 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 2655 0x0c, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 2656 0x12, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 2657 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2658 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x10, 0x70, 0x61, 2659 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3f, 2660 0x0a, 0x12, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 2661 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 2662 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x10, 0x70, 2663 0x61, 0x74, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x65, 0x12, 2664 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 2665 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x4f, 0x66, 2666 0x66, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 2667 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x74, 2668 0x65, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x61, 0x74, 2669 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 2670 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x73, 2671 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x0b, 0x73, 0x6b, 0x69, 0x6c, 2672 0x6c, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 2673 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 2674 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 2675 0x6c, 0x52, 0x0a, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x55, 0x73, 0x65, 0x64, 0x42, 0x82, 0x01, 2676 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2677 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 2678 0x31, 0x42, 0x14, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 2679 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2680 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 2681 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 2682 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x34, 2683 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0xa2, 0x02, 0x03, 0x43, 2684 0x54, 0x53, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2685} 2686 2687var ( 2688 file_google_cloud_talent_v4beta1_profile_proto_rawDescOnce sync.Once 2689 file_google_cloud_talent_v4beta1_profile_proto_rawDescData = file_google_cloud_talent_v4beta1_profile_proto_rawDesc 2690) 2691 2692func file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP() []byte { 2693 file_google_cloud_talent_v4beta1_profile_proto_rawDescOnce.Do(func() { 2694 file_google_cloud_talent_v4beta1_profile_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_talent_v4beta1_profile_proto_rawDescData) 2695 }) 2696 return file_google_cloud_talent_v4beta1_profile_proto_rawDescData 2697} 2698 2699var file_google_cloud_talent_v4beta1_profile_proto_enumTypes = make([]protoimpl.EnumInfo, 2) 2700var file_google_cloud_talent_v4beta1_profile_proto_msgTypes = make([]protoimpl.MessageInfo, 17) 2701var file_google_cloud_talent_v4beta1_profile_proto_goTypes = []interface{}{ 2702 (Resume_ResumeType)(0), // 0: google.cloud.talent.v4beta1.Resume.ResumeType 2703 (Phone_PhoneType)(0), // 1: google.cloud.talent.v4beta1.Phone.PhoneType 2704 (*Profile)(nil), // 2: google.cloud.talent.v4beta1.Profile 2705 (*AvailabilitySignal)(nil), // 3: google.cloud.talent.v4beta1.AvailabilitySignal 2706 (*Resume)(nil), // 4: google.cloud.talent.v4beta1.Resume 2707 (*PersonName)(nil), // 5: google.cloud.talent.v4beta1.PersonName 2708 (*Address)(nil), // 6: google.cloud.talent.v4beta1.Address 2709 (*Email)(nil), // 7: google.cloud.talent.v4beta1.Email 2710 (*Phone)(nil), // 8: google.cloud.talent.v4beta1.Phone 2711 (*PersonalUri)(nil), // 9: google.cloud.talent.v4beta1.PersonalUri 2712 (*AdditionalContactInfo)(nil), // 10: google.cloud.talent.v4beta1.AdditionalContactInfo 2713 (*EmploymentRecord)(nil), // 11: google.cloud.talent.v4beta1.EmploymentRecord 2714 (*EducationRecord)(nil), // 12: google.cloud.talent.v4beta1.EducationRecord 2715 (*Degree)(nil), // 13: google.cloud.talent.v4beta1.Degree 2716 (*Activity)(nil), // 14: google.cloud.talent.v4beta1.Activity 2717 (*Publication)(nil), // 15: google.cloud.talent.v4beta1.Publication 2718 (*Patent)(nil), // 16: google.cloud.talent.v4beta1.Patent 2719 nil, // 17: google.cloud.talent.v4beta1.Profile.CustomAttributesEntry 2720 (*PersonName_PersonStructuredName)(nil), // 18: google.cloud.talent.v4beta1.PersonName.PersonStructuredName 2721 (*wrappers.BoolValue)(nil), // 19: google.protobuf.BoolValue 2722 (*timestamp.Timestamp)(nil), // 20: google.protobuf.Timestamp 2723 (*Skill)(nil), // 21: google.cloud.talent.v4beta1.Skill 2724 (*Certification)(nil), // 22: google.cloud.talent.v4beta1.Certification 2725 (*Location)(nil), // 23: google.cloud.talent.v4beta1.Location 2726 (AvailabilitySignalType)(0), // 24: google.cloud.talent.v4beta1.AvailabilitySignalType 2727 (ContactInfoUsage)(0), // 25: google.cloud.talent.v4beta1.ContactInfoUsage 2728 (*postaladdress.PostalAddress)(nil), // 26: google.type.PostalAddress 2729 (*date.Date)(nil), // 27: google.type.Date 2730 (DegreeType)(0), // 28: google.cloud.talent.v4beta1.DegreeType 2731 (*CustomAttribute)(nil), // 29: google.cloud.talent.v4beta1.CustomAttribute 2732} 2733var file_google_cloud_talent_v4beta1_profile_proto_depIdxs = []int32{ 2734 19, // 0: google.cloud.talent.v4beta1.Profile.is_hirable:type_name -> google.protobuf.BoolValue 2735 20, // 1: google.cloud.talent.v4beta1.Profile.create_time:type_name -> google.protobuf.Timestamp 2736 20, // 2: google.cloud.talent.v4beta1.Profile.update_time:type_name -> google.protobuf.Timestamp 2737 20, // 3: google.cloud.talent.v4beta1.Profile.candidate_update_time:type_name -> google.protobuf.Timestamp 2738 20, // 4: google.cloud.talent.v4beta1.Profile.resume_update_time:type_name -> google.protobuf.Timestamp 2739 4, // 5: google.cloud.talent.v4beta1.Profile.resume:type_name -> google.cloud.talent.v4beta1.Resume 2740 5, // 6: google.cloud.talent.v4beta1.Profile.person_names:type_name -> google.cloud.talent.v4beta1.PersonName 2741 6, // 7: google.cloud.talent.v4beta1.Profile.addresses:type_name -> google.cloud.talent.v4beta1.Address 2742 7, // 8: google.cloud.talent.v4beta1.Profile.email_addresses:type_name -> google.cloud.talent.v4beta1.Email 2743 8, // 9: google.cloud.talent.v4beta1.Profile.phone_numbers:type_name -> google.cloud.talent.v4beta1.Phone 2744 9, // 10: google.cloud.talent.v4beta1.Profile.personal_uris:type_name -> google.cloud.talent.v4beta1.PersonalUri 2745 10, // 11: google.cloud.talent.v4beta1.Profile.additional_contact_info:type_name -> google.cloud.talent.v4beta1.AdditionalContactInfo 2746 11, // 12: google.cloud.talent.v4beta1.Profile.employment_records:type_name -> google.cloud.talent.v4beta1.EmploymentRecord 2747 12, // 13: google.cloud.talent.v4beta1.Profile.education_records:type_name -> google.cloud.talent.v4beta1.EducationRecord 2748 21, // 14: google.cloud.talent.v4beta1.Profile.skills:type_name -> google.cloud.talent.v4beta1.Skill 2749 14, // 15: google.cloud.talent.v4beta1.Profile.activities:type_name -> google.cloud.talent.v4beta1.Activity 2750 15, // 16: google.cloud.talent.v4beta1.Profile.publications:type_name -> google.cloud.talent.v4beta1.Publication 2751 16, // 17: google.cloud.talent.v4beta1.Profile.patents:type_name -> google.cloud.talent.v4beta1.Patent 2752 22, // 18: google.cloud.talent.v4beta1.Profile.certifications:type_name -> google.cloud.talent.v4beta1.Certification 2753 17, // 19: google.cloud.talent.v4beta1.Profile.custom_attributes:type_name -> google.cloud.talent.v4beta1.Profile.CustomAttributesEntry 2754 3, // 20: google.cloud.talent.v4beta1.Profile.availability_signals:type_name -> google.cloud.talent.v4beta1.AvailabilitySignal 2755 23, // 21: google.cloud.talent.v4beta1.Profile.derived_addresses:type_name -> google.cloud.talent.v4beta1.Location 2756 24, // 22: google.cloud.talent.v4beta1.AvailabilitySignal.type:type_name -> google.cloud.talent.v4beta1.AvailabilitySignalType 2757 20, // 23: google.cloud.talent.v4beta1.AvailabilitySignal.last_update_time:type_name -> google.protobuf.Timestamp 2758 19, // 24: google.cloud.talent.v4beta1.AvailabilitySignal.filter_satisfied:type_name -> google.protobuf.BoolValue 2759 0, // 25: google.cloud.talent.v4beta1.Resume.resume_type:type_name -> google.cloud.talent.v4beta1.Resume.ResumeType 2760 18, // 26: google.cloud.talent.v4beta1.PersonName.structured_name:type_name -> google.cloud.talent.v4beta1.PersonName.PersonStructuredName 2761 25, // 27: google.cloud.talent.v4beta1.Address.usage:type_name -> google.cloud.talent.v4beta1.ContactInfoUsage 2762 26, // 28: google.cloud.talent.v4beta1.Address.structured_address:type_name -> google.type.PostalAddress 2763 19, // 29: google.cloud.talent.v4beta1.Address.current:type_name -> google.protobuf.BoolValue 2764 25, // 30: google.cloud.talent.v4beta1.Email.usage:type_name -> google.cloud.talent.v4beta1.ContactInfoUsage 2765 25, // 31: google.cloud.talent.v4beta1.Phone.usage:type_name -> google.cloud.talent.v4beta1.ContactInfoUsage 2766 1, // 32: google.cloud.talent.v4beta1.Phone.type:type_name -> google.cloud.talent.v4beta1.Phone.PhoneType 2767 25, // 33: google.cloud.talent.v4beta1.AdditionalContactInfo.usage:type_name -> google.cloud.talent.v4beta1.ContactInfoUsage 2768 27, // 34: google.cloud.talent.v4beta1.EmploymentRecord.start_date:type_name -> google.type.Date 2769 27, // 35: google.cloud.talent.v4beta1.EmploymentRecord.end_date:type_name -> google.type.Date 2770 6, // 36: google.cloud.talent.v4beta1.EmploymentRecord.address:type_name -> google.cloud.talent.v4beta1.Address 2771 19, // 37: google.cloud.talent.v4beta1.EmploymentRecord.is_supervisor:type_name -> google.protobuf.BoolValue 2772 19, // 38: google.cloud.talent.v4beta1.EmploymentRecord.is_self_employed:type_name -> google.protobuf.BoolValue 2773 19, // 39: google.cloud.talent.v4beta1.EmploymentRecord.is_current:type_name -> google.protobuf.BoolValue 2774 27, // 40: google.cloud.talent.v4beta1.EducationRecord.start_date:type_name -> google.type.Date 2775 27, // 41: google.cloud.talent.v4beta1.EducationRecord.end_date:type_name -> google.type.Date 2776 27, // 42: google.cloud.talent.v4beta1.EducationRecord.expected_graduation_date:type_name -> google.type.Date 2777 6, // 43: google.cloud.talent.v4beta1.EducationRecord.address:type_name -> google.cloud.talent.v4beta1.Address 2778 13, // 44: google.cloud.talent.v4beta1.EducationRecord.structured_degree:type_name -> google.cloud.talent.v4beta1.Degree 2779 19, // 45: google.cloud.talent.v4beta1.EducationRecord.is_current:type_name -> google.protobuf.BoolValue 2780 28, // 46: google.cloud.talent.v4beta1.Degree.degree_type:type_name -> google.cloud.talent.v4beta1.DegreeType 2781 27, // 47: google.cloud.talent.v4beta1.Activity.create_date:type_name -> google.type.Date 2782 27, // 48: google.cloud.talent.v4beta1.Activity.update_date:type_name -> google.type.Date 2783 21, // 49: google.cloud.talent.v4beta1.Activity.skills_used:type_name -> google.cloud.talent.v4beta1.Skill 2784 27, // 50: google.cloud.talent.v4beta1.Publication.publication_date:type_name -> google.type.Date 2785 27, // 51: google.cloud.talent.v4beta1.Patent.patent_status_date:type_name -> google.type.Date 2786 27, // 52: google.cloud.talent.v4beta1.Patent.patent_filing_date:type_name -> google.type.Date 2787 21, // 53: google.cloud.talent.v4beta1.Patent.skills_used:type_name -> google.cloud.talent.v4beta1.Skill 2788 29, // 54: google.cloud.talent.v4beta1.Profile.CustomAttributesEntry.value:type_name -> google.cloud.talent.v4beta1.CustomAttribute 2789 55, // [55:55] is the sub-list for method output_type 2790 55, // [55:55] is the sub-list for method input_type 2791 55, // [55:55] is the sub-list for extension type_name 2792 55, // [55:55] is the sub-list for extension extendee 2793 0, // [0:55] is the sub-list for field type_name 2794} 2795 2796func init() { file_google_cloud_talent_v4beta1_profile_proto_init() } 2797func file_google_cloud_talent_v4beta1_profile_proto_init() { 2798 if File_google_cloud_talent_v4beta1_profile_proto != nil { 2799 return 2800 } 2801 file_google_cloud_talent_v4beta1_common_proto_init() 2802 if !protoimpl.UnsafeEnabled { 2803 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2804 switch v := v.(*Profile); i { 2805 case 0: 2806 return &v.state 2807 case 1: 2808 return &v.sizeCache 2809 case 2: 2810 return &v.unknownFields 2811 default: 2812 return nil 2813 } 2814 } 2815 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2816 switch v := v.(*AvailabilitySignal); i { 2817 case 0: 2818 return &v.state 2819 case 1: 2820 return &v.sizeCache 2821 case 2: 2822 return &v.unknownFields 2823 default: 2824 return nil 2825 } 2826 } 2827 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2828 switch v := v.(*Resume); i { 2829 case 0: 2830 return &v.state 2831 case 1: 2832 return &v.sizeCache 2833 case 2: 2834 return &v.unknownFields 2835 default: 2836 return nil 2837 } 2838 } 2839 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2840 switch v := v.(*PersonName); i { 2841 case 0: 2842 return &v.state 2843 case 1: 2844 return &v.sizeCache 2845 case 2: 2846 return &v.unknownFields 2847 default: 2848 return nil 2849 } 2850 } 2851 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2852 switch v := v.(*Address); i { 2853 case 0: 2854 return &v.state 2855 case 1: 2856 return &v.sizeCache 2857 case 2: 2858 return &v.unknownFields 2859 default: 2860 return nil 2861 } 2862 } 2863 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2864 switch v := v.(*Email); i { 2865 case 0: 2866 return &v.state 2867 case 1: 2868 return &v.sizeCache 2869 case 2: 2870 return &v.unknownFields 2871 default: 2872 return nil 2873 } 2874 } 2875 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2876 switch v := v.(*Phone); i { 2877 case 0: 2878 return &v.state 2879 case 1: 2880 return &v.sizeCache 2881 case 2: 2882 return &v.unknownFields 2883 default: 2884 return nil 2885 } 2886 } 2887 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2888 switch v := v.(*PersonalUri); i { 2889 case 0: 2890 return &v.state 2891 case 1: 2892 return &v.sizeCache 2893 case 2: 2894 return &v.unknownFields 2895 default: 2896 return nil 2897 } 2898 } 2899 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2900 switch v := v.(*AdditionalContactInfo); i { 2901 case 0: 2902 return &v.state 2903 case 1: 2904 return &v.sizeCache 2905 case 2: 2906 return &v.unknownFields 2907 default: 2908 return nil 2909 } 2910 } 2911 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2912 switch v := v.(*EmploymentRecord); i { 2913 case 0: 2914 return &v.state 2915 case 1: 2916 return &v.sizeCache 2917 case 2: 2918 return &v.unknownFields 2919 default: 2920 return nil 2921 } 2922 } 2923 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2924 switch v := v.(*EducationRecord); i { 2925 case 0: 2926 return &v.state 2927 case 1: 2928 return &v.sizeCache 2929 case 2: 2930 return &v.unknownFields 2931 default: 2932 return nil 2933 } 2934 } 2935 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2936 switch v := v.(*Degree); i { 2937 case 0: 2938 return &v.state 2939 case 1: 2940 return &v.sizeCache 2941 case 2: 2942 return &v.unknownFields 2943 default: 2944 return nil 2945 } 2946 } 2947 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2948 switch v := v.(*Activity); i { 2949 case 0: 2950 return &v.state 2951 case 1: 2952 return &v.sizeCache 2953 case 2: 2954 return &v.unknownFields 2955 default: 2956 return nil 2957 } 2958 } 2959 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2960 switch v := v.(*Publication); i { 2961 case 0: 2962 return &v.state 2963 case 1: 2964 return &v.sizeCache 2965 case 2: 2966 return &v.unknownFields 2967 default: 2968 return nil 2969 } 2970 } 2971 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2972 switch v := v.(*Patent); i { 2973 case 0: 2974 return &v.state 2975 case 1: 2976 return &v.sizeCache 2977 case 2: 2978 return &v.unknownFields 2979 default: 2980 return nil 2981 } 2982 } 2983 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2984 switch v := v.(*PersonName_PersonStructuredName); i { 2985 case 0: 2986 return &v.state 2987 case 1: 2988 return &v.sizeCache 2989 case 2: 2990 return &v.unknownFields 2991 default: 2992 return nil 2993 } 2994 } 2995 } 2996 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[3].OneofWrappers = []interface{}{ 2997 (*PersonName_FormattedName)(nil), 2998 (*PersonName_StructuredName)(nil), 2999 } 3000 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[4].OneofWrappers = []interface{}{ 3001 (*Address_UnstructuredAddress)(nil), 3002 (*Address_StructuredAddress)(nil), 3003 } 3004 file_google_cloud_talent_v4beta1_profile_proto_msgTypes[10].OneofWrappers = []interface{}{ 3005 (*EducationRecord_DegreeDescription)(nil), 3006 (*EducationRecord_StructuredDegree)(nil), 3007 } 3008 type x struct{} 3009 out := protoimpl.TypeBuilder{ 3010 File: protoimpl.DescBuilder{ 3011 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 3012 RawDescriptor: file_google_cloud_talent_v4beta1_profile_proto_rawDesc, 3013 NumEnums: 2, 3014 NumMessages: 17, 3015 NumExtensions: 0, 3016 NumServices: 0, 3017 }, 3018 GoTypes: file_google_cloud_talent_v4beta1_profile_proto_goTypes, 3019 DependencyIndexes: file_google_cloud_talent_v4beta1_profile_proto_depIdxs, 3020 EnumInfos: file_google_cloud_talent_v4beta1_profile_proto_enumTypes, 3021 MessageInfos: file_google_cloud_talent_v4beta1_profile_proto_msgTypes, 3022 }.Build() 3023 File_google_cloud_talent_v4beta1_profile_proto = out.File 3024 file_google_cloud_talent_v4beta1_profile_proto_rawDesc = nil 3025 file_google_cloud_talent_v4beta1_profile_proto_goTypes = nil 3026 file_google_cloud_talent_v4beta1_profile_proto_depIdxs = nil 3027} 3028