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