blob: 09573ae25a4f3418e1cad533b045f3df22d0404a [file] [log] [blame]
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.22.0
// protoc v3.12.2
// source: google/cloud/talent/v4beta1/profile.proto
package talent
import (
reflect "reflect"
sync "sync"
proto "github.com/golang/protobuf/proto"
_ "github.com/golang/protobuf/ptypes/duration"
timestamp "github.com/golang/protobuf/ptypes/timestamp"
wrappers "github.com/golang/protobuf/ptypes/wrappers"
_ "google.golang.org/genproto/googleapis/api/annotations"
date "google.golang.org/genproto/googleapis/type/date"
postaladdress "google.golang.org/genproto/googleapis/type/postaladdress"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
// The format of a structured resume.
type Resume_ResumeType int32
const (
// Default value.
Resume_RESUME_TYPE_UNSPECIFIED Resume_ResumeType = 0
// The profile contents in HR-XML format.
// See https://schemas.liquid-technologies.com/hr-xml/2007-04-15/ for more
// information about Human Resources XML.
Resume_HRXML Resume_ResumeType = 1
// Resume type not specified.
Resume_OTHER_RESUME_TYPE Resume_ResumeType = 2
)
// Enum value maps for Resume_ResumeType.
var (
Resume_ResumeType_name = map[int32]string{
0: "RESUME_TYPE_UNSPECIFIED",
1: "HRXML",
2: "OTHER_RESUME_TYPE",
}
Resume_ResumeType_value = map[string]int32{
"RESUME_TYPE_UNSPECIFIED": 0,
"HRXML": 1,
"OTHER_RESUME_TYPE": 2,
}
)
func (x Resume_ResumeType) Enum() *Resume_ResumeType {
p := new(Resume_ResumeType)
*p = x
return p
}
func (x Resume_ResumeType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Resume_ResumeType) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_talent_v4beta1_profile_proto_enumTypes[0].Descriptor()
}
func (Resume_ResumeType) Type() protoreflect.EnumType {
return &file_google_cloud_talent_v4beta1_profile_proto_enumTypes[0]
}
func (x Resume_ResumeType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Resume_ResumeType.Descriptor instead.
func (Resume_ResumeType) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{2, 0}
}
// Enum that represents the type of the telephone.
type Phone_PhoneType int32
const (
// Default value.
Phone_PHONE_TYPE_UNSPECIFIED Phone_PhoneType = 0
// A landline.
Phone_LANDLINE Phone_PhoneType = 1
// A mobile.
Phone_MOBILE Phone_PhoneType = 2
// A fax.
Phone_FAX Phone_PhoneType = 3
// A pager.
Phone_PAGER Phone_PhoneType = 4
// A TTY (test telephone) or TDD (telecommunication device for the deaf).
Phone_TTY_OR_TDD Phone_PhoneType = 5
// A voicemail.
Phone_VOICEMAIL Phone_PhoneType = 6
// A virtual telephone number is a number that can be routed to another
// number and managed by the user via Web, SMS, IVR, and so on. It is
// associated with a particular person, and may be routed to either a MOBILE
// or LANDLINE number. The [phone usage][google.cloud.talent.v4beta1.ContactInfoUsage] should
// be set to PERSONAL for these phone types. Some more information can be
// found here: https://en.wikipedia.org/wiki/Personal_Numbers
Phone_VIRTUAL Phone_PhoneType = 7
// Voice over IP numbers. This includes TSoIP (Telephony Service over IP).
Phone_VOIP Phone_PhoneType = 8
// In some regions (e.g. the USA), it is impossible to distinguish between
// fixed-line and mobile numbers by looking at the phone number itself.
Phone_MOBILE_OR_LANDLINE Phone_PhoneType = 9
)
// Enum value maps for Phone_PhoneType.
var (
Phone_PhoneType_name = map[int32]string{
0: "PHONE_TYPE_UNSPECIFIED",
1: "LANDLINE",
2: "MOBILE",
3: "FAX",
4: "PAGER",
5: "TTY_OR_TDD",
6: "VOICEMAIL",
7: "VIRTUAL",
8: "VOIP",
9: "MOBILE_OR_LANDLINE",
}
Phone_PhoneType_value = map[string]int32{
"PHONE_TYPE_UNSPECIFIED": 0,
"LANDLINE": 1,
"MOBILE": 2,
"FAX": 3,
"PAGER": 4,
"TTY_OR_TDD": 5,
"VOICEMAIL": 6,
"VIRTUAL": 7,
"VOIP": 8,
"MOBILE_OR_LANDLINE": 9,
}
)
func (x Phone_PhoneType) Enum() *Phone_PhoneType {
p := new(Phone_PhoneType)
*p = x
return p
}
func (x Phone_PhoneType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Phone_PhoneType) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_talent_v4beta1_profile_proto_enumTypes[1].Descriptor()
}
func (Phone_PhoneType) Type() protoreflect.EnumType {
return &file_google_cloud_talent_v4beta1_profile_proto_enumTypes[1]
}
func (x Phone_PhoneType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Phone_PhoneType.Descriptor instead.
func (Phone_PhoneType) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{6, 0}
}
// A resource that represents the profile for a job candidate (also referred to
// as a "single-source profile").
type Profile struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required during profile update.
//
// Resource name assigned to a profile by the API.
//
// The format is
// "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}",
// for example, "projects/foo/tenants/bar/profiles/baz".
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Profile's id in client system, if available. This value is unique for each
// profile inside a tenant. An error is thrown if another profile with the
// same external_id is created.
//
// The maximum number of bytes allowed is 100.
ExternalId string `protobuf:"bytes,2,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"`
// The source description indicating where the profile is acquired.
//
// For example, if a candidate profile is acquired from a resume, the user can
// input "resume" here to indicate the source.
//
// The maximum number of bytes allowed is 100.
Source string `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"`
// The URI set by clients that links to this profile's client-side copy.
//
// The maximum number of bytes allowed is 4000.
Uri string `protobuf:"bytes,4,opt,name=uri,proto3" json:"uri,omitempty"`
// The cluster id of the profile to associate with other profile(s) for the
// same candidate.
//
// This field should be generated by the customer. If a value is not provided,
// a random UUID is assigned to this field of the profile.
//
// This is used to link multiple profiles to the same candidate. For example,
// a client has a candidate with two profiles, where one was created recently
// and the other one was created 5 years ago. These two profiles may be very
// different. The clients can create the first profile and get a generated
// [group_id][google.cloud.talent.v4beta1.Profile.group_id], and assign it when the second profile is created,
// indicating these two profiles are referring to the same candidate.
GroupId string `protobuf:"bytes,5,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
// Indicates the hirable status of the candidate.
IsHirable *wrappers.BoolValue `protobuf:"bytes,6,opt,name=is_hirable,json=isHirable,proto3" json:"is_hirable,omitempty"`
// The timestamp when the profile was first created at this source.
CreateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// The timestamp when the profile was last updated at this source.
UpdateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
// The timestamp when the profile was last updated as a result of a direct or
// indirect action by a candidate.
//
// These actions include:
//
// * Direct actions such as the candidate submitting a new resume as part of a
// job application to the agency, using a self-service tool such as a website
// to update their profile, and so on.
// * Indirect actions by the candidate such as uploading a resume to a job
// board that is collected by the agency through a feed, providing a resume to
// a recruiter who then uploads it into the ATS, and so on.
// * Updates made to the candidate's profile by the recruiter as a result of
// interacting with the candidate (for example adding a skill or work
// preference, and so on). Changes to [recruiting_notes][google.cloud.talent.v4beta1.Profile.recruiting_notes] are specifically
// excluded from this action type.
//
// Note: [candidate_update_time][google.cloud.talent.v4beta1.Profile.candidate_update_time] must be greater than or equal to
// [resume_update_time][google.cloud.talent.v4beta1.Profile.resume_update_time] or an error is thrown.
CandidateUpdateTime *timestamp.Timestamp `protobuf:"bytes,67,opt,name=candidate_update_time,json=candidateUpdateTime,proto3" json:"candidate_update_time,omitempty"`
// The timestamp when the candidate's resume was added or updated on the
// candidate's profile. Whether that resume was directly uploaded by a
// candidate, pulled from a 3rd party job board feed, added by a recruiter,
// and so on.
//
// If this field is updated, it's expected that [resume][google.cloud.talent.v4beta1.Profile.resume] is provided in
// the create or update calls.
ResumeUpdateTime *timestamp.Timestamp `protobuf:"bytes,68,opt,name=resume_update_time,json=resumeUpdateTime,proto3" json:"resume_update_time,omitempty"`
// The resume representing this profile.
Resume *Resume `protobuf:"bytes,53,opt,name=resume,proto3" json:"resume,omitempty"`
// The names of the candidate this profile references.
//
// Currently only one person name is supported.
PersonNames []*PersonName `protobuf:"bytes,11,rep,name=person_names,json=personNames,proto3" json:"person_names,omitempty"`
// The candidate's postal addresses. It's highly recommended to
// input this information as accurately as possible to help improve search
// quality. Here are some recommendations:
//
// * Provide [Address.usage][google.cloud.talent.v4beta1.Address.usage] if possible, especially if the address is
// PERSONAL. During a search only personal addresses are considered. If there
// is no such address, all addresses with unspecified usage are assumed to be
// personal.
// * Provide [Address.current][google.cloud.talent.v4beta1.Address.current] for the current address if possible. During
// a search, only current addresses are considered. If there is no such
// address, all addresses are assumed to be current.
//
// When displaying a candidate's addresses, it is sometimes desirable to limit
// the number of addresses shown. In these cases we recommend that you display
// the addresses in the following order of priority:
// 1. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL and [Address.current][google.cloud.talent.v4beta1.Address.current] is true.
// 2. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL and [Address.current][google.cloud.talent.v4beta1.Address.current] is false or not
// set.
// 3. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is CONTACT_INFO_USAGE_UNSPECIFIED and
// [Address.current][google.cloud.talent.v4beta1.Address.current] is true.
// 4. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is CONTACT_INFO_USAGE_UNSPECIFIED and
// [Address.current][google.cloud.talent.v4beta1.Address.current] is false or not set.
Addresses []*Address `protobuf:"bytes,12,rep,name=addresses,proto3" json:"addresses,omitempty"`
// The candidate's email addresses.
EmailAddresses []*Email `protobuf:"bytes,13,rep,name=email_addresses,json=emailAddresses,proto3" json:"email_addresses,omitempty"`
// The candidate's phone number(s).
PhoneNumbers []*Phone `protobuf:"bytes,14,rep,name=phone_numbers,json=phoneNumbers,proto3" json:"phone_numbers,omitempty"`
// The candidate's personal URIs.
PersonalUris []*PersonalUri `protobuf:"bytes,15,rep,name=personal_uris,json=personalUris,proto3" json:"personal_uris,omitempty"`
// Available contact information besides [addresses][google.cloud.talent.v4beta1.Profile.addresses], [email_addresses][google.cloud.talent.v4beta1.Profile.email_addresses],
// [phone_numbers][google.cloud.talent.v4beta1.Profile.phone_numbers] and [personal_uris][google.cloud.talent.v4beta1.Profile.personal_uris]. For example, Hang-out, Skype.
AdditionalContactInfo []*AdditionalContactInfo `protobuf:"bytes,16,rep,name=additional_contact_info,json=additionalContactInfo,proto3" json:"additional_contact_info,omitempty"`
// The employment history records of the candidate. It's highly recommended
// to input this information as accurately as possible to help improve search
// quality. Here are some recommendations:
//
// * Specify the start and end dates of the employment records.
// * List different employment types separately, no matter how minor the
// change is.
// For example, only job title is changed from "software engineer" to "senior
// software engineer".
// * Provide [EmploymentRecord.is_current][google.cloud.talent.v4beta1.EmploymentRecord.is_current] for the current employment if
// possible. If not, it's inferred from user inputs.
//
// The limitation for max number of employment records is 100.
EmploymentRecords []*EmploymentRecord `protobuf:"bytes,17,rep,name=employment_records,json=employmentRecords,proto3" json:"employment_records,omitempty"`
// The education history record of the candidate. It's highly recommended to
// input this information as accurately as possible to help improve search
// quality. Here are some recommendations:
//
// * Specify the start and end dates of the education records.
// * List each education type separately, no matter how minor the change is.
// For example, the profile contains the education experience from the same
// school but different degrees.
// * Provide [EducationRecord.is_current][google.cloud.talent.v4beta1.EducationRecord.is_current] for the current education if
// possible. If not, it's inferred from user inputs.
//
// The limitation for max number of education records is 100.
EducationRecords []*EducationRecord `protobuf:"bytes,18,rep,name=education_records,json=educationRecords,proto3" json:"education_records,omitempty"`
// The skill set of the candidate. It's highly recommended to provide as
// much information as possible to help improve the search quality.
//
// The limitation for max number of skills is 500.
Skills []*Skill `protobuf:"bytes,19,rep,name=skills,proto3" json:"skills,omitempty"`
// The individual or collaborative activities which the candidate has
// participated in, for example, open-source projects, class assignments that
// aren't listed in [employment_records][google.cloud.talent.v4beta1.Profile.employment_records].
//
// The limitation for max number of activities is 50.
Activities []*Activity `protobuf:"bytes,20,rep,name=activities,proto3" json:"activities,omitempty"`
// The publications published by the candidate.
//
// The limitation for max number of publications is 50.
Publications []*Publication `protobuf:"bytes,21,rep,name=publications,proto3" json:"publications,omitempty"`
// The patents acquired by the candidate.
Patents []*Patent `protobuf:"bytes,22,rep,name=patents,proto3" json:"patents,omitempty"`
// The certifications acquired by the candidate.
Certifications []*Certification `protobuf:"bytes,23,rep,name=certifications,proto3" json:"certifications,omitempty"`
// Output only. The resource names of the candidate's applications.
Applications []string `protobuf:"bytes,47,rep,name=applications,proto3" json:"applications,omitempty"`
// Output only. The resource names of the candidate's assignments.
Assignments []string `protobuf:"bytes,48,rep,name=assignments,proto3" json:"assignments,omitempty"`
// A map of fields to hold both filterable and non-filterable custom profile
// attributes that aren't covered by the provided structured fields. See
// [CustomAttribute][google.cloud.talent.v4beta1.CustomAttribute] for more details.
//
// At most 100 filterable and at most 100 unfilterable keys are supported. If
// limit is exceeded, an error is thrown. Custom attributes are `unfilterable`
// by default. These are filterable when the `filterable` flag is set to
// `true`.
//
// Numeric custom attributes: each key can only map to one numeric value,
// otherwise an error is thrown. Client can also filter on numeric custom
// attributes using '>', '<' or '=' operators.
//
// String custom attributes: each key can map up to 50 string values. For
// filterable string value, each value has a byte size of no more than 256B.
// For unfilterable string values, the maximum byte size of a single key is
// 64B. An error is thrown for any request exceeding the limit.
// The maximum total byte size is 10KB.
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"`
// Output only. Indicates if a summarized profile was created as part of the
// profile creation API call. This flag does not indicate whether a profile is
// searchable or not.
Processed bool `protobuf:"varint,27,opt,name=processed,proto3" json:"processed,omitempty"`
// Output only. Keyword snippet shows how the search result is related to a
// search query. This is only returned in [SearchProfilesResponse][google.cloud.talent.v4beta1.SearchProfilesResponse].
KeywordSnippet string `protobuf:"bytes,28,opt,name=keyword_snippet,json=keywordSnippet,proto3" json:"keyword_snippet,omitempty"`
// Output only. Candidate's availability signals.
AvailabilitySignals []*AvailabilitySignal `protobuf:"bytes,70,rep,name=availability_signals,json=availabilitySignals,proto3" json:"availability_signals,omitempty"`
// Output only. Derived locations of the profile, resolved from [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses].
//
// [derived_addresses][google.cloud.talent.v4beta1.Profile.derived_addresses] are exactly matched to [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] in the
// same order.
DerivedAddresses []*Location `protobuf:"bytes,64,rep,name=derived_addresses,json=derivedAddresses,proto3" json:"derived_addresses,omitempty"`
}
func (x *Profile) Reset() {
*x = Profile{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Profile) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Profile) ProtoMessage() {}
func (x *Profile) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Profile.ProtoReflect.Descriptor instead.
func (*Profile) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{0}
}
func (x *Profile) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Profile) GetExternalId() string {
if x != nil {
return x.ExternalId
}
return ""
}
func (x *Profile) GetSource() string {
if x != nil {
return x.Source
}
return ""
}
func (x *Profile) GetUri() string {
if x != nil {
return x.Uri
}
return ""
}
func (x *Profile) GetGroupId() string {
if x != nil {
return x.GroupId
}
return ""
}
func (x *Profile) GetIsHirable() *wrappers.BoolValue {
if x != nil {
return x.IsHirable
}
return nil
}
func (x *Profile) GetCreateTime() *timestamp.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *Profile) GetUpdateTime() *timestamp.Timestamp {
if x != nil {
return x.UpdateTime
}
return nil
}
func (x *Profile) GetCandidateUpdateTime() *timestamp.Timestamp {
if x != nil {
return x.CandidateUpdateTime
}
return nil
}
func (x *Profile) GetResumeUpdateTime() *timestamp.Timestamp {
if x != nil {
return x.ResumeUpdateTime
}
return nil
}
func (x *Profile) GetResume() *Resume {
if x != nil {
return x.Resume
}
return nil
}
func (x *Profile) GetPersonNames() []*PersonName {
if x != nil {
return x.PersonNames
}
return nil
}
func (x *Profile) GetAddresses() []*Address {
if x != nil {
return x.Addresses
}
return nil
}
func (x *Profile) GetEmailAddresses() []*Email {
if x != nil {
return x.EmailAddresses
}
return nil
}
func (x *Profile) GetPhoneNumbers() []*Phone {
if x != nil {
return x.PhoneNumbers
}
return nil
}
func (x *Profile) GetPersonalUris() []*PersonalUri {
if x != nil {
return x.PersonalUris
}
return nil
}
func (x *Profile) GetAdditionalContactInfo() []*AdditionalContactInfo {
if x != nil {
return x.AdditionalContactInfo
}
return nil
}
func (x *Profile) GetEmploymentRecords() []*EmploymentRecord {
if x != nil {
return x.EmploymentRecords
}
return nil
}
func (x *Profile) GetEducationRecords() []*EducationRecord {
if x != nil {
return x.EducationRecords
}
return nil
}
func (x *Profile) GetSkills() []*Skill {
if x != nil {
return x.Skills
}
return nil
}
func (x *Profile) GetActivities() []*Activity {
if x != nil {
return x.Activities
}
return nil
}
func (x *Profile) GetPublications() []*Publication {
if x != nil {
return x.Publications
}
return nil
}
func (x *Profile) GetPatents() []*Patent {
if x != nil {
return x.Patents
}
return nil
}
func (x *Profile) GetCertifications() []*Certification {
if x != nil {
return x.Certifications
}
return nil
}
func (x *Profile) GetApplications() []string {
if x != nil {
return x.Applications
}
return nil
}
func (x *Profile) GetAssignments() []string {
if x != nil {
return x.Assignments
}
return nil
}
func (x *Profile) GetCustomAttributes() map[string]*CustomAttribute {
if x != nil {
return x.CustomAttributes
}
return nil
}
func (x *Profile) GetProcessed() bool {
if x != nil {
return x.Processed
}
return false
}
func (x *Profile) GetKeywordSnippet() string {
if x != nil {
return x.KeywordSnippet
}
return ""
}
func (x *Profile) GetAvailabilitySignals() []*AvailabilitySignal {
if x != nil {
return x.AvailabilitySignals
}
return nil
}
func (x *Profile) GetDerivedAddresses() []*Location {
if x != nil {
return x.DerivedAddresses
}
return nil
}
// Candidate availability signal.
type AvailabilitySignal struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Type of signal.
Type AvailabilitySignalType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.talent.v4beta1.AvailabilitySignalType" json:"type,omitempty"`
// Timestamp of when the given availability activity last happened.
LastUpdateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"`
// Indicates if the [last_update_time][google.cloud.talent.v4beta1.AvailabilitySignal.last_update_time] is within
// [AvailabilityFilter.range][google.cloud.talent.v4beta1.AvailabilityFilter.range].
//
// Returned only in a search response when there is an [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter]
// in [ProfileQuery.availability_filters][google.cloud.talent.v4beta1.ProfileQuery.availability_filters] where
// [signal_type][google.cloud.talent.v4beta1.AvailabilityFilter.signal_type] matches [type][google.cloud.talent.v4beta1.AvailabilitySignal.type].
FilterSatisfied *wrappers.BoolValue `protobuf:"bytes,3,opt,name=filter_satisfied,json=filterSatisfied,proto3" json:"filter_satisfied,omitempty"`
}
func (x *AvailabilitySignal) Reset() {
*x = AvailabilitySignal{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AvailabilitySignal) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AvailabilitySignal) ProtoMessage() {}
func (x *AvailabilitySignal) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AvailabilitySignal.ProtoReflect.Descriptor instead.
func (*AvailabilitySignal) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{1}
}
func (x *AvailabilitySignal) GetType() AvailabilitySignalType {
if x != nil {
return x.Type
}
return AvailabilitySignalType_AVAILABILITY_SIGNAL_TYPE_UNSPECIFIED
}
func (x *AvailabilitySignal) GetLastUpdateTime() *timestamp.Timestamp {
if x != nil {
return x.LastUpdateTime
}
return nil
}
func (x *AvailabilitySignal) GetFilterSatisfied() *wrappers.BoolValue {
if x != nil {
return x.FilterSatisfied
}
return nil
}
// Resource that represents a resume.
type Resume struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Users can create a profile with only this field field, if [resume_type][google.cloud.talent.v4beta1.Resume.resume_type]
// is [HRXML][google.cloud.talent.v4beta1.Resume.ResumeType.HRXML]. For example, the API parses this field and
// creates a profile
// with all structured fields populated. [EmploymentRecord][google.cloud.talent.v4beta1.EmploymentRecord],
// [EducationRecord][google.cloud.talent.v4beta1.EducationRecord], and so on. An error is thrown if this field cannot be
// parsed.
//
// Note that the use of the functionality offered by this field to extract
// data from resumes is an Alpha feature and as such is not covered by any
// SLA.
StructuredResume string `protobuf:"bytes,1,opt,name=structured_resume,json=structuredResume,proto3" json:"structured_resume,omitempty"`
// The format of [structured_resume][google.cloud.talent.v4beta1.Resume.structured_resume].
ResumeType Resume_ResumeType `protobuf:"varint,2,opt,name=resume_type,json=resumeType,proto3,enum=google.cloud.talent.v4beta1.Resume_ResumeType" json:"resume_type,omitempty"`
}
func (x *Resume) Reset() {
*x = Resume{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Resume) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Resume) ProtoMessage() {}
func (x *Resume) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Resume.ProtoReflect.Descriptor instead.
func (*Resume) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{2}
}
func (x *Resume) GetStructuredResume() string {
if x != nil {
return x.StructuredResume
}
return ""
}
func (x *Resume) GetResumeType() Resume_ResumeType {
if x != nil {
return x.ResumeType
}
return Resume_RESUME_TYPE_UNSPECIFIED
}
// Resource that represents the name of a person.
type PersonName struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The name of a person. It can be one of
// [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] or
// [structured_name][google.cloud.talent.v4beta1.PersonName.structured_name].
//
// Types that are assignable to PersonName:
// *PersonName_FormattedName
// *PersonName_StructuredName
PersonName isPersonName_PersonName `protobuf_oneof:"person_name"`
// Preferred name for the person. This field is ignored if [structured_name][google.cloud.talent.v4beta1.PersonName.structured_name]
// is provided.
//
// Number of characters allowed is 100.
PreferredName string `protobuf:"bytes,3,opt,name=preferred_name,json=preferredName,proto3" json:"preferred_name,omitempty"`
}
func (x *PersonName) Reset() {
*x = PersonName{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PersonName) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PersonName) ProtoMessage() {}
func (x *PersonName) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PersonName.ProtoReflect.Descriptor instead.
func (*PersonName) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{3}
}
func (m *PersonName) GetPersonName() isPersonName_PersonName {
if m != nil {
return m.PersonName
}
return nil
}
func (x *PersonName) GetFormattedName() string {
if x, ok := x.GetPersonName().(*PersonName_FormattedName); ok {
return x.FormattedName
}
return ""
}
func (x *PersonName) GetStructuredName() *PersonName_PersonStructuredName {
if x, ok := x.GetPersonName().(*PersonName_StructuredName); ok {
return x.StructuredName
}
return nil
}
func (x *PersonName) GetPreferredName() string {
if x != nil {
return x.PreferredName
}
return ""
}
type isPersonName_PersonName interface {
isPersonName_PersonName()
}
type PersonName_FormattedName struct {
// A string represents a person's full name. For example, "Dr. John Smith".
//
// Number of characters allowed is 100.
FormattedName string `protobuf:"bytes,1,opt,name=formatted_name,json=formattedName,proto3,oneof"`
}
type PersonName_StructuredName struct {
// A person's name in a structured way (last name, first name, suffix, and
// so on.)
StructuredName *PersonName_PersonStructuredName `protobuf:"bytes,2,opt,name=structured_name,json=structuredName,proto3,oneof"`
}
func (*PersonName_FormattedName) isPersonName_PersonName() {}
func (*PersonName_StructuredName) isPersonName_PersonName() {}
// Resource that represents a address.
type Address struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The usage of the address. For example, SCHOOL, WORK, PERSONAL.
Usage ContactInfoUsage `protobuf:"varint,1,opt,name=usage,proto3,enum=google.cloud.talent.v4beta1.ContactInfoUsage" json:"usage,omitempty"`
// The address of a person. It can be one of
// [unstructured_address][google.cloud.talent.v4beta1.Address.unstructured_address] or
// [structured_address][google.cloud.talent.v4beta1.Address.structured_address].
//
// Types that are assignable to Address:
// *Address_UnstructuredAddress
// *Address_StructuredAddress
Address isAddress_Address `protobuf_oneof:"address"`
// Indicates if it's the person's current address.
Current *wrappers.BoolValue `protobuf:"bytes,4,opt,name=current,proto3" json:"current,omitempty"`
}
func (x *Address) Reset() {
*x = Address{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Address) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Address) ProtoMessage() {}
func (x *Address) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Address.ProtoReflect.Descriptor instead.
func (*Address) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{4}
}
func (x *Address) GetUsage() ContactInfoUsage {
if x != nil {
return x.Usage
}
return ContactInfoUsage_CONTACT_INFO_USAGE_UNSPECIFIED
}
func (m *Address) GetAddress() isAddress_Address {
if m != nil {
return m.Address
}
return nil
}
func (x *Address) GetUnstructuredAddress() string {
if x, ok := x.GetAddress().(*Address_UnstructuredAddress); ok {
return x.UnstructuredAddress
}
return ""
}
func (x *Address) GetStructuredAddress() *postaladdress.PostalAddress {
if x, ok := x.GetAddress().(*Address_StructuredAddress); ok {
return x.StructuredAddress
}
return nil
}
func (x *Address) GetCurrent() *wrappers.BoolValue {
if x != nil {
return x.Current
}
return nil
}
type isAddress_Address interface {
isAddress_Address()
}
type Address_UnstructuredAddress struct {
// Unstructured address.
//
// For example, "1600 Amphitheatre Pkwy, Mountain View, CA 94043",
// "Sunnyvale, California".
//
// Number of characters allowed is 100.
UnstructuredAddress string `protobuf:"bytes,2,opt,name=unstructured_address,json=unstructuredAddress,proto3,oneof"`
}
type Address_StructuredAddress struct {
// Structured address that contains street address, city, state, country,
// and so on.
StructuredAddress *postaladdress.PostalAddress `protobuf:"bytes,3,opt,name=structured_address,json=structuredAddress,proto3,oneof"`
}
func (*Address_UnstructuredAddress) isAddress_Address() {}
func (*Address_StructuredAddress) isAddress_Address() {}
// Resource that represents a person's email address.
type Email struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The usage of the email address. For example, SCHOOL, WORK, PERSONAL.
Usage ContactInfoUsage `protobuf:"varint,1,opt,name=usage,proto3,enum=google.cloud.talent.v4beta1.ContactInfoUsage" json:"usage,omitempty"`
// Email address.
//
// Number of characters allowed is 4,000.
EmailAddress string `protobuf:"bytes,2,opt,name=email_address,json=emailAddress,proto3" json:"email_address,omitempty"`
}
func (x *Email) Reset() {
*x = Email{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Email) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Email) ProtoMessage() {}
func (x *Email) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Email.ProtoReflect.Descriptor instead.
func (*Email) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{5}
}
func (x *Email) GetUsage() ContactInfoUsage {
if x != nil {
return x.Usage
}
return ContactInfoUsage_CONTACT_INFO_USAGE_UNSPECIFIED
}
func (x *Email) GetEmailAddress() string {
if x != nil {
return x.EmailAddress
}
return ""
}
// Resource that represents a person's telephone number.
type Phone struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The usage of the phone. For example, SCHOOL, WORK, PERSONAL.
Usage ContactInfoUsage `protobuf:"varint,1,opt,name=usage,proto3,enum=google.cloud.talent.v4beta1.ContactInfoUsage" json:"usage,omitempty"`
// The phone type. For example, LANDLINE, MOBILE, FAX.
Type Phone_PhoneType `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.talent.v4beta1.Phone_PhoneType" json:"type,omitempty"`
// Phone number.
//
// Any phone formats are supported and only exact matches are performed on
// searches. For example, if a phone number in profile is provided in the
// format of "(xxx)xxx-xxxx", in profile searches the same phone format
// has to be provided.
//
// Number of characters allowed is 20.
Number string `protobuf:"bytes,3,opt,name=number,proto3" json:"number,omitempty"`
// When this number is available. Any descriptive string is expected.
//
// Number of characters allowed is 100.
WhenAvailable string `protobuf:"bytes,4,opt,name=when_available,json=whenAvailable,proto3" json:"when_available,omitempty"`
}
func (x *Phone) Reset() {
*x = Phone{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Phone) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Phone) ProtoMessage() {}
func (x *Phone) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Phone.ProtoReflect.Descriptor instead.
func (*Phone) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{6}
}
func (x *Phone) GetUsage() ContactInfoUsage {
if x != nil {
return x.Usage
}
return ContactInfoUsage_CONTACT_INFO_USAGE_UNSPECIFIED
}
func (x *Phone) GetType() Phone_PhoneType {
if x != nil {
return x.Type
}
return Phone_PHONE_TYPE_UNSPECIFIED
}
func (x *Phone) GetNumber() string {
if x != nil {
return x.Number
}
return ""
}
func (x *Phone) GetWhenAvailable() string {
if x != nil {
return x.WhenAvailable
}
return ""
}
// Resource that represents a valid URI for a personal use.
type PersonalUri struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The personal URI.
//
// Number of characters allowed is 4,000.
Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
}
func (x *PersonalUri) Reset() {
*x = PersonalUri{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PersonalUri) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PersonalUri) ProtoMessage() {}
func (x *PersonalUri) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PersonalUri.ProtoReflect.Descriptor instead.
func (*PersonalUri) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{7}
}
func (x *PersonalUri) GetUri() string {
if x != nil {
return x.Uri
}
return ""
}
// Resource that represents contact information other than phone, email,
// URI and addresses.
type AdditionalContactInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The usage of this contact method. For example, SCHOOL, WORK, PERSONAL.
Usage ContactInfoUsage `protobuf:"varint,1,opt,name=usage,proto3,enum=google.cloud.talent.v4beta1.ContactInfoUsage" json:"usage,omitempty"`
// The name of the contact method.
//
// For example, "hangout", "skype".
//
// Number of characters allowed is 100.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// The contact id.
//
// Number of characters allowed is 100.
ContactId string `protobuf:"bytes,3,opt,name=contact_id,json=contactId,proto3" json:"contact_id,omitempty"`
}
func (x *AdditionalContactInfo) Reset() {
*x = AdditionalContactInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AdditionalContactInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AdditionalContactInfo) ProtoMessage() {}
func (x *AdditionalContactInfo) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AdditionalContactInfo.ProtoReflect.Descriptor instead.
func (*AdditionalContactInfo) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{8}
}
func (x *AdditionalContactInfo) GetUsage() ContactInfoUsage {
if x != nil {
return x.Usage
}
return ContactInfoUsage_CONTACT_INFO_USAGE_UNSPECIFIED
}
func (x *AdditionalContactInfo) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *AdditionalContactInfo) GetContactId() string {
if x != nil {
return x.ContactId
}
return ""
}
// Resource that represents an employment record of a candidate.
type EmploymentRecord struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Start date of the employment.
StartDate *date.Date `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
// End date of the employment.
EndDate *date.Date `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
// The name of the employer company/organization.
//
// For example, "Google", "Alphabet", and so on.
//
// Number of characters allowed is 250.
EmployerName string `protobuf:"bytes,3,opt,name=employer_name,json=employerName,proto3" json:"employer_name,omitempty"`
// The division name of the employment.
//
// For example, division, department, client, and so on.
//
// Number of characters allowed is 100.
DivisionName string `protobuf:"bytes,4,opt,name=division_name,json=divisionName,proto3" json:"division_name,omitempty"`
// The physical address of the employer.
Address *Address `protobuf:"bytes,5,opt,name=address,proto3" json:"address,omitempty"`
// The job title of the employment.
//
// For example, "Software Engineer", "Data Scientist", and so on.
//
// Number of characters allowed is 250.
JobTitle string `protobuf:"bytes,6,opt,name=job_title,json=jobTitle,proto3" json:"job_title,omitempty"`
// The description of job content.
//
// Number of characters allowed is 100,000.
JobDescription string `protobuf:"bytes,7,opt,name=job_description,json=jobDescription,proto3" json:"job_description,omitempty"`
// If the jobs is a supervisor position.
IsSupervisor *wrappers.BoolValue `protobuf:"bytes,8,opt,name=is_supervisor,json=isSupervisor,proto3" json:"is_supervisor,omitempty"`
// If this employment is self-employed.
IsSelfEmployed *wrappers.BoolValue `protobuf:"bytes,9,opt,name=is_self_employed,json=isSelfEmployed,proto3" json:"is_self_employed,omitempty"`
// If this employment is current.
IsCurrent *wrappers.BoolValue `protobuf:"bytes,10,opt,name=is_current,json=isCurrent,proto3" json:"is_current,omitempty"`
// Output only. The job title snippet shows how the [job_title][google.cloud.talent.v4beta1.EmploymentRecord.job_title] is related
// to a search query. It's empty if the [job_title][google.cloud.talent.v4beta1.EmploymentRecord.job_title] isn't related to the
// search query.
JobTitleSnippet string `protobuf:"bytes,11,opt,name=job_title_snippet,json=jobTitleSnippet,proto3" json:"job_title_snippet,omitempty"`
// Output only. The job description snippet shows how the [job_description][google.cloud.talent.v4beta1.EmploymentRecord.job_description]
// is related to a search query. It's empty if the [job_description][google.cloud.talent.v4beta1.EmploymentRecord.job_description] isn't
// related to the search query.
JobDescriptionSnippet string `protobuf:"bytes,12,opt,name=job_description_snippet,json=jobDescriptionSnippet,proto3" json:"job_description_snippet,omitempty"`
// Output only. The employer name snippet shows how the [employer_name][google.cloud.talent.v4beta1.EmploymentRecord.employer_name] is
// related to a search query. It's empty if the [employer_name][google.cloud.talent.v4beta1.EmploymentRecord.employer_name] isn't
// related to the search query.
EmployerNameSnippet string `protobuf:"bytes,13,opt,name=employer_name_snippet,json=employerNameSnippet,proto3" json:"employer_name_snippet,omitempty"`
}
func (x *EmploymentRecord) Reset() {
*x = EmploymentRecord{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EmploymentRecord) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EmploymentRecord) ProtoMessage() {}
func (x *EmploymentRecord) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EmploymentRecord.ProtoReflect.Descriptor instead.
func (*EmploymentRecord) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{9}
}
func (x *EmploymentRecord) GetStartDate() *date.Date {
if x != nil {
return x.StartDate
}
return nil
}
func (x *EmploymentRecord) GetEndDate() *date.Date {
if x != nil {
return x.EndDate
}
return nil
}
func (x *EmploymentRecord) GetEmployerName() string {
if x != nil {
return x.EmployerName
}
return ""
}
func (x *EmploymentRecord) GetDivisionName() string {
if x != nil {
return x.DivisionName
}
return ""
}
func (x *EmploymentRecord) GetAddress() *Address {
if x != nil {
return x.Address
}
return nil
}
func (x *EmploymentRecord) GetJobTitle() string {
if x != nil {
return x.JobTitle
}
return ""
}
func (x *EmploymentRecord) GetJobDescription() string {
if x != nil {
return x.JobDescription
}
return ""
}
func (x *EmploymentRecord) GetIsSupervisor() *wrappers.BoolValue {
if x != nil {
return x.IsSupervisor
}
return nil
}
func (x *EmploymentRecord) GetIsSelfEmployed() *wrappers.BoolValue {
if x != nil {
return x.IsSelfEmployed
}
return nil
}
func (x *EmploymentRecord) GetIsCurrent() *wrappers.BoolValue {
if x != nil {
return x.IsCurrent
}
return nil
}
func (x *EmploymentRecord) GetJobTitleSnippet() string {
if x != nil {
return x.JobTitleSnippet
}
return ""
}
func (x *EmploymentRecord) GetJobDescriptionSnippet() string {
if x != nil {
return x.JobDescriptionSnippet
}
return ""
}
func (x *EmploymentRecord) GetEmployerNameSnippet() string {
if x != nil {
return x.EmployerNameSnippet
}
return ""
}
// Resource that represents an education record of a candidate.
type EducationRecord struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The start date of the education.
StartDate *date.Date `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
// The end date of the education.
EndDate *date.Date `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
// The expected graduation date if currently pursuing a degree.
ExpectedGraduationDate *date.Date `protobuf:"bytes,3,opt,name=expected_graduation_date,json=expectedGraduationDate,proto3" json:"expected_graduation_date,omitempty"`
// The name of the school or institution.
//
// For example, "Stanford University", "UC Berkeley", and so on.
//
// Number of characters allowed is 250.
SchoolName string `protobuf:"bytes,4,opt,name=school_name,json=schoolName,proto3" json:"school_name,omitempty"`
// The physical address of the education institution.
Address *Address `protobuf:"bytes,5,opt,name=address,proto3" json:"address,omitempty"`
// The degree information. It can be one of
// [degree_description][google.cloud.talent.v4beta1.EducationRecord.degree_description] or
// [structured_degree][google.cloud.talent.v4beta1.EducationRecord.structured_degree].
//
// Types that are assignable to Degree:
// *EducationRecord_DegreeDescription
// *EducationRecord_StructuredDegree
Degree isEducationRecord_Degree `protobuf_oneof:"degree"`
// The description of the education.
//
// Number of characters allowed is 100,000.
Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"`
// If this education is current.
IsCurrent *wrappers.BoolValue `protobuf:"bytes,9,opt,name=is_current,json=isCurrent,proto3" json:"is_current,omitempty"`
// Output only. The school name snippet shows how the [school_name][google.cloud.talent.v4beta1.EducationRecord.school_name] is related to a
// search query in search result. It's empty if the [school_name][google.cloud.talent.v4beta1.EducationRecord.school_name] isn't
// related to the search query.
SchoolNameSnippet string `protobuf:"bytes,10,opt,name=school_name_snippet,json=schoolNameSnippet,proto3" json:"school_name_snippet,omitempty"`
// Output only. The job description snippet shows how the [Degree][google.cloud.talent.v4beta1.Degree] is related to a search
// query in search result. It's empty if the [Degree][google.cloud.talent.v4beta1.Degree] isn't related to the
// search query.
DegreeSnippet string `protobuf:"bytes,11,opt,name=degree_snippet,json=degreeSnippet,proto3" json:"degree_snippet,omitempty"`
}
func (x *EducationRecord) Reset() {
*x = EducationRecord{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EducationRecord) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EducationRecord) ProtoMessage() {}
func (x *EducationRecord) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EducationRecord.ProtoReflect.Descriptor instead.
func (*EducationRecord) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{10}
}
func (x *EducationRecord) GetStartDate() *date.Date {
if x != nil {
return x.StartDate
}
return nil
}
func (x *EducationRecord) GetEndDate() *date.Date {
if x != nil {
return x.EndDate
}
return nil
}
func (x *EducationRecord) GetExpectedGraduationDate() *date.Date {
if x != nil {
return x.ExpectedGraduationDate
}
return nil
}
func (x *EducationRecord) GetSchoolName() string {
if x != nil {
return x.SchoolName
}
return ""
}
func (x *EducationRecord) GetAddress() *Address {
if x != nil {
return x.Address
}
return nil
}
func (m *EducationRecord) GetDegree() isEducationRecord_Degree {
if m != nil {
return m.Degree
}
return nil
}
func (x *EducationRecord) GetDegreeDescription() string {
if x, ok := x.GetDegree().(*EducationRecord_DegreeDescription); ok {
return x.DegreeDescription
}
return ""
}
func (x *EducationRecord) GetStructuredDegree() *Degree {
if x, ok := x.GetDegree().(*EducationRecord_StructuredDegree); ok {
return x.StructuredDegree
}
return nil
}
func (x *EducationRecord) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *EducationRecord) GetIsCurrent() *wrappers.BoolValue {
if x != nil {
return x.IsCurrent
}
return nil
}
func (x *EducationRecord) GetSchoolNameSnippet() string {
if x != nil {
return x.SchoolNameSnippet
}
return ""
}
func (x *EducationRecord) GetDegreeSnippet() string {
if x != nil {
return x.DegreeSnippet
}
return ""
}
type isEducationRecord_Degree interface {
isEducationRecord_Degree()
}
type EducationRecord_DegreeDescription struct {
// The full description of the degree.
//
// For example, "Master of Science in Computer Science", "B.S in Math".
//
// Number of characters allowed is 100.
DegreeDescription string `protobuf:"bytes,6,opt,name=degree_description,json=degreeDescription,proto3,oneof"`
}
type EducationRecord_StructuredDegree struct {
// The structured notation of the degree.
StructuredDegree *Degree `protobuf:"bytes,7,opt,name=structured_degree,json=structuredDegree,proto3,oneof"`
}
func (*EducationRecord_DegreeDescription) isEducationRecord_Degree() {}
func (*EducationRecord_StructuredDegree) isEducationRecord_Degree() {}
// Resource that represents a degree pursuing or acquired by a candidate.
type Degree struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ISCED degree type.
DegreeType DegreeType `protobuf:"varint,1,opt,name=degree_type,json=degreeType,proto3,enum=google.cloud.talent.v4beta1.DegreeType" json:"degree_type,omitempty"`
// Full Degree name.
//
// For example, "B.S.", "Master of Arts", and so on.
//
// Number of characters allowed is 100.
DegreeName string `protobuf:"bytes,2,opt,name=degree_name,json=degreeName,proto3" json:"degree_name,omitempty"`
// Fields of study for the degree.
//
// For example, "Computer science", "engineering".
//
// Number of characters allowed is 100.
FieldsOfStudy []string `protobuf:"bytes,3,rep,name=fields_of_study,json=fieldsOfStudy,proto3" json:"fields_of_study,omitempty"`
}
func (x *Degree) Reset() {
*x = Degree{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Degree) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Degree) ProtoMessage() {}
func (x *Degree) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Degree.ProtoReflect.Descriptor instead.
func (*Degree) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{11}
}
func (x *Degree) GetDegreeType() DegreeType {
if x != nil {
return x.DegreeType
}
return DegreeType_DEGREE_TYPE_UNSPECIFIED
}
func (x *Degree) GetDegreeName() string {
if x != nil {
return x.DegreeName
}
return ""
}
func (x *Degree) GetFieldsOfStudy() []string {
if x != nil {
return x.FieldsOfStudy
}
return nil
}
// Resource that represents an individual or collaborative activity participated
// in by a candidate, for example, an open-source project, a class assignment,
// and so on.
type Activity struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Activity display name.
//
// Number of characters allowed is 100.
DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
// Activity description.
//
// Number of characters allowed is 100,000.
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
// Activity URI.
//
// Number of characters allowed is 4,000.
Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"`
// The first creation date of the activity.
CreateDate *date.Date `protobuf:"bytes,4,opt,name=create_date,json=createDate,proto3" json:"create_date,omitempty"`
// The last update date of the activity.
UpdateDate *date.Date `protobuf:"bytes,5,opt,name=update_date,json=updateDate,proto3" json:"update_date,omitempty"`
// A list of team members involved in this activity.
//
// Number of characters allowed is 100.
//
// The limitation for max number of team members is 50.
TeamMembers []string `protobuf:"bytes,6,rep,name=team_members,json=teamMembers,proto3" json:"team_members,omitempty"`
// A list of skills used in this activity.
//
// The limitation for max number of skills used is 50.
SkillsUsed []*Skill `protobuf:"bytes,7,rep,name=skills_used,json=skillsUsed,proto3" json:"skills_used,omitempty"`
// Output only. Activity name snippet shows how the [display_name][google.cloud.talent.v4beta1.Activity.display_name] is related to a search
// query. It's empty if the [display_name][google.cloud.talent.v4beta1.Activity.display_name] isn't related to the search
// query.
ActivityNameSnippet string `protobuf:"bytes,8,opt,name=activity_name_snippet,json=activityNameSnippet,proto3" json:"activity_name_snippet,omitempty"`
// Output only. Activity description snippet shows how the
// [description][google.cloud.talent.v4beta1.Activity.description] is related to a search query. It's empty if the
// [description][google.cloud.talent.v4beta1.Activity.description] isn't related to the search query.
ActivityDescriptionSnippet string `protobuf:"bytes,9,opt,name=activity_description_snippet,json=activityDescriptionSnippet,proto3" json:"activity_description_snippet,omitempty"`
// Output only. Skill used snippet shows how the corresponding
// [skills_used][google.cloud.talent.v4beta1.Activity.skills_used] are related to a search query. It's empty if the
// corresponding [skills_used][google.cloud.talent.v4beta1.Activity.skills_used] are not related to the search query.
SkillsUsedSnippet []string `protobuf:"bytes,10,rep,name=skills_used_snippet,json=skillsUsedSnippet,proto3" json:"skills_used_snippet,omitempty"`
}
func (x *Activity) Reset() {
*x = Activity{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Activity) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Activity) ProtoMessage() {}
func (x *Activity) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Activity.ProtoReflect.Descriptor instead.
func (*Activity) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{12}
}
func (x *Activity) GetDisplayName() string {
if x != nil {
return x.DisplayName
}
return ""
}
func (x *Activity) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Activity) GetUri() string {
if x != nil {
return x.Uri
}
return ""
}
func (x *Activity) GetCreateDate() *date.Date {
if x != nil {
return x.CreateDate
}
return nil
}
func (x *Activity) GetUpdateDate() *date.Date {
if x != nil {
return x.UpdateDate
}
return nil
}
func (x *Activity) GetTeamMembers() []string {
if x != nil {
return x.TeamMembers
}
return nil
}
func (x *Activity) GetSkillsUsed() []*Skill {
if x != nil {
return x.SkillsUsed
}
return nil
}
func (x *Activity) GetActivityNameSnippet() string {
if x != nil {
return x.ActivityNameSnippet
}
return ""
}
func (x *Activity) GetActivityDescriptionSnippet() string {
if x != nil {
return x.ActivityDescriptionSnippet
}
return ""
}
func (x *Activity) GetSkillsUsedSnippet() []string {
if x != nil {
return x.SkillsUsedSnippet
}
return nil
}
// Resource that represents a publication resource of a candidate.
type Publication struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A list of author names.
//
// Number of characters allowed is 100.
Authors []string `protobuf:"bytes,1,rep,name=authors,proto3" json:"authors,omitempty"`
// The title of the publication.
//
// Number of characters allowed is 100.
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
// The description of the publication.
//
// Number of characters allowed is 100,000.
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
// The journal name of the publication.
//
// Number of characters allowed is 100.
Journal string `protobuf:"bytes,4,opt,name=journal,proto3" json:"journal,omitempty"`
// Volume number.
//
// Number of characters allowed is 100.
Volume string `protobuf:"bytes,5,opt,name=volume,proto3" json:"volume,omitempty"`
// The publisher of the journal.
//
// Number of characters allowed is 100.
Publisher string `protobuf:"bytes,6,opt,name=publisher,proto3" json:"publisher,omitempty"`
// The publication date.
PublicationDate *date.Date `protobuf:"bytes,7,opt,name=publication_date,json=publicationDate,proto3" json:"publication_date,omitempty"`
// The publication type.
//
// Number of characters allowed is 100.
PublicationType string `protobuf:"bytes,8,opt,name=publication_type,json=publicationType,proto3" json:"publication_type,omitempty"`
// ISBN number.
//
// Number of characters allowed is 100.
Isbn string `protobuf:"bytes,9,opt,name=isbn,proto3" json:"isbn,omitempty"`
}
func (x *Publication) Reset() {
*x = Publication{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Publication) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Publication) ProtoMessage() {}
func (x *Publication) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Publication.ProtoReflect.Descriptor instead.
func (*Publication) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{13}
}
func (x *Publication) GetAuthors() []string {
if x != nil {
return x.Authors
}
return nil
}
func (x *Publication) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *Publication) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Publication) GetJournal() string {
if x != nil {
return x.Journal
}
return ""
}
func (x *Publication) GetVolume() string {
if x != nil {
return x.Volume
}
return ""
}
func (x *Publication) GetPublisher() string {
if x != nil {
return x.Publisher
}
return ""
}
func (x *Publication) GetPublicationDate() *date.Date {
if x != nil {
return x.PublicationDate
}
return nil
}
func (x *Publication) GetPublicationType() string {
if x != nil {
return x.PublicationType
}
return ""
}
func (x *Publication) GetIsbn() string {
if x != nil {
return x.Isbn
}
return ""
}
// Resource that represents the patent acquired by a candidate.
type Patent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the patent.
//
// Number of characters allowed is 100.
DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
// A list of inventors' names.
//
// Number of characters allowed for each is 100.
Inventors []string `protobuf:"bytes,2,rep,name=inventors,proto3" json:"inventors,omitempty"`
// The status of the patent.
//
// Number of characters allowed is 100.
PatentStatus string `protobuf:"bytes,3,opt,name=patent_status,json=patentStatus,proto3" json:"patent_status,omitempty"`
// The date the last time the status of the patent was checked.
PatentStatusDate *date.Date `protobuf:"bytes,4,opt,name=patent_status_date,json=patentStatusDate,proto3" json:"patent_status_date,omitempty"`
// The date that the patent was filed.
PatentFilingDate *date.Date `protobuf:"bytes,5,opt,name=patent_filing_date,json=patentFilingDate,proto3" json:"patent_filing_date,omitempty"`
// The name of the patent office.
//
// Number of characters allowed is 100.
PatentOffice string `protobuf:"bytes,6,opt,name=patent_office,json=patentOffice,proto3" json:"patent_office,omitempty"`
// The number of the patent.
//
// Number of characters allowed is 100.
PatentNumber string `protobuf:"bytes,7,opt,name=patent_number,json=patentNumber,proto3" json:"patent_number,omitempty"`
// The description of the patent.
//
// Number of characters allowed is 100,000.
PatentDescription string `protobuf:"bytes,8,opt,name=patent_description,json=patentDescription,proto3" json:"patent_description,omitempty"`
// The skills used in this patent.
SkillsUsed []*Skill `protobuf:"bytes,9,rep,name=skills_used,json=skillsUsed,proto3" json:"skills_used,omitempty"`
}
func (x *Patent) Reset() {
*x = Patent{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Patent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Patent) ProtoMessage() {}
func (x *Patent) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Patent.ProtoReflect.Descriptor instead.
func (*Patent) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{14}
}
func (x *Patent) GetDisplayName() string {
if x != nil {
return x.DisplayName
}
return ""
}
func (x *Patent) GetInventors() []string {
if x != nil {
return x.Inventors
}
return nil
}
func (x *Patent) GetPatentStatus() string {
if x != nil {
return x.PatentStatus
}
return ""
}
func (x *Patent) GetPatentStatusDate() *date.Date {
if x != nil {
return x.PatentStatusDate
}
return nil
}
func (x *Patent) GetPatentFilingDate() *date.Date {
if x != nil {
return x.PatentFilingDate
}
return nil
}
func (x *Patent) GetPatentOffice() string {
if x != nil {
return x.PatentOffice
}
return ""
}
func (x *Patent) GetPatentNumber() string {
if x != nil {
return x.PatentNumber
}
return ""
}
func (x *Patent) GetPatentDescription() string {
if x != nil {
return x.PatentDescription
}
return ""
}
func (x *Patent) GetSkillsUsed() []*Skill {
if x != nil {
return x.SkillsUsed
}
return nil
}
// Resource that represents a person's structured name.
type PersonName_PersonStructuredName struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Given/first name.
//
// It's derived from [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] if not provided.
//
// Number of characters allowed is 100.
GivenName string `protobuf:"bytes,1,opt,name=given_name,json=givenName,proto3" json:"given_name,omitempty"`
// Preferred given/first name or nickname.
//
// Number of characters allowed is 100.
PreferredName string `protobuf:"bytes,6,opt,name=preferred_name,json=preferredName,proto3" json:"preferred_name,omitempty"`
// Middle initial.
//
// It's derived from [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] if not provided.
//
// Number of characters allowed is 20.
MiddleInitial string `protobuf:"bytes,2,opt,name=middle_initial,json=middleInitial,proto3" json:"middle_initial,omitempty"`
// Family/last name.
//
// It's derived from [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] if not provided.
//
// Number of characters allowed is 100.
FamilyName string `protobuf:"bytes,3,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
// Suffixes.
//
// Number of characters allowed is 20.
Suffixes []string `protobuf:"bytes,4,rep,name=suffixes,proto3" json:"suffixes,omitempty"`
// Prefixes.
//
// Number of characters allowed is 20.
Prefixes []string `protobuf:"bytes,5,rep,name=prefixes,proto3" json:"prefixes,omitempty"`
}
func (x *PersonName_PersonStructuredName) Reset() {
*x = PersonName_PersonStructuredName{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PersonName_PersonStructuredName) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PersonName_PersonStructuredName) ProtoMessage() {}
func (x *PersonName_PersonStructuredName) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_profile_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PersonName_PersonStructuredName.ProtoReflect.Descriptor instead.
func (*PersonName_PersonStructuredName) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP(), []int{3, 0}
}
func (x *PersonName_PersonStructuredName) GetGivenName() string {
if x != nil {
return x.GivenName
}
return ""
}
func (x *PersonName_PersonStructuredName) GetPreferredName() string {
if x != nil {
return x.PreferredName
}
return ""
}
func (x *PersonName_PersonStructuredName) GetMiddleInitial() string {
if x != nil {
return x.MiddleInitial
}
return ""
}
func (x *PersonName_PersonStructuredName) GetFamilyName() string {
if x != nil {
return x.FamilyName
}
return ""
}
func (x *PersonName_PersonStructuredName) GetSuffixes() []string {
if x != nil {
return x.Suffixes
}
return nil
}
func (x *PersonName_PersonStructuredName) GetPrefixes() []string {
if x != nil {
return x.Prefixes
}
return nil
}
var File_google_cloud_talent_v4beta1_profile_proto protoreflect.FileDescriptor
var file_google_cloud_talent_v4beta1_profile_proto_rawDesc = []byte{
0x0a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x74,
0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72,
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74,
0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76,
0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2f, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x64, 0x61, 0x74,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
0x74, 0x79, 0x70, 0x65, 0x2f, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa6, 0x11, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x66,
0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72,
0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78,
0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
0x72, 0x69, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x39, 0x0a,
0x0a, 0x69, 0x73, 0x5f, 0x68, 0x69, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x69,
0x73, 0x48, 0x69, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61,
0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69,
0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x15, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f,
0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x13, 0x63,
0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69,
0x6d, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64,
0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x72, 0x65, 0x73, 0x75,
0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x06,
0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65,
0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d,
0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x0c, 0x70, 0x65, 0x72,
0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74,
0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65,
0x72, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76,
0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09,
0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x65, 0x6d, 0x61,
0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x0e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f,
0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c,
0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x68, 0x6f, 0x6e,
0x65, 0x52, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12,
0x4d, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x72, 0x69, 0x73,
0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x72, 0x69,
0x52, 0x0c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x72, 0x69, 0x73, 0x12, 0x6a,
0x0a, 0x17, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e,
0x74, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74,
0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x64,
0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49,
0x6e, 0x66, 0x6f, 0x52, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43,
0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x12, 0x65, 0x6d,
0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73,
0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52,
0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x11, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e,
0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x59, 0x0a, 0x11, 0x65, 0x64, 0x75, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x12, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x45, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72,
0x64, 0x52, 0x10, 0x65, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f,
0x72, 0x64, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x13, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12,
0x45, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x14, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69,
0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65,
0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18,
0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x70, 0x61, 0x74, 0x65,
0x6e, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e,
0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0,
0x41, 0x03, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x12, 0x25, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18,
0x30, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x69,
0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x67, 0x0a, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f,
0x6d, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x1a, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41,
0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10,
0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
0x12, 0x21, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x1b, 0x20,
0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
0x73, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73,
0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
0x03, 0x52, 0x0e, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65,
0x74, 0x12, 0x67, 0x0a, 0x14, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
0x79, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74,
0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x76,
0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c,
0x69, 0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x57, 0x0a, 0x11, 0x64, 0x65,
0x72, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18,
0x40, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41,
0x03, 0x52, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x65, 0x73, 0x1a, 0x71, 0x0a, 0x15, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x42,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c,
0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74,
0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x58, 0xea, 0x41, 0x55, 0x0a, 0x1b, 0x6a, 0x6f, 0x62,
0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
0x2f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x36, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x74, 0x65, 0x6e,
0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x7d, 0x2f, 0x70, 0x72,
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x7d,
0x22, 0xea, 0x01, 0x0a, 0x12, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x47, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61,
0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
0x5f, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x66, 0x69,
0x6c, 0x74, 0x65, 0x72, 0x53, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x22, 0xd3, 0x01,
0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x75,
0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x52,
0x65, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x5f,
0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74,
0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x2e,
0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75,
0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4b, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65,
0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x53, 0x55, 0x4d, 0x45, 0x5f, 0x54,
0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
0x00, 0x12, 0x09, 0x0a, 0x05, 0x48, 0x52, 0x58, 0x4d, 0x4c, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11,
0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4d, 0x45, 0x5f, 0x54, 0x59, 0x50,
0x45, 0x10, 0x02, 0x22, 0xb3, 0x03, 0x0a, 0x0a, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4e, 0x61,
0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x5f,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x6f,
0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x67, 0x0a, 0x0f, 0x73,
0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x50, 0x65,
0x72, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4e, 0x61,
0x6d, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64,
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65,
0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72,
0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0xdc, 0x01, 0x0a, 0x14,
0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64,
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x5f, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x4e,
0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64,
0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65,
0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x69,
0x64, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0d, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61,
0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61,
0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04,
0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x1a,
0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09,
0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x70, 0x65,
0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x91, 0x02, 0x0a, 0x07, 0x41, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73,
0x61, 0x67, 0x65, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x14, 0x75, 0x6e,
0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x75, 0x6e, 0x73, 0x74,
0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
0x4b, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x61, 0x6c,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x11, 0x73, 0x74, 0x72, 0x75, 0x63,
0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x07,
0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65,
0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x71, 0x0a,
0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x43, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55,
0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65,
0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x22, 0xf3, 0x02, 0x0a, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x75, 0x73,
0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e,
0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49,
0x6e, 0x66, 0x6f, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12,
0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c,
0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x68, 0x6f, 0x6e,
0x65, 0x2e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70,
0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x68, 0x65,
0x6e, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0d, 0x77, 0x68, 0x65, 0x6e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65,
0x22, 0xa3, 0x01, 0x0a, 0x09, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a,
0x0a, 0x16, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53,
0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x41,
0x4e, 0x44, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x42, 0x49,
0x4c, 0x45, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x41, 0x58, 0x10, 0x03, 0x12, 0x09, 0x0a,
0x05, 0x50, 0x41, 0x47, 0x45, 0x52, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x54, 0x59, 0x5f,
0x4f, 0x52, 0x5f, 0x54, 0x44, 0x44, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x4f, 0x49, 0x43,
0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x49, 0x52, 0x54, 0x55,
0x41, 0x4c, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x56, 0x4f, 0x49, 0x50, 0x10, 0x08, 0x12, 0x16,
0x0a, 0x12, 0x4d, 0x4f, 0x42, 0x49, 0x4c, 0x45, 0x5f, 0x4f, 0x52, 0x5f, 0x4c, 0x41, 0x4e, 0x44,
0x4c, 0x49, 0x4e, 0x45, 0x10, 0x09, 0x22, 0x1f, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e,
0x61, 0x6c, 0x55, 0x72, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x22, 0x8f, 0x01, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x69,
0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66,
0x6f, 0x12, 0x43, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43,
0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52,
0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f,
0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x64, 0x22, 0xab, 0x05, 0x0a, 0x10, 0x45, 0x6d,
0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x30,
0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65,
0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65,
0x12, 0x2c, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65,
0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x23,
0x0a, 0x0d, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x4e,
0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x76, 0x69,
0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e,
0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52,
0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f,
0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62,
0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x64, 0x65, 0x73,
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
0x6a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f,
0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x18,
0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75,
0x65, 0x52, 0x0c, 0x69, 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x12,
0x44, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x65, 0x6d, 0x70, 0x6c, 0x6f,
0x79, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c,
0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x69, 0x73, 0x53, 0x65, 0x6c, 0x66, 0x45, 0x6d, 0x70,
0x6c, 0x6f, 0x79, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x63, 0x75, 0x72, 0x72,
0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c,
0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x69, 0x73, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74,
0x12, 0x2f, 0x0a, 0x11, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x73, 0x6e,
0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03,
0x52, 0x0f, 0x6a, 0x6f, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65,
0x74, 0x12, 0x3b, 0x0a, 0x17, 0x6a, 0x6f, 0x62, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01,
0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x6a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x63,
0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x12, 0x37,
0x0a, 0x15, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f,
0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
0x41, 0x03, 0x52, 0x13, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65,
0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x22, 0xec, 0x04, 0x0a, 0x0f, 0x45, 0x64, 0x75, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x0a, 0x73,
0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61,
0x74, 0x65, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a,
0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61,
0x74, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x18, 0x65,
0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x75, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65,
0x52, 0x16, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x47, 0x72, 0x61, 0x64, 0x75, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x6f,
0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73,
0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74,
0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2f, 0x0a, 0x12, 0x64, 0x65, 0x67,
0x72, 0x65, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x44,
0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x11, 0x73, 0x74,
0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x18,
0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x67, 0x72, 0x65, 0x65, 0x48, 0x00, 0x52, 0x10, 0x73, 0x74,
0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x65, 0x67, 0x72, 0x65, 0x65, 0x12, 0x20,
0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x39, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x09,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
0x52, 0x09, 0x69, 0x73, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x73,
0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70,
0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x73,
0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74,
0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70,
0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x64,
0x65, 0x67, 0x72, 0x65, 0x65, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06,
0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x67, 0x72, 0x65,
0x65, 0x12, 0x48, 0x0a, 0x0b, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x67, 0x72, 0x65, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52,
0x0a, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64,
0x65, 0x67, 0x72, 0x65, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0a, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f,
0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x75, 0x64, 0x79, 0x18,
0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x4f, 0x66, 0x53,
0x74, 0x75, 0x64, 0x79, 0x22, 0xe6, 0x03, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x32, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61,
0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65,
0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x0b,
0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e,
0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65,
0x12, 0x21, 0x0a, 0x0c, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73,
0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x5f, 0x75, 0x73,
0x65, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76,
0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x0a, 0x73, 0x6b,
0x69, 0x6c, 0x6c, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x69,
0x76, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65,
0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x61, 0x63,
0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65,
0x74, 0x12, 0x45, 0x0a, 0x1c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x65,
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65,
0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1a, 0x61, 0x63,
0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x73, 0x6b, 0x69, 0x6c,
0x6c, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18,
0x0a, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x73, 0x6b, 0x69, 0x6c,
0x6c, 0x73, 0x55, 0x73, 0x65, 0x64, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x22, 0xac, 0x02,
0x0a, 0x0b, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a,
0x07, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07,
0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a,
0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x18, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c,
0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x06,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12,
0x3c, 0x0a, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64,
0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x70, 0x75,
0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a,
0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70,
0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x62, 0x6e,
0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x73, 0x62, 0x6e, 0x22, 0xae, 0x03, 0x0a,
0x06, 0x50, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c,
0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e,
0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x69,
0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x65,
0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0c, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a,
0x12, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64,
0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x10, 0x70, 0x61,
0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3f,
0x0a, 0x12, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f,
0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x10, 0x70,
0x61, 0x74, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x65, 0x12,
0x23, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65,
0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x4f, 0x66,
0x66, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6e,
0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x74,
0x65, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x61, 0x74,
0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x73,
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x0b, 0x73, 0x6b, 0x69, 0x6c,
0x6c, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c,
0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x6b, 0x69, 0x6c,
0x6c, 0x52, 0x0a, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x55, 0x73, 0x65, 0x64, 0x42, 0x82, 0x01,
0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x34, 0x62, 0x65, 0x74, 0x61,
0x31, 0x42, 0x14, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x34,
0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0xa2, 0x02, 0x03, 0x43,
0x54, 0x53, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_google_cloud_talent_v4beta1_profile_proto_rawDescOnce sync.Once
file_google_cloud_talent_v4beta1_profile_proto_rawDescData = file_google_cloud_talent_v4beta1_profile_proto_rawDesc
)
func file_google_cloud_talent_v4beta1_profile_proto_rawDescGZIP() []byte {
file_google_cloud_talent_v4beta1_profile_proto_rawDescOnce.Do(func() {
file_google_cloud_talent_v4beta1_profile_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_talent_v4beta1_profile_proto_rawDescData)
})
return file_google_cloud_talent_v4beta1_profile_proto_rawDescData
}
var file_google_cloud_talent_v4beta1_profile_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_google_cloud_talent_v4beta1_profile_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_google_cloud_talent_v4beta1_profile_proto_goTypes = []interface{}{
(Resume_ResumeType)(0), // 0: google.cloud.talent.v4beta1.Resume.ResumeType
(Phone_PhoneType)(0), // 1: google.cloud.talent.v4beta1.Phone.PhoneType
(*Profile)(nil), // 2: google.cloud.talent.v4beta1.Profile
(*AvailabilitySignal)(nil), // 3: google.cloud.talent.v4beta1.AvailabilitySignal
(*Resume)(nil), // 4: google.cloud.talent.v4beta1.Resume
(*PersonName)(nil), // 5: google.cloud.talent.v4beta1.PersonName
(*Address)(nil), // 6: google.cloud.talent.v4beta1.Address
(*Email)(nil), // 7: google.cloud.talent.v4beta1.Email
(*Phone)(nil), // 8: google.cloud.talent.v4beta1.Phone
(*PersonalUri)(nil), // 9: google.cloud.talent.v4beta1.PersonalUri
(*AdditionalContactInfo)(nil), // 10: google.cloud.talent.v4beta1.AdditionalContactInfo
(*EmploymentRecord)(nil), // 11: google.cloud.talent.v4beta1.EmploymentRecord
(*EducationRecord)(nil), // 12: google.cloud.talent.v4beta1.EducationRecord
(*Degree)(nil), // 13: google.cloud.talent.v4beta1.Degree
(*Activity)(nil), // 14: google.cloud.talent.v4beta1.Activity
(*Publication)(nil), // 15: google.cloud.talent.v4beta1.Publication
(*Patent)(nil), // 16: google.cloud.talent.v4beta1.Patent
nil, // 17: google.cloud.talent.v4beta1.Profile.CustomAttributesEntry
(*PersonName_PersonStructuredName)(nil), // 18: google.cloud.talent.v4beta1.PersonName.PersonStructuredName
(*wrappers.BoolValue)(nil), // 19: google.protobuf.BoolValue
(*timestamp.Timestamp)(nil), // 20: google.protobuf.Timestamp
(*Skill)(nil), // 21: google.cloud.talent.v4beta1.Skill
(*Certification)(nil), // 22: google.cloud.talent.v4beta1.Certification
(*Location)(nil), // 23: google.cloud.talent.v4beta1.Location
(AvailabilitySignalType)(0), // 24: google.cloud.talent.v4beta1.AvailabilitySignalType
(ContactInfoUsage)(0), // 25: google.cloud.talent.v4beta1.ContactInfoUsage
(*postaladdress.PostalAddress)(nil), // 26: google.type.PostalAddress
(*date.Date)(nil), // 27: google.type.Date
(DegreeType)(0), // 28: google.cloud.talent.v4beta1.DegreeType
(*CustomAttribute)(nil), // 29: google.cloud.talent.v4beta1.CustomAttribute
}
var file_google_cloud_talent_v4beta1_profile_proto_depIdxs = []int32{
19, // 0: google.cloud.talent.v4beta1.Profile.is_hirable:type_name -> google.protobuf.BoolValue
20, // 1: google.cloud.talent.v4beta1.Profile.create_time:type_name -> google.protobuf.Timestamp
20, // 2: google.cloud.talent.v4beta1.Profile.update_time:type_name -> google.protobuf.Timestamp
20, // 3: google.cloud.talent.v4beta1.Profile.candidate_update_time:type_name -> google.protobuf.Timestamp
20, // 4: google.cloud.talent.v4beta1.Profile.resume_update_time:type_name -> google.protobuf.Timestamp
4, // 5: google.cloud.talent.v4beta1.Profile.resume:type_name -> google.cloud.talent.v4beta1.Resume
5, // 6: google.cloud.talent.v4beta1.Profile.person_names:type_name -> google.cloud.talent.v4beta1.PersonName
6, // 7: google.cloud.talent.v4beta1.Profile.addresses:type_name -> google.cloud.talent.v4beta1.Address
7, // 8: google.cloud.talent.v4beta1.Profile.email_addresses:type_name -> google.cloud.talent.v4beta1.Email
8, // 9: google.cloud.talent.v4beta1.Profile.phone_numbers:type_name -> google.cloud.talent.v4beta1.Phone
9, // 10: google.cloud.talent.v4beta1.Profile.personal_uris:type_name -> google.cloud.talent.v4beta1.PersonalUri
10, // 11: google.cloud.talent.v4beta1.Profile.additional_contact_info:type_name -> google.cloud.talent.v4beta1.AdditionalContactInfo
11, // 12: google.cloud.talent.v4beta1.Profile.employment_records:type_name -> google.cloud.talent.v4beta1.EmploymentRecord
12, // 13: google.cloud.talent.v4beta1.Profile.education_records:type_name -> google.cloud.talent.v4beta1.EducationRecord
21, // 14: google.cloud.talent.v4beta1.Profile.skills:type_name -> google.cloud.talent.v4beta1.Skill
14, // 15: google.cloud.talent.v4beta1.Profile.activities:type_name -> google.cloud.talent.v4beta1.Activity
15, // 16: google.cloud.talent.v4beta1.Profile.publications:type_name -> google.cloud.talent.v4beta1.Publication
16, // 17: google.cloud.talent.v4beta1.Profile.patents:type_name -> google.cloud.talent.v4beta1.Patent
22, // 18: google.cloud.talent.v4beta1.Profile.certifications:type_name -> google.cloud.talent.v4beta1.Certification
17, // 19: google.cloud.talent.v4beta1.Profile.custom_attributes:type_name -> google.cloud.talent.v4beta1.Profile.CustomAttributesEntry
3, // 20: google.cloud.talent.v4beta1.Profile.availability_signals:type_name -> google.cloud.talent.v4beta1.AvailabilitySignal
23, // 21: google.cloud.talent.v4beta1.Profile.derived_addresses:type_name -> google.cloud.talent.v4beta1.Location
24, // 22: google.cloud.talent.v4beta1.AvailabilitySignal.type:type_name -> google.cloud.talent.v4beta1.AvailabilitySignalType
20, // 23: google.cloud.talent.v4beta1.AvailabilitySignal.last_update_time:type_name -> google.protobuf.Timestamp
19, // 24: google.cloud.talent.v4beta1.AvailabilitySignal.filter_satisfied:type_name -> google.protobuf.BoolValue
0, // 25: google.cloud.talent.v4beta1.Resume.resume_type:type_name -> google.cloud.talent.v4beta1.Resume.ResumeType
18, // 26: google.cloud.talent.v4beta1.PersonName.structured_name:type_name -> google.cloud.talent.v4beta1.PersonName.PersonStructuredName
25, // 27: google.cloud.talent.v4beta1.Address.usage:type_name -> google.cloud.talent.v4beta1.ContactInfoUsage
26, // 28: google.cloud.talent.v4beta1.Address.structured_address:type_name -> google.type.PostalAddress
19, // 29: google.cloud.talent.v4beta1.Address.current:type_name -> google.protobuf.BoolValue
25, // 30: google.cloud.talent.v4beta1.Email.usage:type_name -> google.cloud.talent.v4beta1.ContactInfoUsage
25, // 31: google.cloud.talent.v4beta1.Phone.usage:type_name -> google.cloud.talent.v4beta1.ContactInfoUsage
1, // 32: google.cloud.talent.v4beta1.Phone.type:type_name -> google.cloud.talent.v4beta1.Phone.PhoneType
25, // 33: google.cloud.talent.v4beta1.AdditionalContactInfo.usage:type_name -> google.cloud.talent.v4beta1.ContactInfoUsage
27, // 34: google.cloud.talent.v4beta1.EmploymentRecord.start_date:type_name -> google.type.Date
27, // 35: google.cloud.talent.v4beta1.EmploymentRecord.end_date:type_name -> google.type.Date
6, // 36: google.cloud.talent.v4beta1.EmploymentRecord.address:type_name -> google.cloud.talent.v4beta1.Address
19, // 37: google.cloud.talent.v4beta1.EmploymentRecord.is_supervisor:type_name -> google.protobuf.BoolValue
19, // 38: google.cloud.talent.v4beta1.EmploymentRecord.is_self_employed:type_name -> google.protobuf.BoolValue
19, // 39: google.cloud.talent.v4beta1.EmploymentRecord.is_current:type_name -> google.protobuf.BoolValue
27, // 40: google.cloud.talent.v4beta1.EducationRecord.start_date:type_name -> google.type.Date
27, // 41: google.cloud.talent.v4beta1.EducationRecord.end_date:type_name -> google.type.Date
27, // 42: google.cloud.talent.v4beta1.EducationRecord.expected_graduation_date:type_name -> google.type.Date
6, // 43: google.cloud.talent.v4beta1.EducationRecord.address:type_name -> google.cloud.talent.v4beta1.Address
13, // 44: google.cloud.talent.v4beta1.EducationRecord.structured_degree:type_name -> google.cloud.talent.v4beta1.Degree
19, // 45: google.cloud.talent.v4beta1.EducationRecord.is_current:type_name -> google.protobuf.BoolValue
28, // 46: google.cloud.talent.v4beta1.Degree.degree_type:type_name -> google.cloud.talent.v4beta1.DegreeType
27, // 47: google.cloud.talent.v4beta1.Activity.create_date:type_name -> google.type.Date
27, // 48: google.cloud.talent.v4beta1.Activity.update_date:type_name -> google.type.Date
21, // 49: google.cloud.talent.v4beta1.Activity.skills_used:type_name -> google.cloud.talent.v4beta1.Skill
27, // 50: google.cloud.talent.v4beta1.Publication.publication_date:type_name -> google.type.Date
27, // 51: google.cloud.talent.v4beta1.Patent.patent_status_date:type_name -> google.type.Date
27, // 52: google.cloud.talent.v4beta1.Patent.patent_filing_date:type_name -> google.type.Date
21, // 53: google.cloud.talent.v4beta1.Patent.skills_used:type_name -> google.cloud.talent.v4beta1.Skill
29, // 54: google.cloud.talent.v4beta1.Profile.CustomAttributesEntry.value:type_name -> google.cloud.talent.v4beta1.CustomAttribute
55, // [55:55] is the sub-list for method output_type
55, // [55:55] is the sub-list for method input_type
55, // [55:55] is the sub-list for extension type_name
55, // [55:55] is the sub-list for extension extendee
0, // [0:55] is the sub-list for field type_name
}
func init() { file_google_cloud_talent_v4beta1_profile_proto_init() }
func file_google_cloud_talent_v4beta1_profile_proto_init() {
if File_google_cloud_talent_v4beta1_profile_proto != nil {
return
}
file_google_cloud_talent_v4beta1_common_proto_init()
if !protoimpl.UnsafeEnabled {
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Profile); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AvailabilitySignal); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Resume); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PersonName); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Address); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Email); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Phone); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PersonalUri); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AdditionalContactInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EmploymentRecord); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EducationRecord); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Degree); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Activity); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Publication); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Patent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PersonName_PersonStructuredName); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[3].OneofWrappers = []interface{}{
(*PersonName_FormattedName)(nil),
(*PersonName_StructuredName)(nil),
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[4].OneofWrappers = []interface{}{
(*Address_UnstructuredAddress)(nil),
(*Address_StructuredAddress)(nil),
}
file_google_cloud_talent_v4beta1_profile_proto_msgTypes[10].OneofWrappers = []interface{}{
(*EducationRecord_DegreeDescription)(nil),
(*EducationRecord_StructuredDegree)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_google_cloud_talent_v4beta1_profile_proto_rawDesc,
NumEnums: 2,
NumMessages: 17,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_google_cloud_talent_v4beta1_profile_proto_goTypes,
DependencyIndexes: file_google_cloud_talent_v4beta1_profile_proto_depIdxs,
EnumInfos: file_google_cloud_talent_v4beta1_profile_proto_enumTypes,
MessageInfos: file_google_cloud_talent_v4beta1_profile_proto_msgTypes,
}.Build()
File_google_cloud_talent_v4beta1_profile_proto = out.File
file_google_cloud_talent_v4beta1_profile_proto_rawDesc = nil
file_google_cloud_talent_v4beta1_profile_proto_goTypes = nil
file_google_cloud_talent_v4beta1_profile_proto_depIdxs = nil
}